240,244c240,251
< chks t1, regm, flags=(EZF,), dataSize=8
< bri t0, label("end"), flags=(CEZF,)
< ld t2, flatseg, [1, t0, t1], addressSize=8, dataSize=8
< wrdl reg, t2, regm
< end:
---
> andi t0, regm, 0xFC, flags=(EZF,), dataSize=2
> bri t0, label("processDescriptor"), flags=(CEZF,)
> andi t2, regm, 0xF8, dataSize=8
> andi t0, regm, 0x4, flags=(EZF,), dataSize=2
> bri t0, label("globalDescriptor"), flags=(CEZF,)
> ld t3, tsl, [1, t0, t2], dataSize=8
> bri t0, label("processDescriptor")
> globalDescriptor:
> ld t3, tsg, [1, t0, t2], dataSize=8
> processDescriptor:
> chks regm, t3, dataSize=8
> wrdl reg, t3, regm
250,254c257,268
< chks t2, t1, flags=(EZF,), dataSize=8
< bri t0, label("end"), flags=(CEZF,)
< ld t2, flatseg, [1, t0, t1], addressSize=8, dataSize=8
< wrdl reg, t2, t1
< end:
---
> andi t0, t1, 0xFC, flags=(EZF,), dataSize=2
> bri t0, label("processDescriptor"), flags=(CEZF,)
> andi t2, t1, 0xF8, dataSize=8
> andi t0, t1, 0x4, flags=(EZF,), dataSize=2
> bri t0, label("globalDescriptor"), flags=(CEZF,)
> ld t3, tsl, [1, t0, t2], dataSize=8
> bri t0, label("processDescriptor")
> globalDescriptor:
> ld t3, tsg, [1, t0, t2], dataSize=8
> processDescriptor:
> chks t1, t3, dataSize=8
> wrdl reg, t3, t1
261,265c275,286
< chks t2, t1, flags=(EZF,), dataSize=8
< bri t0, label("end"), flags=(CEZF,)
< ld t2, flatseg, [1, t0, t1], addressSize=8, dataSize=8
< wrdl reg, t2, t1
< end:
---
> andi t0, t1, 0xFC, flags=(EZF,), dataSize=2
> bri t0, label("processDescriptor"), flags=(CEZF,)
> andi t2, t1, 0xF8, dataSize=8
> andi t0, t1, 0x4, flags=(EZF,), dataSize=2
> bri t0, label("globalDescriptor"), flags=(CEZF,)
> ld t3, tsl, [1, t0, t2], dataSize=8
> bri t0, label("processDescriptor")
> globalDescriptor:
> ld t3, tsg, [1, t0, t2], dataSize=8
> processDescriptor:
> chks t1, t3, dataSize=8
> wrdl reg, t3, t1
270,275c291,302
< chks t1, regm, flags=(EZF,), dataSize=8
< # This actually needs to use the selector as the error code, but it would
< # be hard to get that information into the instruction at the moment.
< fault "new GeneralProtection(0)", flags=(CEZF,)
< ld t2, flatseg, [1, t0, t1], addressSize=8, dataSize=8
< wrdl reg, t2, regm
---
> andi t0, regm, 0xFC, flags=(EZF,), dataSize=2
> bri t0, label("processDescriptor"), flags=(CEZF,)
> andi t2, regm, 0xF8, dataSize=8
> andi t0, regm, 0x4, flags=(EZF,), dataSize=2
> bri t0, label("globalDescriptor"), flags=(CEZF,)
> ld t3, tsl, [1, t0, t2], dataSize=8
> bri t0, label("processDescriptor")
> globalDescriptor:
> ld t3, tsg, [1, t0, t2], dataSize=8
> processDescriptor:
> chks regm, t3, SSCheck, dataSize=8
> wrdl reg, t3, regm
281,286c308,319
< chks t2, t1, flags=(EZF,), dataSize=8
< # This actually needs to use the selector as the error code, but it would
< # be hard to get that information into the instruction at the moment.
< fault "new GeneralProtection(0)", flags=(CEZF,)
< ld t2, flatseg, [1, t0, t1], addressSize=8, dataSize=8
< wrdl reg, t2, t1
---
> andi t0, t1, 0xFC, flags=(EZF,), dataSize=2
> bri t0, label("processDescriptor"), flags=(CEZF,)
> andi t2, t1, 0xF8, dataSize=8
> andi t0, t1, 0x4, flags=(EZF,), dataSize=2
> bri t0, label("globalDescriptor"), flags=(CEZF,)
> ld t3, tsl, [1, t0, t2], dataSize=8
> bri t0, label("processDescriptor")
> globalDescriptor:
> ld t3, tsg, [1, t0, t2], dataSize=8
> processDescriptor:
> chks t1, t3, SSCheck, dataSize=8
> wrdl reg, t3, t1
293,298c326,337
< chks t2, t1, flags=(EZF,), dataSize=8
< # This actually needs to use the selector as the error code, but it would
< # be hard to get that information into the instruction at the moment.
< fault "new GeneralProtection(0)", flags=(CEZF,)
< ld t2, flatseg, [1, t0, t1], addressSize=8, dataSize=8
< wrdl reg, t2, t1
---
> andi t0, t1, 0xFC, flags=(EZF,), dataSize=2
> bri t0, label("processDescriptor"), flags=(CEZF,)
> andi t2, t1, 0xF8, dataSize=8
> andi t0, t1, 0x4, flags=(EZF,), dataSize=2
> bri t0, label("globalDescriptor"), flags=(CEZF,)
> ld t3, tsl, [1, t0, t2], dataSize=8
> bri t0, label("processDescriptor")
> globalDescriptor:
> ld t3, tsg, [1, t0, t2], dataSize=8
> processDescriptor:
> chks t1, t3, SSCheck, dataSize=8
> wrdl reg, t3, t1