--- old/src/hotspot/cpu/x86/x86_64.ad 2018-09-26 10:02:46.658606645 -0400 +++ new/src/hotspot/cpu/x86/x86_64.ad 2018-09-26 10:02:45.110516585 -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) @@ -6510,11 +6508,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); @@ -7710,7 +7704,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 ); @@ -7721,7 +7715,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 ); @@ -7733,7 +7727,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 ); @@ -7744,7 +7738,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 ); @@ -7756,7 +7750,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 ); @@ -7767,7 +7761,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 ); @@ -7779,7 +7773,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 ); @@ -7790,7 +7784,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 ); @@ -10807,7 +10801,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()); @@ -10851,7 +10845,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);