bit_test.py revision 6093
15326Sgblack@eecs.umich.edu# Copyright (c) 2008 The Regents of The University of Michigan 25326Sgblack@eecs.umich.edu# All rights reserved. 35326Sgblack@eecs.umich.edu# 45326Sgblack@eecs.umich.edu# Redistribution and use in source and binary forms, with or without 55326Sgblack@eecs.umich.edu# modification, are permitted provided that the following conditions are 65326Sgblack@eecs.umich.edu# met: redistributions of source code must retain the above copyright 75326Sgblack@eecs.umich.edu# notice, this list of conditions and the following disclaimer; 85326Sgblack@eecs.umich.edu# redistributions in binary form must reproduce the above copyright 95326Sgblack@eecs.umich.edu# notice, this list of conditions and the following disclaimer in the 105326Sgblack@eecs.umich.edu# documentation and/or other materials provided with the distribution; 115326Sgblack@eecs.umich.edu# neither the name of the copyright holders nor the names of its 125326Sgblack@eecs.umich.edu# contributors may be used to endorse or promote products derived from 135326Sgblack@eecs.umich.edu# this software without specific prior written permission. 145326Sgblack@eecs.umich.edu# 155326Sgblack@eecs.umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 165326Sgblack@eecs.umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 175326Sgblack@eecs.umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 185326Sgblack@eecs.umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 195326Sgblack@eecs.umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 205326Sgblack@eecs.umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 215326Sgblack@eecs.umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 225326Sgblack@eecs.umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 235326Sgblack@eecs.umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 245326Sgblack@eecs.umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 255326Sgblack@eecs.umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 265326Sgblack@eecs.umich.edu# 275326Sgblack@eecs.umich.edu# Authors: Gabe Black 285326Sgblack@eecs.umich.edu 295326Sgblack@eecs.umich.edu# Copyright (c) 2007-2008 The Hewlett-Packard Development Company 305081Sgblack@eecs.umich.edu# All rights reserved. 315081Sgblack@eecs.umich.edu# 325081Sgblack@eecs.umich.edu# Redistribution and use of this software in source and binary forms, 335081Sgblack@eecs.umich.edu# with or without modification, are permitted provided that the 345081Sgblack@eecs.umich.edu# following conditions are met: 355081Sgblack@eecs.umich.edu# 365081Sgblack@eecs.umich.edu# The software must be used only for Non-Commercial Use which means any 375081Sgblack@eecs.umich.edu# use which is NOT directed to receiving any direct monetary 385081Sgblack@eecs.umich.edu# compensation for, or commercial advantage from such use. Illustrative 395081Sgblack@eecs.umich.edu# examples of non-commercial use are academic research, personal study, 405081Sgblack@eecs.umich.edu# teaching, education and corporate research & development. 415081Sgblack@eecs.umich.edu# Illustrative examples of commercial use are distributing products for 425081Sgblack@eecs.umich.edu# commercial advantage and providing services using the software for 435081Sgblack@eecs.umich.edu# commercial advantage. 445081Sgblack@eecs.umich.edu# 455081Sgblack@eecs.umich.edu# If you wish to use this software or functionality therein that may be 465081Sgblack@eecs.umich.edu# covered by patents for commercial use, please contact: 475081Sgblack@eecs.umich.edu# Director of Intellectual Property Licensing 485081Sgblack@eecs.umich.edu# Office of Strategy and Technology 495081Sgblack@eecs.umich.edu# Hewlett-Packard Company 505081Sgblack@eecs.umich.edu# 1501 Page Mill Road 515081Sgblack@eecs.umich.edu# Palo Alto, California 94304 525081Sgblack@eecs.umich.edu# 535081Sgblack@eecs.umich.edu# Redistributions of source code must retain the above copyright notice, 545081Sgblack@eecs.umich.edu# this list of conditions and the following disclaimer. Redistributions 555081Sgblack@eecs.umich.edu# in binary form must reproduce the above copyright notice, this list of 565081Sgblack@eecs.umich.edu# conditions and the following disclaimer in the documentation and/or 575081Sgblack@eecs.umich.edu# other materials provided with the distribution. Neither the name of 585081Sgblack@eecs.umich.edu# the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its 595081Sgblack@eecs.umich.edu# contributors may be used to endorse or promote products derived from 605081Sgblack@eecs.umich.edu# this software without specific prior written permission. No right of 615081Sgblack@eecs.umich.edu# sublicense is granted herewith. Derivatives of the software and 625081Sgblack@eecs.umich.edu# output created using the software may be prepared, but only for 635081Sgblack@eecs.umich.edu# Non-Commercial Uses. Derivatives of the software may be shared with 645081Sgblack@eecs.umich.edu# others provided: (i) the others agree to abide by the list of 655081Sgblack@eecs.umich.edu# conditions herein which includes the Non-Commercial Use restrictions; 665081Sgblack@eecs.umich.edu# and (ii) such Derivatives of the software include the above copyright 675081Sgblack@eecs.umich.edu# notice to acknowledge the contribution from this software where 685081Sgblack@eecs.umich.edu# applicable, this list of conditions and the disclaimer below. 695081Sgblack@eecs.umich.edu# 705081Sgblack@eecs.umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 715081Sgblack@eecs.umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 725081Sgblack@eecs.umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 735081Sgblack@eecs.umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 745081Sgblack@eecs.umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 755081Sgblack@eecs.umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 765081Sgblack@eecs.umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 775081Sgblack@eecs.umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 785081Sgblack@eecs.umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 795081Sgblack@eecs.umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 805081Sgblack@eecs.umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 815081Sgblack@eecs.umich.edu# 825081Sgblack@eecs.umich.edu# Authors: Gabe Black 835081Sgblack@eecs.umich.edu 845240Sgblack@eecs.umich.edumicrocode = ''' 855240Sgblack@eecs.umich.edudef macroop BT_R_I { 865240Sgblack@eecs.umich.edu sexti t0, reg, imm, flags=(CF,) 875240Sgblack@eecs.umich.edu}; 885240Sgblack@eecs.umich.edu 895240Sgblack@eecs.umich.edudef macroop BT_M_I { 905306Sgblack@eecs.umich.edu limm t1, imm, dataSize=asz 915240Sgblack@eecs.umich.edu # This fudges just a tiny bit, but it's reasonable to expect the 925240Sgblack@eecs.umich.edu # microcode generation logic to have the log of the various sizes 935240Sgblack@eecs.umich.edu # floating around as well. 945326Sgblack@eecs.umich.edu ld t1, seg, sib, disp 955240Sgblack@eecs.umich.edu sexti t0, t1, imm, flags=(CF,) 965240Sgblack@eecs.umich.edu}; 975240Sgblack@eecs.umich.edu 985240Sgblack@eecs.umich.edudef macroop BT_P_I { 995240Sgblack@eecs.umich.edu rdip t7 1005306Sgblack@eecs.umich.edu limm t1, imm, dataSize=asz 1015326Sgblack@eecs.umich.edu ld t1, seg, riprel, disp, dataSize=asz 1025240Sgblack@eecs.umich.edu sexti t0, t1, imm, flags=(CF,) 1035240Sgblack@eecs.umich.edu}; 1045240Sgblack@eecs.umich.edu 1055240Sgblack@eecs.umich.edudef macroop BT_R_R { 1065240Sgblack@eecs.umich.edu sext t0, reg, regm, flags=(CF,) 1075240Sgblack@eecs.umich.edu}; 1085240Sgblack@eecs.umich.edu 1095240Sgblack@eecs.umich.edudef macroop BT_M_R { 1105326Sgblack@eecs.umich.edu srai t2, reg, 3, dataSize=asz 1115326Sgblack@eecs.umich.edu srai t3, t2, ldsz, dataSize=asz 1125326Sgblack@eecs.umich.edu lea t3, flatseg, [dsz, t3, base], dataSize=asz 1135326Sgblack@eecs.umich.edu ld t1, seg, [scale, index, t3], disp 1145240Sgblack@eecs.umich.edu sext t0, t1, reg, flags=(CF,) 1155240Sgblack@eecs.umich.edu}; 1165240Sgblack@eecs.umich.edu 1175240Sgblack@eecs.umich.edudef macroop BT_P_R { 1185240Sgblack@eecs.umich.edu rdip t7 1195326Sgblack@eecs.umich.edu srai t2, reg, 3, dataSize=asz 1205326Sgblack@eecs.umich.edu srai t3, t2, ldsz, dataSize=asz 1215326Sgblack@eecs.umich.edu lea t3, flatseg, [ldsz, t3, base], dataSize=asz 1225326Sgblack@eecs.umich.edu ld t1, seg, [1, t3, t7], disp 1235240Sgblack@eecs.umich.edu sext t0, t1, reg, flags=(CF,) 1245240Sgblack@eecs.umich.edu}; 1255240Sgblack@eecs.umich.edu 1265240Sgblack@eecs.umich.edudef macroop BTC_R_I { 1275240Sgblack@eecs.umich.edu sexti t0, reg, imm, flags=(CF,) 1285240Sgblack@eecs.umich.edu limm t1, 1 1295240Sgblack@eecs.umich.edu roli t1, t1, imm 1305240Sgblack@eecs.umich.edu xor reg, reg, t1 1315240Sgblack@eecs.umich.edu}; 1325240Sgblack@eecs.umich.edu 1335240Sgblack@eecs.umich.edudef macroop BTC_M_I { 1345306Sgblack@eecs.umich.edu limm t1, imm, dataSize=asz 1355240Sgblack@eecs.umich.edu # This fudges just a tiny bit, but it's reasonable to expect the 1365240Sgblack@eecs.umich.edu # microcode generation logic to have the log of the various sizes 1375240Sgblack@eecs.umich.edu # floating around as well. 1385326Sgblack@eecs.umich.edu limm t4, 1 1395326Sgblack@eecs.umich.edu roli t4, t4, imm 1405326Sgblack@eecs.umich.edu ldst t1, seg, sib, disp 1415240Sgblack@eecs.umich.edu sexti t0, t1, imm, flags=(CF,) 1425326Sgblack@eecs.umich.edu xor t1, t1, t4 1435326Sgblack@eecs.umich.edu st t1, seg, sib, disp 1445240Sgblack@eecs.umich.edu}; 1455240Sgblack@eecs.umich.edu 1465240Sgblack@eecs.umich.edudef macroop BTC_P_I { 1475306Sgblack@eecs.umich.edu rdip t7, dataSize=asz 1485306Sgblack@eecs.umich.edu limm t1, imm, dataSize=asz 1495326Sgblack@eecs.umich.edu limm t4, 1 1505326Sgblack@eecs.umich.edu roli t4, t4, imm 1515326Sgblack@eecs.umich.edu ldst t1, seg, riprel, disp 1525240Sgblack@eecs.umich.edu sexti t0, t1, imm, flags=(CF,) 1535326Sgblack@eecs.umich.edu xor t1, t1, t4 1545326Sgblack@eecs.umich.edu st t1, seg, riprel, disp 1555240Sgblack@eecs.umich.edu}; 1565240Sgblack@eecs.umich.edu 1575240Sgblack@eecs.umich.edudef macroop BTC_R_R { 1585240Sgblack@eecs.umich.edu sext t0, reg, regm, flags=(CF,) 1595240Sgblack@eecs.umich.edu limm t1, 1 1605240Sgblack@eecs.umich.edu rol t1, t1, regm 1615240Sgblack@eecs.umich.edu xor reg, reg, t1 1625240Sgblack@eecs.umich.edu}; 1635240Sgblack@eecs.umich.edu 1645240Sgblack@eecs.umich.edudef macroop BTC_M_R { 1655326Sgblack@eecs.umich.edu srai t2, reg, 3, dataSize=asz 1665326Sgblack@eecs.umich.edu srai t3, t2, ldsz, dataSize=asz 1675326Sgblack@eecs.umich.edu lea t3, flatseg, [dsz, t3, base], dataSize=asz 1685326Sgblack@eecs.umich.edu limm t4, 1 1695326Sgblack@eecs.umich.edu rol t4, t4, reg 1705326Sgblack@eecs.umich.edu ldst t1, seg, [scale, index, t3], disp 1715240Sgblack@eecs.umich.edu sext t0, t1, reg, flags=(CF,) 1725326Sgblack@eecs.umich.edu xor t1, t1, t4 1735326Sgblack@eecs.umich.edu st t1, seg, [scale, index, t3], disp 1745240Sgblack@eecs.umich.edu}; 1755240Sgblack@eecs.umich.edu 1765240Sgblack@eecs.umich.edudef macroop BTC_P_R { 1775306Sgblack@eecs.umich.edu rdip t7, dataSize=asz 1785326Sgblack@eecs.umich.edu srai t2, reg, 3, dataSize=asz 1795326Sgblack@eecs.umich.edu srai t3, t2, ldsz, dataSize=asz 1805326Sgblack@eecs.umich.edu lea t3, flatseg, [dsz, t3, base], dataSize=asz 1815326Sgblack@eecs.umich.edu limm t4, 1 1825326Sgblack@eecs.umich.edu rol t4, t4, reg 1835326Sgblack@eecs.umich.edu ldst t1, seg, [1, t2, t7], disp 1845240Sgblack@eecs.umich.edu sext t0, t1, reg, flags=(CF,) 1855326Sgblack@eecs.umich.edu xor t1, t1, t4 1865297Sgblack@eecs.umich.edu st t1, seg, [1, t2, t7], disp 1875240Sgblack@eecs.umich.edu}; 1885240Sgblack@eecs.umich.edu 1895240Sgblack@eecs.umich.edudef macroop BTR_R_I { 1905240Sgblack@eecs.umich.edu sexti t0, reg, imm, flags=(CF,) 1915240Sgblack@eecs.umich.edu limm t1, "(uint64_t(-(2ULL)))" 1925240Sgblack@eecs.umich.edu roli t1, t1, imm 1935240Sgblack@eecs.umich.edu and reg, reg, t1 1945240Sgblack@eecs.umich.edu}; 1955240Sgblack@eecs.umich.edu 1965240Sgblack@eecs.umich.edudef macroop BTR_M_I { 1975306Sgblack@eecs.umich.edu limm t1, imm, dataSize=asz 1985326Sgblack@eecs.umich.edu limm t4, "(uint64_t(-(2ULL)))" 1995326Sgblack@eecs.umich.edu roli t4, t4, imm 2005326Sgblack@eecs.umich.edu ldst t1, seg, sib, disp 2015240Sgblack@eecs.umich.edu sexti t0, t1, imm, flags=(CF,) 2025326Sgblack@eecs.umich.edu and t1, t1, t4 2035326Sgblack@eecs.umich.edu st t1, seg, sib, disp 2045240Sgblack@eecs.umich.edu}; 2055240Sgblack@eecs.umich.edu 2065240Sgblack@eecs.umich.edudef macroop BTR_P_I { 2075306Sgblack@eecs.umich.edu rdip t7, dataSize=asz 2085306Sgblack@eecs.umich.edu limm t1, imm, dataSize=asz 2095326Sgblack@eecs.umich.edu limm t4, "(uint64_t(-(2ULL)))" 2105326Sgblack@eecs.umich.edu roli t4, t4, imm 2115326Sgblack@eecs.umich.edu ldst t1, seg, riprel, disp 2125240Sgblack@eecs.umich.edu sexti t0, t1, imm, flags=(CF,) 2135326Sgblack@eecs.umich.edu and t1, t1, t4 2145326Sgblack@eecs.umich.edu st t1, seg, riprel, disp 2155240Sgblack@eecs.umich.edu}; 2165240Sgblack@eecs.umich.edu 2175240Sgblack@eecs.umich.edudef macroop BTR_R_R { 2185240Sgblack@eecs.umich.edu sext t0, reg, regm, flags=(CF,) 2195240Sgblack@eecs.umich.edu limm t1, "(uint64_t(-(2ULL)))" 2205240Sgblack@eecs.umich.edu rol t1, t1, regm 2215240Sgblack@eecs.umich.edu and reg, reg, t1 2225240Sgblack@eecs.umich.edu}; 2235240Sgblack@eecs.umich.edu 2245240Sgblack@eecs.umich.edudef macroop BTR_M_R { 2255326Sgblack@eecs.umich.edu srai t2, reg, 3, dataSize=asz 2265326Sgblack@eecs.umich.edu srai t3, t2, ldsz, dataSize=asz 2275326Sgblack@eecs.umich.edu lea t3, flatseg, [dsz, t3, base], dataSize=asz 2285326Sgblack@eecs.umich.edu limm t4, "(uint64_t(-(2ULL)))" 2295326Sgblack@eecs.umich.edu rol t4, t4, reg 2305326Sgblack@eecs.umich.edu ldst t1, seg, [scale, index, t3], disp 2315240Sgblack@eecs.umich.edu sext t0, t1, reg, flags=(CF,) 2325326Sgblack@eecs.umich.edu and t1, t1, t4 2335326Sgblack@eecs.umich.edu st t1, seg, [scale, index, t3], disp 2345240Sgblack@eecs.umich.edu}; 2355240Sgblack@eecs.umich.edu 2365240Sgblack@eecs.umich.edudef macroop BTR_P_R { 2375306Sgblack@eecs.umich.edu rdip t7, dataSize=asz 2385326Sgblack@eecs.umich.edu srai t2, reg, 3, dataSize=asz 2395326Sgblack@eecs.umich.edu srai t3, t2, ldsz, dataSize=asz 2405326Sgblack@eecs.umich.edu lea t3, flatseg, [dsz, t3, base], dataSize=asz 2415326Sgblack@eecs.umich.edu limm t4, "(uint64_t(-(2ULL)))" 2425326Sgblack@eecs.umich.edu rol t4, t4, reg 2435326Sgblack@eecs.umich.edu ldst t1, seg, [1, t3, t7], disp 2445240Sgblack@eecs.umich.edu sext t0, t1, reg, flags=(CF,) 2455326Sgblack@eecs.umich.edu and t1, t1, t4 2465326Sgblack@eecs.umich.edu st t1, seg, [1, t3, t7], disp 2475240Sgblack@eecs.umich.edu}; 2485240Sgblack@eecs.umich.edu 2495240Sgblack@eecs.umich.edudef macroop BTS_R_I { 2505240Sgblack@eecs.umich.edu sexti t0, reg, imm, flags=(CF,) 2515240Sgblack@eecs.umich.edu limm t1, 1 2525240Sgblack@eecs.umich.edu roli t1, t1, imm 2535240Sgblack@eecs.umich.edu or reg, reg, t1 2545240Sgblack@eecs.umich.edu}; 2555240Sgblack@eecs.umich.edu 2565240Sgblack@eecs.umich.edudef macroop BTS_M_I { 2575306Sgblack@eecs.umich.edu limm t1, imm, dataSize=asz 2585326Sgblack@eecs.umich.edu limm t4, 1 2595326Sgblack@eecs.umich.edu roli t4, t4, imm 2605326Sgblack@eecs.umich.edu ldst t1, seg, sib, disp 2615240Sgblack@eecs.umich.edu sexti t0, t1, imm, flags=(CF,) 2625326Sgblack@eecs.umich.edu or t1, t1, t4 2635326Sgblack@eecs.umich.edu st t1, seg, sib, disp 2645240Sgblack@eecs.umich.edu}; 2655240Sgblack@eecs.umich.edu 2665240Sgblack@eecs.umich.edudef macroop BTS_P_I { 2675306Sgblack@eecs.umich.edu rdip t7, dataSize=asz 2685306Sgblack@eecs.umich.edu limm t1, imm, dataSize=asz 2695326Sgblack@eecs.umich.edu limm t4, 1 2705326Sgblack@eecs.umich.edu roli t4, t4, imm 2715326Sgblack@eecs.umich.edu ldst t1, seg, riprel, disp 2725240Sgblack@eecs.umich.edu sexti t0, t1, imm, flags=(CF,) 2735326Sgblack@eecs.umich.edu or t1, t1, t4 2745326Sgblack@eecs.umich.edu st t1, seg, riprel, disp 2755240Sgblack@eecs.umich.edu}; 2765240Sgblack@eecs.umich.edu 2776093Sgblack@eecs.umich.edudef macroop BTS_LOCKED_M_I { 2786093Sgblack@eecs.umich.edu limm t1, imm, dataSize=asz 2796093Sgblack@eecs.umich.edu limm t4, 1 2806093Sgblack@eecs.umich.edu roli t4, t4, imm 2816093Sgblack@eecs.umich.edu ldstl t1, seg, sib, disp 2826093Sgblack@eecs.umich.edu sexti t0, t1, imm, flags=(CF,) 2836093Sgblack@eecs.umich.edu or t1, t1, t4 2846093Sgblack@eecs.umich.edu stul t1, seg, sib, disp 2856093Sgblack@eecs.umich.edu}; 2866093Sgblack@eecs.umich.edu 2876093Sgblack@eecs.umich.edudef macroop BTS_LOCKED_P_I { 2886093Sgblack@eecs.umich.edu rdip t7, dataSize=asz 2896093Sgblack@eecs.umich.edu limm t1, imm, dataSize=asz 2906093Sgblack@eecs.umich.edu limm t4, 1 2916093Sgblack@eecs.umich.edu roli t4, t4, imm 2926093Sgblack@eecs.umich.edu ldstl t1, seg, riprel, disp 2936093Sgblack@eecs.umich.edu sexti t0, t1, imm, flags=(CF,) 2946093Sgblack@eecs.umich.edu or t1, t1, t4 2956093Sgblack@eecs.umich.edu stul t1, seg, riprel, disp 2966093Sgblack@eecs.umich.edu}; 2976093Sgblack@eecs.umich.edu 2985240Sgblack@eecs.umich.edudef macroop BTS_R_R { 2995240Sgblack@eecs.umich.edu sext t0, reg, regm, flags=(CF,) 3005240Sgblack@eecs.umich.edu limm t1, 1 3015240Sgblack@eecs.umich.edu rol t1, t1, regm 3025240Sgblack@eecs.umich.edu or reg, reg, t1 3035240Sgblack@eecs.umich.edu}; 3045240Sgblack@eecs.umich.edu 3055240Sgblack@eecs.umich.edudef macroop BTS_M_R { 3065326Sgblack@eecs.umich.edu srai t2, reg, 3, dataSize=asz 3075326Sgblack@eecs.umich.edu srai t3, t2, ldsz, dataSize=asz 3085326Sgblack@eecs.umich.edu lea t3, flatseg, [dsz, t3, base], dataSize=asz 3095326Sgblack@eecs.umich.edu limm t4, 1 3105326Sgblack@eecs.umich.edu rol t4, t4, reg 3115326Sgblack@eecs.umich.edu ldst t1, seg, [scale, index, t3], disp 3125240Sgblack@eecs.umich.edu sext t0, t1, reg, flags=(CF,) 3135326Sgblack@eecs.umich.edu or t1, t1, t4 3145326Sgblack@eecs.umich.edu st t1, seg, [scale, index, t3], disp 3155240Sgblack@eecs.umich.edu}; 3165240Sgblack@eecs.umich.edu 3175240Sgblack@eecs.umich.edudef macroop BTS_P_R { 3185306Sgblack@eecs.umich.edu rdip t7, dataSize=asz 3195326Sgblack@eecs.umich.edu srai t2, reg, 3, dataSize=asz 3205326Sgblack@eecs.umich.edu srai t3, t2, ldsz, dataSize=asz 3215326Sgblack@eecs.umich.edu lea t3, flatseg, [dsz, t3, base], dataSize=asz 3225326Sgblack@eecs.umich.edu limm t4, 1 3235326Sgblack@eecs.umich.edu rol t4, t4, reg 3245326Sgblack@eecs.umich.edu ldst t1, seg, [1, t3, t7], disp 3255240Sgblack@eecs.umich.edu sext t0, t1, reg, flags=(CF,) 3265326Sgblack@eecs.umich.edu or t1, t1, t4 3275326Sgblack@eecs.umich.edu st t1, seg, [1, t3, t7], disp 3285240Sgblack@eecs.umich.edu}; 3296093Sgblack@eecs.umich.edu 3306093Sgblack@eecs.umich.edudef macroop BTS_LOCKED_M_R { 3316093Sgblack@eecs.umich.edu srai t2, reg, 3, dataSize=asz 3326093Sgblack@eecs.umich.edu srai t3, t2, ldsz, dataSize=asz 3336093Sgblack@eecs.umich.edu lea t3, flatseg, [dsz, t3, base], dataSize=asz 3346093Sgblack@eecs.umich.edu limm t4, 1 3356093Sgblack@eecs.umich.edu rol t4, t4, reg 3366093Sgblack@eecs.umich.edu ldstl t1, seg, [scale, index, t3], disp 3376093Sgblack@eecs.umich.edu sext t0, t1, reg, flags=(CF,) 3386093Sgblack@eecs.umich.edu or t1, t1, t4 3396093Sgblack@eecs.umich.edu stul t1, seg, [scale, index, t3], disp 3406093Sgblack@eecs.umich.edu}; 3416093Sgblack@eecs.umich.edu 3426093Sgblack@eecs.umich.edudef macroop BTS_LOCKED_P_R { 3436093Sgblack@eecs.umich.edu rdip t7, dataSize=asz 3446093Sgblack@eecs.umich.edu srai t2, reg, 3, dataSize=asz 3456093Sgblack@eecs.umich.edu srai t3, t2, ldsz, dataSize=asz 3466093Sgblack@eecs.umich.edu lea t3, flatseg, [dsz, t3, base], dataSize=asz 3476093Sgblack@eecs.umich.edu limm t4, 1 3486093Sgblack@eecs.umich.edu rol t4, t4, reg 3496093Sgblack@eecs.umich.edu ldstl t1, seg, [1, t3, t7], disp 3506093Sgblack@eecs.umich.edu sext t0, t1, reg, flags=(CF,) 3516093Sgblack@eecs.umich.edu or t1, t1, t4 3526093Sgblack@eecs.umich.edu stul t1, seg, [1, t3, t7], disp 3536093Sgblack@eecs.umich.edu}; 3545240Sgblack@eecs.umich.edu''' 355