summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn van Groningen2012-02-02 14:02:56 +0000
committerJohn van Groningen2012-02-02 14:02:56 +0000
commit2edcb9740bc4f75d21609be5a972df444619e8c8 (patch)
tree0a03c96fd01695ef499d5c7a0fb5269e3ea556d8
parentfix marking of Real nodes (diff)
fix marking of Real nodes
-rw-r--r--macho64/amark_prefetch.s37
1 files changed, 14 insertions, 23 deletions
diff --git a/macho64/amark_prefetch.s b/macho64/amark_prefetch.s
index 63b0360..70070aa 100644
--- a/macho64/amark_prefetch.s
+++ b/macho64/amark_prefetch.s
@@ -512,7 +512,7 @@ end_pmark_nodes_:
pmark_lazy_node:
movsxd rbp,dword ptr (-4)[rax]
test rbp,rbp
- je pmark_real_or_file
+ je pmark_node2_bb
cmp rbp,1
att_jle pmark_lazy_node_1
@@ -549,7 +549,7 @@ pmark_closure_with_unboxed_arguments:
mov rax,rbp
and rbp,255
sub rbp,1
- att_je pmark_real_or_file
+ att_je pmark_node2_bb
shr rax,8
add rbp,2
@@ -575,9 +575,9 @@ pmark_closure_with_one_boxed_argument:
att_jmp pmark_node
pmark_hnf_0:
- lea r9,dINT+2[rip]
+ lea r9,__STRING__+2[rip]
cmp rax,r9
- jb pmark_real_file_or_string
+ jbe pmark_string_or_array
or dword ptr [rdi+rbx*4],esi
@@ -598,12 +598,7 @@ pmark_normal_hnf_0:
inc r14
att_jmp pmark_next_node
-pmark_real_file_or_string:
- lea r9,__STRING__+2[rip]
- cmp rax,r9
- jbe pmark_string_or_array
-
-pmark_real_or_file:
+pmark_node2_bb:
or dword ptr [rdi+rbx*4],esi
add r14,3
@@ -1323,7 +1318,7 @@ pmarkr_argument_part_parent:
pmarkr_lazy_node:
movsxd rbp,dword ptr (-4)[rax]
test rbp,rbp
- je pmarkr_real_or_file
+ je pmarkr_node2_bb
add rcx,8
cmp rbp,1
@@ -1388,7 +1383,7 @@ pmarkr_fits_in_word_7_:
pmarkr_closure_1_with_unboxed_argument:
sub rcx,8
- att_jmp pmarkr_real_or_file
+ att_jmp pmarkr_node2_bb
pmarkr_hnf_0:
lea r9,dINT+2[rip]
@@ -1397,10 +1392,9 @@ pmarkr_hnf_0:
mov rbp,qword ptr 8[rcx]
cmp rbp,33
-
jb pmarkr_small_int
-pmarkr_bool_or_small_string:
+pmarkr_real_int_bool_or_small_string:
lea r9,bit_set_table2[rip]
mov edx,dword ptr [r9+rdx]
add r14,2
@@ -1417,7 +1411,9 @@ pmarkr_small_int:
att_jmp pmarkr_next_node
pmarkr_no_int_3:
- jb pmarkr_real_file_or_string
+ lea r9,__STRING__+2[rip]
+ cmp rax,r9
+ jbe pmarkr_string_or_array
lea r9,CHAR+2[rip]
cmp rax,r9
@@ -1430,17 +1426,12 @@ pmarkr_no_int_3:
att_jmp pmarkr_next_node
pmarkr_no_char_3:
- att_jb pmarkr_bool_or_small_string
+ att_jb pmarkr_real_int_bool_or_small_string
lea rcx,((-8)-2)[rax]
att_jmp pmarkr_next_node
-pmarkr_real_file_or_string:
- lea r9,__STRING__+2[rip]
- cmp rax,r9
- jbe pmarkr_string_or_array
-
-pmarkr_real_or_file:
+pmarkr_node2_bb:
lea r9,bit_set_table2[rip]
mov edx,dword ptr [r9+rdx]
add r14,3
@@ -1554,7 +1545,7 @@ pmarkr_record_1:
cmp word ptr (-2+2)[rax],0
att_jne pmarkr_hnf_1
sub rcx,8
- att_jmp pmarkr_bool_or_small_string
+ att_jmp pmarkr_real_int_bool_or_small_string
pmarkr_string_or_array:
je pmarkr_string_