15081Sgblack@eecs.umich.edu# Copyright (c) 2007 The Hewlett-Packard Development Company
25081Sgblack@eecs.umich.edu# All rights reserved.
35081Sgblack@eecs.umich.edu#
47087Snate@binkert.org# The license below extends only to copyright in the software and shall
57087Snate@binkert.org# not be construed as granting a license to any other intellectual
67087Snate@binkert.org# property including but not limited to intellectual property relating
77087Snate@binkert.org# to a hardware implementation of the functionality of the software
87087Snate@binkert.org# licensed hereunder.  You may use the software subject to the license
97087Snate@binkert.org# terms below provided that you ensure that this notice is replicated
107087Snate@binkert.org# unmodified and in its entirety in all distributions of the software,
117087Snate@binkert.org# modified or unmodified, in source code or in binary form.
125081Sgblack@eecs.umich.edu#
137087Snate@binkert.org# Redistribution and use in source and binary forms, with or without
147087Snate@binkert.org# modification, are permitted provided that the following conditions are
157087Snate@binkert.org# met: redistributions of source code must retain the above copyright
167087Snate@binkert.org# notice, this list of conditions and the following disclaimer;
177087Snate@binkert.org# redistributions in binary form must reproduce the above copyright
187087Snate@binkert.org# notice, this list of conditions and the following disclaimer in the
197087Snate@binkert.org# documentation and/or other materials provided with the distribution;
207087Snate@binkert.org# neither the name of the copyright holders nor the names of its
215081Sgblack@eecs.umich.edu# contributors may be used to endorse or promote products derived from
227087Snate@binkert.org# this software without specific prior written permission.
235081Sgblack@eecs.umich.edu#
245081Sgblack@eecs.umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
255081Sgblack@eecs.umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
265081Sgblack@eecs.umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
275081Sgblack@eecs.umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
285081Sgblack@eecs.umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
295081Sgblack@eecs.umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
305081Sgblack@eecs.umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
315081Sgblack@eecs.umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
325081Sgblack@eecs.umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
335081Sgblack@eecs.umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
345081Sgblack@eecs.umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
355081Sgblack@eecs.umich.edu#
365081Sgblack@eecs.umich.edu# Authors: Gabe Black
375081Sgblack@eecs.umich.edu
385081Sgblack@eecs.umich.edumicrocode = '''
395081Sgblack@eecs.umich.edudef macroop OR_R_R
405081Sgblack@eecs.umich.edu{
415081Sgblack@eecs.umich.edu    or reg, reg, regm, flags=(OF,SF,ZF,PF,CF)
425081Sgblack@eecs.umich.edu};
435081Sgblack@eecs.umich.edu
445081Sgblack@eecs.umich.edudef macroop OR_M_I
455081Sgblack@eecs.umich.edu{
465081Sgblack@eecs.umich.edu    limm t2, imm
475119Sgblack@eecs.umich.edu    ldst t1, seg, sib, disp
485081Sgblack@eecs.umich.edu    or t1, t1, t2, flags=(OF,SF,ZF,PF,CF)
495081Sgblack@eecs.umich.edu    st t1, seg, sib, disp
505081Sgblack@eecs.umich.edu};
515081Sgblack@eecs.umich.edu
525081Sgblack@eecs.umich.edudef macroop OR_P_I
535081Sgblack@eecs.umich.edu{
545081Sgblack@eecs.umich.edu    limm t2, imm
555081Sgblack@eecs.umich.edu    rdip t7
565119Sgblack@eecs.umich.edu    ldst t1, seg, riprel, disp
575081Sgblack@eecs.umich.edu    or t1, t1, t2, flags=(OF,SF,ZF,PF,CF)
585081Sgblack@eecs.umich.edu    st t1, seg, riprel, disp
595081Sgblack@eecs.umich.edu};
605081Sgblack@eecs.umich.edu
616082Sgblack@eecs.umich.edudef macroop OR_LOCKED_M_I
626082Sgblack@eecs.umich.edu{
636082Sgblack@eecs.umich.edu    limm t2, imm
648610Snilay@cs.wisc.edu    mfence
656082Sgblack@eecs.umich.edu    ldstl t1, seg, sib, disp
666082Sgblack@eecs.umich.edu    or t1, t1, t2, flags=(OF,SF,ZF,PF,CF)
676082Sgblack@eecs.umich.edu    stul t1, seg, sib, disp
688610Snilay@cs.wisc.edu    mfence
696082Sgblack@eecs.umich.edu};
706082Sgblack@eecs.umich.edu
716082Sgblack@eecs.umich.edudef macroop OR_LOCKED_P_I
726082Sgblack@eecs.umich.edu{
736082Sgblack@eecs.umich.edu    limm t2, imm
746082Sgblack@eecs.umich.edu    rdip t7
758610Snilay@cs.wisc.edu    mfence
766082Sgblack@eecs.umich.edu    ldstl t1, seg, riprel, disp
776082Sgblack@eecs.umich.edu    or t1, t1, t2, flags=(OF,SF,ZF,PF,CF)
786082Sgblack@eecs.umich.edu    stul t1, seg, riprel, disp
798610Snilay@cs.wisc.edu    mfence
806082Sgblack@eecs.umich.edu};
816082Sgblack@eecs.umich.edu
825081Sgblack@eecs.umich.edudef macroop OR_M_R
835081Sgblack@eecs.umich.edu{
845119Sgblack@eecs.umich.edu    ldst t1, seg, sib, disp
855081Sgblack@eecs.umich.edu    or t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
865081Sgblack@eecs.umich.edu    st t1, seg, sib, disp
875081Sgblack@eecs.umich.edu};
885081Sgblack@eecs.umich.edu
895081Sgblack@eecs.umich.edudef macroop OR_P_R
905081Sgblack@eecs.umich.edu{
915081Sgblack@eecs.umich.edu    rdip t7
925119Sgblack@eecs.umich.edu    ldst t1, seg, riprel, disp
935081Sgblack@eecs.umich.edu    or t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
945081Sgblack@eecs.umich.edu    st t1, seg, riprel, disp
955081Sgblack@eecs.umich.edu};
965081Sgblack@eecs.umich.edu
976082Sgblack@eecs.umich.edudef macroop OR_LOCKED_M_R
986082Sgblack@eecs.umich.edu{
998610Snilay@cs.wisc.edu    mfence
1006082Sgblack@eecs.umich.edu    ldstl t1, seg, sib, disp
1016082Sgblack@eecs.umich.edu    or t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
1026082Sgblack@eecs.umich.edu    stul t1, seg, sib, disp
1038610Snilay@cs.wisc.edu    mfence
1046082Sgblack@eecs.umich.edu};
1056082Sgblack@eecs.umich.edu
1066082Sgblack@eecs.umich.edudef macroop OR_LOCKED_P_R
1076082Sgblack@eecs.umich.edu{
1086082Sgblack@eecs.umich.edu    rdip t7
1098610Snilay@cs.wisc.edu    mfence
1106082Sgblack@eecs.umich.edu    ldstl t1, seg, riprel, disp
1116082Sgblack@eecs.umich.edu    or t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
1126082Sgblack@eecs.umich.edu    stul t1, seg, riprel, disp
1138610Snilay@cs.wisc.edu    mfence
1146082Sgblack@eecs.umich.edu};
1156082Sgblack@eecs.umich.edu
1165081Sgblack@eecs.umich.edudef macroop OR_R_M
1175081Sgblack@eecs.umich.edu{
1185081Sgblack@eecs.umich.edu    ld t1, seg, sib, disp
1195081Sgblack@eecs.umich.edu    or reg, reg, t1, flags=(OF,SF,ZF,PF,CF)
1205081Sgblack@eecs.umich.edu};
1215081Sgblack@eecs.umich.edu
1225081Sgblack@eecs.umich.edudef macroop OR_R_P
1235081Sgblack@eecs.umich.edu{
1245081Sgblack@eecs.umich.edu    rdip t7
1255081Sgblack@eecs.umich.edu    ld t1, seg, riprel, disp
1265081Sgblack@eecs.umich.edu    or reg, reg, t1, flags=(OF,SF,ZF,PF,CF)
1275081Sgblack@eecs.umich.edu};
1285081Sgblack@eecs.umich.edu
1295081Sgblack@eecs.umich.edudef macroop OR_R_I
1305081Sgblack@eecs.umich.edu{
1315081Sgblack@eecs.umich.edu    limm t1, imm
1325081Sgblack@eecs.umich.edu    or reg, reg, t1, flags=(OF,SF,ZF,PF,CF)
1335081Sgblack@eecs.umich.edu};
1345081Sgblack@eecs.umich.edu
1355081Sgblack@eecs.umich.edudef macroop XOR_R_R
1365081Sgblack@eecs.umich.edu{
1375081Sgblack@eecs.umich.edu    xor reg, reg, regm, flags=(OF,SF,ZF,PF,CF)
1385081Sgblack@eecs.umich.edu};
1395081Sgblack@eecs.umich.edu
1405081Sgblack@eecs.umich.edudef macroop XOR_R_I
1415081Sgblack@eecs.umich.edu{
1425081Sgblack@eecs.umich.edu    limm t1, imm
1435081Sgblack@eecs.umich.edu    xor reg, reg, t1, flags=(OF,SF,ZF,PF,CF)
1445081Sgblack@eecs.umich.edu};
1455081Sgblack@eecs.umich.edu
1465081Sgblack@eecs.umich.edudef macroop XOR_M_I
1475081Sgblack@eecs.umich.edu{
1485081Sgblack@eecs.umich.edu    limm t2, imm
1495119Sgblack@eecs.umich.edu    ldst t1, seg, sib, disp
1505081Sgblack@eecs.umich.edu    xor t1, t1, t2, flags=(OF,SF,ZF,PF,CF)
1515081Sgblack@eecs.umich.edu    st t1, seg, sib, disp
1525081Sgblack@eecs.umich.edu};
1535081Sgblack@eecs.umich.edu
1545081Sgblack@eecs.umich.edudef macroop XOR_P_I
1555081Sgblack@eecs.umich.edu{
1565081Sgblack@eecs.umich.edu    limm t2, imm
1575081Sgblack@eecs.umich.edu    rdip t7
1585119Sgblack@eecs.umich.edu    ldst t1, seg, riprel, disp
1595081Sgblack@eecs.umich.edu    xor t1, t1, t2, flags=(OF,SF,ZF,PF,CF)
1605081Sgblack@eecs.umich.edu    st t1, seg, riprel, disp
1615081Sgblack@eecs.umich.edu};
1625081Sgblack@eecs.umich.edu
1636087Sgblack@eecs.umich.edudef macroop XOR_LOCKED_M_I
1646087Sgblack@eecs.umich.edu{
1656087Sgblack@eecs.umich.edu    limm t2, imm
1668610Snilay@cs.wisc.edu    mfence
1676087Sgblack@eecs.umich.edu    ldstl t1, seg, sib, disp
1686087Sgblack@eecs.umich.edu    xor t1, t1, t2, flags=(OF,SF,ZF,PF,CF)
1696087Sgblack@eecs.umich.edu    stul t1, seg, sib, disp
1708610Snilay@cs.wisc.edu    mfence
1716087Sgblack@eecs.umich.edu};
1726087Sgblack@eecs.umich.edu
1736087Sgblack@eecs.umich.edudef macroop XOR_LOCKED_P_I
1746087Sgblack@eecs.umich.edu{
1756087Sgblack@eecs.umich.edu    limm t2, imm
1766087Sgblack@eecs.umich.edu    rdip t7
1778610Snilay@cs.wisc.edu    mfence
1786087Sgblack@eecs.umich.edu    ldstl t1, seg, riprel, disp
1796087Sgblack@eecs.umich.edu    xor t1, t1, t2, flags=(OF,SF,ZF,PF,CF)
1806087Sgblack@eecs.umich.edu    stul t1, seg, riprel, disp
1818610Snilay@cs.wisc.edu    mfence
1826087Sgblack@eecs.umich.edu};
1836087Sgblack@eecs.umich.edu
1845081Sgblack@eecs.umich.edudef macroop XOR_M_R
1855081Sgblack@eecs.umich.edu{
1865119Sgblack@eecs.umich.edu    ldst t1, seg, sib, disp
1875081Sgblack@eecs.umich.edu    xor t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
1885081Sgblack@eecs.umich.edu    st t1, seg, sib, disp
1895081Sgblack@eecs.umich.edu};
1905081Sgblack@eecs.umich.edu
1915081Sgblack@eecs.umich.edudef macroop XOR_P_R
1925081Sgblack@eecs.umich.edu{
1935081Sgblack@eecs.umich.edu    rdip t7
1945119Sgblack@eecs.umich.edu    ldst t1, seg, riprel, disp
1955081Sgblack@eecs.umich.edu    xor t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
1965081Sgblack@eecs.umich.edu    st t1, seg, riprel, disp
1975081Sgblack@eecs.umich.edu};
1985081Sgblack@eecs.umich.edu
1996087Sgblack@eecs.umich.edudef macroop XOR_LOCKED_M_R
2006087Sgblack@eecs.umich.edu{
2018610Snilay@cs.wisc.edu    mfence
2026087Sgblack@eecs.umich.edu    ldstl t1, seg, sib, disp
2036087Sgblack@eecs.umich.edu    xor t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
2046087Sgblack@eecs.umich.edu    stul t1, seg, sib, disp
2058610Snilay@cs.wisc.edu    mfence
2066087Sgblack@eecs.umich.edu};
2076087Sgblack@eecs.umich.edu
2086087Sgblack@eecs.umich.edudef macroop XOR_LOCKED_P_R
2096087Sgblack@eecs.umich.edu{
2106087Sgblack@eecs.umich.edu    rdip t7
2118610Snilay@cs.wisc.edu    mfence
2126087Sgblack@eecs.umich.edu    ldstl t1, seg, riprel, disp
2136087Sgblack@eecs.umich.edu    xor t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
2146087Sgblack@eecs.umich.edu    stul t1, seg, riprel, disp
2158610Snilay@cs.wisc.edu    mfence
2166087Sgblack@eecs.umich.edu};
2176087Sgblack@eecs.umich.edu
2185081Sgblack@eecs.umich.edudef macroop XOR_R_M
2195081Sgblack@eecs.umich.edu{
2205081Sgblack@eecs.umich.edu    ld t1, seg, sib, disp
2215081Sgblack@eecs.umich.edu    xor reg, reg, t1, flags=(OF,SF,ZF,PF,CF)
2225081Sgblack@eecs.umich.edu};
2235081Sgblack@eecs.umich.edu
2245081Sgblack@eecs.umich.edudef macroop XOR_R_P
2255081Sgblack@eecs.umich.edu{
2265081Sgblack@eecs.umich.edu    rdip t7
2275081Sgblack@eecs.umich.edu    ld t1, seg, riprel, disp
2285081Sgblack@eecs.umich.edu    xor reg, reg, t1, flags=(OF,SF,ZF,PF,CF)
2295081Sgblack@eecs.umich.edu};
2305081Sgblack@eecs.umich.edu
2315081Sgblack@eecs.umich.edudef macroop AND_R_R
2325081Sgblack@eecs.umich.edu{
2335081Sgblack@eecs.umich.edu    and reg, reg, regm, flags=(OF,SF,ZF,PF,CF)
2345081Sgblack@eecs.umich.edu};
2355081Sgblack@eecs.umich.edu
2365081Sgblack@eecs.umich.edudef macroop AND_R_M
2375081Sgblack@eecs.umich.edu{
2385081Sgblack@eecs.umich.edu    ld t1, seg, sib, disp
2395081Sgblack@eecs.umich.edu    and reg, reg, t1, flags=(OF,SF,ZF,PF,CF)
2405081Sgblack@eecs.umich.edu};
2415081Sgblack@eecs.umich.edu
2425081Sgblack@eecs.umich.edudef macroop AND_R_P
2435081Sgblack@eecs.umich.edu{
2445081Sgblack@eecs.umich.edu    rdip t7
2455081Sgblack@eecs.umich.edu    ld t1, seg, riprel, disp
2465081Sgblack@eecs.umich.edu    and reg, reg, t1, flags=(OF,SF,ZF,PF,CF)
2475081Sgblack@eecs.umich.edu};
2485081Sgblack@eecs.umich.edu
2495081Sgblack@eecs.umich.edudef macroop AND_R_I
2505081Sgblack@eecs.umich.edu{
2515081Sgblack@eecs.umich.edu    limm t1, imm
2525081Sgblack@eecs.umich.edu    and reg, reg, t1, flags=(OF,SF,ZF,PF,CF)
2535081Sgblack@eecs.umich.edu};
2545081Sgblack@eecs.umich.edu
2555081Sgblack@eecs.umich.edudef macroop AND_M_I
2565081Sgblack@eecs.umich.edu{
2575119Sgblack@eecs.umich.edu    ldst t2, seg, sib, disp
2585081Sgblack@eecs.umich.edu    limm t1, imm
2595081Sgblack@eecs.umich.edu    and t2, t2, t1, flags=(OF,SF,ZF,PF,CF)
2605081Sgblack@eecs.umich.edu    st t2, seg, sib, disp
2615081Sgblack@eecs.umich.edu};
2625081Sgblack@eecs.umich.edu
2635081Sgblack@eecs.umich.edudef macroop AND_P_I
2645081Sgblack@eecs.umich.edu{
2655081Sgblack@eecs.umich.edu    rdip t7
2665119Sgblack@eecs.umich.edu    ldst t2, seg, riprel, disp
2675081Sgblack@eecs.umich.edu    limm t1, imm
2685081Sgblack@eecs.umich.edu    and t2, t2, t1, flags=(OF,SF,ZF,PF,CF)
2695081Sgblack@eecs.umich.edu    st t2, seg, riprel, disp
2705081Sgblack@eecs.umich.edu};
2715081Sgblack@eecs.umich.edu
2726085Sgblack@eecs.umich.edudef macroop AND_LOCKED_M_I
2736085Sgblack@eecs.umich.edu{
2748610Snilay@cs.wisc.edu    mfence
2756085Sgblack@eecs.umich.edu    ldstl t2, seg, sib, disp
2766085Sgblack@eecs.umich.edu    limm t1, imm
2776085Sgblack@eecs.umich.edu    and t2, t2, t1, flags=(OF,SF,ZF,PF,CF)
2786085Sgblack@eecs.umich.edu    stul t2, seg, sib, disp
2798610Snilay@cs.wisc.edu    mfence
2806085Sgblack@eecs.umich.edu};
2816085Sgblack@eecs.umich.edu
2826085Sgblack@eecs.umich.edudef macroop AND_LOCKED_P_I
2836085Sgblack@eecs.umich.edu{
2846085Sgblack@eecs.umich.edu    rdip t7
2858610Snilay@cs.wisc.edu    mfence
2866085Sgblack@eecs.umich.edu    ldstl t2, seg, riprel, disp
2876085Sgblack@eecs.umich.edu    limm t1, imm
2886085Sgblack@eecs.umich.edu    and t2, t2, t1, flags=(OF,SF,ZF,PF,CF)
2896085Sgblack@eecs.umich.edu    stul t2, seg, riprel, disp
2908610Snilay@cs.wisc.edu    mfence
2916085Sgblack@eecs.umich.edu};
2926085Sgblack@eecs.umich.edu
2935081Sgblack@eecs.umich.edudef macroop AND_M_R
2945081Sgblack@eecs.umich.edu{
2955119Sgblack@eecs.umich.edu    ldst t1, seg, sib, disp
2965081Sgblack@eecs.umich.edu    and t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
2975081Sgblack@eecs.umich.edu    st t1, seg, sib, disp
2985081Sgblack@eecs.umich.edu};
2995081Sgblack@eecs.umich.edu
3005081Sgblack@eecs.umich.edudef macroop AND_P_R
3015081Sgblack@eecs.umich.edu{
3025081Sgblack@eecs.umich.edu    rdip t7
3035119Sgblack@eecs.umich.edu    ldst t1, seg, riprel, disp
3045081Sgblack@eecs.umich.edu    and t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
3055081Sgblack@eecs.umich.edu    st t1, seg, riprel, disp
3065081Sgblack@eecs.umich.edu};
3075081Sgblack@eecs.umich.edu
3086085Sgblack@eecs.umich.edudef macroop AND_LOCKED_M_R
3096085Sgblack@eecs.umich.edu{
3108610Snilay@cs.wisc.edu    mfence
3116085Sgblack@eecs.umich.edu    ldstl t1, seg, sib, disp
3126085Sgblack@eecs.umich.edu    and t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
3136085Sgblack@eecs.umich.edu    stul t1, seg, sib, disp
3148610Snilay@cs.wisc.edu    mfence
3156085Sgblack@eecs.umich.edu};
3166085Sgblack@eecs.umich.edu
3176085Sgblack@eecs.umich.edudef macroop AND_LOCKED_P_R
3186085Sgblack@eecs.umich.edu{
3196085Sgblack@eecs.umich.edu    rdip t7
3208610Snilay@cs.wisc.edu    mfence
3216085Sgblack@eecs.umich.edu    ldstl t1, seg, riprel, disp
3226085Sgblack@eecs.umich.edu    and t1, t1, reg, flags=(OF,SF,ZF,PF,CF)
3236085Sgblack@eecs.umich.edu    stul t1, seg, riprel, disp
3248610Snilay@cs.wisc.edu    mfence
3256085Sgblack@eecs.umich.edu};
3266085Sgblack@eecs.umich.edu
3275081Sgblack@eecs.umich.edudef macroop NOT_R
3285081Sgblack@eecs.umich.edu{
3295081Sgblack@eecs.umich.edu    limm t1, -1
3305081Sgblack@eecs.umich.edu    xor reg, reg, t1
3315081Sgblack@eecs.umich.edu};
3325081Sgblack@eecs.umich.edu
3335081Sgblack@eecs.umich.edudef macroop NOT_M
3345081Sgblack@eecs.umich.edu{
3355081Sgblack@eecs.umich.edu    limm t1, -1
3365119Sgblack@eecs.umich.edu    ldst t2, seg, sib, disp
3375081Sgblack@eecs.umich.edu    xor t2, t2, t1
3385081Sgblack@eecs.umich.edu    st t2, seg, sib, disp
3395081Sgblack@eecs.umich.edu};
3405081Sgblack@eecs.umich.edu
3415081Sgblack@eecs.umich.edudef macroop NOT_P
3425081Sgblack@eecs.umich.edu{
3435081Sgblack@eecs.umich.edu    limm t1, -1
3445081Sgblack@eecs.umich.edu    rdip t7
3455119Sgblack@eecs.umich.edu    ldst t2, seg, riprel, disp
3465081Sgblack@eecs.umich.edu    xor t2, t2, t1
3475081Sgblack@eecs.umich.edu    st t2, seg, riprel, disp
3485081Sgblack@eecs.umich.edu};
3496089Sgblack@eecs.umich.edu
3506089Sgblack@eecs.umich.edudef macroop NOT_LOCKED_M
3516089Sgblack@eecs.umich.edu{
3526089Sgblack@eecs.umich.edu    limm t1, -1
3538610Snilay@cs.wisc.edu    mfence
3546089Sgblack@eecs.umich.edu    ldstl t2, seg, sib, disp
3556089Sgblack@eecs.umich.edu    xor t2, t2, t1
3566089Sgblack@eecs.umich.edu    stul t2, seg, sib, disp
3578610Snilay@cs.wisc.edu    mfence
3586089Sgblack@eecs.umich.edu};
3596089Sgblack@eecs.umich.edu
3606089Sgblack@eecs.umich.edudef macroop NOT_LOCKED_P
3616089Sgblack@eecs.umich.edu{
3626089Sgblack@eecs.umich.edu    limm t1, -1
3636089Sgblack@eecs.umich.edu    rdip t7
3648610Snilay@cs.wisc.edu    mfence
3656089Sgblack@eecs.umich.edu    ldstl t2, seg, riprel, disp
3666089Sgblack@eecs.umich.edu    xor t2, t2, t1
3676089Sgblack@eecs.umich.edu    stul t2, seg, riprel, disp
3688610Snilay@cs.wisc.edu    mfence
3696089Sgblack@eecs.umich.edu};
3705081Sgblack@eecs.umich.edu'''
371