From e9495844291a85a1f7ba3c76742a0dd1bf574e5f Mon Sep 17 00:00:00 2001 From: Miguel Date: Wed, 10 Oct 2018 10:15:49 +0200 Subject: hosted gcc compiler --- interface/Makefile | 4 ++++ interface/crt0.s | 20 +++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 interface/Makefile (limited to 'interface') diff --git a/interface/Makefile b/interface/Makefile new file mode 100644 index 0000000..1cefd39 --- /dev/null +++ b/interface/Makefile @@ -0,0 +1,4 @@ +AS=i686-foolos-as + +clean: + rm -f *.o diff --git a/interface/crt0.s b/interface/crt0.s index dedc86c..0b833c0 100644 --- a/interface/crt0.s +++ b/interface/crt0.s @@ -2,12 +2,26 @@ _start: -# copy reent to this page push %ebx push %ecx +cmp $0,_impure_ptr +jne skipzero + +movl $0xf5000000, _impure_ptr +mov $0xf5000000,%ebx + +allzero: +movl $0, (%ebx) +add $4, %ebx +cmp $0xf5001000,%ebx +jne allzero + +skipzero: + mov _impure_ptr,%eax mov $0xf5000000,%ebx + copy: mov (%eax),%ecx mov %ecx,(%ebx) @@ -16,11 +30,11 @@ add $4, %eax cmp $0xf5001000,%ebx jne copy +movl $0xf5000000, _impure_ptr + pop %ecx pop %ebx -movl $0xf5000000, _impure_ptr - # environment adress was passed on stack pop %eax -- cgit v1.2.3