summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--thumb2copy.s91
-rw-r--r--thumb2startup.s594
2 files changed, 341 insertions, 344 deletions
diff --git a/thumb2copy.s b/thumb2copy.s
index 604107f..1a255bc 100644
--- a/thumb2copy.s
+++ b/thumb2copy.s
@@ -1,7 +1,7 @@
ZERO_ARITY_DESCRIPTOR_OFFSET = -4
COPY_RECORDS_WITHOUT_POINTERS_TO_END_OF_HEAP = 1
- str ASTACK_PTR,[sp,#-4]!
+ str ASTACK_PTR,[BSTACK_PTR,#-4]!
lao SCRATCH_REG,heap_p2,9
ldo HEAP_PTR,SCRATCH_REG,heap_p2,9
@@ -27,7 +27,7 @@ COPY_RECORDS_WITHOUT_POINTERS_TO_END_OF_HEAP = 1
sto ASTACK_PTR,SCRATCH_REG,heap2_begin_and_end_o_4,0
.endif
- sub sp,sp,#16
+ sub BSTACK_PTR,BSTACK_PTR,#16
lao SCRATCH_REG,caf_list,0
ldo BSTACK_0,SCRATCH_REG,caf_list,0
@@ -36,19 +36,19 @@ COPY_RECORDS_WITHOUT_POINTERS_TO_END_OF_HEAP = 1
copy_cafs_lp:
ldr SCRATCH_REG,[BSTACK_0,#-4]
- str SCRATCH_REG,[sp,#-4]!
+ str SCRATCH_REG,[BSTACK_PTR,#-4]!
add ASTACK_2,BSTACK_0,#4
ldr BSTACK_1,[BSTACK_0]
mov BSTACK_2,#-2
bl copy_lp2
- ldr BSTACK_0,[sp],#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
cmp BSTACK_0,#0
bne copy_cafs_lp
end_copy_cafs:
- ldr BSTACK_1,[sp,#16]
+ ldr BSTACK_1,[BSTACK_PTR,#16]
lao SCRATCH_REG,stack_p,4
ldo ASTACK_2,SCRATCH_REG,stack_p,4
sub BSTACK_1,BSTACK_1,ASTACK_2
@@ -64,7 +64,7 @@ end_copy0:
bl copy_lp1
- add sp,sp,#16
+ add BSTACK_PTR,BSTACK_PTR,#16
lao SCRATCH_REG,heap_end_after_gc,10
sto ASTACK_PTR,SCRATCH_REG,heap_end_after_gc,10
@@ -391,7 +391,7 @@ copy_record_node2_3:
cmp SCRATCH_REG,#1
bls copy_record_node2_3_ab_or_b
- str BSTACK_0,[sp,#-4]!
+ str BSTACK_0,[BSTACK_PTR,#-4]!
add BSTACK_0,HEAP_PTR,#1
str BSTACK_0,[ASTACK_1]
@@ -410,7 +410,7 @@ copy_record_node2_3:
add ASTACK_1,HEAP_PTR,#12
- ldr BSTACK_0,[sp],#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
str ASTACK_1,[HEAP_PTR,#8]
add HEAP_PTR,HEAP_PTR,#13
@@ -436,7 +436,7 @@ cp_record_arg_lp2:
record_arguments_already_copied_2:
ldr ASTACK_1,[ASTACK_0]
- ldr BSTACK_0,[sp],#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
str ASTACK_1,[HEAP_PTR,#8]
add HEAP_PTR,HEAP_PTR,#12
@@ -450,7 +450,7 @@ copy_record_node2_3_ab_or_b:
blo copy_record_node2_3_b
copy_record_node2_3_ab:
- str BSTACK_0,[sp,#-4]!
+ str BSTACK_0,[BSTACK_PTR,#-4]!
add BSTACK_0,HEAP_PTR,#1
lao SCRATCH_REG,heap_p1,9
@@ -491,14 +491,14 @@ copy_record_node2_3_ab:
orr SCRATCH_REG,SCRATCH_REG,BSTACK_0
str SCRATCH_REG,[ASTACK_1]
- ldr BSTACK_0,[sp],#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
sub ASTACK_PTR,ASTACK_PTR,#4
lsl BSTACK_0,BSTACK_0,#2
sub ASTACK_PTR,ASTACK_PTR,BSTACK_0
- str ASTACK_PTR,[sp,#-4]!
+ str ASTACK_PTR,[BSTACK_PTR,#-4]!
add ASTACK_PTR,ASTACK_PTR,#1
str ASTACK_PTR,[HEAP_PTR,#8]
@@ -508,7 +508,7 @@ copy_record_node2_3_ab:
b cp_record_arg_lp3_c
copy_record_node2_3_b:
- str BSTACK_0,[sp,#-4]!
+ str BSTACK_0,[BSTACK_PTR,#-4]!
add BSTACK_0,ASTACK_PTR,#-12+1
lao SCRATCH_REG,heap_p1,10
@@ -550,7 +550,7 @@ copy_record_node2_3_b:
orr SCRATCH_REG,SCRATCH_REG,BSTACK_0
str SCRATCH_REG,[ASTACK_1]
- ldr BSTACK_0,[sp],#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
mov ASTACK_1,ASTACK_PTR
sub ASTACK_PTR,ASTACK_PTR,#4
@@ -562,7 +562,7 @@ copy_record_node2_3_b:
ldr ASTACK_1,[ASTACK_0]
- str ASTACK_PTR,[sp,#-4]!
+ str ASTACK_PTR,[BSTACK_PTR,#-4]!
add ASTACK_PTR,ASTACK_PTR,#1
cp_record_arg_lp3_c:
@@ -579,7 +579,7 @@ cp_record_arg_lp3:
subs BSTACK_0,BSTACK_0,#4
bne cp_record_arg_lp3
- ldr ASTACK_PTR,[sp],#4
+ ldr ASTACK_PTR,[BSTACK_PTR],#4
subs BSTACK_1,BSTACK_1,#1
bne copy_lp2
@@ -588,7 +588,7 @@ cp_record_arg_lp3:
record_arguments_already_copied_3_b:
ldr ASTACK_1,[ASTACK_0]
- ldr BSTACK_0,[sp],#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
sub ASTACK_1,ASTACK_1,#1
str ASTACK_1,[ASTACK_PTR,#8]
@@ -632,7 +632,7 @@ cp_arg_lp2:
b copy_lp1
copy_arity_1_node2__:
- ldr BSTACK_1,[sp],#4
+ ldr BSTACK_1,[BSTACK_PTR],#4
copy_arity_1_node2:
copy_arity_1_node2_:
str HEAP_PTR,[HEAP_FREE]
@@ -699,7 +699,7 @@ copy_selector_2:
ldr BSTACK_0,[ASTACK_1,#4]
- str BSTACK_1,[sp,#-4]!
+ str BSTACK_1,[BSTACK_PTR,#-4]!
ldr BSTACK_1,[BSTACK_0]
tst BSTACK_1,#2
@@ -733,21 +733,21 @@ copy_selector_2:
sub BSTACK_1,BSTACK_1,#12
ldr ASTACK_0,[ASTACK_0,BSTACK_1]
- ldr BSTACK_1,[sp],#4
+ ldr BSTACK_1,[BSTACK_PTR],#4
str ASTACK_0,[ASTACK_1,#4]
mov ASTACK_1,ASTACK_0
b continue_after_selector_2
copy_selector_2_1:
ldr ASTACK_0,[BSTACK_0,#4]
- ldr BSTACK_1,[sp],#4
+ ldr BSTACK_1,[BSTACK_PTR],#4
str ASTACK_0,[ASTACK_1,#4]
mov ASTACK_1,ASTACK_0
b continue_after_selector_2
copy_selector_2_2:
ldr ASTACK_0,[BSTACK_1]
- ldr BSTACK_1,[sp],#4
+ ldr BSTACK_1,[BSTACK_PTR],#4
str ASTACK_0,[ASTACK_1,#4]
mov ASTACK_1,ASTACK_0
b continue_after_selector_2
@@ -757,7 +757,7 @@ copy_selector_2_:
add ASTACK_3,ASTACK_0,#-9+4
.endif
ldr ASTACK_0,[ASTACK_0,#-9]
- ldr BSTACK_1,[sp],#4
+ ldr BSTACK_1,[BSTACK_PTR],#4
lao SCRATCH_REG,e__system__nind,9
.ifdef PIC
@@ -794,7 +794,7 @@ copy_record_selector_2:
lao SCRATCH_REG,heap_p1,11
ldr BSTACK_0,[ASTACK_1,#4]
- str ASTACK_1,[sp,#-4]!
+ str ASTACK_1,[BSTACK_PTR,#-4]!
ldo SCRATCH_REG,SCRATCH_REG,heap_p1,11
@@ -819,7 +819,7 @@ copy_record_selector_2:
ldr SCRATCH_REG,[ASTACK_1]
ands BSTACK_0,BSTACK_0,SCRATCH_REG
- ldr ASTACK_1,[sp],#4
+ ldr ASTACK_1,[BSTACK_PTR],#4
beq copy_record_selector_2_
b copy_arity_1_node2_
copy_selector_2__:
@@ -880,7 +880,7 @@ copy_strict_record_selector_2_b:
lao SCRATCH_REG,heap_p1,12
ldr BSTACK_0,[ASTACK_1,#4]
- str ASTACK_1,[sp,#-4]!
+ str ASTACK_1,[BSTACK_PTR,#-4]!
ldo SCRATCH_REG,SCRATCH_REG,heap_p1,12
@@ -905,7 +905,7 @@ copy_strict_record_selector_2_b:
ldr SCRATCH_REG,[ASTACK_1]
ands BSTACK_0,BSTACK_0,SCRATCH_REG
- ldr ASTACK_1,[sp],#4
+ ldr ASTACK_1,[BSTACK_PTR],#4
bne copy_arity_1_node2_
@@ -915,7 +915,7 @@ copy_strict_record_selector_2_:
.endif
ldr BSTACK_0,[ASTACK_0,#-9]
- str BSTACK_1,[sp,#-4]!
+ str BSTACK_1,[BSTACK_PTR,#-4]!
ldr ASTACK_0,[ASTACK_1,#4]
.ifdef PIC
@@ -956,7 +956,7 @@ copy_strict_record_selector_6:
ldr ASTACK_0,[BSTACK_0,#-4]
.endif
str ASTACK_0,[ASTACK_1]
- ldr BSTACK_1,[sp],#4
+ ldr BSTACK_1,[BSTACK_PTR],#4
tst ASTACK_0,#2
bne in_hnf_2
hlt: b hlt
@@ -965,13 +965,10 @@ copy_arity_0_node2_:
blt copy_selector_2
str ASTACK_0,[ASTACK_PTR,#-12]!
- str ASTACK_PTR,[HEAP_FREE]
- add BSTACK_0,ASTACK_PTR,#1
- @str BSTACK_0,[HEAP_FREE]
- @sub BSTACK_0,BSTACK_0,#1
- @mov BSTACK_0,ASTACK_PTR
+ str ASTACK_PTR,[ASTACK_1]
+ @add BSTACK_0,ASTACK_PTR,#1
- str BSTACK_0,[ASTACK_1]
+ str ASTACK_PTR,[HEAP_FREE]
subs BSTACK_1,BSTACK_1,#1
bne copy_lp2
@@ -1005,7 +1002,7 @@ copy_string_2:
ldr ASTACK_1,[ASTACK_0,#4]
add ASTACK_1,ASTACK_1,#3
- str BSTACK_1,[sp,#-4]!
+ str BSTACK_1,[BSTACK_PTR,#-4]!
lsr BSTACK_0,ASTACK_1,#2
and ASTACK_1,ASTACK_1,#-4
@@ -1030,7 +1027,7 @@ cp_s_arg_lp2:
subs BSTACK_0,BSTACK_0,#1
bge cp_s_arg_lp2
- ldr BSTACK_1,[sp],#4
+ ldr BSTACK_1,[BSTACK_PTR],#4
subs BSTACK_1,BSTACK_1,#1
bne copy_lp2
mov ASTACK_2,BSTACK_2
@@ -1046,7 +1043,7 @@ copy_array_2:
cmp ASTACK_1,SCRATCH_REG
bhs copy_string_or_array_constant
- str BSTACK_1,[sp,#-4]!
+ str BSTACK_1,[BSTACK_PTR,#-4]!
ldr BSTACK_0,[ASTACK_0,#8]
cmp BSTACK_0,#0
@@ -1277,14 +1274,14 @@ copy_array_21_ab:
cmp SCRATCH_REG,#0
beq copy_lp1
- str SCRATCH_REG,[sp,#0]
+ str SCRATCH_REG,[BSTACK_PTR,#0]
lsl BSTACK_0,BSTACK_0,#2
- str BSTACK_1,[sp,#8]
- str BSTACK_0,[sp,#4]
+ str BSTACK_1,[BSTACK_PTR,#8]
+ str BSTACK_0,[BSTACK_PTR,#4]
copy_array_21_lp_ab:
add BSTACK_2,ASTACK_2,BSTACK_0
- str BSTACK_2,[sp,#12]
+ str BSTACK_2,[BSTACK_PTR,#12]
mov BSTACK_2,#-1
b copy_lp2
@@ -1294,12 +1291,12 @@ end_copy1:
bxne lr
copy_array_21_lp_ab_next:
- ldr ASTACK_2,[sp,#12]
- ldr SCRATCH_REG,[sp]
- ldr BSTACK_1,[sp,#8]
- ldr BSTACK_0,[sp,#4]
+ ldr ASTACK_2,[BSTACK_PTR,#12]
+ ldr SCRATCH_REG,[BSTACK_PTR]
+ ldr BSTACK_1,[BSTACK_PTR,#8]
+ ldr BSTACK_0,[BSTACK_PTR,#4]
subs SCRATCH_REG,SCRATCH_REG,#1
- str SCRATCH_REG,[sp]
+ str SCRATCH_REG,[BSTACK_PTR]
bne copy_array_21_lp_ab
b copy_lp1
diff --git a/thumb2startup.s b/thumb2startup.s
index f33e04e..5e107d2 100644
--- a/thumb2startup.s
+++ b/thumb2startup.s
@@ -482,34 +482,34 @@ start_address:
.thumb_func
abc_main:
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
- stmdb sp!,{BSTACK_0-ASTACK_3}
+ stmdb BSTACK_PTR!,{BSTACK_0-ASTACK_3}
.ifdef DLL
- ldr BSTACK_0,[sp,#28]
+ ldr BSTACK_0,[BSTACK_PTR,#28]
lao SCRATCH_REG,start_address,0
sto BSTACK_0,SCRATCH_REG,start_address,0
.endif
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl init_clean
tst BSTACK_0,BSTACK_0
bne init_error
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl init_timer
lao SCRATCH_REG,halt_sp,0
- sto sp,SCRATCH_REG,halt_sp,0
+ sto BSTACK_PTR,SCRATCH_REG,halt_sp,0
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl init_profiler
.endif
@@ -518,12 +518,12 @@ abc_main:
ldo BSTACK_0,SCRATCH_REG,start_address,1
.align
add lr,pc,#7
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
blx BSTACK_0
.else
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl __start
.endif
@@ -531,17 +531,17 @@ abc_main:
exit:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl exit_clean
.thumb_func
init_error:
- ldmia sp!,{BSTACK_0-ASTACK_3,pc}
+ ldmia BSTACK_PTR!,{BSTACK_0-ASTACK_3,pc}
.globl clean_init
.thumb_func
clean_init:
- stmdb sp!,{BSTACK_0-ASTACK_3,lr}
+ stmdb BSTACK_PTR!,{BSTACK_0-ASTACK_3,lr}
lao SCRATCH_REG,dll_initisialised,0
mov BSTACK_4,#1
@@ -549,23 +549,23 @@ clean_init:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl init_clean
tst BSTACK_0,BSTACK_0
bne init_dll_error
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl init_timer
lao SCRATCH_REG,halt_sp,1
- sto sp,SCRATCH_REG,halt_sp,1
+ sto BSTACK_PTR,SCRATCH_REG,halt_sp,1
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl init_profiler
.endif
@@ -587,7 +587,7 @@ init_dll_error:
.globl clean_fini
.thumb_func
clean_fini:
- stmdb sp!,{BSTACK_0-ASTACK_3,lr}
+ stmdb BSTACK_PTR!,{BSTACK_0-ASTACK_3,lr}
lao SCRATCH_REG,saved_heap_p,1
otoa SCRATCH_REG,saved_heap_p,1
@@ -598,16 +598,16 @@ clean_fini:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl exit_clean
.thumb_func
exit_dll_init:
- ldmia sp!,{BSTACK_0-ASTACK_3,pc}
+ ldmia BSTACK_PTR!,{BSTACK_0-ASTACK_3,pc}
.thumb_func
init_clean:
- add BSTACK_0,sp,#128
+ add BSTACK_0,BSTACK_PTR,#128
lao SCRATCH_REG,ab_stack_size,0
ldo SCRATCH_REG,SCRATCH_REG,ab_stack_size,0
sub BSTACK_0,BSTACK_0,SCRATCH_REG
@@ -867,7 +867,7 @@ no_mark2:
.endif
mov BSTACK_0,#0
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
no_memory_2:
lao BSTACK_4,out_of_memory_string_1,0
@@ -877,7 +877,7 @@ no_memory_2:
? movl $1,@execution_aborted
.endif
mov BSTACK_4,#1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
no_memory_3:
lao BSTACK_4,out_of_memory_string_1,1
@@ -892,13 +892,13 @@ no_memory_3:
bl free
mov BSTACK_4,#1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
exit_clean:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl add_execute_time
lao BSTACK_0,flags,4
@@ -915,7 +915,7 @@ exit_clean:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl print_time
lao BSTACK_4,time_string_2,0
@@ -927,7 +927,7 @@ exit_clean:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl print_time
lao BSTACK_4,time_string_4,0
@@ -945,7 +945,7 @@ exit_clean:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl print_time
mov BSTACK_4,#10
@@ -964,11 +964,11 @@ no_print_execution_time:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl write_profile_information
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
__driver:
@@ -1131,7 +1131,7 @@ print_time:
mov BSTACK_4,ASTACK_0
bl ew_print_text
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
print_sc:
@@ -1147,13 +1147,13 @@ print:
.thumb_func
end_print:
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
dump:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl print
b halt
@@ -1249,19 +1249,19 @@ print_record:
.thumb_func
end_print_symbol:
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
print_int_node:
ldr BSTACK_4,[ASTACK_0,#4]
bl w_print_int
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
print_int:
mov BSTACK_4,BSTACK_0
bl w_print_int
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
print_char_denotation:
@@ -1269,31 +1269,31 @@ print_char_denotation:
bne print_char_node
ldr SCRATCH_REG,[ASTACK_0,#4]
- str SCRATCH_REG,[sp,#-4]!
+ str SCRATCH_REG,[BSTACK_PTR,#-4]!
mov BSTACK_4,#0x27
bl w_print_char
- ldr BSTACK_4,[sp],#4
+ ldr BSTACK_4,[BSTACK_PTR],#4
bl w_print_char
mov BSTACK_4,#0x27
bl w_print_char
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
print_char_node:
ldr BSTACK_4,[ASTACK_0,#4]
bl w_print_char
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
print_char:
- str BSTACK_0,[sp,#-4]!
+ str BSTACK_0,[BSTACK_PTR,#-4]!
bl w_print_char
- add sp,sp,#4
- ldr pc,[sp],#4
+ add BSTACK_PTR,BSTACK_PTR,#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
print_bool:
@@ -1306,14 +1306,14 @@ print_true:
lao BSTACK_4,true_c_string,0
otoa BSTACK_4,true_c_string,0
bl w_print_string
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
print_false:
lao BSTACK_4,false_c_string,0
otoa BSTACK_4,false_c_string,0
bl w_print_string
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
print_real:
@@ -1330,19 +1330,19 @@ print_real_node:
.endif
.thumb_func
print_real_:
- mov ASTACK_3,sp
- mov lr,sp
+ mov ASTACK_3,BSTACK_PTR
+ mov lr,BSTACK_PTR
bic lr,lr,#7
- mov sp,lr
+ mov BSTACK_PTR,lr
bl w_print_real
- mov sp,ASTACK_3
- ldr pc,[sp],#4
+ mov BSTACK_PTR,ASTACK_3
+ ldr pc,[BSTACK_PTR],#4
print_string_a2:
ldr BSTACK_3,[ASTACK_2]
add BSTACK_4,ASTACK_2,#4
bl w_print_text
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
print__chars__sc:
@@ -1358,11 +1358,11 @@ print__string__:
bl w_print_text
.thumb_func
no_print_chars:
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
push_a_r_args:
- str HEAP_PTR,[sp,#-4]!
+ str HEAP_PTR,[BSTACK_PTR,#-4]!
ldr ASTACK_1,[ASTACK_0,#8]
subs ASTACK_1,ASTACK_1,#2
@@ -1370,7 +1370,7 @@ push_a_r_args:
subs HEAP_PTR,HEAP_PTR,#256
ldrh BSTACK_1,[ASTACK_1,#2]
add ASTACK_1,ASTACK_1,#4
- str ASTACK_1,[sp,#-4]!
+ str ASTACK_1,[BSTACK_PTR,#-4]!
mov ASTACK_1,HEAP_PTR
subs ASTACK_1,ASTACK_1,BSTACK_1
@@ -1397,15 +1397,15 @@ push_a_elements:
bcs push_a_elements_lp
mov ASTACK_0,HEAP_PTR
- ldr BSTACK_0,[sp],#4
- ldr HEAP_PTR,[sp],#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
+ ldr HEAP_PTR,[BSTACK_PTR],#4
- ldr ASTACK_2,[sp],#4
+ ldr ASTACK_2,[BSTACK_PTR],#4
b push_b_elements
.thumb_func
push_b_elements_lp:
ldr SCRATCH_REG,[ASTACK_0,#-4]!
- str SCRATCH_REG,[sp,#-4]!
+ str SCRATCH_REG,[BSTACK_PTR,#-4]!
.thumb_func
push_b_elements:
subs ASTACK_1,ASTACK_1,#1
@@ -1415,7 +1415,7 @@ push_b_elements:
.thumb_func
push_t_r_args:
- ldr ASTACK_2,[sp],#4
+ ldr ASTACK_2,[BSTACK_PTR],#4
ldr ASTACK_1,[ASTACK_0]
add ASTACK_0,ASTACK_0,#4
@@ -1446,21 +1446,21 @@ push_r_b_elements_lp:
bne not_first_arg_b
ldr SCRATCH_REG,[ASTACK_0]
- str SCRATCH_REG,[sp,#-4]!
+ str SCRATCH_REG,[BSTACK_PTR,#-4]!
b push_r_b_elements
.thumb_func
not_first_arg_b:
ldr SCRATCH_REG,[ASTACK_1,#-4]!
- str SCRATCH_REG,[sp,#-4]!
+ str SCRATCH_REG,[BSTACK_PTR,#-4]!
.thumb_func
push_r_b_elements:
subs BSTACK_1,BSTACK_1,#1
bcs push_r_b_elements_lp
ldr BSTACK_1,[ASTACK_PTR,#4]
- str ASTACK_2,[sp,#-4]!
+ str ASTACK_2,[BSTACK_PTR,#-4]!
ldr SCRATCH_REG,[ASTACK_PTR]
- str SCRATCH_REG,[sp,#-4]!
+ str SCRATCH_REG,[BSTACK_PTR,#-4]!
b push_r_a_elements
.thumb_func
@@ -1480,8 +1480,8 @@ push_r_a_elements:
subs BSTACK_1,BSTACK_1,#1
bcs push_r_a_elements_lp
- ldr BSTACK_0,[sp],#4
- ldr pc,[sp],#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
+ ldr pc,[BSTACK_PTR],#4
BtoAC:
tst BSTACK_0,BSTACK_0
@@ -1489,11 +1489,11 @@ BtoAC:
BtoAC_true:
lao ASTACK_0,true_string,0
otoa ASTACK_0,true_string,0
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
BtoAC_false:
lao ASTACK_0,false_string,0
otoa ASTACK_0,false_string,0
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
RtoAC:
.if USE_CLIB
@@ -1502,12 +1502,12 @@ RtoAC:
lao BSTACK_4,sprintf_buffer,0
otoa BSTACK_3,printf_real_string,0
otoa BSTACK_4,sprintf_buffer,0
- mov BSTACK_0,sp
- mov lr,sp
+ mov BSTACK_0,BSTACK_PTR
+ mov lr,BSTACK_PTR
and lr,lr,#-8
- mov sp,lr
+ mov BSTACK_PTR,lr
bl sprintf
- mov sp,BSTACK_0
+ mov BSTACK_PTR,BSTACK_0
.else
lao BSTACK_4,sprintf_buffer,1
otoa BSTACK_4,sprintf_buffer,1
@@ -1521,7 +1521,7 @@ ItoAC:
otoa ASTACK_0,sprintf_buffer,2
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl int_to_string
lao SCRATCH_REG,sprintf_buffer,3
@@ -1581,7 +1581,7 @@ reverse_digits:
mov SCRATCH_REG,#0
strb SCRATCH_REG,[ASTACK_0]
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.else
mov BSTACK_2,BSTACK_0
lao BSTACK_3,printf_int_string,0
@@ -1627,9 +1627,9 @@ build_string:
subs HEAP_FREE,HEAP_FREE,BSTACK_1
bhs D_to_S_no_gc
- str ASTACK_0,[sp,#-4]!
+ str ASTACK_0,[BSTACK_PTR,#-4]!
bl collect_0
- ldr ASTACK_0,[sp],#4
+ ldr ASTACK_0,[BSTACK_PTR],#4
D_to_S_no_gc:
subs BSTACK_1,BSTACK_1,#2
@@ -1648,7 +1648,7 @@ D_to_S_cp_str_2:
bcs D_to_S_cp_str_1
mov ASTACK_0,ASTACK_2
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
eqD: ldr BSTACK_0,[ASTACK_0]
ldr SCRATCH_REG,[ASTACK_1]
@@ -1673,7 +1673,7 @@ eqD: ldr BSTACK_0,[ASTACK_0]
beq eqD_REAL
mov BSTACK_0,#1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
eqD_CHAR:
eqD_INT:
@@ -1683,7 +1683,7 @@ eqD_INT:
cmp BSTACK_1,SCRATCH_REG
it eq
moveq BSTACK_0,#1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
eqD_BOOL:
ldrb BSTACK_1,[ASTACK_0,#4]
@@ -1692,7 +1692,7 @@ eqD_BOOL:
cmp BSTACK_1,SCRATCH_REG
it eq
moveq BSTACK_0,#1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
eqD_REAL:
vldr.f64 d0,[ASTACK_0,#4]
@@ -1702,24 +1702,24 @@ eqD_REAL:
vmrs APSR_nzcv,fpscr
it eq
moveq BSTACK_0,#1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
eqD_false:
mov BSTACK_0,#0
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
@
@ the timer
@
.thumb_func
init_timer:
- sub sp,sp,#20
- mov BSTACK_4,sp
+ sub BSTACK_PTR,BSTACK_PTR,#20
+ mov BSTACK_4,BSTACK_PTR
bl times
- ldr BSTACK_0,[sp]
+ ldr BSTACK_0,[BSTACK_PTR]
add BSTACK_0,BSTACK_0,BSTACK_0
add BSTACK_0,BSTACK_0,BSTACK_0,lsl #2
- add sp,sp,#20
+ add BSTACK_PTR,BSTACK_PTR,#20
lao SCRATCH_REG,last_time,0
sto BSTACK_0,SCRATCH_REG,last_time,0
@@ -1731,30 +1731,30 @@ init_timer:
lao SCRATCH_REG,IO_time,1
sto BSTACK_0,SCRATCH_REG,IO_time,1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
get_time_diff:
- sub sp,sp,#20
- mov BSTACK_4,sp
+ sub BSTACK_PTR,BSTACK_PTR,#20
+ mov BSTACK_4,BSTACK_PTR
bl times
- ldr BSTACK_0,[sp]
+ ldr BSTACK_0,[BSTACK_PTR]
add BSTACK_0,BSTACK_0,BSTACK_0
add BSTACK_0,BSTACK_0,BSTACK_0,lsl #2
- add sp,sp,#20
+ add BSTACK_PTR,BSTACK_PTR,#20
lao ASTACK_0,last_time,1
otoa ASTACK_0,last_time,1
ldr ASTACK_1,[ASTACK_0]
str BSTACK_0,[ASTACK_0]
subs BSTACK_0,BSTACK_0,ASTACK_1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
add_execute_time:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl get_time_diff
lao ASTACK_0,execute_time,3
otoa ASTACK_0,execute_time,3
@@ -1764,13 +1764,13 @@ add_time:
ldr SCRATCH_REG,[ASTACK_0]
add BSTACK_0,BSTACK_0,SCRATCH_REG
str BSTACK_0,[ASTACK_0]
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
add_garbage_collect_time:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl get_time_diff
lao ASTACK_0,garbage_collect_time,3
otoa ASTACK_0,garbage_collect_time,3
@@ -1779,7 +1779,7 @@ add_garbage_collect_time:
add_IO_time:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl get_time_diff
lao ASTACK_0,IO_time,2
otoa ASTACK_0,IO_time,2
@@ -1885,13 +1885,13 @@ add_IO_time:
@
collect_3:
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
.ifdef PROFILE
lao ASTACK_2,garbage_collector_name,0
otoa ASTACK_2,garbage_collector_name,0
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_s
.endif
str ASTACK_0,[ASTACK_PTR]
@@ -1905,17 +1905,17 @@ collect_3:
.ifdef PROFILE
b profile_r
.else
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.endif
collect_2:
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
.ifdef PROFILE
lao ASTACK_2,garbage_collector_name,1
otoa ASTACK_2,garbage_collector_name,1
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_s
.endif
str ASTACK_0,[ASTACK_PTR]
@@ -1927,17 +1927,17 @@ collect_2:
.ifdef PROFILE
b profile_r
.else
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.endif
collect_1:
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
.ifdef PROFILE
lao ASTACK_2,garbage_collector_name,2
otoa ASTACK_2,garbage_collector_name,2
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_s
.endif
str ASTACK_0,[ASTACK_PTR],#4
@@ -1946,18 +1946,18 @@ collect_1:
.ifdef PROFILE
b profile_r
.else
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
mov pc,lr
.endif
.ifdef PROFILE
collect_0:
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
lao ASTACK_2,garbage_collector_name,3
otoa ASTACK_2,garbage_collector_name,3
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_s
bl collect_0_
b profile_r
@@ -1967,7 +1967,7 @@ collect_0:
collect_0:
.endif
collect_0_:
- stmdb sp!,{BSTACK_4-BSTACK_0,lr}
+ stmdb BSTACK_PTR!,{BSTACK_4-BSTACK_0,lr}
lao SCRATCH_REG,heap_end_after_gc,1
ldo SCRATCH_REG,SCRATCH_REG,heap_end_after_gc,1
@@ -1991,7 +1991,7 @@ collect_0_:
beq no_scan
mov BSTACK_1,#0
- str ASTACK_PTR,[sp,#-4]!
+ str ASTACK_PTR,[BSTACK_PTR,#-4]!
lao SCRATCH_REG,n_allocated_words,1
ldo ASTACK_PTR,SCRATCH_REG,n_allocated_words,1
@@ -2068,9 +2068,9 @@ found_free_memory:
lao SCRATCH_REG,heap_end_after_gc,2
sto ASTACK_2,SCRATCH_REG,heap_end_after_gc,2
- ldr ASTACK_PTR,[sp],#4
+ ldr ASTACK_PTR,[BSTACK_PTR],#4
- ldmia sp!,{BSTACK_4-BSTACK_0,pc}
+ ldmia BSTACK_PTR!,{BSTACK_4-BSTACK_0,pc}
.thumb_func
end_bits:
@@ -2084,7 +2084,7 @@ end_bits2:
.thumb_func
end_scan:
- ldr ASTACK_PTR,[sp],#4
+ ldr ASTACK_PTR,[BSTACK_PTR],#4
lao SCRATCH_REG,bit_counter,2
sto ASTACK_2,SCRATCH_REG,bit_counter,2
lao SCRATCH_REG,n_free_words_after_mark,2
@@ -2124,13 +2124,13 @@ no_mark3:
lao SCRATCH_REG,heap_end_after_gc,3
sto BSTACK_1,SCRATCH_REG,heap_end_after_gc,3
- ldmia sp!,{BSTACK_4-BSTACK_0,pc}
+ ldmia BSTACK_PTR!,{BSTACK_4-BSTACK_0,pc}
.thumb_func
.align
collect:
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl add_execute_time
lao SCRATCH_REG,flags,7
@@ -2154,7 +2154,7 @@ collect:
lao SCRATCH_REG,halt_sp,2
ldo BSTACK_0,SCRATCH_REG,halt_sp,2
- add BSTACK_4,sp,#0
+ add BSTACK_4,BSTACK_PTR,#0
sub BSTACK_4,BSTACK_0,BSTACK_4
bl ew_print_int
@@ -2176,7 +2176,7 @@ no_print_stack_sizes:
lao SCRATCH_REG,flags,8
ldo SCRATCH_REG,SCRATCH_REG,flags,8
tst SCRATCH_REG,#64
- @bne compacting_collector
+ bne compacting_collector
.else
.if MARK_GC
b compacting_collector
@@ -2187,7 +2187,7 @@ no_print_stack_sizes:
lao SCRATCH_REG,garbage_collect_flag,4
ldosb SCRATCH_REG,SCRATCH_REG,garbage_collect_flag,4
cmp SCRATCH_REG,#0
- @bne compacting_collector
+ bne compacting_collector
lao SCRATCH_REG,heap_copied_vector,1
ldo ASTACK_2,SCRATCH_REG,heap_copied_vector,1
@@ -2205,7 +2205,7 @@ no_print_stack_sizes:
lsr BSTACK_0,BSTACK_0,#8
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl zero_bit_vector
lao SCRATCH_REG,heap_end_after_copy_gc,2
@@ -2230,7 +2230,7 @@ no_print_stack_sizes:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl zero_bit_vector
b end_zero_bit_vector
@@ -2241,7 +2241,7 @@ zero_all:
lsr BSTACK_0,BSTACK_0,#2
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl zero_bit_vector
.thumb_func
@@ -2257,11 +2257,11 @@ end_zero_bit_vector:
sub ASTACK_2,ASTACK_PTR,HEAP_PTR
lsr ASTACK_2,ASTACK_2,#2
- ldr ASTACK_PTR,[sp],#4
+ ldr ASTACK_PTR,[BSTACK_PTR],#4
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl add_garbage_collect_time
lao SCRATCH_REG,n_allocated_words,2
@@ -2402,17 +2402,17 @@ no_mark_scan:
and ASTACK_0,ASTACK_0,#-4096
subs ASTACK_0,ASTACK_0,BSTACK_1
bls no_pages
- str BSTACK_0,[sp,#-4]!
+ str BSTACK_0,[BSTACK_PTR,#-4]!
- str ASTACK_0,[sp,#-4]!
- str BSTACK_1,[sp,#-4]!
+ str ASTACK_0,[BSTACK_PTR,#-4]!
+ str BSTACK_1,[BSTACK_PTR,#-4]!
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl _munmap
- add sp,sp,#8
+ add BSTACK_PTR,BSTACK_PTR,#8
- ldr BSTACK_0,[sp],#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
.thumb_func
no_pages:
.endif
@@ -2468,20 +2468,20 @@ end_garbage_collect:
end_garbage_collect_:
.endif
- str BSTACK_0,[sp,#-4]!
+ str BSTACK_0,[BSTACK_PTR,#-4]!
lao SCRATCH_REG,flags,9
ldo SCRATCH_REG,SCRATCH_REG,flags,9
tst SCRATCH_REG,#2
beq no_heap_use_message
- str BSTACK_0,[sp,#-4]!
+ 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
bl ew_print_string
- ldr BSTACK_4,[sp],#4
+ ldr BSTACK_4,[BSTACK_PTR],#4
bl ew_print_int
lao BSTACK_4,heap_use_after_gc_string_2,0
@@ -2494,11 +2494,11 @@ no_heap_use_message:
.if FINALIZERS
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl call_finalizers
.endif
- ldr BSTACK_0,[sp],#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
.if WRITE_HEAP
@ Check whether memory profiling is on or off
@@ -2512,13 +2512,13 @@ no_heap_use_message:
cmp BSTACK_0,SCRATCH_REG
blo no_write_heap
- str ASTACK_0,[sp,#-4]!
- str ASTACK_1,[sp,#-4]!
- str ASTACK_2,[sp,#-4]!
- str ASTACK_PTR,[sp,#-4]!
- str HEAP_PTR,[sp,#-4]!
+ str ASTACK_0,[BSTACK_PTR,#-4]!
+ str ASTACK_1,[BSTACK_PTR,#-4]!
+ str ASTACK_2,[BSTACK_PTR,#-4]!
+ str ASTACK_PTR,[BSTACK_PTR,#-4]!
+ str HEAP_PTR,[BSTACK_PTR,#-4]!
- subs sp,sp,#64
+ subs BSTACK_PTR,BSTACK_PTR,#64
lao SCRATCH_REG,d3_flag_write_heap,2
ldo BSTACK_0,SCRATCH_REG,d3_flag_write_heap,2
@@ -2554,7 +2554,7 @@ gc1:
? /* fill record */
- mov BSTACK_0,sp
+ mov BSTACK_0,BSTACK_PTR
str BSTACK_1,[BSTACK_0,#0]
? movl a4,4(d0) // klop dit?
@@ -2580,22 +2580,22 @@ gc1:
? movl $__STRING__+2,56(d0) // STRING-descP
? movl $__ARRAY__+2,60(d0) // ARRAY-descP
- str BSTACK_0,[sp,#-4]!
+ str BSTACK_0,[BSTACK_PTR,#-4]!
bl write_heap
- add sp,sp,#68
+ add BSTACK_PTR,BSTACK_PTR,#68
- ldr HEAP_PTR,[sp],#4
- ldr ASTACK_PTR,[sp],#4
- ldr ASTACK_2,[sp],#4
- ldr ASTACK_1,[sp],#4
- ldr ASTACK_0,[sp],#4
+ ldr HEAP_PTR,[BSTACK_PTR],#4
+ ldr ASTACK_PTR,[BSTACK_PTR],#4
+ ldr ASTACK_2,[BSTACK_PTR],#4
+ ldr ASTACK_1,[BSTACK_PTR],#4
+ ldr ASTACK_0,[BSTACK_PTR],#4
.thumb_func
no_write_heap:
.endif
- ldmia sp!,{BSTACK_4-BSTACK_0,pc}
+ ldmia BSTACK_PTR!,{BSTACK_4-BSTACK_0,pc}
.ifdef PIC
.if MARK_AND_COPY_GC
@@ -2726,14 +2726,14 @@ call_finalizers_lp:
cmp BSTACK_0,SCRATCH_REG
beq end_call_finalizers
ldr SCRATCH_REG,[BSTACK_0,#4]
- str SCRATCH_REG,[sp,#-4]!
+ str SCRATCH_REG,[BSTACK_PTR,#-4]!
ldr BSTACK_1,[BSTACK_0,#8]
ldr SCRATCH_REG,[BSTACK_1,#4]
- str SCRATCH_REG,[sp,#-4]!
+ str SCRATCH_REG,[BSTACK_PTR,#-4]!
ldr SCRATCH_REG,[BSTACK_1]
blx SCRATCH_REG
- add sp,sp,#4
- ldr BSTACK_0,[sp],#4
+ add BSTACK_PTR,BSTACK_PTR,#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
b call_finalizers_lp
.thumb_func
end_call_finalizers:
@@ -2741,7 +2741,7 @@ end_call_finalizers:
laol ASTACK_3,__Nil-4,__Nil_o_m4,2
otoa ASTACK_3,__Nil_o_m4,2
sto ASTACK_3,SCRATCH_REG,free_finalizer_list,2
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.endif
.if WRITE_HEAP
@@ -2759,7 +2759,7 @@ copy_to_compact_with_alloc_in_extra_heap:
out_of_memory_4:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl add_garbage_collect_time
lao ASTACK_2,out_of_memory_string_4,0
@@ -2794,12 +2794,12 @@ zero_bits1_2:
zero_bits1_5:
subs BSTACK_0,BSTACK_0,#1
bhs zero_bits1_4
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
reorder:
- str ASTACK_PTR,[sp,#-4]!
- str ASTACK_2,[sp,#-4]!
+ str ASTACK_PTR,[BSTACK_PTR,#-4]!
+ str ASTACK_2,[BSTACK_PTR,#-4]!
mov ASTACK_2,BSTACK_0
lsl ASTACK_2,ASTACK_2,#2
@@ -2808,10 +2808,10 @@ reorder:
add ASTACK_0,ASTACK_0,ASTACK_PTR
subs ASTACK_1,ASTACK_1,ASTACK_2
- str ASTACK_PTR,[sp,#-4]!
- str ASTACK_2,[sp,#-4]!
- str BSTACK_1,[sp,#-4]!
- str BSTACK_0,[sp,#-4]!
+ str ASTACK_PTR,[BSTACK_PTR,#-4]!
+ str ASTACK_2,[BSTACK_PTR,#-4]!
+ str BSTACK_1,[BSTACK_PTR,#-4]!
+ str BSTACK_0,[BSTACK_PTR,#-4]!
b st_reorder_lp
.thumb_func
@@ -2825,15 +2825,15 @@ reorder_lp:
subs BSTACK_0,BSTACK_0,#1
bne next_b_in_element
- ldr BSTACK_0,[sp]
- ldr SCRATCH_REG,[sp,#12]
+ ldr BSTACK_0,[BSTACK_PTR]
+ ldr SCRATCH_REG,[BSTACK_PTR,#12]
add ASTACK_0,ASTACK_0,SCRATCH_REG
.thumb_func
next_b_in_element:
subs BSTACK_1,BSTACK_1,#1
bne next_a_in_element
- ldr BSTACK_1,[sp,#4]
- ldr SCRATCH_REG,[sp,#8]
+ ldr BSTACK_1,[BSTACK_PTR,#4]
+ ldr SCRATCH_REG,[BSTACK_PTR,#8]
subs ASTACK_1,ASTACK_1,SCRATCH_REG
.thumb_func
next_a_in_element:
@@ -2842,12 +2842,12 @@ st_reorder_lp:
cmp ASTACK_1,ASTACK_0
bhi reorder_lp
- ldr BSTACK_0,[sp],#4
- ldr BSTACK_1,[sp],#4
- add sp,sp,#8
- ldr ASTACK_2,[sp],#4
- ldr ASTACK_PTR,[sp],#4
- ldr pc,[sp],#4
+ ldr BSTACK_0,[BSTACK_PTR],#4
+ ldr BSTACK_1,[BSTACK_PTR],#4
+ add BSTACK_PTR,BSTACK_PTR,#8
+ ldr ASTACK_2,[BSTACK_PTR],#4
+ ldr ASTACK_PTR,[BSTACK_PTR],#4
+ ldr pc,[BSTACK_PTR],#4
@
@ the sliding compacting garbage collector
@@ -3146,7 +3146,7 @@ vector_at_end_2:
no_copy_garbage_collection:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl add_garbage_collect_time
mov BSTACK_0,HEAP_PTR
@@ -3162,7 +3162,7 @@ no_copy_garbage_collection:
stack_overflow:
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl add_execute_time
lao ASTACK_2,stack_overflow_string,0
@@ -3170,13 +3170,13 @@ stack_overflow:
b print_error
IO_error:
- str BSTACK_4,[sp]
+ str BSTACK_4,[BSTACK_PTR]
lao BSTACK_4,IO_error_string,0
otoa BSTACK_4,IO_error_string,0
bl ew_print_string
- ldr BSTACK_4,[sp],#4
+ ldr BSTACK_4,[BSTACK_PTR],#4
bl ew_print_string
lao BSTACK_4,new_line_string,0
@@ -3193,12 +3193,12 @@ print_error:
.thumb_func
halt:
lao SCRATCH_REG,halt_sp,3
- ldo sp,SCRATCH_REG,halt_sp,3
+ ldo BSTACK_PTR,SCRATCH_REG,halt_sp,3
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl write_profile_stack
.endif
@@ -3258,7 +3258,7 @@ eval_fill:
ldr SCRATCH_REG,[ASTACK_1]
.align
add lr,pc,#7
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
blx SCRATCH_REG
mov ASTACK_1,ASTACK_0
ldr ASTACK_0,[ASTACK_PTR,#-4]!
@@ -3269,7 +3269,7 @@ eval_fill:
str ASTACK_2,[ASTACK_0,#4]
ldr ASTACK_2,[ASTACK_1,#8]
str ASTACK_2,[ASTACK_0,#8]
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.p2align 2
b e__system__eaind
@@ -3298,7 +3298,7 @@ __indirection:
str ASTACK_2,[ASTACK_0,#4]
ldr ASTACK_2,[ASTACK_1,#8]
str ASTACK_2,[ASTACK_0,#8]
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.if MARK_GC
eval_fill2:
@@ -3317,7 +3317,7 @@ eval_fill2:
.align
add lr,pc,#7
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
blx BSTACK_0
mov ASTACK_1,ASTACK_0
ldr ASTACK_0,[ASTACK_PTR,#-4]!
@@ -3328,13 +3328,13 @@ eval_fill2:
str ASTACK_2,[ASTACK_0,#4]
ldr ASTACK_2,[ASTACK_1,#8]
str ASTACK_2,[ASTACK_0,#8]
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.endif
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3348,7 +3348,7 @@ eval_upd_0:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3364,7 +3364,7 @@ eval_upd_1:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3380,7 +3380,7 @@ eval_upd_2:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3398,7 +3398,7 @@ eval_upd_3:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3419,7 +3419,7 @@ eval_upd_4:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3442,7 +3442,7 @@ eval_upd_5:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3467,7 +3467,7 @@ eval_upd_6:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3505,7 +3505,7 @@ eval_upd_n_lp:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3517,7 +3517,7 @@ eval_upd_8:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3529,7 +3529,7 @@ eval_upd_9:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3541,7 +3541,7 @@ eval_upd_10:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3553,7 +3553,7 @@ eval_upd_11:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3565,7 +3565,7 @@ eval_upd_12:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3577,7 +3577,7 @@ eval_upd_13:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3589,7 +3589,7 @@ eval_upd_14:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3601,7 +3601,7 @@ eval_upd_15:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3613,7 +3613,7 @@ eval_upd_16:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3625,7 +3625,7 @@ eval_upd_17:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3637,7 +3637,7 @@ eval_upd_18:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3649,7 +3649,7 @@ eval_upd_19:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3661,7 +3661,7 @@ eval_upd_20:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3673,7 +3673,7 @@ eval_upd_21:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3685,7 +3685,7 @@ eval_upd_22:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3697,7 +3697,7 @@ eval_upd_23:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3709,7 +3709,7 @@ eval_upd_24:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3721,7 +3721,7 @@ eval_upd_25:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3733,7 +3733,7 @@ eval_upd_26:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3745,7 +3745,7 @@ eval_upd_27:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3757,7 +3757,7 @@ eval_upd_28:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3769,7 +3769,7 @@ eval_upd_29:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3781,7 +3781,7 @@ eval_upd_30:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3793,7 +3793,7 @@ eval_upd_31:
.ifdef PROFILE
.align
add lr,pc,#9
- str lr,[sp,#-4]!
+ str lr,[BSTACK_PTR,#-4]!
bl profile_n
mov ASTACK_2,BSTACK_0
.endif
@@ -3821,7 +3821,7 @@ gc_r_3:
@ fill_node
- str HEAP_PTR,[sp,#-4]!
+ str HEAP_PTR,[BSTACK_PTR,#-4]!
laol SCRATCH_REG,__STRING__+2,__STRING___o_2,1
otoa SCRATCH_REG,__STRING___o_2,1
str SCRATCH_REG,[HEAP_PTR]
@@ -3873,11 +3873,11 @@ cat_string_10:
strb BSTACK_1,[HEAP_PTR],#1
cat_string_11:
- ldr ASTACK_0,[sp],#4
+ ldr ASTACK_0,[BSTACK_PTR],#4
@ align heap pointer
add HEAP_PTR,HEAP_PTR,#3
and HEAP_PTR,HEAP_PTR,#-4
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
gc_3: bl collect_2
b gc_r_3
@@ -3886,7 +3886,7 @@ gc_3: bl collect_2
empty_string:
lao ASTACK_0,zero_length_string,0
otoa ASTACK_0,zero_length_string,0
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.ifdef PIC
ltol __STRING__+2,__STRING___o_2,1
@@ -3941,7 +3941,7 @@ sliceAC_copy_lp:
bne sliceAC_copy_lp
sliceAC_after_copy_lp:
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
gc_4:
bl collect_1
@@ -3994,7 +3994,7 @@ updateAC_copy_lp:
updateAC_after_copy_lp:
strb BSTACK_0,[BSTACK_1]
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
gc_5: bl collect_1
b r_gc_5
@@ -4056,11 +4056,11 @@ equal_string_2:
.thumb_func
equal_string_eq:
mov BSTACK_0,#1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
equal_string_ne:
mov BSTACK_0,#0
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.cmpAC,"ax"
cmpAC:
@@ -4118,7 +4118,7 @@ cmp_string_2:
bne cmp_string_ne
.thumb_func
cmp_string_eq:
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
cmp_string_ne4:
@ to do compare bytes using and instead of ldrb
ldrb BSTACK_1,[ASTACK_1]
@@ -4140,10 +4140,10 @@ cmp_string_ne4:
cmp_string_ne:
bhi cmp_string_r1
mov BSTACK_0,#-1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
cmp_string_r1:
mov BSTACK_0,#1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.string_to_string_node,"ax"
.thumb_func
@@ -4175,13 +4175,13 @@ string_to_string_node_4:
bge string_to_string_node_2
mov ASTACK_0,ASTACK_2
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
string_to_string_node_gc:
- stmdb sp!,{ASTACK_0,ASTACK_2}
+ stmdb BSTACK_PTR!,{ASTACK_0,ASTACK_2}
bl collect_0
- ldmia sp!,{ASTACK_0,ASTACK_2}
+ ldmia BSTACK_PTR!,{ASTACK_0,ASTACK_2}
b string_to_string_node_r
.ifdef PIC
@@ -4218,13 +4218,13 @@ int_array_to_node_4:
subs BSTACK_0,BSTACK_0,#1
bge int_array_to_node_2
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
int_array_to_node_gc:
- str ASTACK_0,[sp,#-4]!
+ str ASTACK_0,[BSTACK_PTR,#-4]!
bl collect_0
- ldr ASTACK_0,[sp],#4
+ ldr ASTACK_0,[BSTACK_PTR],#4
b int_array_to_node_r
.ifdef PIC
@@ -4270,13 +4270,13 @@ real_array_to_node_4:
subs BSTACK_0,BSTACK_0,#1
bge real_array_to_node_2
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
real_array_to_node_gc:
- str ASTACK_0,[sp,#-4]!
+ str ASTACK_0,[BSTACK_PTR,#-4]!
bl collect_0
- ldr ASTACK_0,[sp],#4
+ ldr ASTACK_0,[BSTACK_PTR],#4
b real_array_to_node_r
.ifdef PIC
@@ -4400,7 +4400,7 @@ no_collect_4574:
str SCRATCH_REG,[HEAP_PTR,#8]
add SCRATCH_REG,HEAP_PTR,#12
add HEAP_PTR,SCRATCH_REG,BSTACK_1,lsl #2
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
_create_arrayC:
add BSTACK_1,BSTACK_0,#3
@@ -4418,7 +4418,7 @@ no_collect_4573:
str BSTACK_0,[HEAP_PTR,#4]
add SCRATCH_REG,HEAP_PTR,#8
add HEAP_PTR,SCRATCH_REG,BSTACK_1,lsl #2
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
_create_arrayI:
add SCRATCH_REG,BSTACK_0,#3
@@ -4436,7 +4436,7 @@ no_collect_4572:
str SCRATCH_REG,[HEAP_PTR,#8]
add SCRATCH_REG,HEAP_PTR,#12
add HEAP_PTR,SCRATCH_REG,BSTACK_0,lsl #2
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
_create_arrayR:
add SCRATCH_REG,BSTACK_0,BSTACK_0
@@ -4459,7 +4459,7 @@ no_collect_4580:
str SCRATCH_REG,[HEAP_PTR,#8]
add SCRATCH_REG,HEAP_PTR,#12
add HEAP_PTR,SCRATCH_REG,BSTACK_0,lsl #3
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
@ BSTACK_0: number of elements, BSTACK_1: element descriptor
@ BSTACK_2: element size, BSTACK_3: element a size, a0:a_element-> a0: array
@@ -4500,7 +4500,7 @@ _create_r_array_0:
lsl BSTACK_2,BSTACK_2,#2
mul SCRATCH_REG,BSTACK_0,BSTACK_2
add HEAP_PTR,HEAP_PTR,SCRATCH_REG
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
_create_r_array_1:
lsl BSTACK_2,BSTACK_2,#2
@@ -4511,7 +4511,7 @@ _fillBSTACK_3_array:
_st_fillBSTACK_3_array:
subs BSTACK_0,BSTACK_0,#1
bcs _fillBSTACK_3_array
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
_create_r_array_2:
lsl BSTACK_2,BSTACK_2,#2
@@ -4523,7 +4523,7 @@ _fillBSTACK_2_array:
_st_fillBSTACK_2_array:
subs BSTACK_0,BSTACK_0,#1
bcs _fillBSTACK_2_array
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
_create_r_array_3:
lsl BSTACK_2,BSTACK_2,#2
@@ -4536,7 +4536,7 @@ _fillBSTACK_1_array:
_st_fillBSTACK_1_array:
subs BSTACK_0,BSTACK_0,#1
bcs _fillBSTACK_1_array
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
_create_r_array_4:
lsl BSTACK_2,BSTACK_2,#2
@@ -4550,7 +4550,7 @@ _fillBSTACK_0_array:
_st_fillBSTACK_0_array:
subs BSTACK_0,BSTACK_0,#1
bcs _fillBSTACK_0_array
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
_create_r_array_5:
sub BSTACK_2,BSTACK_2,BSTACK_3
@@ -4575,7 +4575,7 @@ _st_fillr5_array:
subs BSTACK_0,BSTACK_0,#1
bcs _fillr5_array
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
create_arrayB:
mov ASTACK_1,BSTACK_1
@@ -4586,9 +4586,9 @@ create_arrayB:
subs HEAP_FREE,HEAP_FREE,SCRATCH_REG
bhs no_collect_4575
- str ASTACK_1,[sp,#-4]!
+ str ASTACK_1,[BSTACK_PTR,#-4]!
bl collect_0
- ldr ASTACK_1,[sp],#4
+ ldr ASTACK_1,[BSTACK_PTR],#4
no_collect_4575:
orr BSTACK_0,BSTACK_0,BSTACK_0,lsl #8
@@ -4613,9 +4613,9 @@ create_arrayC:
subs HEAP_FREE,HEAP_FREE,SCRATCH_REG
bhs no_collect_4578
- str ASTACK_1,[sp,#-4]!
+ str ASTACK_1,[BSTACK_PTR,#-4]!
bl collect_0
- ldr ASTACK_1,[sp],#4
+ ldr ASTACK_1,[BSTACK_PTR],#4
no_collect_4578:
orr BSTACK_0,BSTACK_0,BSTACK_0,lsl #8
@@ -4663,7 +4663,7 @@ st_filli_array:
subs BSTACK_1,BSTACK_1,#1
bcs filli_array
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
create_arrayR:
add SCRATCH_REG,BSTACK_0,BSTACK_0
@@ -4674,9 +4674,9 @@ create_arrayR:
subs HEAP_FREE,HEAP_FREE,SCRATCH_REG
bhs no_collect_4579
- str ASTACK_1,[sp,#-4]!
+ str ASTACK_1,[BSTACK_PTR,#-4]!
bl collect_0
- ldr ASTACK_1,[sp],#4
+ ldr ASTACK_1,[BSTACK_PTR],#4
no_collect_4579:
tst HEAP_PTR,#4
@@ -4704,7 +4704,7 @@ st_fillr_array:
subs BSTACK_0,BSTACK_0,#1
bcs fillr_array
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
create_array:
@@ -4765,7 +4765,7 @@ no_collect_4581:
b fillBSTACK_3_array
r_array_1_b:
- ldr BSTACK_1,[sp,#4]
+ ldr BSTACK_1,[BSTACK_PTR,#4]
fillBSTACK_3_array:
tst BSTACK_0,#1
@@ -4783,7 +4783,7 @@ st_fillBSTACK_3_array_1:
subs BSTACK_0,BSTACK_0,#1
bcs fillBSTACK_3_array_lp
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
create_R_array_2:
@ BSTACK_0: number of elements, BSTACK_1: element descriptor
@@ -4814,11 +4814,11 @@ r_array_2_aa:
b st_fillBSTACK_2_array
r_array_2_ab:
ldr BSTACK_1,[ASTACK_PTR,#-4]
- ldr ASTACK_2,[sp,#4]
+ ldr ASTACK_2,[BSTACK_PTR,#4]
b st_fillBSTACK_2_array
r_array_2_bb:
- ldr BSTACK_1,[sp,#4]
- ldr ASTACK_2,[sp,#8]
+ ldr BSTACK_1,[BSTACK_PTR,#4]
+ ldr ASTACK_2,[BSTACK_PTR,#8]
b st_fillBSTACK_2_array
fillBSTACK_2_array_1:
@@ -4829,7 +4829,7 @@ st_fillBSTACK_2_array:
subs BSTACK_0,BSTACK_0,#1
bcs fillBSTACK_2_array_1
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
create_R_array_3:
@ BSTACK_0: number of elements, BSTACK_1: element descriptor
@@ -4851,8 +4851,8 @@ no_collect_4583:
str BSTACK_1,[HEAP_PTR,#8]
add HEAP_PTR,HEAP_PTR,#12
- ldr lr,[sp],#4
- mov BSTACK_2,sp
+ ldr lr,[BSTACK_PTR],#4
+ mov BSTACK_2,BSTACK_PTR
cmp BSTACK_3,#0
beq r_array_3
@@ -4862,16 +4862,16 @@ no_collect_4583:
copy_a_to_b_lp3:
ldr SCRATCH_REG,[ASTACK_2],#4
- str SCRATCH_REG,[sp,#-4]!
+ str SCRATCH_REG,[BSTACK_PTR,#-4]!
subs BSTACK_3,BSTACK_3,#1
bcs copy_a_to_b_lp3
r_array_3:
- ldr BSTACK_1,[sp]
- ldr ASTACK_1,[sp,#4]
- ldr ASTACK_2,[sp,#8]
+ ldr BSTACK_1,[BSTACK_PTR]
+ ldr ASTACK_1,[BSTACK_PTR,#4]
+ ldr ASTACK_2,[BSTACK_PTR,#8]
- mov sp,BSTACK_2
+ mov BSTACK_PTR,BSTACK_2
b st_fillBSTACK_1_array
fillBSTACK_1_array_1:
@@ -4905,8 +4905,8 @@ no_collect_4584:
str BSTACK_1,[HEAP_PTR,#8]
add HEAP_PTR,HEAP_PTR,#12
- ldr lr,[sp],#4
- mov BSTACK_2,sp
+ ldr lr,[BSTACK_PTR],#4
+ mov BSTACK_2,BSTACK_PTR
cmp BSTACK_3,#0
beq r_array_4
@@ -4916,17 +4916,17 @@ no_collect_4584:
copy_a_to_b_lp4:
ldr SCRATCH_REG,[ASTACK_2],#4
- str SCRATCH_REG,[sp,#-4]!
+ str SCRATCH_REG,[BSTACK_PTR,#-4]!
subs BSTACK_3,BSTACK_3,#1
bcs copy_a_to_b_lp4
r_array_4:
- ldr BSTACK_4,[sp]
- ldr BSTACK_1,[sp,#4]
- ldr ASTACK_1,[sp,#8]
- ldr ASTACK_2,[sp,#12]
+ ldr BSTACK_4,[BSTACK_PTR]
+ ldr BSTACK_1,[BSTACK_PTR,#4]
+ ldr ASTACK_1,[BSTACK_PTR,#8]
+ ldr ASTACK_2,[BSTACK_PTR,#12]
- mov sp,BSTACK_2
+ mov BSTACK_PTR,BSTACK_2
b st_fillBSTACK_0_array
fillBSTACK_0_array:
@@ -4959,8 +4959,8 @@ no_collect_4585:
str BSTACK_0,[HEAP_PTR,#4]
str BSTACK_1,[HEAP_PTR,#8]
- ldr lr,[sp],#4
- mov ASTACK_3,sp
+ ldr lr,[BSTACK_PTR],#4
+ mov ASTACK_3,BSTACK_PTR
cmp BSTACK_3,#0
beq r_array_5
@@ -4970,7 +4970,7 @@ no_collect_4585:
copy_a_to_b_lp5:
ldr SCRATCH_REG,[ASTACK_2],#4
- str SCRATCH_REG,[sp,#-4]!
+ str SCRATCH_REG,[BSTACK_PTR,#-4]!
subs BSTACK_3,BSTACK_3,#1
bcs copy_a_to_b_lp5
@@ -4978,8 +4978,8 @@ r_array_5:
mov ASTACK_0,HEAP_PTR
add HEAP_PTR,HEAP_PTR,#12
- ldr BSTACK_1,[sp]
- ldr ASTACK_1,[sp,#4]
+ ldr BSTACK_1,[BSTACK_PTR]
+ ldr ASTACK_1,[BSTACK_PTR,#4]
b st_fillr5_array
fillr5_array_1:
@@ -4988,11 +4988,11 @@ fillr5_array_1:
sub SCRATCH_REG,BSTACK_2,#5
- ldr ASTACK_2,[sp,#8]
+ ldr ASTACK_2,[BSTACK_PTR,#8]
str ASTACK_2,[HEAP_PTR,#8]
- ldr ASTACK_2,[sp,#12]
- add BSTACK_4,sp,#16
+ ldr ASTACK_2,[BSTACK_PTR,#12]
+ add BSTACK_4,BSTACK_PTR,#16
str ASTACK_2,[HEAP_PTR,#12]
add HEAP_PTR,HEAP_PTR,#16
@@ -5006,7 +5006,7 @@ st_fillr5_array:
subs BSTACK_0,BSTACK_0,#1
bcs fillr5_array_1
- mov sp,ASTACK_3
+ mov BSTACK_PTR,ASTACK_3
bx lr
@@ -5038,7 +5038,7 @@ repl_args_b_4:
ldr ASTACK_2,[ASTACK_0,#4]
str ASTACK_2,[ASTACK_PTR],#4
repl_args_b_1:
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
push_arg_b:
@@ -5052,7 +5052,7 @@ push_arg_b_2:
subs BSTACK_1,BSTACK_1,#2
push_arg_b_1:
ldr ASTACK_0,[ASTACK_0,BSTACK_1,lsl #2]
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
del_args:
@@ -5067,7 +5067,7 @@ del_args:
str ASTACK_2,[ASTACK_1,#4]
ldr ASTACK_2,[ASTACK_0,#8]
str ASTACK_2,[ASTACK_1,#8]
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
del_args_2:
bne del_args_3
@@ -5078,7 +5078,7 @@ del_args_2:
ldr ASTACK_2,[ASTACK_0,#8]
ldr ASTACK_2,[ASTACK_2]
str ASTACK_2,[ASTACK_1,#8]
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
del_args_3:
subs HEAP_FREE,HEAP_FREE,BSTACK_0
@@ -5098,7 +5098,7 @@ del_args_copy_args:
subs BSTACK_0,BSTACK_0,#1
bgt del_args_copy_args
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.thumb_func
del_args_gc:
@@ -5115,7 +5115,7 @@ sin_real:
.ifdef SOFT_FP_CC
vmov d0,BSTACK_4,BSTACK_3
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.cos_real,"ax"
.thumb_func
@@ -5127,7 +5127,7 @@ cos_real:
.ifdef SOFT_FP_CC
vmov d0,BSTACK_4,BSTACK_3
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.tan_real,"ax"
.thumb_func
@@ -5139,7 +5139,7 @@ tan_real:
.ifdef SOFT_FP_CC
vmov d0,BSTACK_4,BSTACK_3
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.asin_real,"ax"
.thumb_func
@@ -5151,7 +5151,7 @@ asin_real:
.ifdef SOFT_FP_CC
vmov d0,BSTACK_4,BSTACK_3
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.acos_real,"ax"
.thumb_func
@@ -5163,7 +5163,7 @@ acos_real:
.ifdef SOFT_FP_CC
vmov d0,BSTACK_4,BSTACK_3
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.atan_real,"ax"
.thumb_func
@@ -5175,7 +5175,7 @@ atan_real:
.ifdef SOFT_FP_CC
vmov d0,BSTACK_4,BSTACK_3
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.ln_real,"ax"
.thumb_func
@@ -5187,7 +5187,7 @@ ln_real:
.ifdef SOFT_FP_CC
vmov d0,BSTACK_4,BSTACK_3
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.log10_real,"ax"
log10_real:
@@ -5198,7 +5198,7 @@ log10_real:
.ifdef SOFT_FP_CC
vmov d0,BSTACK_4,BSTACK_3
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.exp_real,"ax"
.thumb_func
@@ -5210,7 +5210,7 @@ exp_real:
.ifdef SOFT_FP_CC
vmov d0,BSTACK_4,BSTACK_3
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.pow_real,"ax"
.thumb_func
@@ -5227,7 +5227,7 @@ pow_real:
.ifdef SOFT_FP_CC
vmov d0,BSTACK_4,BSTACK_3
.endif
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.section .text.entier_real,"ax"
.thumb_func
@@ -5244,7 +5244,7 @@ entier_real:
r_to_i_real:
vcvtr.s32.f64 s0,d0
vmov BSTACK_0,s0
- ldr pc,[sp],#4
+ ldr pc,[BSTACK_PTR],#4
.text