diff -r f7babf9d1592 -r 84743156e780 src/hotspot/cpu/x86/x86_64.ad --- a/src/hotspot/cpu/x86/x86_64.ad Wed Oct 03 11:43:39 2018 +0530 +++ b/src/hotspot/cpu/x86/x86_64.ad Wed Oct 03 03:41:57 2018 -0400 @@ -1,5 +1,5 @@ // -// Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. +// Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it @@ -2341,9 +2341,7 @@ enc_class lock_prefix() %{ - if (os::is_MP()) { - emit_opcode(cbuf, 0xF0); // lock - } + emit_opcode(cbuf, 0xF0); // lock %} enc_class REX_mem(memory mem) @@ -6601,11 +6599,7 @@ format %{ $$template - if (os::is_MP()) { - $$emit$$"lock addl [rsp + #0], 0\t! membar_volatile" - } else { - $$emit$$"MEMBAR-volatile ! (empty encoding)" - } + $$emit$$"lock addl [rsp + #0], 0\t! membar_volatile" %} ins_encode %{ __ membar(Assembler::StoreLoad); @@ -7801,7 +7795,7 @@ effect(KILL cr); format %{ "ADDB [$mem],$add" %} ins_encode %{ - if (os::is_MP()) { __ lock(); } + __ lock(); __ addb($mem$$Address, $add$$constant); %} ins_pipe( pipe_cmpxchg ); @@ -7812,7 +7806,7 @@ effect(KILL cr); format %{ "XADDB [$mem],$newval" %} ins_encode %{ - if (os::is_MP()) { __ lock(); } + __ lock(); __ xaddb($mem$$Address, $newval$$Register); %} ins_pipe( pipe_cmpxchg ); @@ -7824,7 +7818,7 @@ effect(KILL cr); format %{ "ADDW [$mem],$add" %} ins_encode %{ - if (os::is_MP()) { __ lock(); } + __ lock(); __ addw($mem$$Address, $add$$constant); %} ins_pipe( pipe_cmpxchg ); @@ -7835,7 +7829,7 @@ effect(KILL cr); format %{ "XADDW [$mem],$newval" %} ins_encode %{ - if (os::is_MP()) { __ lock(); } + __ lock(); __ xaddw($mem$$Address, $newval$$Register); %} ins_pipe( pipe_cmpxchg ); @@ -7847,7 +7841,7 @@ effect(KILL cr); format %{ "ADDL [$mem],$add" %} ins_encode %{ - if (os::is_MP()) { __ lock(); } + __ lock(); __ addl($mem$$Address, $add$$constant); %} ins_pipe( pipe_cmpxchg ); @@ -7858,7 +7852,7 @@ effect(KILL cr); format %{ "XADDL [$mem],$newval" %} ins_encode %{ - if (os::is_MP()) { __ lock(); } + __ lock(); __ xaddl($mem$$Address, $newval$$Register); %} ins_pipe( pipe_cmpxchg ); @@ -7870,7 +7864,7 @@ effect(KILL cr); format %{ "ADDQ [$mem],$add" %} ins_encode %{ - if (os::is_MP()) { __ lock(); } + __ lock(); __ addq($mem$$Address, $add$$constant); %} ins_pipe( pipe_cmpxchg ); @@ -7881,7 +7875,7 @@ effect(KILL cr); format %{ "XADDQ [$mem],$newval" %} ins_encode %{ - if (os::is_MP()) { __ lock(); } + __ lock(); __ xaddq($mem$$Address, $newval$$Register); %} ins_pipe( pipe_cmpxchg ); @@ -10898,7 +10892,7 @@ ins_pipe(pipe_slow); %} -instruct rep_stos_large(rcx_RegL cnt, rdi_RegP base, regD tmp, rax_RegI zero, +instruct rep_stos_large(rcx_RegL cnt, rdi_RegP base, regD tmp, rax_RegI zero, Universe dummy, rFlagsReg cr) %{ predicate(((ClearArrayNode*)n)->is_large()); @@ -10942,7 +10936,7 @@ } %} ins_encode %{ - __ clear_mem($base$$Register, $cnt$$Register, $zero$$Register, + __ clear_mem($base$$Register, $cnt$$Register, $zero$$Register, $tmp$$XMMRegister, true); %} ins_pipe(pipe_slow);