rotate.py revision 5081:2ccce8600a9d
12292SN/A# Copyright (c) 2007 The Hewlett-Packard Development Company 28733Sgeoffrey.blake@arm.com# All rights reserved. 37597Sminkyu.jeong@arm.com# 47597Sminkyu.jeong@arm.com# Redistribution and use of this software in source and binary forms, 57597Sminkyu.jeong@arm.com# with or without modification, are permitted provided that the 67597Sminkyu.jeong@arm.com# following conditions are met: 77597Sminkyu.jeong@arm.com# 87597Sminkyu.jeong@arm.com# The software must be used only for Non-Commercial Use which means any 97597Sminkyu.jeong@arm.com# use which is NOT directed to receiving any direct monetary 107597Sminkyu.jeong@arm.com# compensation for, or commercial advantage from such use. Illustrative 117597Sminkyu.jeong@arm.com# examples of non-commercial use are academic research, personal study, 127597Sminkyu.jeong@arm.com# teaching, education and corporate research & development. 137597Sminkyu.jeong@arm.com# Illustrative examples of commercial use are distributing products for 142292SN/A# commercial advantage and providing services using the software for 152292SN/A# commercial advantage. 162292SN/A# 172292SN/A# If you wish to use this software or functionality therein that may be 182292SN/A# covered by patents for commercial use, please contact: 192292SN/A# Director of Intellectual Property Licensing 202292SN/A# Office of Strategy and Technology 212292SN/A# Hewlett-Packard Company 222292SN/A# 1501 Page Mill Road 232292SN/A# Palo Alto, California 94304 242292SN/A# 252292SN/A# Redistributions of source code must retain the above copyright notice, 262292SN/A# this list of conditions and the following disclaimer. Redistributions 272292SN/A# in binary form must reproduce the above copyright notice, this list of 282292SN/A# conditions and the following disclaimer in the documentation and/or 292292SN/A# other materials provided with the distribution. Neither the name of 302292SN/A# the COPYRIGHT HOLDER(s), HEWLETT-PACKARD COMPANY, nor the names of its 312292SN/A# contributors may be used to endorse or promote products derived from 322292SN/A# this software without specific prior written permission. No right of 332292SN/A# sublicense is granted herewith. Derivatives of the software and 342292SN/A# output created using the software may be prepared, but only for 352292SN/A# Non-Commercial Uses. Derivatives of the software may be shared with 362292SN/A# others provided: (i) the others agree to abide by the list of 372292SN/A# conditions herein which includes the Non-Commercial Use restrictions; 382292SN/A# and (ii) such Derivatives of the software include the above copyright 392689Sktlim@umich.edu# notice to acknowledge the contribution from this software where 402689Sktlim@umich.edu# applicable, this list of conditions and the disclaimer below. 412689Sktlim@umich.edu# 422292SN/A# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 432292SN/A# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 448591Sgblack@eecs.umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 453326Sktlim@umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 468229Snate@binkert.org# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 476658Snate@binkert.org# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 488887Sgeoffrey.blake@arm.com# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 492907Sktlim@umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 502292SN/A# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 518232Snate@binkert.org# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 528232Snate@binkert.org# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 538232Snate@binkert.org# 542722Sktlim@umich.edu# Authors: Gabe Black 552669Sktlim@umich.edu 562292SN/Amicrocode = ''' 572669Sktlim@umich.edudef macroop ROL_R_I 582678Sktlim@umich.edu{ 592678Sktlim@umich.edu roli reg, reg, imm 608581Ssteve.reinhardt@amd.com}; 618581Ssteve.reinhardt@amd.com 622292SN/Adef macroop ROL_M_I 632292SN/A{ 642292SN/A ld t1, seg, sib, disp 652669Sktlim@umich.edu roli t1, t1, imm 662292SN/A st t1, seg, sib, disp 672678Sktlim@umich.edu}; 682292SN/A 692678Sktlim@umich.edudef macroop ROL_P_I 702678Sktlim@umich.edu{ 712678Sktlim@umich.edu rdip t7 724319Sktlim@umich.edu ld t1, seg, riprel, disp 734319Sktlim@umich.edu roli t1, t1, imm 744319Sktlim@umich.edu st t1, seg, riprel, disp 754319Sktlim@umich.edu}; 764319Sktlim@umich.edu 772678Sktlim@umich.edudef macroop ROL_1_R 782678Sktlim@umich.edu{ 792292SN/A roli reg, reg, 1 802678Sktlim@umich.edu}; 812678Sktlim@umich.edu 825336Shines@cs.fsu.edudef macroop ROL_1_M 832678Sktlim@umich.edu{ 844873Sstever@eecs.umich.edu ld t1, seg, sib, disp 852678Sktlim@umich.edu roli t1, t1, 1 862292SN/A st t1, seg, sib, disp 872678Sktlim@umich.edu}; 882678Sktlim@umich.edu 892678Sktlim@umich.edudef macroop ROL_1_P 902678Sktlim@umich.edu{ 912678Sktlim@umich.edu rdip t7 922678Sktlim@umich.edu ld t1, seg, riprel, disp 937852SMatt.Horsnell@arm.com roli t1, t1, 1 947852SMatt.Horsnell@arm.com st t1, seg, riprel, disp 952344SN/A}; 962678Sktlim@umich.edu 972678Sktlim@umich.edudef macroop ROL_R_R 984986Ssaidi@eecs.umich.edu{ 994986Ssaidi@eecs.umich.edu rol reg, reg, regm 1006974Stjones1@inf.ed.ac.uk}; 1016974Stjones1@inf.ed.ac.uk 1026974Stjones1@inf.ed.ac.ukdef macroop ROL_M_R 1036974Stjones1@inf.ed.ac.uk{ 1046974Stjones1@inf.ed.ac.uk ld t1, seg, sib, disp 1056974Stjones1@inf.ed.ac.uk rol t1, t1, reg 1066974Stjones1@inf.ed.ac.uk st t1, seg, sib, disp 1072678Sktlim@umich.edu}; 1082820Sktlim@umich.edu 1092678Sktlim@umich.edudef macroop ROL_P_R 1102678Sktlim@umich.edu{ 1116974Stjones1@inf.ed.ac.uk rdip t7 1126974Stjones1@inf.ed.ac.uk ld t1, seg, riprel, disp 1136974Stjones1@inf.ed.ac.uk rol t1, t1, reg 1146974Stjones1@inf.ed.ac.uk st t1, seg, riprel, disp 1156974Stjones1@inf.ed.ac.uk}; 1166974Stjones1@inf.ed.ac.uk 1172678Sktlim@umich.edudef macroop ROR_R_I 1182678Sktlim@umich.edu{ 1192678Sktlim@umich.edu rori reg, reg, imm 1202678Sktlim@umich.edu}; 1212678Sktlim@umich.edu 1222344SN/Adef macroop ROR_M_I 1232307SN/A{ 1246974Stjones1@inf.ed.ac.uk ld t1, seg, sib, disp 1256974Stjones1@inf.ed.ac.uk rori t1, t1, imm 1266974Stjones1@inf.ed.ac.uk st t1, seg, sib, disp 1276974Stjones1@inf.ed.ac.uk}; 1282678Sktlim@umich.edu 1294032Sktlim@umich.edudef macroop ROR_P_I 1302678Sktlim@umich.edu{ 1312292SN/A rdip t7 1322292SN/A ld t1, seg, riprel, disp 1332292SN/A rori t1, t1, imm 1342292SN/A st t1, seg, riprel, disp 1358545Ssaidi@eecs.umich.edu}; 1362678Sktlim@umich.edu 1378727Snilay@cs.wisc.edudef macroop ROR_1_R 1382292SN/A{ 1392292SN/A rori reg, reg, 1 1402292SN/A}; 1412292SN/A 1422292SN/Adef macroop ROR_1_M 1435529Snate@binkert.org{ 1445529Snate@binkert.org ld t1, seg, sib, disp 1455529Snate@binkert.org rori t1, t1, 1 1462292SN/A st t1, seg, sib, disp 1474329Sktlim@umich.edu}; 1484329Sktlim@umich.edu 1494329Sktlim@umich.edudef macroop ROR_1_P 1504329Sktlim@umich.edu{ 1512292SN/A rdip t7 1522307SN/A ld t1, seg, riprel, disp 1532307SN/A rori t1, t1, 1 1548545Ssaidi@eecs.umich.edu st t1, seg, riprel, disp 1558545Ssaidi@eecs.umich.edu}; 1562907Sktlim@umich.edu 1572907Sktlim@umich.edudef macroop ROR_R_R 1582292SN/A{ 1592292SN/A ror reg, reg, regm 1602329SN/A}; 1612329SN/A 1622329SN/Adef macroop ROR_M_R 1632292SN/A{ 1642292SN/A ld t1, seg, sib, disp 1652292SN/A ror t1, t1, reg 1662292SN/A st t1, seg, sib, disp 1678199SAli.Saidi@ARM.com}; 1688199SAli.Saidi@ARM.com 1698199SAli.Saidi@ARM.comdef macroop ROR_P_R 1702292SN/A{ 1712292SN/A rdip t7 1722292SN/A ld t1, seg, riprel, disp 1732292SN/A ror t1, t1, reg 1742292SN/A st t1, seg, riprel, disp 1752292SN/A}; 1762292SN/A 1773492Sktlim@umich.edudef macroop RCL_R_I 1782329SN/A{ 1792292SN/A rcli reg, reg, imm 1802292SN/A}; 1818727Snilay@cs.wisc.edu 1822292SN/Adef macroop RCL_M_I 1832292SN/A{ 1842292SN/A ld t1, seg, sib, disp 1852292SN/A rcli t1, t1, imm 1862292SN/A st t1, seg, sib, disp 1872292SN/A}; 1882292SN/A 1892292SN/Adef macroop RCL_P_I 1902292SN/A{ 1918247Snate@binkert.org rdip t7 1922292SN/A ld t1, seg, riprel, disp 1932292SN/A rcli t1, t1, imm 1942292SN/A st t1, seg, riprel, disp 1952292SN/A}; 1962292SN/A 1972727Sktlim@umich.edudef macroop RCL_1_R 1982727Sktlim@umich.edu{ 1992727Sktlim@umich.edu rcli reg, reg, 1 2002727Sktlim@umich.edu}; 2012727Sktlim@umich.edu 2022727Sktlim@umich.edudef macroop RCL_1_M 2032727Sktlim@umich.edu{ 2042727Sktlim@umich.edu ld t1, seg, sib, disp 2052727Sktlim@umich.edu rcli t1, t1, 1 2062727Sktlim@umich.edu st t1, seg, sib, disp 2072727Sktlim@umich.edu}; 2082727Sktlim@umich.edu 2092727Sktlim@umich.edudef macroop RCL_1_P 2102727Sktlim@umich.edu{ 2112727Sktlim@umich.edu rdip t7 2122727Sktlim@umich.edu ld t1, seg, riprel, disp 2132727Sktlim@umich.edu rcli t1, t1, 1 2142727Sktlim@umich.edu st t1, seg, riprel, disp 2152361SN/A}; 2162361SN/A 2172361SN/Adef macroop RCL_R_R 2182361SN/A{ 2192727Sktlim@umich.edu rcl reg, reg, regm 2202727Sktlim@umich.edu}; 2212727Sktlim@umich.edu 2222727Sktlim@umich.edudef macroop RCL_M_R 2232727Sktlim@umich.edu{ 2242727Sktlim@umich.edu ld t1, seg, sib, disp 2252727Sktlim@umich.edu rcl t1, t1, reg 2262727Sktlim@umich.edu st t1, seg, sib, disp 2272727Sktlim@umich.edu}; 2282727Sktlim@umich.edu 2292727Sktlim@umich.edudef macroop RCL_P_R 2302727Sktlim@umich.edu{ 2312727Sktlim@umich.edu rdip t7 2322727Sktlim@umich.edu ld t1, seg, riprel, disp 2332727Sktlim@umich.edu rcl t1, t1, reg 2342727Sktlim@umich.edu st t1, seg, riprel, disp 2352727Sktlim@umich.edu}; 2362727Sktlim@umich.edu 2372727Sktlim@umich.edudef macroop RCR_R_I 2382727Sktlim@umich.edu{ 2392727Sktlim@umich.edu rcri reg, reg, imm 2402727Sktlim@umich.edu}; 2412727Sktlim@umich.edu 2428922Swilliam.wang@arm.comdef macroop RCR_M_I 2434329Sktlim@umich.edu{ 2444329Sktlim@umich.edu ld t1, seg, sib, disp 2454329Sktlim@umich.edu rcri t1, t1, imm 2464329Sktlim@umich.edu st t1, seg, sib, disp 2474329Sktlim@umich.edu}; 2484329Sktlim@umich.edu 2492292SN/Adef macroop RCR_P_I 2502292SN/A{ 2512292SN/A rdip t7 2522292SN/A ld t1, seg, riprel, disp 2532292SN/A rcri t1, t1, imm 2542292SN/A st t1, seg, riprel, disp 2552292SN/A}; 2562292SN/A 2572292SN/Adef macroop RCR_1_R 2582292SN/A{ 2592292SN/A rcri reg, reg, 1 2602292SN/A}; 2612292SN/A 2622292SN/Adef macroop RCR_1_M 2632307SN/A{ 2642307SN/A ld t1, seg, sib, disp 2652307SN/A rcri t1, t1, 1 2662367SN/A st t1, seg, sib, disp 2672367SN/A}; 2682307SN/A 2692367SN/Adef macroop RCR_1_P 2702307SN/A{ 2712329SN/A rdip t7 2722307SN/A ld t1, seg, riprel, disp 2732307SN/A rcri t1, t1, 1 2742307SN/A st t1, seg, riprel, disp 2752307SN/A}; 2762307SN/A 2772307SN/Adef macroop RCR_R_R 2782307SN/A{ 2792307SN/A rcr reg, reg, regm 2802307SN/A}; 2812307SN/A 2822307SN/Adef macroop RCR_M_R 2832307SN/A{ 2842307SN/A ld t1, seg, sib, disp 2852307SN/A rcr t1, t1, reg 2862307SN/A st t1, seg, sib, disp 2872329SN/A}; 2882307SN/A 2892307SN/Adef macroop RCR_P_R 2902307SN/A{ 2912307SN/A rdip t7 2922307SN/A ld t1, seg, riprel, disp 2932307SN/A rcr t1, t1, reg 2948545Ssaidi@eecs.umich.edu st t1, seg, riprel, disp 2958545Ssaidi@eecs.umich.edu}; 2968545Ssaidi@eecs.umich.edu''' 2972307SN/A