# HG changeset patch # User vlivanov # Date 1471460997 -10800 # Node ID 5c87a5420f4602cc937ce9d67342da59e76cea65 # Parent cd5e1372ad445e5522afca58619ec0ce5b47c254 8164103: C2: Broken cmpxchgb encoding on x86 Reviewed-by: kvn, shade, psandoz diff -r cd5e1372ad44 -r 5c87a5420f46 hotspot/src/cpu/x86/vm/x86_64.ad --- a/hotspot/src/cpu/x86/vm/x86_64.ad Wed Aug 17 06:23:04 2016 +0000 +++ b/hotspot/src/cpu/x86/vm/x86_64.ad Wed Aug 17 22:09:57 2016 +0300 @@ -986,7 +986,7 @@ emit_opcode(cbuf, 0x58 | RBP_enc); if (StackReservedPages > 0 && C->has_reserved_stack_access()) { - __ reserved_stack_check(); + __ reserved_stack_check(); } if (do_polling() && C->is_method_compilation()) { @@ -7355,7 +7355,7 @@ "movzbl $res, $res" %} opcode(0x0F, 0xB0); ins_encode(lock_prefix, - REX_reg_mem(newval, mem_ptr), + REX_breg_mem(newval, mem_ptr), OpcP, OpcS, reg_mem(newval, mem_ptr), REX_breg(res), Opcode(0x0F), Opcode(0x94), reg(res), // sete @@ -7380,7 +7380,7 @@ opcode(0x0F, 0xB1); ins_encode(lock_prefix, SizePrefix, - REX_reg_mem(newval, mem_ptr), + REX_reg_mem(newval, mem_ptr), OpcP, OpcS, reg_mem(newval, mem_ptr), REX_breg(res), Opcode(0x0F), Opcode(0x94), reg(res), // sete @@ -7424,7 +7424,7 @@ "If rax == $mem_ptr then store $newval into $mem_ptr\n\t" %} opcode(0x0F, 0xB0); ins_encode(lock_prefix, - REX_reg_mem(newval, mem_ptr), + REX_breg_mem(newval, mem_ptr), OpcP, OpcS, reg_mem(newval, mem_ptr) // lock cmpxchg );