diff src/cpu/x86/vm/assembler_x86.cpp @ 3457:a3081a3a2b54

7056380: VM crashes with SIGSEGV in compiled code Summary: code was using andq reg, imm instead of addq addr, imm Reviewed-by: kvn, jrose, twisti
author never
date Tue, 21 Jun 2011 09:04:55 -0700
parents 07c2e7ffd1fc
children be4ca325525a 95134e034042
line wrap: on
line diff
--- a/src/cpu/x86/vm/assembler_x86.cpp	Mon Jun 20 16:45:35 2011 -0700
+++ b/src/cpu/x86/vm/assembler_x86.cpp	Tue Jun 21 09:04:55 2011 -0700
@@ -3804,6 +3804,14 @@
   emit_arith(0x03, 0xC0, dst, src);
 }
 
+void Assembler::andq(Address dst, int32_t imm32) {
+  InstructionMark im(this);
+  prefixq(dst);
+  emit_byte(0x81);
+  emit_operand(rsp, dst, 4);
+  emit_long(imm32);
+}
+
 void Assembler::andq(Register dst, int32_t imm32) {
   (void) prefixq_and_encode(dst->encoding());
   emit_arith(0x81, 0xE0, dst, imm32);