summaryrefslogtreecommitdiff
path: root/amark.asm
diff options
context:
space:
mode:
Diffstat (limited to 'amark.asm')
-rw-r--r--amark.asm21
1 files changed, 21 insertions, 0 deletions
diff --git a/amark.asm b/amark.asm
index afcc68e..94cb980 100644
--- a/amark.asm
+++ b/amark.asm
@@ -864,6 +864,11 @@ _mark_real_int_bool_or_char:
or dword ptr 4[rdi+rbx*4],1
jmp _mark_next_node
+ ifdef PIC
+_mark_normal_hnf_0_:
+ or dword ptr [rdi+rbx*4],esi
+ endif
+
_mark_normal_hnf_0:
inc r14
jmp _mark_next_node
@@ -966,6 +971,12 @@ _mark_record_1:
_mark_string_or_array:
je _mark_string_
+ ifdef PIC
+ lea r9,__ARRAY__+2+0
+ cmp rax,r9
+ jb _mark_normal_hnf_0_
+ endif
+
_mark_array:
mov rbp,qword ptr 16[rcx]
test rbp,rbp
@@ -1876,6 +1887,10 @@ __no_int_3:
__no_char_3:
jb __mark_real_bool_or_small_string
+ ifdef PIC
+__mark_normal_hnf_0:
+ endif
+
ifdef NEW_DESCRIPTORS
lea rcx,((-8)-2)[rax]
else
@@ -2018,6 +2033,12 @@ __mark_record_1:
__mark_string_or_array:
je __mark_string_
+ ifdef PIC
+ lea r9,__ARRAY__+2+0
+ cmp rax,r9
+ jb __mark_normal_hnf_0
+ endif
+
__mark_array:
mov rbp,qword ptr 16[rcx]
test rbp,rbp