From 5a329afc45fe3629c7640a7499b749e836c22faf Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Mon, 28 Nov 2016 21:33:59 +0000 Subject: Replaced sp with BSTACK_PTR and (hopefully) fixed copy_arity_0_node2_ --- thumb2startup.s | 594 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 297 insertions(+), 297 deletions(-) (limited to 'thumb2startup.s') 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 -- cgit v1.2.3