wip: M2 ARM
This commit is contained in:
parent
b2109855e4
commit
a76919cb04
|
@ -143,7 +143,6 @@ DEFINE pop____%lr 04e09de4
|
|||
# L1y:
|
||||
|
||||
DEFINE push___$i32 04909fe504902de5000000ea
|
||||
|
||||
DEFINE push___%r0 04002de5 # str r0, [sp, #-4]!
|
||||
DEFINE push___%r1 04102de5 # str r1, [sp, #-4]!
|
||||
DEFINE push___%r2 04202de5 # str r2, [sp, #-4]!
|
||||
|
|
|
@ -23,6 +23,6 @@ void
|
|||
_exit ()
|
||||
{
|
||||
asm ("SYS_exit mov____$i8,%r7");
|
||||
asm ("!20 ldr____%r0,(%fp,+#$i8)");
|
||||
asm ("!4 ldr____%r0,(%fp,-#$i8)");
|
||||
asm ("swi____$0");
|
||||
}
|
||||
|
|
|
@ -23,8 +23,8 @@ void
|
|||
_write ()
|
||||
{
|
||||
asm ("SYS_write mov____$i8,%r7");
|
||||
asm ("!20 ldr____%r0,(%fp,+#$i8)");
|
||||
asm ("!16 ldr____%r1,(%fp,+#$i8)");
|
||||
asm ("!12 ldr____%r2,(%fp,+#$i8)");
|
||||
asm ("!4 ldr____%r0,(%fp,-#$i8)");
|
||||
asm ("!8 ldr____%r1,(%fp,-#$i8)");
|
||||
asm ("!12 ldr____%r2,(%fp,-#$i8)");
|
||||
asm ("swi____$0");
|
||||
}
|
||||
|
|
|
@ -26,58 +26,57 @@ int errno;
|
|||
int
|
||||
__sys_call (int sys_call)
|
||||
{
|
||||
asm ("!20 ldr____%r7,(%fp,+#$i8)");
|
||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
||||
asm ("swi____$0");
|
||||
}
|
||||
|
||||
int
|
||||
__sys_call1 (int sys_call, int one)
|
||||
{
|
||||
asm ("!20 ldr____%r7,(%fp,+#$i8)");
|
||||
asm ("!16 ldr____%r0,(%fp,+#$i8)");
|
||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
||||
asm ("!8 ldr____%r0,(%fp,-#$i8)");
|
||||
asm ("swi____$0");
|
||||
}
|
||||
|
||||
int
|
||||
__sys_call2 (int sys_call, int one, int two)
|
||||
{
|
||||
asm ("!20 ldr____%r7,(%fp,+#$i8)");
|
||||
asm ("!16 ldr____%r0,(%fp,+#$i8)");
|
||||
asm ("!12 ldr____%r1,(%fp,+#$i8)");
|
||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
||||
asm ("!8 ldr____%r0,(%fp,-#$i8)");
|
||||
asm ("!12 ldr____%r1,(%fp,-#$i8)");
|
||||
asm ("swi____$0");
|
||||
}
|
||||
|
||||
int
|
||||
__sys_call3 (int sys_call, int one, int two, int three)
|
||||
{
|
||||
asm ("!20 ldr____%r7,(%fp,+#$i8)");
|
||||
asm ("!16 ldr____%r0,(%fp,+#$i8)");
|
||||
asm ("!12 ldr____%r1,(%fp,+#$i8)");
|
||||
asm ("!8 ldr____%r2,(%fp,+#$i8)");
|
||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
||||
asm ("!8 ldr____%r0,(%fp,-#$i8)");
|
||||
asm ("!12 ldr____%r1,(%fp,-#$i8)");
|
||||
asm ("!16 ldr____%r2,(%fp,-#$i8)");
|
||||
asm ("swi____$0");
|
||||
}
|
||||
|
||||
int
|
||||
__sys_call4 (int sys_call, int one, int two, int three, int four)
|
||||
{
|
||||
asm ("!20 ldr____%r7,(%fp,+#$i8)");
|
||||
asm ("!16 ldr____%r0,(%fp,+#$i8)");
|
||||
asm ("!12 ldr____%r1,(%fp,+#$i8)");
|
||||
asm ("!8 ldr____%r2,(%fp,+#$i8)");
|
||||
asm ("!4 ldr____%r3,(%fp,+#$i8)");
|
||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
||||
asm ("!8 ldr____%r0,(%fp,-#$i8)");
|
||||
asm ("!12 ldr____%r1,(%fp,-#$i8)");
|
||||
asm ("!16 ldr____%r2,(%fp,-#$i8)");
|
||||
asm ("!20 ldr____%r2,(%fp,-#$i8)");
|
||||
asm ("swi____$0");
|
||||
}
|
||||
|
||||
int
|
||||
__sys_call6 (int sys_call, int one, int two, int three, int four, int five, int six)
|
||||
{
|
||||
asm ("!20 ldr____%r7,(%fp,+#$i8)");
|
||||
asm ("!16 ldr____%r0,(%fp,+#$i8)");
|
||||
asm ("!12 ldr____%r1,(%fp,+#$i8)");
|
||||
asm ("!8 ldr____%r2,(%fp,+#$i8)");
|
||||
asm ("!4 ldr____%r3,(%fp,+#$i8)");
|
||||
asm ("!0 ldr____%r4,(%fp,+#$i8)");
|
||||
asm ("!-4 ldr____%r5,(%fp,+#$i8)");
|
||||
asm ("!4 ldr____%r7,(%fp,-#$i8)");
|
||||
asm ("!8 ldr____%r0,(%fp,-#$i8)");
|
||||
asm ("!12 ldr____%r1,(%fp,-#$i8)");
|
||||
asm ("!16 ldr____%r2,(%fp,-#$i8)");
|
||||
asm ("!20 ldr____%r2,(%fp,-#$i8)");
|
||||
asm ("!24 ldr____%r2,(%fp,-#$i8)");
|
||||
asm ("swi____$0");
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
28 00 # e_machine Indicating 32bit ARM
|
||||
01 00 00 00 # e_version Indicating original elf
|
||||
|
||||
&ELF_text # e_entry Address of the entry point
|
||||
&_start # e_entry Address of the entry point
|
||||
%ELF_program_headers>ELF_base # e_phoff Address of program header table
|
||||
%ELF_section_headers>ELF_base # e_shoff Address of section header table
|
||||
|
||||
|
|
Loading…
Reference in New Issue