mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-31 17:30:38 +02:00
- Fix compilation on architectures without absolute call/jump instructions.
git-svn-id: trunk@42164 -
This commit is contained in:
parent
aa4961d06e
commit
ee7bc1d516
@ -46,15 +46,27 @@ asm
|
|||||||
|
|
||||||
cp R24, R1
|
cp R24, R1
|
||||||
brne start
|
brne start
|
||||||
|
{$ifdef CPUAVR_HAS_JMP_CALL}
|
||||||
call get_pc_addr
|
call get_pc_addr
|
||||||
|
{$else CPUAVR_HAS_JMP_CALL}
|
||||||
|
rcall get_pc_addr
|
||||||
|
{$endif CPUAVR_HAS_JMP_CALL}
|
||||||
movw R20, R24
|
movw R20, R24
|
||||||
|
{$ifdef CPUAVR_HAS_JMP_CALL}
|
||||||
call get_frame
|
call get_frame
|
||||||
|
{$else CPUAVR_HAS_JMP_CALL}
|
||||||
|
rcall get_frame
|
||||||
|
{$endif CPUAVR_HAS_JMP_CALL}
|
||||||
movw R18, R24
|
movw R18, R24
|
||||||
ldi R22, 200
|
ldi R22, 200
|
||||||
clr R23
|
clr R23
|
||||||
clr R24
|
clr R24
|
||||||
clr R25
|
clr R25
|
||||||
|
{$ifdef CPUAVR_HAS_JMP_CALL}
|
||||||
call HandleErrorAddrFrameInd
|
call HandleErrorAddrFrameInd
|
||||||
|
{$else CPUAVR_HAS_JMP_CALL}
|
||||||
|
rcall HandleErrorAddrFrameInd
|
||||||
|
{$endif CPUAVR_HAS_JMP_CALL}
|
||||||
|
|
||||||
|
|
||||||
start:
|
start:
|
||||||
@ -102,15 +114,27 @@ asm
|
|||||||
|
|
||||||
cp R24, R1
|
cp R24, R1
|
||||||
brne start
|
brne start
|
||||||
|
{$ifdef CPUAVR_HAS_JMP_CALL}
|
||||||
call get_pc_addr
|
call get_pc_addr
|
||||||
|
{$else CPUAVR_HAS_JMP_CALL}
|
||||||
|
rcall get_pc_addr
|
||||||
|
{$endif CPUAVR_HAS_JMP_CALL}
|
||||||
movw R20, R24
|
movw R20, R24
|
||||||
|
{$ifdef CPUAVR_HAS_JMP_CALL}
|
||||||
call get_frame
|
call get_frame
|
||||||
|
{$else CPUAVR_HAS_JMP_CALL}
|
||||||
|
rcall get_frame
|
||||||
|
{$endif CPUAVR_HAS_JMP_CALL}
|
||||||
movw R18, R24
|
movw R18, R24
|
||||||
ldi R22, 200
|
ldi R22, 200
|
||||||
clr R23
|
clr R23
|
||||||
clr R24
|
clr R24
|
||||||
clr R25
|
clr R25
|
||||||
|
{$ifdef CPUAVR_HAS_JMP_CALL}
|
||||||
call HandleErrorAddrFrameInd
|
call HandleErrorAddrFrameInd
|
||||||
|
{$else CPUAVR_HAS_JMP_CALL}
|
||||||
|
rcall HandleErrorAddrFrameInd
|
||||||
|
{$endif CPUAVR_HAS_JMP_CALL}
|
||||||
|
|
||||||
start: // Start of division...
|
start: // Start of division...
|
||||||
clr R20 // clear remainder low
|
clr R20 // clear remainder low
|
||||||
@ -166,15 +190,27 @@ asm
|
|||||||
cpc R22, R1
|
cpc R22, R1
|
||||||
cpc R23, R1
|
cpc R23, R1
|
||||||
brne .LNonZero
|
brne .LNonZero
|
||||||
|
{$ifdef CPUAVR_HAS_JMP_CALL}
|
||||||
call get_pc_addr
|
call get_pc_addr
|
||||||
|
{$else CPUAVR_HAS_JMP_CALL}
|
||||||
|
rcall get_pc_addr
|
||||||
|
{$endif CPUAVR_HAS_JMP_CALL}
|
||||||
movw R20, R24
|
movw R20, R24
|
||||||
|
{$ifdef CPUAVR_HAS_JMP_CALL}
|
||||||
call get_frame
|
call get_frame
|
||||||
|
{$else CPUAVR_HAS_JMP_CALL}
|
||||||
|
rcall get_frame
|
||||||
|
{$endif CPUAVR_HAS_JMP_CALL}
|
||||||
movw R18, R24
|
movw R18, R24
|
||||||
ldi R22, 200
|
ldi R22, 200
|
||||||
clr R23
|
clr R23
|
||||||
clr R24
|
clr R24
|
||||||
clr R25
|
clr R25
|
||||||
|
{$ifdef CPUAVR_HAS_JMP_CALL}
|
||||||
call HandleErrorAddrFrameInd
|
call HandleErrorAddrFrameInd
|
||||||
|
{$else CPUAVR_HAS_JMP_CALL}
|
||||||
|
rcall HandleErrorAddrFrameInd
|
||||||
|
{$endif CPUAVR_HAS_JMP_CALL}
|
||||||
|
|
||||||
.LNonZero:
|
.LNonZero:
|
||||||
push R17
|
push R17
|
||||||
|
Loading…
Reference in New Issue
Block a user