summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2017-01-19 16:54:43 +0000
committerCamil Staps2017-01-19 16:54:43 +0000
commit5d3acf862bdaa6c5cfb1a57050b4def3976d79da (patch)
treeb31cd4e1314f6c53b857241059376540666ac665
parentSwap r1 and r10 (BSTACK_3 and HEAP_PTR) (diff)
Finishing upHEADmaster
-rw-r--r--Makefile.linux_arm14
-rw-r--r--Makefile.linux_thumb26
-rw-r--r--thumb2regs.s4
-rw-r--r--thumb2startup.s8
4 files changed, 17 insertions, 15 deletions
diff --git a/Makefile.linux_arm b/Makefile.linux_arm
index 1edb990..82741a4 100644
--- a/Makefile.linux_arm
+++ b/Makefile.linux_arm
@@ -3,6 +3,8 @@ SDIR = ./
ODIR = ./
DEFINES = -DUSE_CLIB -DLINUX -DARM -DGNU_C -DELF
+ASFLAGS=-g
+CFLAGS=-g
all: $(ODIR)_startup.o
@@ -11,20 +13,20 @@ $(ODIR)_startup.o: $(ODIR)armstartup.o $(ODIR)armfileIO3.o $(ODIR)scon.o $(ODIR)
$(ODIR)scon.o: $(SDIR)scon.c
# gcc -c -O $(DEFINES) -o $(ODIR)scon.o $(SDIR)scon.c
- $(CC) -O $(DEFINES) -ffunction-sections -fdata-sections $(SDIR)scon.c -S -o $(ODIR)scon.s
+ $(CC) $(CFLAGS) -O $(DEFINES) -ffunction-sections -fdata-sections $(SDIR)scon.c -S -o $(ODIR)scon.s
mv $(ODIR)scon.s $(ODIR)scon.s.copy
grep -v -w ___main $(ODIR)scon.s.copy > $(ODIR)scon.s
- as $(DEFINES_A) $(ODIR)scon.s -o $(ODIR)scon.o
+ as $(ASFLAGS) $(DEFINES_A) $(ODIR)scon.s -o $(ODIR)scon.o
$(ODIR)ufileIO2.o: $(SDIR)ufileIO2.c
- gcc -c -O $(DEFINES) -ffunction-sections -fdata-sections -o $(ODIR)ufileIO2.o $(SDIR)ufileIO2.c
+ gcc $(CFLAGS) -c -O $(DEFINES) -ffunction-sections -fdata-sections -o $(ODIR)ufileIO2.o $(SDIR)ufileIO2.c
$(ODIR)armstartup.o: $(SDIR)armstartup.s
- as $(ODIR)armstartup.s -o $(ODIR)armstartup.o
+ as $(ASFLAGS) $(ODIR)armstartup.s -o $(ODIR)armstartup.o
$(ODIR)armfileIO3.o: $(SDIR)armfileIO3.s
- as $(ODIR)armfileIO3.s -o $(ODIR)armfileIO3.o
+ as $(ASFLAGS) $(ODIR)armfileIO3.s -o $(ODIR)armfileIO3.o
$(ODIR)armdivmod.o: $(SDIR)armdivmod.s
- as $(ODIR)armdivmod.s -o $(ODIR)armdivmod.o
+ as $(ASFLAGS) $(ODIR)armdivmod.s -o $(ODIR)armdivmod.o
diff --git a/Makefile.linux_thumb2 b/Makefile.linux_thumb2
index 32751af..59eedbf 100644
--- a/Makefile.linux_thumb2
+++ b/Makefile.linux_thumb2
@@ -22,11 +22,11 @@ $(ODIR)scon.o: $(SDIR)scon.c
$(ODIR)ufileIO2.o: $(SDIR)ufileIO2.c
gcc -c -O $(DEFINES) $(CFLAGS) -ffunction-sections -fdata-sections -o $(ODIR)ufileIO2.o $(SDIR)ufileIO2.c
-$(ODIR)thumb2startup.o: $(SDIR)thumb2startup.s $(SDIR)thumb2copy.s $(SDIR)armmacros.s $(SDIR)thumb2mark.s $(SDIR)thumb2compact.s $(SDIR)thumb2ap.s
+$(ODIR)thumb2startup.o: $(SDIR)thumb2startup.s $(SDIR)thumb2copy.s $(SDIR)armmacros.s $(SDIR)thumb2mark.s $(SDIR)thumb2compact.s $(SDIR)thumb2compact_rmark.s $(SDIR)thumb2compact_rmarkr.s $(SDIR)thumb2ap.s $(SDIR)thumb2regs.s
$(AS) $(ODIR)thumb2startup.s -o $(ODIR)thumb2startup.o $(ASFLAGS)
-$(ODIR)thumb2fileIO3.o: $(SDIR)thumb2fileIO3.s
+$(ODIR)thumb2fileIO3.o: $(SDIR)thumb2fileIO3.s $(SDIR)thumb2regs.s
$(AS) $(ODIR)thumb2fileIO3.s -o $(ODIR)thumb2fileIO3.o $(ASFLAGS)
-$(ODIR)thumb2divmod.o: $(SDIR)thumb2divmod.s
+$(ODIR)thumb2divmod.o: $(SDIR)thumb2divmod.s $(SDIR)thumb2regs.s
$(AS) $(ODIR)thumb2divmod.s -o $(ODIR)thumb2divmod.o $(ASFLAGS)
diff --git a/thumb2regs.s b/thumb2regs.s
index c5cb467..9b2a4db 100644
--- a/thumb2regs.s
+++ b/thumb2regs.s
@@ -34,14 +34,14 @@ LINK_REG .req r14
@ Thumb-2 optimised allocation
BSTACK_0 .req r4
BSTACK_1 .req r3
-BSTACK_2 .req r2
+BSTACK_2 .req r8
BSTACK_3 .req r11
BSTACK_4 .req r10
BSTACK_PTR .req r13
ASTACK_0 .req r6
ASTACK_1 .req r7
-ASTACK_2 .req r8
+ASTACK_2 .req r2
ASTACK_3 .req r12
ASTACK_PTR .req r5
diff --git a/thumb2startup.s b/thumb2startup.s
index e7e1440..6ac8844 100644
--- a/thumb2startup.s
+++ b/thumb2startup.s
@@ -2315,7 +2315,7 @@ end_zero_bit_vector:
ldo SCRATCH_REG,SCRATCH_REG,n_allocated_words,2
subs ASTACK_2,ASTACK_2,SCRATCH_REG
mov HEAP_FREE,ASTACK_2
- bls switch_to_mark_scan
+ @bls switch_to_mark_scan
add BSTACK_0,ASTACK_2,ASTACK_2,lsl #2
lsl BSTACK_0,BSTACK_0,#5
@@ -2328,7 +2328,7 @@ end_zero_bit_vector:
add BSTACK_1,BSTACK_1,ASTACK_0
cmp BSTACK_0,BSTACK_1
bhs no_mark_scan
-@ b no_mark_scan
+ b no_mark_scan
.thumb_func
switch_to_mark_scan:
@@ -4232,9 +4232,9 @@ string_to_string_node_4:
.thumb_func
string_to_string_node_gc:
- stmdb BSTACK_PTR!,{ASTACK_0,ASTACK_2}
+ stmdb BSTACK_PTR!,{ASTACK_2,ASTACK_0}
bl collect_0
- ldmia BSTACK_PTR!,{ASTACK_0,ASTACK_2}
+ ldmia BSTACK_PTR!,{ASTACK_2,ASTACK_0}
b string_to_string_node_r
.ifdef PIC