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:
parent
acce294193
commit
dce428ac54
10 changed files with 2298 additions and 16 deletions
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) { }
|
||||
|
|
|
@ -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) { }
|
||||
|
|
1135
src/cpu/core_dynrec/risc_armv4le-thumb-iw.h
Normal file
1135
src/cpu/core_dynrec/risc_armv4le-thumb-iw.h
Normal file
File diff suppressed because it is too large
Load diff
1132
src/cpu/core_dynrec/risc_armv4le-thumb-niw.h
Normal file
1132
src/cpu/core_dynrec/risc_armv4le-thumb-niw.h
Normal file
File diff suppressed because it is too large
Load diff
|
@ -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) { }
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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) { }
|
||||
|
|
|
@ -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) { }
|
||||
|
|
|
@ -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) { }
|
||||
|
|
Loading…
Add table
Reference in a new issue