move.py (5934:367ac7cae7b5) | move.py (5974:9ed073dd5214) |
---|---|
1# Copyright (c) 2007-2008 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 --- 237 unchanged lines hidden (view full) --- 246}; 247 248def macroop MOV_S_R { 249 andi t0, regm, 0xFC, flags=(EZF,), dataSize=2 250 br label("processDescriptor"), flags=(CEZF,) 251 andi t2, regm, 0xF8, dataSize=8 252 andi t0, regm, 0x4, flags=(EZF,), dataSize=2 253 br label("globalDescriptor"), flags=(CEZF,) | 1# Copyright (c) 2007-2008 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 --- 237 unchanged lines hidden (view full) --- 246}; 247 248def macroop MOV_S_R { 249 andi t0, regm, 0xFC, flags=(EZF,), dataSize=2 250 br label("processDescriptor"), flags=(CEZF,) 251 andi t2, regm, 0xF8, dataSize=8 252 andi t0, regm, 0x4, flags=(EZF,), dataSize=2 253 br label("globalDescriptor"), flags=(CEZF,) |
254 ld t3, tsl, [1, t0, t2], dataSize=8 | 254 ld t3, tsl, [1, t0, t2], dataSize=8, addressSize=8 |
255 br label("processDescriptor") 256globalDescriptor: | 255 br label("processDescriptor") 256globalDescriptor: |
257 ld t3, tsg, [1, t0, t2], dataSize=8 | 257 ld t3, tsg, [1, t0, t2], dataSize=8, addressSize=8 |
258processDescriptor: 259 chks regm, t3, dataSize=8 260 wrdl reg, t3, regm 261 wrsel reg, regm 262}; 263 264def macroop MOV_S_M { 265 ld t1, seg, sib, disp, dataSize=2 266 andi t0, t1, 0xFC, flags=(EZF,), dataSize=2 267 br label("processDescriptor"), flags=(CEZF,) 268 andi t2, t1, 0xF8, dataSize=8 269 andi t0, t1, 0x4, flags=(EZF,), dataSize=2 270 br label("globalDescriptor"), flags=(CEZF,) | 258processDescriptor: 259 chks regm, t3, dataSize=8 260 wrdl reg, t3, regm 261 wrsel reg, regm 262}; 263 264def macroop MOV_S_M { 265 ld t1, seg, sib, disp, dataSize=2 266 andi t0, t1, 0xFC, flags=(EZF,), dataSize=2 267 br label("processDescriptor"), flags=(CEZF,) 268 andi t2, t1, 0xF8, dataSize=8 269 andi t0, t1, 0x4, flags=(EZF,), dataSize=2 270 br label("globalDescriptor"), flags=(CEZF,) |
271 ld t3, tsl, [1, t0, t2], dataSize=8 | 271 ld t3, tsl, [1, t0, t2], dataSize=8, addressSize=8 |
272 br label("processDescriptor") 273globalDescriptor: | 272 br label("processDescriptor") 273globalDescriptor: |
274 ld t3, tsg, [1, t0, t2], dataSize=8 | 274 ld t3, tsg, [1, t0, t2], dataSize=8, addressSize=8 |
275processDescriptor: 276 chks t1, t3, dataSize=8 277 wrdl reg, t3, t1 278 wrsel reg, t1 279}; 280 281def macroop MOV_S_P { 282 rdip t7 283 ld t1, seg, riprel, disp, dataSize=2 284 andi t0, t1, 0xFC, flags=(EZF,), dataSize=2 285 br label("processDescriptor"), flags=(CEZF,) 286 andi t2, t1, 0xF8, dataSize=8 287 andi t0, t1, 0x4, flags=(EZF,), dataSize=2 288 br label("globalDescriptor"), flags=(CEZF,) | 275processDescriptor: 276 chks t1, t3, dataSize=8 277 wrdl reg, t3, t1 278 wrsel reg, t1 279}; 280 281def macroop MOV_S_P { 282 rdip t7 283 ld t1, seg, riprel, disp, dataSize=2 284 andi t0, t1, 0xFC, flags=(EZF,), dataSize=2 285 br label("processDescriptor"), flags=(CEZF,) 286 andi t2, t1, 0xF8, dataSize=8 287 andi t0, t1, 0x4, flags=(EZF,), dataSize=2 288 br label("globalDescriptor"), flags=(CEZF,) |
289 ld t3, tsl, [1, t0, t2], dataSize=8 | 289 ld t3, tsl, [1, t0, t2], dataSize=8, addressSize=8 |
290 br label("processDescriptor") 291globalDescriptor: | 290 br label("processDescriptor") 291globalDescriptor: |
292 ld t3, tsg, [1, t0, t2], dataSize=8 | 292 ld t3, tsg, [1, t0, t2], dataSize=8, addressSize=8 |
293processDescriptor: 294 chks t1, t3, dataSize=8 295 wrdl reg, t3, t1 296 wrsel reg, t1 297}; 298 299def macroop MOVSS_S_R { 300 andi t0, regm, 0xFC, flags=(EZF,), dataSize=2 301 br label("processDescriptor"), flags=(CEZF,) 302 andi t2, regm, 0xF8, dataSize=8 303 andi t0, regm, 0x4, flags=(EZF,), dataSize=2 304 br label("globalDescriptor"), flags=(CEZF,) | 293processDescriptor: 294 chks t1, t3, dataSize=8 295 wrdl reg, t3, t1 296 wrsel reg, t1 297}; 298 299def macroop MOVSS_S_R { 300 andi t0, regm, 0xFC, flags=(EZF,), dataSize=2 301 br label("processDescriptor"), flags=(CEZF,) 302 andi t2, regm, 0xF8, dataSize=8 303 andi t0, regm, 0x4, flags=(EZF,), dataSize=2 304 br label("globalDescriptor"), flags=(CEZF,) |
305 ld t3, tsl, [1, t0, t2], dataSize=8 | 305 ld t3, tsl, [1, t0, t2], dataSize=8, addressSize=8 |
306 br label("processDescriptor") 307globalDescriptor: | 306 br label("processDescriptor") 307globalDescriptor: |
308 ld t3, tsg, [1, t0, t2], dataSize=8 | 308 ld t3, tsg, [1, t0, t2], dataSize=8, addressSize=8 |
309processDescriptor: 310 chks regm, t3, SSCheck, dataSize=8 311 wrdl reg, t3, regm 312 wrsel reg, regm 313}; 314 315def macroop MOVSS_S_M { 316 ld t1, seg, sib, disp, dataSize=2 317 andi t0, t1, 0xFC, flags=(EZF,), dataSize=2 318 br label("processDescriptor"), flags=(CEZF,) 319 andi t2, t1, 0xF8, dataSize=8 320 andi t0, t1, 0x4, flags=(EZF,), dataSize=2 321 br label("globalDescriptor"), flags=(CEZF,) | 309processDescriptor: 310 chks regm, t3, SSCheck, dataSize=8 311 wrdl reg, t3, regm 312 wrsel reg, regm 313}; 314 315def macroop MOVSS_S_M { 316 ld t1, seg, sib, disp, dataSize=2 317 andi t0, t1, 0xFC, flags=(EZF,), dataSize=2 318 br label("processDescriptor"), flags=(CEZF,) 319 andi t2, t1, 0xF8, dataSize=8 320 andi t0, t1, 0x4, flags=(EZF,), dataSize=2 321 br label("globalDescriptor"), flags=(CEZF,) |
322 ld t3, tsl, [1, t0, t2], dataSize=8 | 322 ld t3, tsl, [1, t0, t2], dataSize=8, addressSize=8 |
323 br label("processDescriptor") 324globalDescriptor: | 323 br label("processDescriptor") 324globalDescriptor: |
325 ld t3, tsg, [1, t0, t2], dataSize=8 | 325 ld t3, tsg, [1, t0, t2], dataSize=8, addressSize=8 |
326processDescriptor: 327 chks t1, t3, SSCheck, dataSize=8 328 wrdl reg, t3, t1 329 wrsel reg, t1 330}; 331 332def macroop MOVSS_S_P { 333 rdip t7 334 ld t1, seg, riprel, disp, dataSize=2 335 andi t0, t1, 0xFC, flags=(EZF,), dataSize=2 336 br label("processDescriptor"), flags=(CEZF,) 337 andi t2, t1, 0xF8, dataSize=8 338 andi t0, t1, 0x4, flags=(EZF,), dataSize=2 339 br label("globalDescriptor"), flags=(CEZF,) | 326processDescriptor: 327 chks t1, t3, SSCheck, dataSize=8 328 wrdl reg, t3, t1 329 wrsel reg, t1 330}; 331 332def macroop MOVSS_S_P { 333 rdip t7 334 ld t1, seg, riprel, disp, dataSize=2 335 andi t0, t1, 0xFC, flags=(EZF,), dataSize=2 336 br label("processDescriptor"), flags=(CEZF,) 337 andi t2, t1, 0xF8, dataSize=8 338 andi t0, t1, 0x4, flags=(EZF,), dataSize=2 339 br label("globalDescriptor"), flags=(CEZF,) |
340 ld t3, tsl, [1, t0, t2], dataSize=8 | 340 ld t3, tsl, [1, t0, t2], dataSize=8, addressSize=8 |
341 br label("processDescriptor") 342globalDescriptor: | 341 br label("processDescriptor") 342globalDescriptor: |
343 ld t3, tsg, [1, t0, t2], dataSize=8 | 343 ld t3, tsg, [1, t0, t2], dataSize=8, addressSize=8 |
344processDescriptor: 345 chks t1, t3, SSCheck, dataSize=8 346 wrdl reg, t3, t1 347 wrsel reg, t1 348}; 349''' 350#let {{ 351# class MOVD(Inst): 352# "GenFault ${new UnimpInstFault}" 353# class MOVNTI(Inst): 354# "GenFault ${new UnimpInstFault}" 355#}}; | 344processDescriptor: 345 chks t1, t3, SSCheck, dataSize=8 346 wrdl reg, t3, t1 347 wrsel reg, t1 348}; 349''' 350#let {{ 351# class MOVD(Inst): 352# "GenFault ${new UnimpInstFault}" 353# class MOVNTI(Inst): 354# "GenFault ${new UnimpInstFault}" 355#}}; |