mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 03:59:28 +02:00
+ first startup code implementation for amigaos4
git-svn-id: trunk@2200 -
This commit is contained in:
parent
fd54c6b468
commit
c723aa9c86
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -3580,6 +3580,7 @@ rtl/amiga/crt.pp svneol=native#text/plain
|
||||
rtl/amiga/dos.pp svneol=native#text/plain
|
||||
rtl/amiga/m68k/prt0.as -text
|
||||
rtl/amiga/os.inc svneol=native#text/plain
|
||||
rtl/amiga/powerpc/prt0.as -text
|
||||
rtl/amiga/printer.pp svneol=native#text/plain
|
||||
rtl/amiga/readme -text
|
||||
rtl/arm/arm.inc svneol=native#text/plain
|
||||
|
127
rtl/amiga/powerpc/prt0.as
Normal file
127
rtl/amiga/powerpc/prt0.as
Normal file
@ -0,0 +1,127 @@
|
||||
#
|
||||
# This file is part of the Free Pascal run time library.
|
||||
# Copyright (c) 2005 by Karoly Balogh
|
||||
#
|
||||
# Startup code for AmigaOS/PowerPC RTL
|
||||
#
|
||||
# See the file COPYING.FPC, included in this distribution,
|
||||
# for details about the copyright.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY;without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
#
|
||||
.section ".text"
|
||||
.globl _start
|
||||
.align 4
|
||||
_start:
|
||||
mflr 0
|
||||
stw 0,4(1)
|
||||
stwu 1,-16(1)
|
||||
|
||||
# Get ExecBase
|
||||
lwz 3,4(0)
|
||||
lis 4,_ExecBase@ha
|
||||
stw 3,_ExecBase@l(4)
|
||||
|
||||
# Get Exec Main Interface
|
||||
lwz 5,632(3) # MainInterface
|
||||
lis 6,_IExec@ha
|
||||
stw 5,_IExec@l(6)
|
||||
|
||||
# Make use of stack cookie, to avoid
|
||||
# stripping the symbol in all cases
|
||||
lis 6,__stack_cookie@ha
|
||||
|
||||
# Store start of stack area
|
||||
mr 6,1
|
||||
addi 6,6,16
|
||||
lis 4,stackArea@ha
|
||||
stw 6,stackArea@l(4)
|
||||
|
||||
# Store regs
|
||||
stwu 1,-128(1)
|
||||
stw 13,52(1)
|
||||
stw 14,56(1)
|
||||
stw 15,60(1)
|
||||
stw 16,64(1)
|
||||
stw 17,68(1)
|
||||
stw 18,72(1)
|
||||
stw 19,76(1)
|
||||
stw 20,80(1)
|
||||
stw 21,84(1)
|
||||
stw 22,88(1)
|
||||
stw 23,92(1)
|
||||
stw 24,96(1)
|
||||
stw 25,100(1)
|
||||
stw 26,104(1)
|
||||
stw 27,108(1)
|
||||
stw 28,112(1)
|
||||
stw 29,116(1)
|
||||
stw 30,120(1)
|
||||
stw 31,124(1)
|
||||
|
||||
# Save Stackpointer
|
||||
lis 4,OriginalStkPtr@ha
|
||||
stw 1,OriginalStkPtr@l(4)
|
||||
|
||||
bl PASCALMAIN
|
||||
|
||||
.globl _haltproc
|
||||
_haltproc:
|
||||
# Restore Stackpointer
|
||||
lis 4,OriginalStkPtr@ha
|
||||
lwz 1,OriginalStkPtr@l(4)
|
||||
|
||||
lwz 13,52(1)
|
||||
lwz 14,56(1)
|
||||
lwz 15,60(1)
|
||||
lwz 16,64(1)
|
||||
lwz 17,68(1)
|
||||
lwz 18,72(1)
|
||||
lwz 19,76(1)
|
||||
lwz 20,80(1)
|
||||
lwz 21,84(1)
|
||||
lwz 22,88(1)
|
||||
lwz 23,92(1)
|
||||
lwz 24,96(1)
|
||||
lwz 25,100(1)
|
||||
lwz 26,104(1)
|
||||
lwz 27,108(1)
|
||||
lwz 28,112(1)
|
||||
lwz 29,116(1)
|
||||
lwz 30,120(1)
|
||||
lwz 31,124(1)
|
||||
addi 1,1,128
|
||||
_exit:
|
||||
addi 1,1,16
|
||||
lwz 0,4(1)
|
||||
mtlr 0
|
||||
blr
|
||||
|
||||
|
||||
.section ".data"
|
||||
.globl _data_start
|
||||
_data_start:
|
||||
|
||||
.globl _ExecBase
|
||||
.globl SysBase
|
||||
.align 4
|
||||
SysBase:
|
||||
_ExecBase:
|
||||
.long 0
|
||||
|
||||
.globl _IExec
|
||||
.align 4
|
||||
_IExec:
|
||||
.long 0
|
||||
|
||||
.globl OriginalStkPtr
|
||||
.align 4
|
||||
OriginalStkPtr:
|
||||
.long 0
|
||||
|
||||
.globl stackArea
|
||||
.align 4
|
||||
stackArea:
|
||||
.long 0
|
Loading…
Reference in New Issue
Block a user