Signed-off-by: Eduard - Gabriel Munteanu <[email protected]>
---
arch/x86/insn-selector.brg | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/arch/x86/insn-selector.brg b/arch/x86/insn-selector.brg
index ac34ec0..0ded186 100644
--- a/arch/x86/insn-selector.brg
+++ b/arch/x86/insn-selector.brg
@@ -1277,6 +1277,7 @@ arg: EXPR_NO_ARGS
arg: EXPR_ARG(EXPR_VALUE) 1
{
+ #ifdef CONFIG_X86_32
struct expression *expr, *arg_expr;
unsigned long long imm;
@@ -1289,6 +1290,19 @@ arg: EXPR_ARG(EXPR_VALUE) 1
}
select_insn(s, tree, imm_insn(INSN_PUSH_IMM, imm & ~0UL));
+
+ #else
+
+ struct expression *expr, *arg_expr;
+ unsigned long long imm;
+
+ expr = to_expr(tree);
+ arg_expr = to_expr(expr->arg_expression);
+ imm = arg_expr->value;
+
+ select_insn(s, tree, imm_reg_insn(INSN_MOV_IMM_REG,
+ imm, get_fixed_var(s->b_parent,
REG_RDI)));
+ #endif
}
arg: EXPR_ARG(EXPR_FVALUE) 1
@@ -1305,6 +1319,7 @@ arg: EXPR_ARG(EXPR_FVALUE) 1
arg: EXPR_ARG(reg)
{
+ #ifdef CONFIG_X86_32
struct var_info *src;
struct expression *expr, *arg_expr;
@@ -1320,6 +1335,20 @@ arg: EXPR_ARG(reg)
select_insn(s, tree, reg_insn(INSN_PUSH_REG, src));
state->reg1 = src;
+
+ #else
+
+ struct var_info *src;
+ struct expression *expr, *arg_expr;
+
+ expr = to_expr(tree);
+ arg_expr = to_expr(expr->arg_expression);
+
+ src = state->left->reg1;
+ select_insn(s, tree, reg_reg_insn(INSN_MOV_REG_REG, src,
get_fixed_var(s->b_parent, REG_RDI)));
+
+ state->reg1 = src;
+ #endif
}
arg: EXPR_ARGS_LIST(arg, arg)
--
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/Challenge
_______________________________________________
Jatovm-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jatovm-devel