This replaces various aliases (and leftovers) with better ones. For example, we can now refer to REG_ESP or REG_RSP in common code with REG_xSP.
Signed-off-by: Eduard - Gabriel Munteanu <eduard.munte...@linux360.ro> --- arch/x86/emit-code.c | 46 +++++++++++++++++----------------- arch/x86/include/arch/registers_32.h | 18 ++++++------ arch/x86/include/arch/registers_64.h | 20 +++++++------- arch/x86/use-def.c | 22 ++++++++++++---- 4 files changed, 58 insertions(+), 48 deletions(-) diff --git a/arch/x86/emit-code.c b/arch/x86/emit-code.c index b5de4a4..9e9e7bf 100644 --- a/arch/x86/emit-code.c +++ b/arch/x86/emit-code.c @@ -260,27 +260,27 @@ void emit_lock(struct buffer *buf, struct vm_object *obj) { __emit_push_imm(buf, (unsigned long)obj); __emit_call(buf, vm_object_lock); - __emit_add_imm_reg(buf, 0x04, REG_ESP); + __emit_add_imm_reg(buf, 0x04, REG_xSP); - __emit_push_reg(buf, REG_EAX); - emit_exception_test(buf, REG_EAX); - __emit_pop_reg(buf, REG_EAX); + __emit_push_reg(buf, REG_xAX); + emit_exception_test(buf, REG_xAX); + __emit_pop_reg(buf, REG_xAX); } void emit_unlock(struct buffer *buf, struct vm_object *obj) { /* Save caller-saved registers which contain method's return value */ - __emit_push_reg(buf, REG_EAX); - __emit_push_reg(buf, REG_EDX); + __emit_push_reg(buf, REG_xAX); + __emit_push_reg(buf, REG_xDX); __emit_push_imm(buf, (unsigned long)obj); __emit_call(buf, vm_object_unlock); - __emit_add_imm_reg(buf, 0x04, REG_ESP); + __emit_add_imm_reg(buf, 0x04, REG_xSP); - emit_exception_test(buf, REG_EAX); + emit_exception_test(buf, REG_xAX); - __emit_pop_reg(buf, REG_EDX); - __emit_pop_reg(buf, REG_EAX); + __emit_pop_reg(buf, REG_xDX); + __emit_pop_reg(buf, REG_xAX); } void emit_lock_this(struct buffer *buf) @@ -289,13 +289,13 @@ void emit_lock_this(struct buffer *buf) this_arg_offset = offsetof(struct jit_stack_frame, args); - __emit_push_membase(buf, REG_EBP, this_arg_offset); + __emit_push_membase(buf, REG_xBP, this_arg_offset); __emit_call(buf, vm_object_lock); - __emit_add_imm_reg(buf, 0x04, REG_ESP); + __emit_add_imm_reg(buf, 0x04, REG_xSP); - __emit_push_reg(buf, REG_EAX); - emit_exception_test(buf, REG_EAX); - __emit_pop_reg(buf, REG_EAX); + __emit_push_reg(buf, REG_xAX); + emit_exception_test(buf, REG_xAX); + __emit_pop_reg(buf, REG_xAX); } void emit_unlock_this(struct buffer *buf) @@ -305,17 +305,17 @@ void emit_unlock_this(struct buffer *buf) this_arg_offset = offsetof(struct jit_stack_frame, args); /* Save caller-saved registers which contain method's return value */ - __emit_push_reg(buf, REG_EAX); - __emit_push_reg(buf, REG_EDX); + __emit_push_reg(buf, REG_xAX); + __emit_push_reg(buf, REG_xDX); - __emit_push_membase(buf, REG_EBP, this_arg_offset); + __emit_push_membase(buf, REG_xBP, this_arg_offset); __emit_call(buf, vm_object_unlock); - __emit_add_imm_reg(buf, 0x04, REG_ESP); + __emit_add_imm_reg(buf, 0x04, REG_xSP); - emit_exception_test(buf, REG_EAX); + emit_exception_test(buf, REG_xAX); - __emit_pop_reg(buf, REG_EDX); - __emit_pop_reg(buf, REG_EAX); + __emit_pop_reg(buf, REG_xDX); + __emit_pop_reg(buf, REG_xAX); } void backpatch_branch_target(struct buffer *buf, @@ -359,7 +359,7 @@ void emit_trace_invoke(struct buffer *buf, struct compilation_unit *cu) { __emit_push_imm(buf, (unsigned long) cu); __emit_call(buf, &trace_invoke); - __emit_add_imm_reg(buf, sizeof(unsigned long), REG_XSP); + __emit_add_imm_reg(buf, sizeof(unsigned long), REG_xSP); } /* diff --git a/arch/x86/include/arch/registers_32.h b/arch/x86/include/arch/registers_32.h index bf90c7c..1547e33 100644 --- a/arch/x86/include/arch/registers_32.h +++ b/arch/x86/include/arch/registers_32.h @@ -28,15 +28,15 @@ enum machine_reg { REG_EBP = NR_REGISTERS, REG_ESP, - /* Either-R**-or-E** variants (for word-size independent code). */ - REG_XAX = REG_EAX, - REG_XCX, - REG_XDX, - REG_XBX, - REG_XSI, - REG_XDI, - REG_XBP = REG_EBP, - REG_XSP, + /* Either-R**-or-E** variants (for 32/64-bit common code). */ + REG_xAX = REG_EAX, + REG_xCX = REG_ECX, + REG_xDX = REG_EDX, + REG_xBX = REG_EBX, + REG_xSI = REG_ESI, + REG_xDI = REG_EDI, + REG_xBP = REG_EBP, + REG_xSP = REG_ESP, REG_UNASSIGNED = INT_MAX, }; diff --git a/arch/x86/include/arch/registers_64.h b/arch/x86/include/arch/registers_64.h index b89bdff..a354403 100644 --- a/arch/x86/include/arch/registers_64.h +++ b/arch/x86/include/arch/registers_64.h @@ -26,17 +26,17 @@ enum machine_reg { REG_RSP = NR_REGISTERS, /* R4 */ REG_RBP, /* R5 */ - REG_UNASSIGNED = INT_MAX, + /* Either-R**-or-E** variants (for 32/64-bit common code). */ + REG_xAX = REG_RAX, + REG_xCX = REG_RCX, + REG_xDX = REG_RDX, + REG_xBX = REG_RBX, + REG_xSI = REG_RSI, + REG_xDI = REG_RDI, + REG_xBP = REG_RBP, + REG_xSP = REG_RSP, - /* Aliases that aid the reuse of code from x86-32. */ - REG_EAX = REG_RAX, - REG_ECX = REG_RCX, - REG_EDX = REG_RDX, - REG_EBX = REG_RBX, - REG_ESI = REG_RSI, - REG_EDI = REG_RDI, - REG_ESP = REG_RSP, - REG_EBP = REG_RBP, + REG_UNASSIGNED = INT_MAX, }; const char *reg_name(enum machine_reg reg); diff --git a/arch/x86/use-def.c b/arch/x86/use-def.c index 56b4ddb..74b6ecf 100644 --- a/arch/x86/use-def.c +++ b/arch/x86/use-def.c @@ -12,15 +12,25 @@ enum { DEF_DST = 1, DEF_SRC = 2, DEF_NONE = 4, - DEF_EAX = 8, - DEF_ECX = 16, - DEF_EDX = 32, + DEF_xAX = 8, + DEF_xCX = 16, + DEF_xDX = 32, USE_DST = 64, USE_IDX_DST = 128, /* destination operand is memindex */ USE_IDX_SRC = 256, /* source operand is memindex */ USE_NONE = 512, USE_SRC = 1024, USE_FP = 2048, /* frame pointer */ + +#ifdef CONFIG_X86_32 + DEF_EAX = DEF_xAX, + DEF_ECX = DEF_xCX, + DEF_EDX = DEF_xDX, +#else + DEF_RAX = DEF_xAX, + DEF_RCX = DEF_xCX, + DEF_RDX = DEF_xDX, +#endif }; struct insn_info { @@ -115,9 +125,9 @@ struct mach_reg_def { }; static struct mach_reg_def checkregs[] = { - { REG_EAX, DEF_EAX }, - { REG_ECX, DEF_ECX }, - { REG_EDX, DEF_EDX }, + { REG_xAX, DEF_xAX }, + { REG_xCX, DEF_xCX }, + { REG_xDX, DEF_xDX }, }; -- 1.6.0.6 ------------------------------------------------------------------------------ Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/blackberry _______________________________________________ Jatovm-devel mailing list Jatovm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jatovm-devel