Pointers are 64-bits on x86-64, so we need to use 64-bit operand widths
for instructions operating on J_REFERENCE values.

Signed-off-by: Eduard - Gabriel Munteanu <eduard.munte...@linux360.ro>
---
 arch/x86/emit-code.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/x86/emit-code.c b/arch/x86/emit-code.c
index e149cf2..5dd4e68 100644
--- a/arch/x86/emit-code.c
+++ b/arch/x86/emit-code.c
@@ -2208,7 +2208,8 @@ static inline unsigned long rip_relative(struct buffer 
*buf,
 
 static inline int is_64bit_reg(struct operand *reg)
 {
-       return (reg->reg.interval->var_info->vm_type == J_LONG);
+       return (reg->reg.interval->var_info->vm_type == J_LONG ||
+               reg->reg.interval->var_info->vm_type == J_REFERENCE);
 }
 
 static int is_64bit_bin_reg_op(struct operand *a, struct operand *b)
-- 
1.6.0.6


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Jatovm-devel mailing list
Jatovm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jatovm-devel

Reply via email to