summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn van Groningen2011-11-15 15:28:06 +0000
committerJohn van Groningen2011-11-15 15:28:06 +0000
commitd29ae7c0746a91959df030c8550e82912367e21f (patch)
treecc3bed145c0bd980470b95f1cd62b5d91aafbd73
parentfix compacting of reals (diff)
fix compacting for an empty A stack
-rw-r--r--acompact_rmark.asm7
-rw-r--r--acompact_rmark_prefetch.asm7
2 files changed, 8 insertions, 6 deletions
diff --git a/acompact_rmark.asm b/acompact_rmark.asm
index b3b1221..0cf0f33 100644
--- a/acompact_rmark.asm
+++ b/acompact_rmark.asm
@@ -7,10 +7,11 @@ rmark_stack_nodes1:
rmark_next_stack_node:
add rsi,8
+rmark_stack_nodes:
cmp rsi,qword ptr end_vector
je end_rmark_nodes
-rmark_stack_nodes:
+rmark_more_stack_nodes:
mov rcx,qword ptr [rsi]
mov rax,qword ptr neg_heap_p3
@@ -35,7 +36,7 @@ rmark_stack_nodes:
add rsi,8
cmp rsi,qword ptr end_vector
- jne rmark_stack_nodes
+ jne rmark_more_stack_nodes
ret
rmark_stack_node:
@@ -66,7 +67,7 @@ rmark_hnf_2:
mov rcx,qword ptr [rcx]
mov qword ptr 8[rsp],rbx
- mov qword ptr [rsp],rax
+ mov qword ptr [rsp],rax
cmp rsp,qword ptr end_stack
jb rmark_using_reversal
diff --git a/acompact_rmark_prefetch.asm b/acompact_rmark_prefetch.asm
index 2b38f13..046ab6c 100644
--- a/acompact_rmark_prefetch.asm
+++ b/acompact_rmark_prefetch.asm
@@ -21,10 +21,11 @@ rmarkp_stack_nodes1:
rmarkp_next_stack_node:
add rsi,8
+rmarkp_stack_nodes:
cmp rsi,qword ptr end_vector
je end_rmarkp_nodes
-rmarkp_stack_nodes:
+rmarkp_more_stack_nodes:
mov rcx,qword ptr [rsi]
mov rax,qword ptr neg_heap_p3
@@ -49,7 +50,7 @@ rmarkp_stack_nodes:
add rsi,8
cmp rsi,qword ptr end_vector
- jne rmarkp_stack_nodes
+ jne rmarkp_more_stack_nodes
ret
rmarkp_stack_node:
@@ -1149,7 +1150,7 @@ rmarkp_array_nodes:
mov rcx,qword ptr [rsi]
mov rax,qword ptr neg_heap_p3
- add rax,rcx
+ add rax,rcx
cmp rax,qword ptr heap_size_64_65
jnc rmarkp_next_array_node