summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn van Groningen2011-11-15 15:25:15 +0000
committerJohn van Groningen2011-11-15 15:25:15 +0000
commitb67bd58b0bc6970688f7d31803685d83bb0e03a6 (patch)
tree988ae503f4186a060b437d7573ba3eb35967da18
parentfix garbage collect test for readLineSF (diff)
fix compacting of reals
-rw-r--r--acompact.asm19
1 files changed, 8 insertions, 11 deletions
diff --git a/acompact.asm b/acompact.asm
index 1fb8ea1..5a0b3d8 100644
--- a/acompact.asm
+++ b/acompact.asm
@@ -723,7 +723,7 @@ bit_in_next_word:
move_record_2:
cmp word ptr (-2+2)[rax],1
ja move_hnf_2
- jb move_real_or_file
+ jb move_record_2bb
move_record_2_ab:
mov rdx,qword ptr [rcx]
@@ -753,14 +753,14 @@ move_record_1:
movzx rbx,word ptr (-2+2)[rax]
test rbx,rbx
jne move_hnf_1
- jmp move_int_bool_or_char
+ jmp move_real_int_bool_or_char
-move_real_or_file:
+move_record_2bb:
mov rax,qword ptr [rcx]
add rcx,8
mov qword ptr [rdi],rax
add rdi,8
-move_int_bool_or_char:
+move_real_int_bool_or_char:
mov rax,qword ptr [rcx]
add rcx,8
mov qword ptr [rdi],rax
@@ -772,19 +772,16 @@ copy_normal_hnf_0:
jmp find_non_zero_long
move_hnf_0:
- cmp rax,offset dINT+2
- jb move_real_file_string_or_array
+ cmp rax,offset __STRING__+2
+ jbe move_string_or_array
cmp rax,offset CHAR+2
- jbe move_int_bool_or_char
+ jbe move_real_int_bool_or_char
test rsi,rsi
jne bsf_and_copy_nodes
jmp find_non_zero_long
-move_real_file_string_or_array:
- lea r9,__STRING__+2
- cmp rax,r9
- ja move_real_or_file
+move_string_or_array:
jne move_array
mov rax,qword ptr [rcx]