mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-14 07:59:27 +02:00
* arm-linux: sighnd.inc must check for CPUTHUMB and CPUTHUMB2
git-svn-id: trunk@48670 -
This commit is contained in:
parent
87e1dc159d
commit
5e7a512777
@ -20,7 +20,7 @@ begin
|
||||
result:=@HandleErrorAddrFrame;
|
||||
end;
|
||||
|
||||
{$ifndef CPUTHUMB}
|
||||
{$if not(defined(CPUTHUMB)) and not(defined(CPUTHUMB2))}
|
||||
Procedure SignalToHandleErrorAddrFrame_ARM(Errno : longint;addr : CodePointer; frame : Pointer); nostackframe; assembler;
|
||||
asm
|
||||
{$if FPC_FULLVERSION >= 30200}
|
||||
@ -38,7 +38,7 @@ asm
|
||||
pop {r0,r1,r2,pc}
|
||||
.text
|
||||
end;
|
||||
{$endif not CPUTHUMB}
|
||||
{$endif not(defined(CPUTHUMB)) and not(defined(CPUTHUMB2))}
|
||||
|
||||
{$if FPC_FULLVERSION >= 30200}
|
||||
Procedure SignalToHandleErrorAddrFrame_Thumb(Errno : longint;addr : CodePointer; frame : Pointer); nostackframe; assembler;
|
||||
@ -57,9 +57,9 @@ asm
|
||||
mov lr, r0
|
||||
pop {r0,r1,r2,pc}
|
||||
.text
|
||||
{$ifndef CPUTHUMB}
|
||||
{$if not(defined(CPUTHUMB)) and not(defined(CPUTHUMB2))}
|
||||
.code 32
|
||||
{$endif CPUTHUMB}
|
||||
{$endif not(defined(CPUTHUMB)) and not(defined(CPUTHUMB2))}
|
||||
end;
|
||||
{$endif}
|
||||
|
||||
@ -102,13 +102,13 @@ begin
|
||||
ucontext^.uc_mcontext.arm_r1:=uContext^.uc_mcontext.arm_pc;
|
||||
ucontext^.uc_mcontext.arm_r2:=uContext^.uc_mcontext.arm_fp;
|
||||
{$if FPC_FULLVERSION >= 30200}
|
||||
{$ifndef CPUTHUMB}
|
||||
{$if not(defined(CPUTHUMB)) and not(defined(CPUTHUMB2))}
|
||||
if (ucontext^.uc_mcontext.arm_cpsr and (1 shl 5))=0 then
|
||||
begin
|
||||
ucontext^.uc_mcontext.arm_pc:=ptruint(@SignalToHandleErrorAddrFrame_ARM);
|
||||
end
|
||||
else
|
||||
{$endif not CPUTHUMB}
|
||||
{$endif not(defined(CPUTHUMB)) and not(defined(CPUTHUMB2))}
|
||||
begin
|
||||
ucontext^.uc_mcontext.arm_pc:=ptruint(@SignalToHandleErrorAddrFrame_Thumb);
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user