41# 42# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 43# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 44# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 45# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 46# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 47# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 48# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 49# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 50# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 51# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 52# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 53# 54# Authors: Gabe Black 55 56microcode = ''' 57def macroop JZ_I 58{ 59 # Make the defualt data size of jumps 64 bits in 64 bit mode 60 .adjust_env oszIn64Override 61 62 rdip t1 63 limm t2, imm 64 wrip t1, t2, flags=(CZF,) 65}; 66 67def macroop JNZ_I 68{ 69 # Make the defualt data size of jumps 64 bits in 64 bit mode 70 .adjust_env oszIn64Override 71 72 rdip t1 73 limm t2, imm 74 wrip t1, t2, flags=(nCZF,) 75}; 76 77def macroop JB_I 78{ 79 # Make the default data size of jumps 64 bits in 64 bit mode 80 .adjust_env oszIn64Override 81 82 rdip t1 83 limm t2, imm 84 wrip t1, t2, flags=(CCF,) 85}; 86 87def macroop JNB_I 88{ 89 # Make the default data size of jumps 64 bits in 64 bit mode 90 .adjust_env oszIn64Override 91 92 rdip t1 93 limm t2, imm 94 wrip t1, t2, flags=(nCCF,) 95}; 96 97def macroop JBE_I 98{ 99 # Make the default data size of jumps 64 bits in 64 bit mode 100 .adjust_env oszIn64Override 101 102 rdip t1 103 limm t2, imm 104 wrip t1, t2, flags=(CCvZF,) 105}; 106 107def macroop JNBE_I 108{ 109 # Make the default data size of jumps 64 bits in 64 bit mode 110 .adjust_env oszIn64Override 111 112 rdip t1 113 limm t2, imm 114 wrip t1, t2, flags=(nCCvZF,) 115}; 116 117def macroop JS_I 118{ 119 # Make the default data size of jumps 64 bits in 64 bit mode 120 .adjust_env oszIn64Override 121 122 rdip t1 123 limm t2, imm 124 wrip t1, t2, flags=(CSF,) 125}; 126 127def macroop JNS_I 128{ 129 # Make the default data size of jumps 64 bits in 64 bit mode 130 .adjust_env oszIn64Override 131 132 rdip t1 133 limm t2, imm 134 wrip t1, t2, flags=(nCSF,) 135}; 136 137def macroop JP_I 138{ 139 # Make the default data size of jumps 64 bits in 64 bit mode 140 .adjust_env oszIn64Override 141 142 rdip t1 143 limm t2, imm 144 wrip t1, t2, flags=(CPF,) 145}; 146 147def macroop JNP_I 148{ 149 # Make the default data size of jumps 64 bits in 64 bit mode 150 .adjust_env oszIn64Override 151 152 rdip t1 153 limm t2, imm 154 wrip t1, t2, flags=(nCPF,) 155}; 156 157def macroop JL_I 158{ 159 # Make the default data size of jumps 64 bits in 64 bit mode 160 .adjust_env oszIn64Override 161 162 rdip t1 163 limm t2, imm 164 wrip t1, t2, flags=(CSxOF,) 165}; 166 167def macroop JNL_I 168{ 169 # Make the default data size of jumps 64 bits in 64 bit mode 170 .adjust_env oszIn64Override 171 172 rdip t1 173 limm t2, imm 174 wrip t1, t2, flags=(nCSxOF,) 175}; 176 177def macroop JLE_I 178{ 179 # Make the default data size of jumps 64 bits in 64 bit mode 180 .adjust_env oszIn64Override 181 182 rdip t1 183 limm t2, imm 184 wrip t1, t2, flags=(CSxOvZF,) 185}; 186 187def macroop JNLE_I 188{ 189 # Make the default data size of jumps 64 bits in 64 bit mode 190 .adjust_env oszIn64Override 191 192 rdip t1 193 limm t2, imm 194 wrip t1, t2, flags=(nCSxOvZF,) 195}; 196 197def macroop JO_I 198{ 199 # Make the default data size of jumps 64 bits in 64 bit mode 200 .adjust_env oszIn64Override 201 202 rdip t1 203 limm t2, imm 204 wrip t1, t2, flags=(COF,) 205}; 206 207def macroop JNO_I 208{ 209 # Make the default data size of jumps 64 bits in 64 bit mode 210 .adjust_env oszIn64Override 211 212 rdip t1 213 limm t2, imm 214 wrip t1, t2, flags=(nCOF,) 215}; 216 217def macroop JRCX_I 218{ 219 rdip t1 220 add t0, t0, rcx, flags=(EZF,), dataSize=asz 221 wripi t1, imm, flags=(CEZF,) 222}; 223'''
| 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'''
|