mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 21:49:06 +02:00
* get_frame_*/get_caller_* does not work yet on MIPS
git-svn-id: trunk@21239 -
This commit is contained in:
parent
edbb826521
commit
6b8f452804
@ -57,21 +57,36 @@ var
|
|||||||
{$define FPC_SYSTEM_HAS_GET_FRAME}
|
{$define FPC_SYSTEM_HAS_GET_FRAME}
|
||||||
function get_frame:pointer;assembler;nostackframe;
|
function get_frame:pointer;assembler;nostackframe;
|
||||||
asm
|
asm
|
||||||
lw $2,0($sp)
|
{ we need to use the information of the .pdr section to do this properly:
|
||||||
|
0 proc. start adress
|
||||||
|
4 regmask
|
||||||
|
8 reg. offset
|
||||||
|
12 fmask
|
||||||
|
16 foffset
|
||||||
|
20 frame size
|
||||||
|
24 stack reg
|
||||||
|
28 link reg
|
||||||
|
|
||||||
|
Further, we need to know the pc
|
||||||
|
}
|
||||||
|
// lw $2,0($sp)
|
||||||
|
lui $2,0
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
|
{$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
|
||||||
function get_caller_addr(framebp:pointer):pointer;assembler;nostackframe;
|
function get_caller_addr(framebp:pointer):pointer;assembler;nostackframe;
|
||||||
asm
|
asm
|
||||||
lw $2,4($4) // #movl 4(%eax),%eax
|
// lw $2,4($4) // #movl 4(%eax),%eax
|
||||||
|
lui $2,0
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_GET_CALLER_FRAME}
|
{$define FPC_SYSTEM_HAS_GET_CALLER_FRAME}
|
||||||
function get_caller_frame(framebp:pointer):pointer;assembler;nostackframe;
|
function get_caller_frame(framebp:pointer):pointer;assembler;nostackframe;
|
||||||
asm
|
asm
|
||||||
lw $2,0($4) // #movl (%eax),%eax
|
// lw $2,0($4) // #movl (%eax),%eax
|
||||||
|
lui $2,0
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user