summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--thumb2mark.s2
-rw-r--r--thumb2startup.s253
2 files changed, 128 insertions, 127 deletions
diff --git a/thumb2mark.s b/thumb2mark.s
index e7e1e99..16ec113 100644
--- a/thumb2mark.s
+++ b/thumb2mark.s
@@ -434,7 +434,7 @@ _found_free_memory:
lao SCRATCH_REG,heap_end_after_gc,11
sto BSTACK_1,SCRATCH_REG,heap_end_after_gc,11
- ldmia sp!,{BSTACK_4-BSTACK_0,pc}
+ ldmia sp!,{r0-r4,pc}
@ n_free_words_after_mark updated
.thumb_func
diff --git a/thumb2startup.s b/thumb2startup.s
index 5e107d2..6ce2d2f 100644
--- a/thumb2startup.s
+++ b/thumb2startup.s
@@ -484,7 +484,7 @@ start_address:
abc_main:
str lr,[BSTACK_PTR,#-4]!
- stmdb BSTACK_PTR!,{BSTACK_0-ASTACK_3}
+ stmdb BSTACK_PTR!,{r0-r12}
.ifdef DLL
ldr BSTACK_0,[BSTACK_PTR,#28]
@@ -536,16 +536,16 @@ exit:
.thumb_func
init_error:
- ldmia BSTACK_PTR!,{BSTACK_0-ASTACK_3,pc}
+ ldmia BSTACK_PTR!,{r0-r12,pc}
.globl clean_init
.thumb_func
clean_init:
- stmdb BSTACK_PTR!,{BSTACK_0-ASTACK_3,lr}
+ stmdb BSTACK_PTR!,{r0-r12,lr}
lao SCRATCH_REG,dll_initisialised,0
- mov BSTACK_4,#1
- sto BSTACK_4,SCRATCH_REG,dll_initisialised,0
+ mov r0,#1
+ sto r0,SCRATCH_REG,dll_initisialised,0
.align
add lr,pc,#9
@@ -587,7 +587,7 @@ init_dll_error:
.globl clean_fini
.thumb_func
clean_fini:
- stmdb BSTACK_PTR!,{BSTACK_0-ASTACK_3,lr}
+ stmdb BSTACK_PTR!,{r0-r12,lr}
lao SCRATCH_REG,saved_heap_p,1
otoa SCRATCH_REG,saved_heap_p,1
@@ -603,7 +603,7 @@ clean_fini:
.thumb_func
exit_dll_init:
- ldmia BSTACK_PTR!,{BSTACK_0-ASTACK_3,pc}
+ ldmia BSTACK_PTR!,{r0-r12,pc}
.thumb_func
init_clean:
@@ -661,10 +661,10 @@ init_clean:
sto BSTACK_0,SCRATCH_REG,heap_size,3
add BSTACK_0,BSTACK_0,#7
- mov BSTACK_4,BSTACK_0
+ mov r0,BSTACK_0
bl malloc
- movs BSTACK_0,BSTACK_4
+ movs BSTACK_0,r0
beq no_memory_2
lao SCRATCH_REG,heap_mbp,0
@@ -678,14 +678,14 @@ init_clean:
ldo ASTACK_2,ASTACK_2,ab_stack_size,1
add ASTACK_2,ASTACK_2,#3
- mov BSTACK_4,ASTACK_2
+ mov r0,ASTACK_2
.if STACK_OVERFLOW_EXCEPTION_HANDLER
bl allocate_memory_with_guard_page_at_end
.else
bl malloc
.endif
- movs BSTACK_0,BSTACK_4
+ movs BSTACK_0,r0
beq no_memory_3
lao SCRATCH_REG,stack_mbp,0
@@ -870,28 +870,28 @@ no_mark2:
ldr pc,[BSTACK_PTR],#4
no_memory_2:
- lao BSTACK_4,out_of_memory_string_1,0
- otoa BSTACK_4,out_of_memory_string_1,0
+ lao r0,out_of_memory_string_1,0
+ otoa r0,out_of_memory_string_1,0
bl ew_print_string
.ifdef _WINDOWS_
? movl $1,@execution_aborted
.endif
- mov BSTACK_4,#1
+ mov r0,#1
ldr pc,[BSTACK_PTR],#4
no_memory_3:
- lao BSTACK_4,out_of_memory_string_1,1
- otoa BSTACK_4,out_of_memory_string_1,1
+ lao r0,out_of_memory_string_1,1
+ otoa r0,out_of_memory_string_1,1
bl ew_print_string
.ifdef _WINDOWS_
? movl $1,@execution_aborted
.endif
- lao BSTACK_4,heap_mbp,1
- ldo BSTACK_4,BSTACK_4,heap_mbp,1
+ lao r0,heap_mbp,1
+ ldo r0,r0,heap_mbp,1
bl free
- mov BSTACK_4,#1
+ mov r0,#1
ldr pc,[BSTACK_PTR],#4
.thumb_func
@@ -906,8 +906,8 @@ exit_clean:
tst BSTACK_0,#8
beq no_print_execution_time
- lao BSTACK_4,time_string_1,0
- otoa BSTACK_4,time_string_1,0
+ lao r0,time_string_1,0
+ otoa r0,time_string_1,0
bl ew_print_string
lao SCRATCH_REG,execute_time,0
@@ -918,8 +918,8 @@ exit_clean:
str lr,[BSTACK_PTR,#-4]!
bl print_time
- lao BSTACK_4,time_string_2,0
- otoa BSTACK_4,time_string_2,0
+ lao r0,time_string_2,0
+ otoa r0,time_string_2,0
bl ew_print_string
lao SCRATCH_REG,garbage_collect_time,0
@@ -930,8 +930,8 @@ exit_clean:
str lr,[BSTACK_PTR,#-4]!
bl print_time
- lao BSTACK_4,time_string_4,0
- otoa BSTACK_4,time_string_4,0
+ lao r0,time_string_4,0
+ otoa r0,time_string_4,0
bl ew_print_string
lao SCRATCH_REG,execute_time,1
@@ -948,17 +948,17 @@ exit_clean:
str lr,[BSTACK_PTR,#-4]!
bl print_time
- mov BSTACK_4,#10
+ mov r0,#10
bl ew_print_char
.thumb_func
no_print_execution_time:
- lao BSTACK_4,stack_mbp,1
- ldo BSTACK_4,BSTACK_4,stack_mbp,1
+ lao r0,stack_mbp,1
+ ldo r0,r0,stack_mbp,1
bl free
- lao BSTACK_4,heap_mbp,2
- ldo BSTACK_4,BSTACK_4,heap_mbp,2
+ lao r0,heap_mbp,2
+ ldo r0,r0,heap_mbp,2
bl free
.ifdef PROFILE
@@ -1090,19 +1090,19 @@ print_time:
lsr BSTACK_0,BSTACK_0,#3
.if USE_CLIB
- mov BSTACK_1,BSTACK_0
- mov BSTACK_2,ASTACK_0
- lao BSTACK_3,sprintf_time_string,0
- lao BSTACK_4,sprintf_time_buffer,0
- otoa BSTACK_3,sprintf_time_string,0
- otoa BSTACK_4,sprintf_time_buffer,0
+ mov r3,BSTACK_0
+ mov r2,ASTACK_0
+ lao r1,sprintf_time_string,0
+ lao r0,sprintf_time_buffer,0
+ otoa r1,sprintf_time_string,0
+ otoa r0,sprintf_time_buffer,0
bl sprintf
- lao BSTACK_4,sprintf_time_buffer,1
- otoa BSTACK_4,sprintf_time_buffer,1
+ lao r0,sprintf_time_buffer,1
+ otoa r0,sprintf_time_buffer,1
bl ew_print_string
.else
- mov BSTACK_4,ASTACK_0
+ mov r0,ASTACK_0
bl ew_print_int
lao ASTACK_0,sprintf_time_buffer,0
@@ -1127,8 +1127,8 @@ print_time:
strb BSTACK_4,[ASTACK_0,#1]
strb BSTACK_0,[ASTACK_0,#2]
- mov BSTACK_3,#3
- mov BSTACK_4,ASTACK_0
+ mov r1,#3
+ mov r0,ASTACK_0
bl ew_print_text
.endif
ldr pc,[BSTACK_PTR],#4
@@ -1142,7 +1142,7 @@ print_sc:
.thumb_func
print:
- mov BSTACK_4,BSTACK_0
+ mov r0,BSTACK_0
bl w_print_string
.thumb_func
@@ -1253,13 +1253,13 @@ end_print_symbol:
.thumb_func
print_int_node:
- ldr BSTACK_4,[ASTACK_0,#4]
+ ldr r0,[ASTACK_0,#4]
bl w_print_int
ldr pc,[BSTACK_PTR],#4
.thumb_func
print_int:
- mov BSTACK_4,BSTACK_0
+ mov r0,BSTACK_0
bl w_print_int
ldr pc,[BSTACK_PTR],#4
@@ -1271,20 +1271,20 @@ print_char_denotation:
ldr SCRATCH_REG,[ASTACK_0,#4]
str SCRATCH_REG,[BSTACK_PTR,#-4]!
- mov BSTACK_4,#0x27
+ mov r0,#0x27
bl w_print_char
- ldr BSTACK_4,[BSTACK_PTR],#4
+ ldr r0,[BSTACK_PTR],#4
bl w_print_char
- mov BSTACK_4,#0x27
+ mov r0,#0x27
bl w_print_char
ldr pc,[BSTACK_PTR],#4
.thumb_func
print_char_node:
- ldr BSTACK_4,[ASTACK_0,#4]
+ ldr r0,[ASTACK_0,#4]
bl w_print_char
ldr pc,[BSTACK_PTR],#4
@@ -1303,44 +1303,45 @@ print_bool:
.thumb_func
print_true:
- lao BSTACK_4,true_c_string,0
- otoa BSTACK_4,true_c_string,0
+ lao r0,true_c_string,0
+ otoa r0,true_c_string,0
bl w_print_string
ldr pc,[BSTACK_PTR],#4
.thumb_func
print_false:
- lao BSTACK_4,false_c_string,0
- otoa BSTACK_4,false_c_string,0
+ lao r0,false_c_string,0
+ otoa r0,false_c_string,0
bl w_print_string
ldr pc,[BSTACK_PTR],#4
.thumb_func
print_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d0
+ vmov r0,BSTACK_3,d0
.endif
b print_real_
.thumb_func
print_real_node:
.ifdef SOFT_FP_CC
- ldrd BSTACK_4,BSTACK_3,[ASTACK_0,#4]
+ ldrd r0,BSTACK_3,[ASTACK_0,#4]
.else
vldr.f64 d0,[ASTACK_0,#4]
.endif
.thumb_func
print_real_:
- mov ASTACK_3,BSTACK_PTR
- mov lr,BSTACK_PTR
- bic lr,lr,#7
+ push {r11}
+ mov r11,BSTACK_PTR
+ bic lr,r11,#7
mov BSTACK_PTR,lr
bl w_print_real
- mov BSTACK_PTR,ASTACK_3
+ mov BSTACK_PTR,r11
+ pop {r11}
ldr pc,[BSTACK_PTR],#4
print_string_a2:
- ldr BSTACK_3,[ASTACK_2]
- add BSTACK_4,ASTACK_2,#4
+ ldr r1,[ASTACK_2]
+ add r0,ASTACK_2,#4
bl w_print_text
ldr pc,[BSTACK_PTR],#4
@@ -1353,8 +1354,8 @@ print__chars__sc:
.thumb_func
print__string__:
- ldr BSTACK_3,[ASTACK_0,#4]
- add BSTACK_4,ASTACK_0,#8
+ ldr r1,[ASTACK_0,#4]
+ add r0,ASTACK_0,#8
bl w_print_text
.thumb_func
no_print_chars:
@@ -1497,11 +1498,11 @@ BtoAC_false:
RtoAC:
.if USE_CLIB
- vmov BSTACK_2,BSTACK_1,d0
- lao BSTACK_3,printf_real_string,0
- lao BSTACK_4,sprintf_buffer,0
- otoa BSTACK_3,printf_real_string,0
- otoa BSTACK_4,sprintf_buffer,0
+ vmov r2,BSTACK_1,d0
+ lao r1,printf_real_string,0
+ lao r0,sprintf_buffer,0
+ otoa r1,printf_real_string,0
+ otoa r0,sprintf_buffer,0
mov BSTACK_0,BSTACK_PTR
mov lr,BSTACK_PTR
and lr,lr,#-8
@@ -1509,8 +1510,8 @@ RtoAC:
bl sprintf
mov BSTACK_PTR,BSTACK_0
.else
- lao BSTACK_4,sprintf_buffer,1
- otoa BSTACK_4,sprintf_buffer,1
+ lao r0,sprintf_buffer,1
+ otoa r0,sprintf_buffer,1
bl convert_real_to_string
.endif
b return_sprintf_buffer
@@ -1583,21 +1584,21 @@ reverse_digits:
strb SCRATCH_REG,[ASTACK_0]
ldr pc,[BSTACK_PTR],#4
.else
- mov BSTACK_2,BSTACK_0
- lao BSTACK_3,printf_int_string,0
- lao BSTACK_4,sprintf_buffer,4
- otoa BSTACK_3,printf_int_string,0
- otoa BSTACK_4,sprintf_buffer,4
+ mov r2,BSTACK_0
+ lao r1,printf_int_string,0
+ lao r0,sprintf_buffer,4
+ otoa r1,printf_int_string,0
+ otoa r0,sprintf_buffer,4
bl sprintf
.endif
.thumb_func
return_sprintf_buffer:
.if USE_CLIB
- lao BSTACK_4,sprintf_buffer,5
- otoa BSTACK_4,sprintf_buffer,5
+ lao r0,sprintf_buffer,5
+ otoa r0,sprintf_buffer,5
bl strlen
- mov BSTACK_0,BSTACK_4
+ mov BSTACK_0,r0
.else
laol BSTACK_0,sprintf_buffer-1,sprintf_buffer_o_m1,0
otoa BSTACK_0,sprintf_buffer_o_m1,0
@@ -1714,7 +1715,7 @@ eqD_false:
.thumb_func
init_timer:
sub BSTACK_PTR,BSTACK_PTR,#20
- mov BSTACK_4,BSTACK_PTR
+ mov r0,BSTACK_PTR
bl times
ldr BSTACK_0,[BSTACK_PTR]
add BSTACK_0,BSTACK_0,BSTACK_0
@@ -1736,7 +1737,7 @@ init_timer:
.thumb_func
get_time_diff:
sub BSTACK_PTR,BSTACK_PTR,#20
- mov BSTACK_4,BSTACK_PTR
+ mov r0,BSTACK_PTR
bl times
ldr BSTACK_0,[BSTACK_PTR]
add BSTACK_0,BSTACK_0,BSTACK_0
@@ -1967,7 +1968,7 @@ collect_0:
collect_0:
.endif
collect_0_:
- stmdb BSTACK_PTR!,{BSTACK_4-BSTACK_0,lr}
+ stmdb BSTACK_PTR!,{r0-r4,lr}
lao SCRATCH_REG,heap_end_after_gc,1
ldo SCRATCH_REG,SCRATCH_REG,heap_end_after_gc,1
@@ -2070,7 +2071,7 @@ found_free_memory:
ldr ASTACK_PTR,[BSTACK_PTR],#4
- ldmia BSTACK_PTR!,{BSTACK_4-BSTACK_0,pc}
+ ldmia BSTACK_PTR!,{r0-r4,pc}
.thumb_func
end_bits:
@@ -2124,7 +2125,7 @@ no_mark3:
lao SCRATCH_REG,heap_end_after_gc,3
sto BSTACK_1,SCRATCH_REG,heap_end_after_gc,3
- ldmia BSTACK_PTR!,{BSTACK_4-BSTACK_0,pc}
+ ldmia BSTACK_PTR!,{r0-r4,pc}
.thumb_func
.align
@@ -2138,28 +2139,28 @@ collect:
tst SCRATCH_REG,#4
beq no_print_stack_sizes
- lao BSTACK_4,garbage_collect_string_1,0
- otoa BSTACK_4,garbage_collect_string_1,0
+ lao r0,garbage_collect_string_1,0
+ otoa r0,garbage_collect_string_1,0
bl ew_print_string
mov BSTACK_0,ASTACK_PTR
lao SCRATCH_REG,stack_p,1
ldo SCRATCH_REG,SCRATCH_REG,stack_p,1
- sub BSTACK_4,BSTACK_0,SCRATCH_REG
+ sub r0,BSTACK_0,SCRATCH_REG
bl ew_print_int
- lao BSTACK_4,garbage_collect_string_2,0
- otoa BSTACK_4,garbage_collect_string_2,0
+ lao r0,garbage_collect_string_2,0
+ otoa r0,garbage_collect_string_2,0
bl ew_print_string
lao SCRATCH_REG,halt_sp,2
ldo BSTACK_0,SCRATCH_REG,halt_sp,2
- add BSTACK_4,BSTACK_PTR,#0
- sub BSTACK_4,BSTACK_0,BSTACK_4
+ add r0,BSTACK_PTR,#0
+ sub r0,BSTACK_0,r0
bl ew_print_int
- lao BSTACK_4,garbage_collect_string_3,0
- otoa BSTACK_4,garbage_collect_string_3,0
+ lao r0,garbage_collect_string_3,0
+ otoa r0,garbage_collect_string_3,0
bl ew_print_string
.thumb_func
@@ -2477,15 +2478,15 @@ end_garbage_collect_:
str BSTACK_0,[BSTACK_PTR,#-4]!
- lao BSTACK_4,heap_use_after_gc_string_1,0
- otoa BSTACK_4,heap_use_after_gc_string_1,0
+ lao r0,heap_use_after_gc_string_1,0
+ otoa r0,heap_use_after_gc_string_1,0
bl ew_print_string
- ldr BSTACK_4,[BSTACK_PTR],#4
+ ldr r0,[BSTACK_PTR],#4
bl ew_print_int
- lao BSTACK_4,heap_use_after_gc_string_2,0
- otoa BSTACK_4,heap_use_after_gc_string_2,0
+ lao r0,heap_use_after_gc_string_2,0
+ otoa r0,heap_use_after_gc_string_2,0
bl ew_print_string
.thumb_func
@@ -2595,7 +2596,7 @@ no_write_heap:
.endif
- ldmia BSTACK_PTR!,{BSTACK_4-BSTACK_0,pc}
+ ldmia BSTACK_PTR!,{r0-r4,pc}
.ifdef PIC
.if MARK_AND_COPY_GC
@@ -3170,24 +3171,24 @@ stack_overflow:
b print_error
IO_error:
- str BSTACK_4,[BSTACK_PTR]
+ str r0,[BSTACK_PTR]
- lao BSTACK_4,IO_error_string,0
- otoa BSTACK_4,IO_error_string,0
+ lao r0,IO_error_string,0
+ otoa r0,IO_error_string,0
bl ew_print_string
- ldr BSTACK_4,[BSTACK_PTR],#4
+ ldr r0,[BSTACK_PTR],#4
bl ew_print_string
- lao BSTACK_4,new_line_string,0
- otoa BSTACK_4,new_line_string,0
+ lao r0,new_line_string,0
+ otoa r0,new_line_string,0
bl ew_print_string
b halt
.thumb_func
print_error:
- mov BSTACK_4,ASTACK_2
+ mov r0,ASTACK_2
bl ew_print_string
.thumb_func
@@ -5109,11 +5110,11 @@ del_args_gc:
.thumb_func
sin_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d0
+ vmov r0,r1,d0
.endif
bl sin
.ifdef SOFT_FP_CC
- vmov d0,BSTACK_4,BSTACK_3
+ vmov d0,r0,r1
.endif
ldr pc,[BSTACK_PTR],#4
@@ -5121,11 +5122,11 @@ sin_real:
.thumb_func
cos_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d0
+ vmov r0,r1,d0
.endif
bl cos
.ifdef SOFT_FP_CC
- vmov d0,BSTACK_4,BSTACK_3
+ vmov d0,r0,r1
.endif
ldr pc,[BSTACK_PTR],#4
@@ -5133,11 +5134,11 @@ cos_real:
.thumb_func
tan_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d0
+ vmov r0,r1,d0
.endif
bl tan
.ifdef SOFT_FP_CC
- vmov d0,BSTACK_4,BSTACK_3
+ vmov d0,r0,r1
.endif
ldr pc,[BSTACK_PTR],#4
@@ -5145,11 +5146,11 @@ tan_real:
.thumb_func
asin_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d0
+ vmov r0,r1,d0
.endif
bl asin
.ifdef SOFT_FP_CC
- vmov d0,BSTACK_4,BSTACK_3
+ vmov d0,r0,r1
.endif
ldr pc,[BSTACK_PTR],#4
@@ -5157,11 +5158,11 @@ asin_real:
.thumb_func
acos_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d0
+ vmov r0,r1,d0
.endif
bl acos
.ifdef SOFT_FP_CC
- vmov d0,BSTACK_4,BSTACK_3
+ vmov d0,r0,r1
.endif
ldr pc,[BSTACK_PTR],#4
@@ -5169,11 +5170,11 @@ acos_real:
.thumb_func
atan_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d0
+ vmov r0,r1,d0
.endif
bl atan
.ifdef SOFT_FP_CC
- vmov d0,BSTACK_4,BSTACK_3
+ vmov d0,r0,r1
.endif
ldr pc,[BSTACK_PTR],#4
@@ -5181,22 +5182,22 @@ atan_real:
.thumb_func
ln_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d0
+ vmov r0,r1,d0
.endif
bl log
.ifdef SOFT_FP_CC
- vmov d0,BSTACK_4,BSTACK_3
+ vmov d0,r0,r1
.endif
ldr pc,[BSTACK_PTR],#4
.section .text.log10_real,"ax"
log10_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d0
+ vmov r0,r1,d0
.endif
bl log10
.ifdef SOFT_FP_CC
- vmov d0,BSTACK_4,BSTACK_3
+ vmov d0,r0,r1
.endif
ldr pc,[BSTACK_PTR],#4
@@ -5204,11 +5205,11 @@ log10_real:
.thumb_func
exp_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d0
+ vmov r0,r1,d0
.endif
bl exp
.ifdef SOFT_FP_CC
- vmov d0,BSTACK_4,BSTACK_3
+ vmov d0,r0,r1
.endif
ldr pc,[BSTACK_PTR],#4
@@ -5216,7 +5217,7 @@ exp_real:
.thumb_func
pow_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d1
+ vmov r0,r1,d1
vmov BSTACK_2,BSTACK_1,d0
.else
vmov.f64 d2,d0
@@ -5225,7 +5226,7 @@ pow_real:
.endif
bl pow
.ifdef SOFT_FP_CC
- vmov d0,BSTACK_4,BSTACK_3
+ vmov d0,r0,r1
.endif
ldr pc,[BSTACK_PTR],#4
@@ -5233,11 +5234,11 @@ pow_real:
.thumb_func
entier_real:
.ifdef SOFT_FP_CC
- vmov BSTACK_4,BSTACK_3,d0
+ vmov r0,r1,d0
.endif
bl floor
.ifdef SOFT_FP_CC
- vmov d0,BSTACK_4,BSTACK_3
+ vmov d0,r0,r1
.endif
.thumb_func