From 6e4d2a9970e4f99137bb9aba1ce259eac5a8eb82 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Sat, 12 Nov 2016 22:13:36 +0000 Subject: Fix some add lr,pc,#8 -> #9 and orring loaded addresses before jumping in mark/compact files (old) --- thumb2compact.s | 12 ++++++------ thumb2compact_rmark.s | 14 +++++--------- thumb2compact_rmarkr.s | 2 +- thumb2mark.s | 22 ++++++++++------------ 4 files changed, 22 insertions(+), 28 deletions(-) diff --git a/thumb2compact.s b/thumb2compact.s index 0e0bd7b..33a214e 100644 --- a/thumb2compact.s +++ b/thumb2compact.s @@ -47,7 +47,7 @@ mark_cafs_lp: sto r6,r12,end_vector,13 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! .if COMPACT_MARK_WITH_STACK bl rmark_stack_nodes @@ -74,7 +74,7 @@ end_mark_cafs: lao r12,end_vector,14 sto r6,r12,end_vector,14 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! .if COMPACT_MARK_WITH_STACK bl rmark_stack_nodes @@ -84,7 +84,7 @@ end_mark_cafs: .ifdef MEASURE_GC .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl add_mark_compact_garbage_collect_time .endif @@ -228,12 +228,12 @@ finalizer_list_empty: sto r6,r12,end_vector,15 .if COMPACT_MARK_WITH_STACK .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl rmark_stack_nodes .else .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl mark_stack_nodes .endif @@ -989,7 +989,7 @@ move_array_ab: subs r4,r4,r3 add r7,r7,r6 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl reorder diff --git a/thumb2compact_rmark.s b/thumb2compact_rmark.s index e67557c..6dc8107 100644 --- a/thumb2compact_rmark.s +++ b/thumb2compact_rmark.s @@ -36,7 +36,7 @@ rmark_more_stack_nodes: ldr r4,[r6] .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl rmark_stack_node @@ -45,9 +45,7 @@ rmark_more_stack_nodes: ldo r12,r12,end_vector,17 cmp r9,r12 bne rmark_more_stack_nodes - ldr lr,[sp],#4 - orr lr,lr,#1 - mov pc,lr + ldr pc,[sp],#4 rmark_stack_node: subs sp,sp,#8 @@ -697,9 +695,7 @@ rmark_next_node: rmark_next_node_: end_rmark_nodes: - ldr lr,[sp],#4 - orr lr,lr,#1 - mov pc,lr + ldr pc,[sp],#4 rmark_lazy_node: ldr r8,[r4,#-4] @@ -863,7 +859,7 @@ rmark_ab_record_array: add r6,r6,#4 add r7,r7,r6 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl reorder @@ -970,7 +966,7 @@ rmark_array_nodes: ldr r4,[r6] .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl rmark_array_node diff --git a/thumb2compact_rmarkr.s b/thumb2compact_rmarkr.s index a1247e6..d684e3f 100644 --- a/thumb2compact_rmarkr.s +++ b/thumb2compact_rmarkr.s @@ -727,7 +727,7 @@ rmarkr_ab_record_array: add r6,r6,#4 add r7,r7,r6 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl reorder diff --git a/thumb2mark.s b/thumb2mark.s index e5ff35f..a94235f 100644 --- a/thumb2mark.s +++ b/thumb2mark.s @@ -53,7 +53,7 @@ _mark_cafs_lp: sto r4,r12,end_vector,0 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl _mark_stack_nodes @@ -71,7 +71,7 @@ _end_mark_cafs: lao r12,end_vector,1 sto r9,r12,end_vector,1 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl _mark_stack_nodes @@ -159,7 +159,7 @@ restore_lazy_array: sub r4,r4,r8 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl reorder @@ -234,7 +234,7 @@ end_finalizers_after_mark: str r2,[sp,#-4]! .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl add_garbage_collect_time @@ -343,7 +343,7 @@ _no_heap_use_message2: .ifdef FINALIZERS .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl call_finalizers .endif @@ -946,9 +946,7 @@ _mark_next_node: .thumb_func _end_mark_nodes: - ldr lr,[sp],#4 - orr lr,lr,#1 - mov pc,lr + ldr pc,[sp],#4 .thumb_func _mark_lazy_node: @@ -1283,7 +1281,7 @@ _mark_ab_array: lao r12,end_vector,5 sto r4,r12,end_vector,5 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl _mark_stack_nodes @@ -1358,7 +1356,7 @@ _end_set_a_array_bits: lao r12,end_vector,8 sto r4,r12,end_vector,8 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl _mark_stack_nodes @@ -1423,7 +1421,7 @@ _end_set_lazy_array_bits: lao r12,end_vector,11 sto r4,r12,end_vector,11 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl _mark_stack_nodes @@ -2364,7 +2362,7 @@ __mark__ab__record__array: add r7,r7,r6 .align - add lr,pc,#8 + add lr,pc,#9 str lr,[sp,#-4]! bl reorder -- cgit v1.2.3