summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--thumb2compact_rmark.s12
1 files changed, 8 insertions, 4 deletions
diff --git a/thumb2compact_rmark.s b/thumb2compact_rmark.s
index 6dc8107..8680086 100644
--- a/thumb2compact_rmark.s
+++ b/thumb2compact_rmark.s
@@ -34,7 +34,11 @@ rmark_more_stack_nodes:
orr r8,r8,r4
str r8,[r10,r3,lsl #2]
- ldr r4,[r6]
+ ands lr,r6,#1
+ it eq
+ ldreq r4,[r6]
+ it ne
+ ldrne r4,[r6,#-1]
.align
add lr,pc,#9
str lr,[sp,#-4]!
@@ -698,7 +702,7 @@ end_rmark_nodes:
ldr pc,[sp],#4
rmark_lazy_node:
- ldr r8,[r4,#-4]
+ ldr r8,[r4,#-5]
cmp r8,#0
beq rmark_next_node
@@ -831,11 +835,11 @@ rmark_no_normal_hnf_0:
tst r4,r4
beq rmark_lazy_array
- ldrh r7,[r4,#-2+2]
+ ldrh r7,[r4,#-3+2]
tst r7,r7
beq rmark_b_array
- ldrh r4,[r4,#-2]
+ ldrh r4,[r4,#-3]
tst r4,r4
beq rmark_b_array