segmentation.py (5937:177534612ec0) | segmentation.py (6062:2116d308076f) |
---|---|
1# Copyright (c) 2007 The Hewlett-Packard Development Company 2# All rights reserved. 3# 4# Redistribution and use of this software in source and binary forms, 5# with or without modification, are permitted provided that the 6# following conditions are met: 7# 8# The software must be used only for Non-Commercial Use which means any --- 157 unchanged lines hidden (view full) --- 166 zexti t2, t2, 23, dataSize=8 167 wrbase idtr, t2 168 wrlimit idtr, t1 169}; 170 171def macroop LTR_R 172{ 173 chks reg, t0, TRCheck | 1# Copyright (c) 2007 The Hewlett-Packard Development Company 2# All rights reserved. 3# 4# Redistribution and use of this software in source and binary forms, 5# with or without modification, are permitted provided that the 6# following conditions are met: 7# 8# The software must be used only for Non-Commercial Use which means any --- 157 unchanged lines hidden (view full) --- 166 zexti t2, t2, 23, dataSize=8 167 wrbase idtr, t2 168 wrlimit idtr, t1 169}; 170 171def macroop LTR_R 172{ 173 chks reg, t0, TRCheck |
174 limm t4, 0 | 174 limm t4, 0, dataSize=8 |
175 srli t4, reg, 3, dataSize=2 176 ldst t1, tsg, [8, t4, t0], dataSize=8 177 ld t2, tsg, [8, t4, t0], 8, dataSize=8 178 chks reg, t1, TSSCheck 179 wrdh t3, t1, t2 180 wrdl tr, t1, reg 181 wrbase tr, t3, dataSize=8 182 ori t1, t1, (1 << 9) 183 st t1, tsg, [8, t4, t0], dataSize=8 184}; 185 186def macroop LTR_M 187{ 188 ld t5, seg, sib, disp, dataSize=2 189 chks t5, t0, TRCheck | 175 srli t4, reg, 3, dataSize=2 176 ldst t1, tsg, [8, t4, t0], dataSize=8 177 ld t2, tsg, [8, t4, t0], 8, dataSize=8 178 chks reg, t1, TSSCheck 179 wrdh t3, t1, t2 180 wrdl tr, t1, reg 181 wrbase tr, t3, dataSize=8 182 ori t1, t1, (1 << 9) 183 st t1, tsg, [8, t4, t0], dataSize=8 184}; 185 186def macroop LTR_M 187{ 188 ld t5, seg, sib, disp, dataSize=2 189 chks t5, t0, TRCheck |
190 limm t4, 0 | 190 limm t4, 0, dataSize=8 |
191 srli t4, t5, 3, dataSize=2 192 ldst t1, tsg, [8, t4, t0], dataSize=8 193 ld t2, tsg, [8, t4, t0], 8, dataSize=8 194 chks t5, t1, TSSCheck 195 wrdh t3, t1, t2 196 wrdl tr, t1, t5 197 wrbase tr, t3, dataSize=8 198 ori t1, t1, (1 << 9) 199 st t1, tsg, [8, t4, t0], dataSize=8 200}; 201 202def macroop LTR_P 203{ 204 rdip t7 205 ld t5, seg, riprel, disp, dataSize=2 206 chks t5, t0, TRCheck | 191 srli t4, t5, 3, dataSize=2 192 ldst t1, tsg, [8, t4, t0], dataSize=8 193 ld t2, tsg, [8, t4, t0], 8, dataSize=8 194 chks t5, t1, TSSCheck 195 wrdh t3, t1, t2 196 wrdl tr, t1, t5 197 wrbase tr, t3, dataSize=8 198 ori t1, t1, (1 << 9) 199 st t1, tsg, [8, t4, t0], dataSize=8 200}; 201 202def macroop LTR_P 203{ 204 rdip t7 205 ld t5, seg, riprel, disp, dataSize=2 206 chks t5, t0, TRCheck |
207 limm t4, 0 | 207 limm t4, 0, dataSize=8 |
208 srli t4, t5, 3, dataSize=2 209 ldst t1, tsg, [8, t4, t0], dataSize=8 210 ld t2, tsg, [8, t4, t0], 8, dataSize=8 211 chks t5, t1, TSSCheck 212 wrdh t3, t1, t2 213 wrdl tr, t1, t5 214 wrbase tr, t3, dataSize=8 215 ori t1, t1, (1 << 9) 216 st t1, tsg, [8, t4, t0], dataSize=8 217}; 218 219def macroop LLDT_R 220{ 221 chks reg, t0, InGDTCheck, flags=(EZF,) 222 br label("end"), flags=(CEZF,) | 208 srli t4, t5, 3, dataSize=2 209 ldst t1, tsg, [8, t4, t0], dataSize=8 210 ld t2, tsg, [8, t4, t0], 8, dataSize=8 211 chks t5, t1, TSSCheck 212 wrdh t3, t1, t2 213 wrdl tr, t1, t5 214 wrbase tr, t3, dataSize=8 215 ori t1, t1, (1 << 9) 216 st t1, tsg, [8, t4, t0], dataSize=8 217}; 218 219def macroop LLDT_R 220{ 221 chks reg, t0, InGDTCheck, flags=(EZF,) 222 br label("end"), flags=(CEZF,) |
223 limm t4, 0 | 223 limm t4, 0, dataSize=8 |
224 srli t4, reg, 3, dataSize=2 225 ldst t1, tsg, [8, t4, t0], dataSize=8 226 ld t2, tsg, [8, t4, t0], 8, dataSize=8 227 chks reg, t1, LDTCheck 228 wrdh t3, t1, t2 229 wrdl tr, t1, reg 230 wrbase tr, t3, dataSize=8 231end: 232 fault "NoFault" 233}; 234 235def macroop LLDT_M 236{ 237 ld t5, seg, sib, disp, dataSize=2 238 chks t5, t0, InGDTCheck, flags=(EZF,) 239 br label("end"), flags=(CEZF,) | 224 srli t4, reg, 3, dataSize=2 225 ldst t1, tsg, [8, t4, t0], dataSize=8 226 ld t2, tsg, [8, t4, t0], 8, dataSize=8 227 chks reg, t1, LDTCheck 228 wrdh t3, t1, t2 229 wrdl tr, t1, reg 230 wrbase tr, t3, dataSize=8 231end: 232 fault "NoFault" 233}; 234 235def macroop LLDT_M 236{ 237 ld t5, seg, sib, disp, dataSize=2 238 chks t5, t0, InGDTCheck, flags=(EZF,) 239 br label("end"), flags=(CEZF,) |
240 limm t4, 0 | 240 limm t4, 0, dataSize=8 |
241 srli t4, t5, 3, dataSize=2 242 ldst t1, tsg, [8, t4, t0], dataSize=8 243 ld t2, tsg, [8, t4, t0], 8, dataSize=8 244 chks t5, t1, LDTCheck 245 wrdh t3, t1, t2 246 wrdl tr, t1, t5 247 wrbase tr, t3, dataSize=8 248end: 249 fault "NoFault" 250}; 251 252def macroop LLDT_P 253{ 254 rdip t7 255 ld t5, seg, riprel, disp, dataSize=2 256 chks t5, t0, InGDTCheck, flags=(EZF,) 257 br label("end"), flags=(CEZF,) | 241 srli t4, t5, 3, dataSize=2 242 ldst t1, tsg, [8, t4, t0], dataSize=8 243 ld t2, tsg, [8, t4, t0], 8, dataSize=8 244 chks t5, t1, LDTCheck 245 wrdh t3, t1, t2 246 wrdl tr, t1, t5 247 wrbase tr, t3, dataSize=8 248end: 249 fault "NoFault" 250}; 251 252def macroop LLDT_P 253{ 254 rdip t7 255 ld t5, seg, riprel, disp, dataSize=2 256 chks t5, t0, InGDTCheck, flags=(EZF,) 257 br label("end"), flags=(CEZF,) |
258 limm t4, 0 | 258 limm t4, 0, dataSize=8 |
259 srli t4, t5, 3, dataSize=2 260 ldst t1, tsg, [8, t4, t0], dataSize=8 261 ld t2, tsg, [8, t4, t0], 8, dataSize=8 262 chks t5, t1, LDTCheck 263 wrdh t3, t1, t2 264 wrdl tr, t1, t5 265 wrbase tr, t3, dataSize=8 266end: 267 fault "NoFault" 268}; 269 270def macroop SWAPGS 271{ 272 rdval t1, kernel_gs_base, dataSize=8 273 rdbase t2, gs, dataSize=8 274 wrbase gs, t1, dataSize=8 275 wrval kernel_gs_base, t2, dataSize=8 276}; 277''' | 259 srli t4, t5, 3, dataSize=2 260 ldst t1, tsg, [8, t4, t0], dataSize=8 261 ld t2, tsg, [8, t4, t0], 8, dataSize=8 262 chks t5, t1, LDTCheck 263 wrdh t3, t1, t2 264 wrdl tr, t1, t5 265 wrbase tr, t3, dataSize=8 266end: 267 fault "NoFault" 268}; 269 270def macroop SWAPGS 271{ 272 rdval t1, kernel_gs_base, dataSize=8 273 rdbase t2, gs, dataSize=8 274 wrbase gs, t1, dataSize=8 275 wrval kernel_gs_base, t2, dataSize=8 276}; 277''' |