summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCamil Staps2016-10-16 12:35:23 +0000
committerCamil Staps2016-10-16 12:35:23 +0000
commitf5c77a356b00547f04cda11eb029670107a2dff0 (patch)
tree2ba943a7abd1455753d4e286fae85ac06db6411c
parentTEMPORARY 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.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