diff options
author | John van Groningen | 2012-02-02 14:02:56 +0000 |
---|---|---|
committer | John van Groningen | 2012-02-02 14:02:56 +0000 |
commit | 2edcb9740bc4f75d21609be5a972df444619e8c8 (patch) | |
tree | 0a03c96fd01695ef499d5c7a0fb5269e3ea556d8 /macho64 | |
parent | fix marking of Real nodes (diff) |
fix marking of Real nodes
Diffstat (limited to 'macho64')
-rw-r--r-- | macho64/amark_prefetch.s | 37 |
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_ |