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