1
0
Fork 0

armv4le backend update (M-HT), adds distance data pool for thumb emitter

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@3215
This commit is contained in:
Sebastian Strohhäcker 2008-09-02 20:44:41 +00:00
parent acce294193
commit dce428ac54
10 changed files with 2298 additions and 16 deletions

View file

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: decoder_basic.h,v 1.11 2008-08-20 14:13:21 c2woody Exp $ */
/* $Id: decoder_basic.h,v 1.12 2008-09-02 20:44:41 c2woody Exp $ */
/*
@ -555,6 +555,7 @@ static void dyn_fill_blocks(void) {
static void dyn_closeblock(void) {
//Shouldn't create empty block normally but let's do it like this
dyn_fill_blocks();
cache_block_before_close();
cache_closeblock();
cache_block_closing(decode.block->cache.start,decode.block->cache.size);
}

View file

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: risc_armv4le-o3.h,v 1.1 2008-08-20 14:13:21 c2woody Exp $ */
/* $Id: risc_armv4le-o3.h,v 1.2 2008-09-02 20:44:41 c2woody Exp $ */
/* ARMv4 (little endian) backend by M-HT (size-tweaked arm version) */
@ -616,7 +616,7 @@ static void gen_jmp_ptr(void * ptr,Bits imm=0) {
// short conditional jump (+-127 bytes) if register is zero
// the destination is set by gen_fill_branch() later
static Bit32u INLINE gen_create_branch_on_zero(HostReg reg,bool dword) {
static Bit32u gen_create_branch_on_zero(HostReg reg,bool dword) {
if (dword) {
cache_addd(0xe3500000 + (reg << 16)); // cmp reg, #0
} else {
@ -628,7 +628,7 @@ static Bit32u INLINE gen_create_branch_on_zero(HostReg reg,bool dword) {
// short conditional jump (+-127 bytes) if register is nonzero
// the destination is set by gen_fill_branch() later
static Bit32u INLINE gen_create_branch_on_nonzero(HostReg reg,bool dword) {
static Bit32u gen_create_branch_on_nonzero(HostReg reg,bool dword) {
if (dword) {
cache_addd(0xe3500000 + (reg << 16)); // cmp reg, #0
} else {
@ -666,7 +666,7 @@ static Bit32u gen_create_branch_long_nonzero(HostReg reg,bool isdword) {
}
// compare 32bit-register against zero and jump if value less/equal than zero
static Bit32u INLINE gen_create_branch_long_leqzero(HostReg reg) {
static Bit32u gen_create_branch_long_leqzero(HostReg reg) {
cache_addd(0xe3500000 + (reg << 16)); // cmp reg, #0
cache_addd(0xca000002); // bgt nobranch
cache_addd(0xe5900000 + (temp1 << 12) + (HOST_pc << 16)); // ldr temp1, [pc, #0]
@ -856,3 +856,5 @@ static void gen_fill_function_ptr(Bit8u * pos,void* fct_ptr,Bitu flags_type) {
#endif
}
#endif
static void cache_block_before_close(void) { }

View file

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: risc_armv4le-s3.h,v 1.1 2008-08-20 14:13:21 c2woody Exp $ */
/* $Id: risc_armv4le-s3.h,v 1.2 2008-09-02 20:44:41 c2woody Exp $ */
/* ARMv4 (little endian) backend by M-HT (speed-tweaked arm version) */
@ -452,7 +452,7 @@ static void gen_jmp_ptr(void * ptr,Bits imm=0) {
// short conditional jump (+-127 bytes) if register is zero
// the destination is set by gen_fill_branch() later
static Bit32u INLINE gen_create_branch_on_zero(HostReg reg,bool dword) {
static Bit32u gen_create_branch_on_zero(HostReg reg,bool dword) {
if (dword) {
cache_addd(0xe3500000 + (reg << 16)); // cmp reg, #0
} else {
@ -464,7 +464,7 @@ static Bit32u INLINE gen_create_branch_on_zero(HostReg reg,bool dword) {
// short conditional jump (+-127 bytes) if register is nonzero
// the destination is set by gen_fill_branch() later
static Bit32u INLINE gen_create_branch_on_nonzero(HostReg reg,bool dword) {
static Bit32u gen_create_branch_on_nonzero(HostReg reg,bool dword) {
if (dword) {
cache_addd(0xe3500000 + (reg << 16)); // cmp reg, #0
} else {
@ -502,7 +502,7 @@ static Bit32u gen_create_branch_long_nonzero(HostReg reg,bool isdword) {
}
// compare 32bit-register against zero and jump if value less/equal than zero
static Bit32u INLINE gen_create_branch_long_leqzero(HostReg reg) {
static Bit32u gen_create_branch_long_leqzero(HostReg reg) {
cache_addd(0xe3500000 + (reg << 16)); // cmp reg, #0
cache_addd(0xca000002); // bgt nobranch
cache_addd(0xe5900000 + (temp1 << 12) + (HOST_pc << 16)); // ldr temp1, [pc, #0]
@ -692,3 +692,5 @@ static void gen_fill_function_ptr(Bit8u * pos,void* fct_ptr,Bitu flags_type) {
#endif
}
#endif
static void cache_block_before_close(void) { }

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: risc_armv4le-thumb.h,v 1.1 2008-08-20 14:13:21 c2woody Exp $ */
/* $Id: risc_armv4le-thumb.h,v 1.2 2008-09-02 20:44:41 c2woody Exp $ */
/* ARMv4 (little endian) backend by M-HT */
@ -932,3 +932,5 @@ static void gen_fill_function_ptr(Bit8u * pos,void* fct_ptr,Bitu flags_type) {
#endif
}
#endif
static void cache_block_before_close(void) { }

View file

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: risc_armv4le.h,v 1.1 2008-08-20 14:13:21 c2woody Exp $ */
/* $Id: risc_armv4le.h,v 1.2 2008-09-02 20:44:41 c2woody Exp $ */
/* ARMv4 (little endian) backend (switcher) by M-HT */
@ -24,6 +24,8 @@
#include "risc_armv4le-common.h"
// choose your destiny:
#include "risc_armv4le-s3.h"
//#include "risc_armv4le-o3.h"
#include "risc_armv4le-thumb-niw.h"
//#include "risc_armv4le-thumb-iw.h"
//#include "risc_armv4le-thumb.h"
//#include "risc_armv4le-s3.h"
//#include "risc_armv4le-o3.h"

View file

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: risc_mipsel32.h,v 1.2 2008-08-20 14:13:21 c2woody Exp $ */
/* $Id: risc_mipsel32.h,v 1.3 2008-09-02 20:44:41 c2woody Exp $ */
/* MIPS32 (little endian) backend by crazyc */
@ -644,3 +644,5 @@ static void cache_block_closing(Bit8u* block_start,Bitu block_size) {
}
#endif
}
static void cache_block_before_close(void) { }

View file

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: risc_x64.h,v 1.10 2008-08-20 14:13:21 c2woody Exp $ */
/* $Id: risc_x64.h,v 1.11 2008-09-02 20:44:41 c2woody Exp $ */
// some configuring defines that specify the capabilities of this architecture
@ -675,3 +675,5 @@ static void gen_fill_function_ptr(Bit8u * pos,void* fct_ptr,Bitu flags_type) {
#endif
static void cache_block_closing(Bit8u* block_start,Bitu block_size) { }
static void cache_block_before_close(void) { }

View file

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: risc_x86.h,v 1.7 2008-08-20 14:13:21 c2woody Exp $ */
/* $Id: risc_x86.h,v 1.8 2008-09-02 20:44:41 c2woody Exp $ */
// some configuring defines that specify the capabilities of this architecture
@ -509,3 +509,5 @@ static void gen_fill_function_ptr(Bit8u * pos,void* fct_ptr,Bitu flags_type) {
#endif
static void cache_block_closing(Bit8u* block_start,Bitu block_size) { }
static void cache_block_before_close(void) { }