summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--thumb2copy.s75
-rw-r--r--thumb2startup.s221
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