< prev index next >
src/hotspot/cpu/x86/x86_64.ad
Print this page
*** 1,7 ****
//
! // Copyright (c) 2003, 2017, 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
// under the terms of the GNU General Public License version 2 only, as
// published by the Free Software Foundation.
--- 1,7 ----
//
! // 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
// under the terms of the GNU General Public License version 2 only, as
// published by the Free Software Foundation.
*** 5800,5809 ****
--- 5800,5830 ----
%}
ins_pipe(ialu_mem);
%}
//----------Store Instructions-------------------------------------------------
+ // Store Bit
+ instruct storeZ0(memory mem, rRegI src)
+ %{
+ match(Set mem (StoreZ0 mem src));
+
+ ins_cost(125);
+ format %{ "andb $mem, $src\t# byte" %}
+ opcode(0x20);
+ ins_encode(lock_prefix, REX_breg_mem(src, mem), OpcP, reg_mem(src, mem));
+ ins_pipe(ialu_mem_reg);
+ %}
+
+ instruct storeZ1(memory mem, rRegI src)
+ %{
+ match(Set mem (StoreZ1 mem src));
+ ins_cost(125);
+ format %{ "orb $mem, $src\t# byte" %}
+ opcode(0x08);
+ ins_encode(lock_prefix, REX_breg_mem(src, mem), OpcP, reg_mem(src, mem));
+ ins_pipe(ialu_mem_reg);
+ %}
// Store Byte
instruct storeB(memory mem, rRegI src)
%{
match(Set mem (StoreB mem src));
< prev index next >