diff options
Diffstat (limited to 'thumb2mark.s')
-rw-r--r-- | thumb2mark.s | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/thumb2mark.s b/thumb2mark.s index a94235f..e5ff35f 100644 --- a/thumb2mark.s +++ b/thumb2mark.s @@ -53,7 +53,7 @@ _mark_cafs_lp: sto r4,r12,end_vector,0
.align
- add lr,pc,#9
+ add lr,pc,#8
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,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl _mark_stack_nodes
@@ -159,7 +159,7 @@ restore_lazy_array: sub r4,r4,r8
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl reorder
@@ -234,7 +234,7 @@ end_finalizers_after_mark: str r2,[sp,#-4]!
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl add_garbage_collect_time
@@ -343,7 +343,7 @@ _no_heap_use_message2: .ifdef FINALIZERS
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl call_finalizers
.endif
@@ -946,7 +946,9 @@ _mark_next_node: .thumb_func
_end_mark_nodes:
- ldr pc,[sp],#4
+ ldr lr,[sp],#4
+ orr lr,lr,#1
+ mov pc,lr
.thumb_func
_mark_lazy_node:
@@ -1281,7 +1283,7 @@ _mark_ab_array: lao r12,end_vector,5
sto r4,r12,end_vector,5
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl _mark_stack_nodes
@@ -1356,7 +1358,7 @@ _end_set_a_array_bits: lao r12,end_vector,8
sto r4,r12,end_vector,8
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl _mark_stack_nodes
@@ -1421,7 +1423,7 @@ _end_set_lazy_array_bits: lao r12,end_vector,11
sto r4,r12,end_vector,11
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl _mark_stack_nodes
@@ -2362,7 +2364,7 @@ __mark__ab__record__array: add r7,r7,r6
.align
- add lr,pc,#9
+ add lr,pc,#8
str lr,[sp,#-4]!
bl reorder
|