diff options
author | Camil Staps | 2016-10-16 12:35:23 +0000 |
---|---|---|
committer | Camil Staps | 2016-10-16 12:35:23 +0000 |
commit | f5c77a356b00547f04cda11eb029670107a2dff0 (patch) | |
tree | 2ba943a7abd1455753d4e286fae85ac06db6411c | |
parent | TEMPORARY fix for the copying collector that needs the lowest bit cleared (diff) |
Maybe Fix for having the LSB on 1, by flipping its meaning in the garbage collector
-rw-r--r-- | thumb2copy.s | 75 | ||||
-rw-r--r-- | thumb2startup.s | 221 |
2 files changed, 109 insertions, 187 deletions
diff --git a/thumb2copy.s b/thumb2copy.s index ece06e1..5ce2ac8 100644 --- a/thumb2copy.s +++ b/thumb2copy.s @@ -16,10 +16,10 @@ COPY_RECORDS_WITHOUT_POINTERS_TO_END_OF_HEAP = 1 add r9,r10,r4
-@ r0 = INT+2
-@ r1 = CHAR+2
- laol r0,INT+2,INT_o_2,6
- laol r1,CHAR+2,CHAR_o_2,2
+@ r0 = INT+3
+@ r1 = CHAR+3
+ laol r0,INT+3,INT_o_2,6
+ laol r1,CHAR+3,CHAR_o_2,2
otoa r0,INT_o_2,6
otoa r1,CHAR_o_2,2
@@ -110,8 +110,8 @@ end_finalizers_after_copy: lto heap_p2,9
lto heap_size_129,4
lto semi_space_size,0
- ltol INT+2,INT_o_2,6
- ltol CHAR+2,CHAR_o_2,2
+ ltol INT+3,INT_o_2,6
+ ltol CHAR+3,CHAR_o_2,2
.if WRITE_HEAP
ltol heap2_begin_and_end+4,heap2_begin_and_end_o_4,0
.endif
@@ -145,7 +145,8 @@ copy_lp2_: @ selectors:
continue_after_selector_2:
ldr r6,[r7]
- bic r6,r6,#1 @ TODO temporary fix
+ orr r6,r6,#1
+ @bic r6,r6,#1 @ TODO temporary fix
tst r6,#2
beq not_in_hnf_2
@@ -205,7 +206,7 @@ copy_hnf_node2_3: ldr r7,[r6]
tst r7,#1
- bne arguments_already_copied_2
+ beq arguments_already_copied_2
str r10,[r10,#-4]
@@ -234,17 +235,17 @@ arguments_already_copied_2: b copy_lp1
copy_arity_0_node2:
- cmp r6,r0 @ INT+2
+ cmp r6,r0 @ INT+3
blo copy_real_file_or_string_2
- cmp r6,r1 @ CHAR+2
+ cmp r6,r1 @ CHAR+3
bhi copy_normal_hnf_0_2
copy_int_bool_or_char_2:
ldr r4,[r7,#4]
beq copy_char_2
- cmp r6,r0 @ INT+2
+ cmp r6,r0 @ INT+3
bne no_small_int_or_char_2
copy_int_2:
@@ -282,10 +283,10 @@ copy_record_node2_1_b: str r6,[r9,#-8]
str r4,[r9,#-4]
- sub r9,r9,#7
+ sub r9,r9,#8
str r9,[r7]
- sub r9,r9,#1
+ add r9,r9,#1
str r9,[r5]
@@ -304,7 +305,7 @@ copy_normal_hnf_0_2: b copy_lp1
copy_real_file_or_string_2:
- laol r12,__STRING__+2,__STRING___o_2,7
+ laol r12,__STRING__+3,__STRING___o_2,7
otoa r12,__STRING___o_2,7
cmp r6,r12
bls copy_string_or_array_2
@@ -331,7 +332,7 @@ copy_real_or_file_2: b copy_lp1
already_copied_2:
- sub r6,r6,#1
+ add r6,r6,#1
subs r3,r3,#1
str r6,[r5]
@@ -353,7 +354,7 @@ copy_record_2: str r10,[r5]
str r6,[r10]
- add r6,r10,#1
+ add r6,r10,#0
ldr r4,[r7,#4]
str r6,[r7]
@@ -378,7 +379,7 @@ copy_record_node2_1: str r10,[r5]
str r6,[r10]
- add r6,r10,#1
+ add r6,r10,#0
str r4,[r10,#4]
str r6,[r7]
@@ -394,7 +395,7 @@ copy_record_node2_3: bls copy_record_node2_3_ab_or_b
str r4,[sp,#-4]!
- add r4,r10,#1
+ add r4,r10,#0
str r4,[r7]
ldr r4,[r7,#8]
@@ -408,7 +409,7 @@ copy_record_node2_3: ldr r12,[r4]
mov r6,r4
tst r12,#1
- bne record_arguments_already_copied_2
+ beq record_arguments_already_copied_2
add r7,r10,#12
@@ -453,7 +454,7 @@ copy_record_node2_3_ab_or_b: copy_record_node2_3_ab:
str r4,[sp,#-4]!
- add r4,r10,#1
+ add r4,r10,#0
lao r12,heap_p1,9
@@ -592,7 +593,7 @@ record_arguments_already_copied_3_b: ldr r7,[r6]
ldr r4,[sp],#4
- sub r7,r7,#1
+ add r7,r7,#1
str r7,[r9,#8]
subs r3,r3,#1
@@ -602,7 +603,7 @@ record_arguments_already_copied_3_b: not_in_hnf_2:
tst r6,#1
- bne already_copied_2
+ beq already_copied_2
ldr r4,[r6,#-4]
cmp r4,#0
@@ -662,7 +663,7 @@ copy_indirection_2: bne in_hnf_2
tst r6,#1
- bne already_copied_2
+ beq already_copied_2
ldr r12,[r6,#-4]
cmp r12,#-2
@@ -679,7 +680,7 @@ skip_indirections_2: tst r6,#2
bne update_indirection_list_2
tst r6,#1
- bne update_indirection_list_2
+ beq update_indirection_list_2
ldr r12,[r6,#-4]
cmp r12,#-2
@@ -967,8 +968,10 @@ copy_arity_0_node2_: blt copy_selector_2
str r6,[r9,#-12]!
- str r9,[r5]
add r4,r9,#1
+ str r4,[r5]
+ sub r4,r4,#1
+ @mov r4,r9
str r4,[r7]
@@ -980,7 +983,7 @@ copy_arity_0_node2_: copy_string_or_array_2:
.ifdef DLL
beq copy_string_2
- laol r12,__ARRAY__+2,__ARRAY___o_2,15
+ laol r12,__ARRAY__+3,__ARRAY___o_2,15
otoa r12,__ARRAY___o_2,15
cmp r6,r12
blo copy_normal_hnf_0_2
@@ -1016,7 +1019,7 @@ copy_string_2: str r3,[r9,#-8]!
str r9,[r5]
- add r7,r9,#1
+ sub r7,r9,#1
str r7,[r6,#-4]
add r7,r9,#4
@@ -1074,20 +1077,20 @@ copy_array_a3: str r4,[r7]
- add r4,r7,#1
+ sub r4,r7,#1
add r7,r7,#4
str r4,[r6],#4
- add r4,r3,#1
+ sub r4,r3,#1
b cp_s_arg_lp2
copy_strict_basic_array_2:
ldr r3,[r6,#4]
- cmp r4,r0 @ INT+2
+ cmp r4,r0 @ INT+3
beq copy_int_array_2
- laol r12,BOOL+2,BOOL_o_2,4
+ laol r12,BOOL+3,BOOL_o_2,4
otoa r12,BOOL_o_2,4
cmp r4,r12
beq copy_bool_array_2
@@ -1104,12 +1107,12 @@ copy_int_array_2: mov r9,r7
str r4,[r7]
- add r4,r7,#1
+ sub r4,r7,#1
add r7,r7,#4
str r4,[r6],#4
- add r4,r3,#1
+ sub r4,r3,#1
b cp_s_arg_lp2
copy_bool_array_2:
@@ -1306,7 +1309,7 @@ copy_array_21_lp_ab_next: .ifdef PIC
lto small_integers,1
lto static_characters,1
- ltol __STRING__+2,__STRING___o_2,7
+ ltol __STRING__+3,__STRING___o_2,7
lto heap_p1,9
lto heap_copied_vector,4
lto heap_p1,10
@@ -1319,13 +1322,13 @@ copy_array_21_lp_ab_next: lto heap_p1,12
lto heap_copied_vector,7
.ifdef DLL
- ltol __ARRAY__+2,__ARRAY___o_2,15
+ ltol __ARRAY__+3,__ARRAY___o_2,15
.endif
lto heap_p1,13
lto semi_space_size,1
lto heap_p1,14
lto semi_space_size,2
- ltol BOOL+2,BOOL_o_2,4
+ ltol BOOL+3,BOOL_o_2,4
.endif
.ltorg
diff --git a/thumb2startup.s b/thumb2startup.s index 16986fa..476ff44 100644 --- a/thumb2startup.s +++ b/thumb2startup.s @@ -499,14 +499,14 @@ abc_main: sto r4,r12,start_address,0 .endif .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl init_clean tst r4,r4 bne init_error .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl init_timer @@ -515,7 +515,7 @@ abc_main: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl init_profiler .endif @@ -524,12 +524,12 @@ abc_main: lao r12,start_address,1 ldo r4,r12,start_address,1 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! blx r4 .else .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl __start .endif @@ -537,7 +537,7 @@ abc_main: .thumb_func exit: .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl exit_clean @@ -555,14 +555,14 @@ clean_init: sto r0,r12,dll_initisialised,0 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl init_clean tst r4,r4 bne init_dll_error .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl init_timer @@ -571,7 +571,7 @@ clean_init: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl init_profiler .endif @@ -604,7 +604,7 @@ clean_fini: ldo r9,r12,saved_a_stack_p,1 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl exit_clean @@ -875,7 +875,6 @@ no_mark2: mov r4,#0 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr no_memory_2: @@ -887,7 +886,6 @@ no_memory_2: .endif mov r0,#1 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr no_memory_3: @@ -904,13 +902,12 @@ no_memory_3: mov r0,#1 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func exit_clean: .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl add_execute_time @@ -927,7 +924,7 @@ exit_clean: ldo r4,r12,execute_time,0 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl print_time @@ -939,7 +936,7 @@ exit_clean: ldo r4,r12,garbage_collect_time,0 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl print_time @@ -957,7 +954,7 @@ exit_clean: add r4,r12 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl print_time @@ -976,13 +973,12 @@ no_print_execution_time: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl write_profile_information .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1147,7 +1143,6 @@ print_time: bl ew_print_text .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1165,13 +1160,12 @@ print: .thumb_func end_print: ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func dump: .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl print b halt @@ -1269,7 +1263,6 @@ print_record: .thumb_func end_print_symbol: ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1277,7 +1270,6 @@ print_int_node: ldr r0,[r6,#4] bl w_print_int ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1285,7 +1277,6 @@ print_int: mov r0,r4 bl w_print_int ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1306,7 +1297,6 @@ print_char_denotation: bl w_print_char ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1314,7 +1304,6 @@ print_char_node: ldr r0,[r6,#4] bl w_print_char ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1323,7 +1312,6 @@ print_char: bl w_print_char add sp,sp,#4 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1338,7 +1326,6 @@ print_true: otoa r0,true_c_string,0 bl w_print_string ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1347,7 +1334,6 @@ print_false: otoa r0,false_c_string,0 bl w_print_string ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1372,7 +1358,6 @@ print_real_: bl w_print_real mov sp,r11 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr print_string_a2: @@ -1380,7 +1365,6 @@ print_string_a2: add r0,r8,#4 bl w_print_text ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1398,7 +1382,6 @@ print__string__: .thumb_func no_print_chars: ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1523,7 +1506,6 @@ push_r_a_elements: ldr r4,[sp],#4 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr BtoAC: @@ -1533,13 +1515,11 @@ BtoAC_true: lao r6,true_string,0 otoa r6,true_string,0 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr BtoAC_false: lao r6,false_string,0 otoa r6,false_string,0 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr RtoAC: @@ -1567,7 +1547,7 @@ ItoAC: lao r6,sprintf_buffer,2 otoa r6,sprintf_buffer,2 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl int_to_string @@ -1629,7 +1609,6 @@ reverse_digits: mov r12,#0 strb r12,[r6] ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .else mov r2,r4 @@ -1698,7 +1677,6 @@ D_to_S_cp_str_2: mov r6,r8 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr eqD: ldr r4,[r6] @@ -1725,7 +1703,6 @@ eqD: ldr r4,[r6] mov r4,#1 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr eqD_CHAR: @@ -1737,7 +1714,6 @@ eqD_INT: it eq moveq r4,#1 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr eqD_BOOL: @@ -1748,7 +1724,6 @@ eqD_BOOL: it eq moveq r4,#1 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr eqD_REAL: @@ -1760,13 +1735,11 @@ eqD_REAL: it eq moveq r4,#1 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr eqD_false: mov r4,#0 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr @ @ the timer @@ -1793,7 +1766,6 @@ init_timer: sto r4,r12,IO_time,1 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -1812,13 +1784,12 @@ get_time_diff: str r4,[r6] subs r4,r4,r7 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func add_execute_time: .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl get_time_diff lao r6,execute_time,3 @@ -1830,13 +1801,12 @@ add_time: add r4,r4,r12 str r4,[r6] ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func add_garbage_collect_time: .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl get_time_diff lao r6,garbage_collect_time,3 @@ -1845,7 +1815,7 @@ add_garbage_collect_time: add_IO_time: .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl get_time_diff lao r6,IO_time,2 @@ -1957,7 +1927,7 @@ collect_3: lao r8,garbage_collector_name,0 otoa r8,garbage_collector_name,0 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_s .endif @@ -1973,7 +1943,6 @@ collect_3: b profile_r .else ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .endif @@ -1983,7 +1952,7 @@ collect_2: lao r8,garbage_collector_name,1 otoa r8,garbage_collector_name,1 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_s .endif @@ -1997,7 +1966,6 @@ collect_2: b profile_r .else ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .endif @@ -2007,7 +1975,7 @@ collect_1: lao r8,garbage_collector_name,2 otoa r8,garbage_collector_name,2 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_s .endif @@ -2018,7 +1986,6 @@ collect_1: b profile_r .else ldr pc,[sp],#4 - orr lr,lr,#1 mov pc,lr .endif @@ -2028,7 +1995,7 @@ collect_0: lao r8,garbage_collector_name,3 otoa r8,garbage_collector_name,3 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_s bl collect_0_ @@ -2201,7 +2168,7 @@ no_mark3: .thumb_func collect: .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl add_execute_time @@ -2276,7 +2243,7 @@ no_print_stack_sizes: add r4,r4,#63*4 lsr r4,r4,#8 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl zero_bit_vector @@ -2301,7 +2268,7 @@ no_print_stack_sizes: sto r14,r12,heap_end_after_copy_gc,3 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl zero_bit_vector b end_zero_bit_vector @@ -2312,7 +2279,7 @@ zero_all: ldo r4,r12,heap_copied_vector_size,3 lsr r4,r4,#2 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl zero_bit_vector @@ -2332,7 +2299,7 @@ end_zero_bit_vector: ldr r9,[sp],#4 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl add_garbage_collect_time @@ -2479,7 +2446,7 @@ no_mark_scan: str r6,[sp,#-4]! str r3,[sp,#-4]! .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl _munmap add sp,sp,#8 @@ -2565,7 +2532,7 @@ no_heap_use_message: .if FINALIZERS .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl call_finalizers .endif @@ -2814,7 +2781,6 @@ end_call_finalizers: otoa r11,__Nil_o_m4,2 sto r11,r12,free_finalizer_list,2 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .endif @@ -2832,7 +2798,7 @@ copy_to_compact_with_alloc_in_extra_heap: out_of_memory_4: .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl add_garbage_collect_time @@ -2869,7 +2835,6 @@ zero_bits1_5: subs r4,r4,#1 bhs zero_bits1_4 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -2924,7 +2889,6 @@ st_reorder_lp: ldr r8,[sp],#4 ldr r9,[sp],#4 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr @ @@ -3223,7 +3187,7 @@ vector_at_end_2: .thumb_func no_copy_garbage_collection: .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl add_garbage_collect_time @@ -3239,7 +3203,7 @@ no_copy_garbage_collection: .thumb_func stack_overflow: .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl add_execute_time @@ -3275,7 +3239,7 @@ halt: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl write_profile_stack .endif @@ -3335,7 +3299,7 @@ eval_fill: mov r6,r7 ldr r12,[r7] .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! blx r12 mov r7,r6 @@ -3348,7 +3312,6 @@ eval_fill: ldr r8,[r7,#8] str r8,[r6,#8] ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .p2align 2 @@ -3379,7 +3342,6 @@ __indirection: ldr r8,[r7,#8] str r8,[r6,#8] ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .if MARK_GC @@ -3398,7 +3360,7 @@ eval_fill2: mov r6,r7 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! blx r4 mov r7,r6 @@ -3411,13 +3373,12 @@ eval_fill2: ldr r8,[r7,#8] str r8,[r6,#8] ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .endif .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3431,7 +3392,7 @@ eval_upd_0: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3447,7 +3408,7 @@ eval_upd_1: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3463,7 +3424,7 @@ eval_upd_2: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3481,7 +3442,7 @@ eval_upd_3: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3502,7 +3463,7 @@ eval_upd_4: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3525,7 +3486,7 @@ eval_upd_5: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3550,7 +3511,7 @@ eval_upd_6: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3588,7 +3549,7 @@ eval_upd_n_lp: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3600,7 +3561,7 @@ eval_upd_8: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3612,7 +3573,7 @@ eval_upd_9: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3624,7 +3585,7 @@ eval_upd_10: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3636,7 +3597,7 @@ eval_upd_11: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3648,7 +3609,7 @@ eval_upd_12: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3660,7 +3621,7 @@ eval_upd_13: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3672,7 +3633,7 @@ eval_upd_14: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3684,7 +3645,7 @@ eval_upd_15: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3696,7 +3657,7 @@ eval_upd_16: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3708,7 +3669,7 @@ eval_upd_17: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3720,7 +3681,7 @@ eval_upd_18: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3732,7 +3693,7 @@ eval_upd_19: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3744,7 +3705,7 @@ eval_upd_20: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3756,7 +3717,7 @@ eval_upd_21: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3768,7 +3729,7 @@ eval_upd_22: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3780,7 +3741,7 @@ eval_upd_23: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3792,7 +3753,7 @@ eval_upd_24: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3804,7 +3765,7 @@ eval_upd_25: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3816,7 +3777,7 @@ eval_upd_26: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3828,7 +3789,7 @@ eval_upd_27: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3840,7 +3801,7 @@ eval_upd_28: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3852,7 +3813,7 @@ eval_upd_29: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3864,7 +3825,7 @@ eval_upd_30: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3876,7 +3837,7 @@ eval_upd_31: .ifdef PROFILE .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl profile_n mov r8,r4 @@ -3962,7 +3923,6 @@ cat_string_11: add r10,r10,#3 and r10,r10,#-4 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr gc_3: bl collect_2 @@ -3973,7 +3933,6 @@ empty_string: lao r6,zero_length_string,0 otoa r6,zero_length_string,0 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .ifdef PIC @@ -4030,7 +3989,6 @@ sliceAC_copy_lp: sliceAC_after_copy_lp: ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr gc_4: @@ -4085,7 +4043,6 @@ updateAC_after_copy_lp: strb r4,[r3] ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr gc_5: bl collect_1 @@ -4149,13 +4106,11 @@ equal_string_2: equal_string_eq: mov r4,#1 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func equal_string_ne: mov r4,#0 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.cmpAC,"ax" @@ -4215,7 +4170,6 @@ cmp_string_2: .thumb_func cmp_string_eq: ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr cmp_string_ne4: @ to do compare bytes using and instead of ldrb @@ -4239,12 +4193,10 @@ cmp_string_ne: bhi cmp_string_r1 mov r4,#-1 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr cmp_string_r1: mov r4,#1 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.string_to_string_node,"ax" @@ -4278,7 +4230,6 @@ string_to_string_node_4: mov r6,r8 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -4323,7 +4274,6 @@ int_array_to_node_4: bge int_array_to_node_2 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -4377,7 +4327,6 @@ real_array_to_node_4: bge real_array_to_node_2 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -4509,7 +4458,6 @@ no_collect_4574: add r12,r10,#12 add r10,r12,r3,lsl #2 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr _create_arrayC: @@ -4529,7 +4477,6 @@ no_collect_4573: add r12,r10,#8 add r10,r12,r3,lsl #2 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr _create_arrayI: @@ -4549,7 +4496,6 @@ no_collect_4572: add r12,r10,#12 add r10,r12,r4,lsl #2 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr _create_arrayR: @@ -4574,7 +4520,6 @@ no_collect_4580: add r12,r10,#12 add r10,r12,r4,lsl #3 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr @ r4: number of elements, r3: element descriptor @@ -4617,7 +4562,6 @@ _create_r_array_0: mul r12,r4,r2 add r10,r10,r12 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr _create_r_array_1: @@ -4630,7 +4574,6 @@ _st_fillr1_array: subs r4,r4,#1 bcs _fillr1_array ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr _create_r_array_2: @@ -4644,7 +4587,6 @@ _st_fillr2_array: subs r4,r4,#1 bcs _fillr2_array ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr _create_r_array_3: @@ -4659,7 +4601,6 @@ _st_fillr3_array: subs r4,r4,#1 bcs _fillr3_array ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr _create_r_array_4: @@ -4675,7 +4616,6 @@ _st_fillr4_array: subs r4,r4,#1 bcs _fillr4_array ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr _create_r_array_5: @@ -4702,7 +4642,6 @@ _st_fillr5_array: bcs _fillr5_array ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr create_arrayB: @@ -4792,7 +4731,6 @@ st_filli_array: bcs filli_array ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr create_arrayR: @@ -4835,7 +4773,6 @@ st_fillr_array: bcs fillr_array ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -4916,7 +4853,6 @@ st_fillr1_array_1: bcs fillr1_array_lp ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr create_R_array_2: @@ -4964,7 +4900,6 @@ st_fillr2_array: bcs fillr2_array_1 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr create_R_array_3: @@ -5175,7 +5110,6 @@ repl_args_b_4: str r8,[r9],#4 repl_args_b_1: ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -5191,7 +5125,6 @@ push_arg_b_2: push_arg_b_1: ldr r6,[r6,r3,lsl #2] ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -5208,7 +5141,6 @@ del_args: ldr r8,[r6,#8] str r8,[r7,#8] ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr del_args_2: @@ -5221,7 +5153,6 @@ del_args_2: ldr r8,[r8] str r8,[r7,#8] ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr del_args_3: @@ -5243,7 +5174,6 @@ del_args_copy_args: bgt del_args_copy_args ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .thumb_func @@ -5262,7 +5192,6 @@ sin_real: vmov d0,r0,r1 .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.cos_real,"ax" @@ -5276,7 +5205,6 @@ cos_real: vmov d0,r0,r1 .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.tan_real,"ax" @@ -5290,7 +5218,6 @@ tan_real: vmov d0,r0,r1 .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.asin_real,"ax" @@ -5304,7 +5231,6 @@ asin_real: vmov d0,r0,r1 .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.acos_real,"ax" @@ -5318,7 +5244,6 @@ acos_real: vmov d0,r0,r1 .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.atan_real,"ax" @@ -5332,7 +5257,6 @@ atan_real: vmov d0,r0,r1 .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.ln_real,"ax" @@ -5346,7 +5270,6 @@ ln_real: vmov d0,r0,r1 .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.log10_real,"ax" @@ -5359,7 +5282,6 @@ log10_real: vmov d0,r0,r1 .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.exp_real,"ax" @@ -5373,7 +5295,6 @@ exp_real: vmov d0,r0,r1 .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.pow_real,"ax" @@ -5392,7 +5313,6 @@ pow_real: vmov d0,r0,r1 .endif ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .section .text.entier_real,"ax" @@ -5411,7 +5331,6 @@ r_to_i_real: vcvtr.s32.f64 s0,d0 vmov r4,s0 ldr lr,[sp],#4 - orr lr,lr,#1 mov pc,lr .text |