* activated internal get_frame for ARM.

git-svn-id: trunk@5945 -
This commit is contained in:
yury 2007-01-13 15:23:51 +00:00
parent dfab1fbb7b
commit d401c0a198
4 changed files with 7 additions and 6 deletions

View File

@ -694,14 +694,14 @@ implementation
procedure Tcginlinenode.second_get_frame;
begin
{$ifdef x86}
{$if defined(x86) or defined(arm)}
if current_procinfo.framepointer=NR_STACK_POINTER_REG then
begin
location_reset(location,LOC_CONSTANT,OS_ADDR);
location.value:=0;
end
else
{$endif x86}
{$endif defined(x86) or defined(arm)}
begin
location_reset(location,LOC_CREGISTER,OS_ADDR);
location.register:=current_procinfo.framepointer;

View File

@ -1924,7 +1924,7 @@ begin
def_system_macro('FPC_HAS_VALGRINDBOOL');
def_system_macro('FPC_HAS_STR_CURRENCY');
def_system_macro('FPC_REAL2REAL_FIXED');
{$ifdef x86}
{$if defined(x86) or defined(arm)}
def_system_macro('INTERNAL_BACKTRACE');
{$endif}
def_system_macro('STR_CONCAT_PROCS');

View File

@ -94,9 +94,9 @@ implementation
systemunit.insert(tsyssym.create('Length',in_length_x));
systemunit.insert(tsyssym.create('New',in_new_x));
systemunit.insert(tsyssym.create('Dispose',in_dispose_x));
{$ifdef x86}
{$if defined(x86) or defined(arm)}
systemunit.insert(tsyssym.create('Get_Frame',in_get_frame));
{$endif x86}
{$endif defined(x86) or defined(arm)}
{$ifdef SUPPORT_UNALIGNED}
systemunit.insert(tsyssym.create('Unaligned',in_unaligned_x));
{$endif SUPPORT_UNALIGNED}

View File

@ -33,12 +33,13 @@ end;
stack frame related stuff
****************************************************************************}
{$IFNDEF INTERNAL_BACKTRACE}
{$define FPC_SYSTEM_HAS_GET_FRAME}
function get_frame:pointer;assembler;nostackframe;{$ifdef SYSTEMINLINE}inline;{$endif}
asm
mov r0,r11
end ['R0'];
{$ENDIF not INTERNAL_BACKTRACE}
{$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
function get_caller_addr(framebp:pointer):pointer;assembler;{$ifdef SYSTEMINLINE}inline;{$endif}