bit_scan.py revision 7087
17087Snate@binkert.org# Copyright (c) 2007-2008 The Hewlett-Packard Development Company 27087Snate@binkert.org# All rights reserved. 37087Snate@binkert.org# 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. 127087Snate@binkert.org# 135332Sgblack@eecs.umich.edu# Copyright (c) 2008 The Regents of The University of Michigan 145332Sgblack@eecs.umich.edu# All rights reserved. 155332Sgblack@eecs.umich.edu# 165332Sgblack@eecs.umich.edu# Redistribution and use in source and binary forms, with or without 175332Sgblack@eecs.umich.edu# modification, are permitted provided that the following conditions are 185332Sgblack@eecs.umich.edu# met: redistributions of source code must retain the above copyright 195332Sgblack@eecs.umich.edu# notice, this list of conditions and the following disclaimer; 205332Sgblack@eecs.umich.edu# redistributions in binary form must reproduce the above copyright 215332Sgblack@eecs.umich.edu# notice, this list of conditions and the following disclaimer in the 225332Sgblack@eecs.umich.edu# documentation and/or other materials provided with the distribution; 235332Sgblack@eecs.umich.edu# neither the name of the copyright holders nor the names of its 245332Sgblack@eecs.umich.edu# contributors may be used to endorse or promote products derived from 255332Sgblack@eecs.umich.edu# this software without specific prior written permission. 265332Sgblack@eecs.umich.edu# 275332Sgblack@eecs.umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 285332Sgblack@eecs.umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 295332Sgblack@eecs.umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 305332Sgblack@eecs.umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 315332Sgblack@eecs.umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 325332Sgblack@eecs.umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 335332Sgblack@eecs.umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 345332Sgblack@eecs.umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 355332Sgblack@eecs.umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 365332Sgblack@eecs.umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 375332Sgblack@eecs.umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 385332Sgblack@eecs.umich.edu# 395332Sgblack@eecs.umich.edu# Authors: Gabe Black 405332Sgblack@eecs.umich.edu 415332Sgblack@eecs.umich.edumicrocode = ''' 425414Sgblack@eecs.umich.edudef macroop BSR_R_R { 435332Sgblack@eecs.umich.edu # Determine if the input was zero, and also move it to a temp reg. 446344Sgblack@eecs.umich.edu mov t1, t1, t0, dataSize=8 455332Sgblack@eecs.umich.edu and t1, regm, regm, flags=(ZF,) 465661Sgblack@eecs.umich.edu br label("end"), flags=(CZF,) 475332Sgblack@eecs.umich.edu 485332Sgblack@eecs.umich.edu # Zero out the result register 495332Sgblack@eecs.umich.edu movi reg, reg, 0x0 505332Sgblack@eecs.umich.edu 515332Sgblack@eecs.umich.edu # Bit 6 525333Sgblack@eecs.umich.edu srli t3, t1, 32, dataSize=8, flags=(EZF,) 535332Sgblack@eecs.umich.edu ori t4, reg, 0x20 545332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 555332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 565332Sgblack@eecs.umich.edu 575332Sgblack@eecs.umich.edu # Bit 5 585333Sgblack@eecs.umich.edu srli t3, t1, 16, dataSize=8, flags=(EZF,) 595332Sgblack@eecs.umich.edu ori t4, reg, 0x10 605332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 615332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 625332Sgblack@eecs.umich.edu 635332Sgblack@eecs.umich.edu # Bit 4 645333Sgblack@eecs.umich.edu srli t3, t1, 8, dataSize=8, flags=(EZF,) 655332Sgblack@eecs.umich.edu ori t4, reg, 0x8 665332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 675332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 685332Sgblack@eecs.umich.edu 695332Sgblack@eecs.umich.edu # Bit 3 705333Sgblack@eecs.umich.edu srli t3, t1, 4, dataSize=8, flags=(EZF,) 715332Sgblack@eecs.umich.edu ori t4, reg, 0x4 725332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 735332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 745332Sgblack@eecs.umich.edu 755332Sgblack@eecs.umich.edu # Bit 2 765333Sgblack@eecs.umich.edu srli t3, t1, 2, dataSize=8, flags=(EZF,) 775332Sgblack@eecs.umich.edu ori t4, reg, 0x2 785332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 795332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 805332Sgblack@eecs.umich.edu 815332Sgblack@eecs.umich.edu # Bit 1 825333Sgblack@eecs.umich.edu srli t3, t1, 1, dataSize=8, flags=(EZF,) 835332Sgblack@eecs.umich.edu ori t4, reg, 0x1 845332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 855332Sgblack@eecs.umich.edu 865332Sgblack@eecs.umich.eduend: 875332Sgblack@eecs.umich.edu fault "NoFault" 885332Sgblack@eecs.umich.edu}; 895332Sgblack@eecs.umich.edu 905414Sgblack@eecs.umich.edudef macroop BSR_R_M { 915332Sgblack@eecs.umich.edu 926344Sgblack@eecs.umich.edu mov t1, t1, t0, dataSize=8 935332Sgblack@eecs.umich.edu ld t1, seg, sib, disp 945332Sgblack@eecs.umich.edu 955332Sgblack@eecs.umich.edu # Determine if the input was zero, and also move it to a temp reg. 965332Sgblack@eecs.umich.edu and t1, t1, t1, flags=(ZF,) 975661Sgblack@eecs.umich.edu br label("end"), flags=(CZF,) 985332Sgblack@eecs.umich.edu 995332Sgblack@eecs.umich.edu # Zero out the result register 1005332Sgblack@eecs.umich.edu movi reg, reg, 0x0 1015332Sgblack@eecs.umich.edu 1025332Sgblack@eecs.umich.edu # Bit 6 1035333Sgblack@eecs.umich.edu srli t3, t1, 32, dataSize=8, flags=(EZF,) 1045332Sgblack@eecs.umich.edu ori t4, reg, 0x20 1055332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1065332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 1075332Sgblack@eecs.umich.edu 1085332Sgblack@eecs.umich.edu # Bit 5 1095333Sgblack@eecs.umich.edu srli t3, t1, 16, dataSize=8, flags=(EZF,) 1105332Sgblack@eecs.umich.edu ori t4, reg, 0x10 1115332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1125332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 1135332Sgblack@eecs.umich.edu 1145332Sgblack@eecs.umich.edu # Bit 4 1155333Sgblack@eecs.umich.edu srli t3, t1, 8, dataSize=8, flags=(EZF,) 1165332Sgblack@eecs.umich.edu ori t4, reg, 0x8 1175332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1185332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 1195332Sgblack@eecs.umich.edu 1205332Sgblack@eecs.umich.edu # Bit 3 1215333Sgblack@eecs.umich.edu srli t3, t1, 4, dataSize=8, flags=(EZF,) 1225332Sgblack@eecs.umich.edu ori t4, reg, 0x4 1235332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1245332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 1255332Sgblack@eecs.umich.edu 1265332Sgblack@eecs.umich.edu # Bit 2 1275333Sgblack@eecs.umich.edu srli t3, t1, 2, dataSize=8, flags=(EZF,) 1285332Sgblack@eecs.umich.edu ori t4, reg, 0x2 1295332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1305332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 1315332Sgblack@eecs.umich.edu 1325332Sgblack@eecs.umich.edu # Bit 1 1335333Sgblack@eecs.umich.edu srli t3, t1, 1, dataSize=8, flags=(EZF,) 1345332Sgblack@eecs.umich.edu ori t4, reg, 0x1 1355332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1365332Sgblack@eecs.umich.edu 1375332Sgblack@eecs.umich.eduend: 1385332Sgblack@eecs.umich.edu fault "NoFault" 1395332Sgblack@eecs.umich.edu}; 1405332Sgblack@eecs.umich.edu 1415414Sgblack@eecs.umich.edudef macroop BSR_R_P { 1425332Sgblack@eecs.umich.edu 1435332Sgblack@eecs.umich.edu rdip t7 1446344Sgblack@eecs.umich.edu mov t1, t1, t0, dataSize=8 1455332Sgblack@eecs.umich.edu ld t1, seg, riprel, disp 1465332Sgblack@eecs.umich.edu 1475332Sgblack@eecs.umich.edu # Determine if the input was zero, and also move it to a temp reg. 1485332Sgblack@eecs.umich.edu and t1, t1, t1, flags=(ZF,) 1495661Sgblack@eecs.umich.edu br label("end"), flags=(CZF,) 1505332Sgblack@eecs.umich.edu 1515332Sgblack@eecs.umich.edu # Zero out the result register 1525332Sgblack@eecs.umich.edu movi reg, reg, 0x0 1535332Sgblack@eecs.umich.edu 1545332Sgblack@eecs.umich.edu # Bit 6 1555333Sgblack@eecs.umich.edu srli t3, t1, 32, dataSize=8, flags=(EZF,) 1565332Sgblack@eecs.umich.edu ori t4, reg, 0x20 1575332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1585332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 1595332Sgblack@eecs.umich.edu 1605332Sgblack@eecs.umich.edu # Bit 5 1615333Sgblack@eecs.umich.edu srli t3, t1, 16, dataSize=8, flags=(EZF,) 1625332Sgblack@eecs.umich.edu ori t4, reg, 0x10 1635332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1645332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 1655332Sgblack@eecs.umich.edu 1665332Sgblack@eecs.umich.edu # Bit 4 1675333Sgblack@eecs.umich.edu srli t3, t1, 8, dataSize=8, flags=(EZF,) 1685332Sgblack@eecs.umich.edu ori t4, reg, 0x8 1695332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1705332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 1715332Sgblack@eecs.umich.edu 1725332Sgblack@eecs.umich.edu # Bit 3 1735333Sgblack@eecs.umich.edu srli t3, t1, 4, dataSize=8, flags=(EZF,) 1745332Sgblack@eecs.umich.edu ori t4, reg, 0x4 1755332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1765332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 1775332Sgblack@eecs.umich.edu 1785332Sgblack@eecs.umich.edu # Bit 2 1795333Sgblack@eecs.umich.edu srli t3, t1, 2, dataSize=8, flags=(EZF,) 1805332Sgblack@eecs.umich.edu ori t4, reg, 0x2 1815332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1825332Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 1835332Sgblack@eecs.umich.edu 1845332Sgblack@eecs.umich.edu # Bit 1 1855333Sgblack@eecs.umich.edu srli t3, t1, 1, dataSize=8, flags=(EZF,) 1865332Sgblack@eecs.umich.edu ori t4, reg, 0x1 1875332Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 1885332Sgblack@eecs.umich.edu 1895332Sgblack@eecs.umich.eduend: 1905332Sgblack@eecs.umich.edu fault "NoFault" 1915332Sgblack@eecs.umich.edu}; 1925332Sgblack@eecs.umich.edu 1935414Sgblack@eecs.umich.edudef macroop BSF_R_R { 1945332Sgblack@eecs.umich.edu # Determine if the input was zero, and also move it to a temp reg. 1955333Sgblack@eecs.umich.edu mov t1, t1, t0, dataSize=8 1965332Sgblack@eecs.umich.edu and t1, regm, regm, flags=(ZF,) 1975661Sgblack@eecs.umich.edu br label("end"), flags=(CZF,) 1985332Sgblack@eecs.umich.edu 1995332Sgblack@eecs.umich.edu # Zero out the result register 2005332Sgblack@eecs.umich.edu movi reg, reg, 0 2015332Sgblack@eecs.umich.edu 2025333Sgblack@eecs.umich.edu subi t2, t1, 1 2035333Sgblack@eecs.umich.edu xor t1, t2, t1 2045333Sgblack@eecs.umich.edu 2055423Sgblack@eecs.umich.edu 2065332Sgblack@eecs.umich.edu # Bit 6 2075423Sgblack@eecs.umich.edu srli t3, t1, 32, dataSize=8, flags=(EZF,) 2085423Sgblack@eecs.umich.edu ori t4, reg, 32 2095423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2105415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 2115332Sgblack@eecs.umich.edu 2125332Sgblack@eecs.umich.edu # Bit 5 2135423Sgblack@eecs.umich.edu srli t3, t1, 16, dataSize=8, flags=(EZF,) 2145423Sgblack@eecs.umich.edu ori t4, reg, 16 2155423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2165415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 2175332Sgblack@eecs.umich.edu 2185332Sgblack@eecs.umich.edu # Bit 4 2195423Sgblack@eecs.umich.edu srli t3, t1, 8, dataSize=8, flags=(EZF,) 2205423Sgblack@eecs.umich.edu ori t4, reg, 8 2215423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2225415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 2235332Sgblack@eecs.umich.edu 2245332Sgblack@eecs.umich.edu # Bit 3 2255423Sgblack@eecs.umich.edu srli t3, t1, 4, dataSize=8, flags=(EZF,) 2265423Sgblack@eecs.umich.edu ori t4, reg, 4 2275423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2285415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 2295332Sgblack@eecs.umich.edu 2305332Sgblack@eecs.umich.edu # Bit 2 2315423Sgblack@eecs.umich.edu srli t3, t1, 2, dataSize=8, flags=(EZF,) 2325423Sgblack@eecs.umich.edu ori t4, reg, 2 2335423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2345415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 2355332Sgblack@eecs.umich.edu 2365332Sgblack@eecs.umich.edu # Bit 1 2375423Sgblack@eecs.umich.edu srli t3, t1, 1, dataSize=8, flags=(EZF,) 2385423Sgblack@eecs.umich.edu ori t4, reg, 1 2395423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2405332Sgblack@eecs.umich.edu 2415332Sgblack@eecs.umich.eduend: 2425332Sgblack@eecs.umich.edu fault "NoFault" 2435332Sgblack@eecs.umich.edu}; 2445332Sgblack@eecs.umich.edu 2455414Sgblack@eecs.umich.edudef macroop BSF_R_M { 2465332Sgblack@eecs.umich.edu 2475333Sgblack@eecs.umich.edu mov t1, t1, t0, dataSize=8 2485332Sgblack@eecs.umich.edu ld t1, seg, sib, disp 2495332Sgblack@eecs.umich.edu 2505332Sgblack@eecs.umich.edu # Determine if the input was zero, and also move it to a temp reg. 2515332Sgblack@eecs.umich.edu and t1, t1, t1, flags=(ZF,) 2525661Sgblack@eecs.umich.edu br label("end"), flags=(CZF,) 2535332Sgblack@eecs.umich.edu 2545332Sgblack@eecs.umich.edu # Zero out the result register 2555332Sgblack@eecs.umich.edu mov reg, reg, t0 2565332Sgblack@eecs.umich.edu 2575333Sgblack@eecs.umich.edu subi t2, t1, 1 2585333Sgblack@eecs.umich.edu xor t1, t2, t1 2595333Sgblack@eecs.umich.edu 2605332Sgblack@eecs.umich.edu # Bit 6 2615423Sgblack@eecs.umich.edu srli t3, t1, 32, dataSize=8, flags=(EZF,) 2625423Sgblack@eecs.umich.edu ori t4, reg, 32 2635423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2645415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 2655332Sgblack@eecs.umich.edu 2665332Sgblack@eecs.umich.edu # Bit 5 2675423Sgblack@eecs.umich.edu srli t3, t1, 16, dataSize=8, flags=(EZF,) 2685423Sgblack@eecs.umich.edu ori t4, reg, 16 2695423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2705415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 2715332Sgblack@eecs.umich.edu 2725332Sgblack@eecs.umich.edu # Bit 4 2735423Sgblack@eecs.umich.edu srli t3, t1, 8, dataSize=8, flags=(EZF,) 2745423Sgblack@eecs.umich.edu ori t4, reg, 8 2755423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2765415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 2775332Sgblack@eecs.umich.edu 2785332Sgblack@eecs.umich.edu # Bit 3 2795423Sgblack@eecs.umich.edu srli t3, t1, 4, dataSize=8, flags=(EZF,) 2805423Sgblack@eecs.umich.edu ori t4, reg, 4 2815423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2825415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 2835332Sgblack@eecs.umich.edu 2845332Sgblack@eecs.umich.edu # Bit 2 2855423Sgblack@eecs.umich.edu srli t3, t1, 2, dataSize=8, flags=(EZF,) 2865423Sgblack@eecs.umich.edu ori t4, reg, 2 2875423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2885415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 2895332Sgblack@eecs.umich.edu 2905332Sgblack@eecs.umich.edu # Bit 1 2915423Sgblack@eecs.umich.edu srli t3, t1, 1, dataSize=8, flags=(EZF,) 2925423Sgblack@eecs.umich.edu ori t4, reg, 1 2935423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 2945415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 2955332Sgblack@eecs.umich.edu 2965332Sgblack@eecs.umich.eduend: 2975332Sgblack@eecs.umich.edu fault "NoFault" 2985332Sgblack@eecs.umich.edu}; 2995332Sgblack@eecs.umich.edu 3005414Sgblack@eecs.umich.edudef macroop BSF_R_P { 3015332Sgblack@eecs.umich.edu 3025332Sgblack@eecs.umich.edu rdip t7 3035333Sgblack@eecs.umich.edu mov t1, t1, t0, dataSize=8 3045332Sgblack@eecs.umich.edu ld t1, seg, riprel, disp 3055332Sgblack@eecs.umich.edu 3065332Sgblack@eecs.umich.edu # Determine if the input was zero, and also move it to a temp reg. 3075332Sgblack@eecs.umich.edu and t1, t1, t1, flags=(ZF,) 3085661Sgblack@eecs.umich.edu br label("end"), flags=(CZF,) 3095332Sgblack@eecs.umich.edu 3105332Sgblack@eecs.umich.edu # Zero out the result register 3115332Sgblack@eecs.umich.edu mov reg, reg, t0 3125332Sgblack@eecs.umich.edu 3135333Sgblack@eecs.umich.edu subi t2, t1, 1 3145333Sgblack@eecs.umich.edu xor t1, t2, t1 3155333Sgblack@eecs.umich.edu 3165332Sgblack@eecs.umich.edu # Bit 6 3175423Sgblack@eecs.umich.edu srli t3, t1, 32, dataSize=8, flags=(EZF,) 3185423Sgblack@eecs.umich.edu ori t4, reg, 32 3195423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 3205415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 3215332Sgblack@eecs.umich.edu 3225332Sgblack@eecs.umich.edu # Bit 5 3235423Sgblack@eecs.umich.edu srli t3, t1, 16, dataSize=8, flags=(EZF,) 3245423Sgblack@eecs.umich.edu ori t4, reg, 16 3255423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 3265415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 3275332Sgblack@eecs.umich.edu 3285332Sgblack@eecs.umich.edu # Bit 4 3295423Sgblack@eecs.umich.edu srli t3, t1, 8, dataSize=8, flags=(EZF,) 3305423Sgblack@eecs.umich.edu ori t4, reg, 8 3315423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 3325415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 3335332Sgblack@eecs.umich.edu 3345332Sgblack@eecs.umich.edu # Bit 3 3355423Sgblack@eecs.umich.edu srli t3, t1, 4, dataSize=8, flags=(EZF,) 3365423Sgblack@eecs.umich.edu ori t4, reg, 4 3375423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 3385415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 3395332Sgblack@eecs.umich.edu 3405332Sgblack@eecs.umich.edu # Bit 2 3415423Sgblack@eecs.umich.edu srli t3, t1, 2, dataSize=8, flags=(EZF,) 3425423Sgblack@eecs.umich.edu ori t4, reg, 2 3435423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 3445415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 3455332Sgblack@eecs.umich.edu 3465332Sgblack@eecs.umich.edu # Bit 1 3475423Sgblack@eecs.umich.edu srli t3, t1, 1, dataSize=8, flags=(EZF,) 3485423Sgblack@eecs.umich.edu ori t4, reg, 1 3495423Sgblack@eecs.umich.edu mov reg, reg, t4, flags=(nCEZF,) 3505415Sgblack@eecs.umich.edu mov t1, t1, t3, flags=(nCEZF,) 3515332Sgblack@eecs.umich.edu 3525332Sgblack@eecs.umich.eduend: 3535332Sgblack@eecs.umich.edu fault "NoFault" 3545332Sgblack@eecs.umich.edu}; 3555332Sgblack@eecs.umich.edu''' 356