summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn van Groningen2013-07-03 12:43:33 +0000
committerJohn van Groningen2013-07-03 12:43:33 +0000
commit04fa833046f879369f008eda3ad0068418edb0e1 (patch)
tree039d2af2c3e00cabc5d3baee3ec09ffd4c8d01a2
parentif PIC is defined, make some code position independent (diff)
if PIC is defined, make more code position independent
-rw-r--r--acompact_rmark_prefetch.asm12
1 files changed, 12 insertions, 0 deletions
diff --git a/acompact_rmark_prefetch.asm b/acompact_rmark_prefetch.asm
index f5116b5..77df8a2 100644
--- a/acompact_rmark_prefetch.asm
+++ b/acompact_rmark_prefetch.asm
@@ -279,9 +279,16 @@ rmarkp_add_item3:
mov rbp,qword ptr rmarkp_queue_first+0
mov rdx,qword ptr rmarkp_n_queue_items_16+0
+ ifdef PIC
+ lea r9,rmarkp_queue+0
+ mov qword ptr [r9+rbp],rcx
+ mov qword ptr 8[r9+rbp],rsi
+ mov qword ptr 16[r9+rbp],rsi
+ else
mov qword ptr rmarkp_queue[rbp],rcx
mov qword ptr rmarkp_queue+8[rbp],rsi
mov qword ptr rmarkp_queue+16[rbp],rsi
+ endif
add rbp,32
and rbp,7*32
@@ -330,8 +337,13 @@ rmarkp_last_item_in_queue:
mov rax,qword ptr neg_heap_p3+0
+ ifdef PIC
+ mov rsi,qword ptr 8[r9+rbx]
+ mov rbx,qword ptr 16[r9+rbx]
+ else
mov rsi,qword ptr rmarkp_queue+8[rbx]
mov rbx,qword ptr rmarkp_queue+16[rbx]
+ endif
add rax,rcx