* More changes to better obey ABI rules

git-svn-id: trunk@23588 -
This commit is contained in:
pierre 2013-02-10 13:01:49 +00:00
parent 77bbb8b5bc
commit bb1e7646cb

View File

@ -58,26 +58,36 @@ _dynamic_start:
*/
_start:
.ent _start
.frame $sp,36,$ra
/* load fp */
.set noreorder
.cpload $25
.cpload $25
/* Record $sp into $s8 */
move $s8,$sp
/* Record $sp into $t1,
to cope with unknown alignment value. */
move $t1,$sp
/* align stack */
li $at,-8
and $sp,$sp,$at
addiu $sp,$sp,-32
addiu $sp,$sp,-36
/* Save needed regs:
$t1, at offset 20
$gp ($28), at offset 24
$s8 ($30), at offset 28
$ra ($31), at offset 32
*/
/* Compute and save sp offset */
subu $t1,$s8,$sp
sw $t1,24($sp)
/* Save $ra register */
sw $ra,28($sp)
subu $t1,$t1,$sp
sw $t1,20($sp)
/* Save $gp register */
.cprestore 20
.cprestore 24
/* Save previous $s8 at offset 28 */
sw $s8,28($sp)
/* Save $ra register */
sw $ra,32($sp)
/* Set __stkptr variable */
move $s8,$sp
@ -104,14 +114,16 @@ _start:
sb $t2,($t1)
/* Jump to PASCALMAIN */
la $t9,PASCALMAIN
jalr $t9
jal $t9
nop
/* Restore $ra */
lw $ra,28($sp)
lw $ra,32($sp)
/* Restore $s8 */
lw $s8,28($sp)
/* Restore old $sp */
lw $t1,24($sp)
lw $t1,20($sp)
addu $sp,$sp,$t1
/* Return to caller */
jr $ra