Merge remote-tracking branch

'origin/GP-5638_ghidracadabra_PR-6602_Sleigh-InSPECtor_x86_push_fs_gs_size'
(Closes #6602)
This commit is contained in:
Ryan Kurtz 2025-05-08 12:28:08 -04:00
commit c7f9586d97
2 changed files with 12 additions and 10 deletions

View file

@ -2005,9 +2005,9 @@ macro push88(x) {
} }
macro pushseg88(x) { macro pushseg88(x) {
mysave:2 = x; mysave:8 = zext(x);
$(STACKPTR) = $(STACKPTR) - 8; $(STACKPTR) = $(STACKPTR) - 8;
*:2 $(STACKPTR) = mysave; *:8 $(STACKPTR) = mysave;
} }
@endif @endif
@ -4301,12 +4301,14 @@ define pcodeop ptwrite;
:PUSH FS is $(LONGMODE_OFF) & vexMode=0 & addrsize=0 & byte=0xf; byte=0xa0 & FS { push22(FS); } :PUSH FS is $(LONGMODE_OFF) & vexMode=0 & addrsize=0 & byte=0xf; byte=0xa0 & FS { push22(FS); }
:PUSH FS is $(LONGMODE_OFF) & vexMode=0 & addrsize=1 & byte=0xf; byte=0xa0 & FS { pushseg44(FS); } :PUSH FS is $(LONGMODE_OFF) & vexMode=0 & addrsize=1 & byte=0xf; byte=0xa0 & FS { pushseg44(FS); }
@ifdef IA64 @ifdef IA64
:PUSH FS is $(LONGMODE_ON) & vexMode=0 & addrsize=2 & byte=0xf; byte=0xa0 & FS { pushseg88(FS); } :PUSH FS is $(LONGMODE_ON) & vexMode=0 & opsize=0 & byte=0xf; byte=0xa0 & FS { push82(FS); }
:PUSH FS is $(LONGMODE_ON) & vexMode=0 & byte=0xf; byte=0xa0 & FS { pushseg88(FS); }
@endif @endif
:PUSH GS is $(LONGMODE_OFF) & vexMode=0 & addrsize=0 & byte=0xf; byte=0xa8 & GS { push22(GS); } :PUSH GS is $(LONGMODE_OFF) & vexMode=0 & addrsize=0 & byte=0xf; byte=0xa8 & GS { push22(GS); }
:PUSH GS is $(LONGMODE_OFF) & vexMode=0 & addrsize=1 & byte=0xf; byte=0xa8 & GS { pushseg44(GS); } :PUSH GS is $(LONGMODE_OFF) & vexMode=0 & addrsize=1 & byte=0xf; byte=0xa8 & GS { pushseg44(GS); }
@ifdef IA64 @ifdef IA64
:PUSH GS is $(LONGMODE_ON) & vexMode=0 & addrsize=2 & byte=0xf; byte=0xa8 & GS { pushseg88(GS); } :PUSH GS is $(LONGMODE_ON) & vexMode=0 & opsize=0 & byte=0xf; byte=0xa8 & GS { push82(GS); }
:PUSH GS is $(LONGMODE_ON) & vexMode=0 & byte=0xf; byte=0xa8 & GS { pushseg88(GS); }
@endif @endif
:PUSHA is $(LONGMODE_OFF) & vexMode=0 & addrsize=0 & opsize=0 & byte=0x60 { local tmp=SP; push22(AX); push22(CX); push22(DX); push22(BX); push22(tmp); push22(BP); push22(SI); push22(DI); } :PUSHA is $(LONGMODE_OFF) & vexMode=0 & addrsize=0 & opsize=0 & byte=0x60 { local tmp=SP; push22(AX); push22(CX); push22(DX); push22(BX); push22(tmp); push22(BP); push22(SI); push22(DI); }

View file

@ -5,7 +5,7 @@
endian="little" endian="little"
size="32" size="32"
variant="default" variant="default"
version="4.4" version="4.5"
slafile="x86.sla" slafile="x86.sla"
processorspec="x86.pspec" processorspec="x86.pspec"
manualindexfile="../manuals/x86.idx" manualindexfile="../manuals/x86.idx"
@ -37,7 +37,7 @@
endian="little" endian="little"
size="32" size="32"
variant="System Management Mode" variant="System Management Mode"
version="4.4" version="4.5"
slafile="x86.sla" slafile="x86.sla"
processorspec="x86-16.pspec" processorspec="x86-16.pspec"
manualindexfile="../manuals/x86.idx" manualindexfile="../manuals/x86.idx"
@ -50,7 +50,7 @@
endian="little" endian="little"
size="16" size="16"
variant="Real Mode" variant="Real Mode"
version="4.4" version="4.5"
slafile="x86.sla" slafile="x86.sla"
processorspec="x86-16-real.pspec" processorspec="x86-16-real.pspec"
manualindexfile="../manuals/x86.idx" manualindexfile="../manuals/x86.idx"
@ -70,7 +70,7 @@
endian="little" endian="little"
size="16" size="16"
variant="Protected Mode" variant="Protected Mode"
version="4.4" version="4.5"
slafile="x86.sla" slafile="x86.sla"
processorspec="x86-16.pspec" processorspec="x86-16.pspec"
manualindexfile="../manuals/x86.idx" manualindexfile="../manuals/x86.idx"
@ -85,7 +85,7 @@
endian="little" endian="little"
size="64" size="64"
variant="default" variant="default"
version="4.4" version="4.5"
slafile="x86-64.sla" slafile="x86-64.sla"
processorspec="x86-64.pspec" processorspec="x86-64.pspec"
manualindexfile="../manuals/x86.idx" manualindexfile="../manuals/x86.idx"
@ -108,7 +108,7 @@
endian="little" endian="little"
size="64" size="64"
variant="compat32" variant="compat32"
version="4.4" version="4.5"
slafile="x86-64.sla" slafile="x86-64.sla"
processorspec="x86-64-compat32.pspec" processorspec="x86-64-compat32.pspec"
manualindexfile="../manuals/x86.idx" manualindexfile="../manuals/x86.idx"