Merge remote-tracking branch

'origin/GP-4731_ghidorahrex_PR-5256_befoulad_armv8-splimit' into patch
(Closes #5256, Closes #5255, Closes #6667)
This commit is contained in:
Ryan Kurtz 2025-05-08 12:19:33 -04:00
commit d641f9de69
2 changed files with 40 additions and 0 deletions

View file

@ -75,6 +75,10 @@ define register offset=0x0200 size=4 [ cr0 cr1 cr2 cr3 cr4 cr5 cr6 cr7 cr8 cr9 c
@endif # SIMD @endif # SIMD
@if defined(CORTEX)
define register offset=0x400 size=4 [ msplim psplim ];
@endif
# Define context bits # Define context bits
# WARNING: when adjusting context keep compiler packing in mind # WARNING: when adjusting context keep compiler packing in mind
# and make sure fields do not span a 32-bit boundary before or # and make sure fields do not span a 32-bit boundary before or

View file

@ -2860,6 +2860,42 @@ control: "control" is epsilon {}
@endif @endif
@if defined(CORTEX)
define pcodeop setMainStackPointerLimit;
:msr^ItCond msplim,Rn0003 is TMode=1 & ItCond & op4=0xf38 & Rn0003; op12=0x8 & th_psrmask=8 & sysm=10 & msplim
{
build ItCond;
setMainStackPointerLimit(Rn0003);
}
define pcodeop setProcStackPointerLimit;
:msr^ItCond psplim,Rn0003 is TMode=1 & ItCond & op4=0xf38 & Rn0003; op12=0x8 & th_psrmask=8 & sysm=11 & psplim
{
build ItCond;
setProcStackPointerLimit(Rn0003);
}
define pcodeop getMainStackPointerLimit;
:mrs^ItCond Rd0811,msplim is TMode=1 & ItCond & op0=0xf3ef; op12=0x8 & Rd0811 & sysm=10 & msplim
{
build ItCond;
Rd0811 = getMainStackPointerLimit();
}
define pcodeop getProcessStackPointerLimit;
:mrs^ItCond Rd0811,psplim is TMode=1 & ItCond & op0=0xf3ef; op12=0x8 & Rd0811 & sysm=11 & psplim
{
build ItCond;
Rd0811 = getProcessStackPointerLimit();
}
@endif #CORTEX
:mrs^ItCond Rd0811,cpsr is TMode=1 & ItCond & op0=0xf3ef; op12=0x8 & Rd0811 & sysm=0 & cpsr :mrs^ItCond Rd0811,cpsr is TMode=1 & ItCond & op0=0xf3ef; op12=0x8 & Rd0811 & sysm=0 & cpsr
{ {
build ItCond; build ItCond;