1# Copyright (c) 2007 The Hewlett-Packard Development Company 2# All rights reserved. 3# 4# The license below extends only to copyright in the software and shall 5# not be construed as granting a license to any other intellectual 6# property including but not limited to intellectual property relating 7# to a hardware implementation of the functionality of the software 8# licensed hereunder. You may use the software subject to the license 9# terms below provided that you ensure that this notice is replicated 10# unmodified and in its entirety in all distributions of the software, 11# modified or unmodified, in source code or in binary form. 12# 13# Redistribution and use in source and binary forms, with or without 14# modification, are permitted provided that the following conditions are 15# met: redistributions of source code must retain the above copyright 16# notice, this list of conditions and the following disclaimer; 17# redistributions in binary form must reproduce the above copyright 18# notice, this list of conditions and the following disclaimer in the 19# documentation and/or other materials provided with the distribution; 20# neither the name of the copyright holders nor the names of its 21# contributors may be used to endorse or promote products derived from 22# this software without specific prior written permission. 23# 24# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 27# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 28# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 29# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 30# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 31# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 32# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 33# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 34# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35# 36# Authors: Gabe Black 37 38microcode = ''' 39def macroop JZ_I 40{ 41 # Make the defualt data size of jumps 64 bits in 64 bit mode 42 .adjust_env oszIn64Override 43 44 rdip t1 45 limm t2, imm 46 wrip t1, t2, flags=(CZF,) 47}; 48 49def macroop JNZ_I 50{ 51 # Make the defualt data size of jumps 64 bits in 64 bit mode 52 .adjust_env oszIn64Override 53 54 rdip t1 55 limm t2, imm 56 wrip t1, t2, flags=(nCZF,) 57}; 58 59def macroop JB_I 60{ 61 # Make the default data size of jumps 64 bits in 64 bit mode 62 .adjust_env oszIn64Override 63 64 rdip t1 65 limm t2, imm 66 wrip t1, t2, flags=(CCF,) 67}; 68 69def macroop JNB_I 70{ 71 # Make the default data size of jumps 64 bits in 64 bit mode 72 .adjust_env oszIn64Override 73 74 rdip t1 75 limm t2, imm 76 wrip t1, t2, flags=(nCCF,) 77}; 78 79def macroop JBE_I 80{ 81 # Make the default data size of jumps 64 bits in 64 bit mode 82 .adjust_env oszIn64Override 83 84 rdip t1 85 limm t2, imm 86 wrip t1, t2, flags=(CCvZF,) 87}; 88 89def macroop JNBE_I 90{ 91 # Make the default data size of jumps 64 bits in 64 bit mode 92 .adjust_env oszIn64Override 93 94 rdip t1 95 limm t2, imm 96 wrip t1, t2, flags=(nCCvZF,) 97}; 98 99def macroop JS_I 100{ 101 # Make the default data size of jumps 64 bits in 64 bit mode 102 .adjust_env oszIn64Override 103 104 rdip t1 105 limm t2, imm 106 wrip t1, t2, flags=(CSF,) 107}; 108 109def macroop JNS_I 110{ 111 # Make the default data size of jumps 64 bits in 64 bit mode 112 .adjust_env oszIn64Override 113 114 rdip t1 115 limm t2, imm 116 wrip t1, t2, flags=(nCSF,) 117}; 118 119def macroop JP_I 120{ 121 # Make the default data size of jumps 64 bits in 64 bit mode 122 .adjust_env oszIn64Override 123 124 rdip t1 125 limm t2, imm 126 wrip t1, t2, flags=(CPF,) 127}; 128 129def macroop JNP_I 130{ 131 # Make the default data size of jumps 64 bits in 64 bit mode 132 .adjust_env oszIn64Override 133 134 rdip t1 135 limm t2, imm 136 wrip t1, t2, flags=(nCPF,) 137}; 138 139def macroop JL_I 140{ 141 # Make the default data size of jumps 64 bits in 64 bit mode 142 .adjust_env oszIn64Override 143 144 rdip t1 145 limm t2, imm 146 wrip t1, t2, flags=(CSxOF,) 147}; 148 149def macroop JNL_I 150{ 151 # Make the default data size of jumps 64 bits in 64 bit mode 152 .adjust_env oszIn64Override 153 154 rdip t1 155 limm t2, imm 156 wrip t1, t2, flags=(nCSxOF,) 157}; 158 159def macroop JLE_I 160{ 161 # Make the default data size of jumps 64 bits in 64 bit mode 162 .adjust_env oszIn64Override 163 164 rdip t1 165 limm t2, imm 166 wrip t1, t2, flags=(CSxOvZF,) 167}; 168 169def macroop JNLE_I 170{ 171 # Make the default data size of jumps 64 bits in 64 bit mode 172 .adjust_env oszIn64Override 173 174 rdip t1 175 limm t2, imm 176 wrip t1, t2, flags=(nCSxOvZF,) 177}; 178 179def macroop JO_I 180{ 181 # Make the default data size of jumps 64 bits in 64 bit mode 182 .adjust_env oszIn64Override 183 184 rdip t1 185 limm t2, imm 186 wrip t1, t2, flags=(COF,) 187}; 188 189def macroop JNO_I 190{ 191 # Make the default data size of jumps 64 bits in 64 bit mode 192 .adjust_env oszIn64Override 193 194 rdip t1 195 limm t2, imm 196 wrip t1, t2, flags=(nCOF,) 197}; 198 199def macroop JRCX_I 200{ 201 rdip t1 202 add t0, t0, rcx, flags=(EZF,), dataSize=asz 203 wripi t1, imm, flags=(CEZF,) 204}; 205''' 206