Commit 4934d2a0 authored by John van Groningen's avatar John van Groningen
Browse files

remove old code for old descriptor format in compacting garbage collector for Intel and AMD64

parent dd968699
......@@ -473,16 +473,15 @@ rmark_large_tuple_or_record:
and rbx,rbp
jne rmark_hnf_1
ifdef NEW_DESCRIPTORS
mov rbx,qword ptr neg_heap_p3+0
lea rbx,(-8)[rcx+rbx]
ifdef PIC
ifdef PIC
movsxd d3,dword ptr (-8)[rax]
add rax,d3
else
else
mov eax,dword ptr (-8)[rax]
endif
endif
mov d3,rbx
and d3,31*8
......@@ -525,36 +524,6 @@ rmark_tuple_selector_node_2:
mov qword ptr [rsi],rcx
mov qword ptr [rdx],rcx
jmp rmark_node_d1
else
rmark_small_tuple_or_record:
mov rbx,qword ptr neg_heap_p3
lea rbx,(-8)[rcx+rbx]
push rcx
mov rcx,rbx
and rcx,31*8
shr rbx,8
mov ecx,dword ptr (bit_clear_table2)[rcx]
and dword ptr [rdi+rbx*4],ecx
mov eax,(-8)[rax]
mov rcx,rdx
push rsi
mov eax,4[rax]
call near ptr rax
pop rsi
pop rdx
mov qword ptr [rsi],rcx
mov rbx,qword ptr pointer_compare_address
mov qword ptr (-8)[rdx],offset e__system__nind
mov qword ptr [rdx],rcx
jmp rmark_node_d1
endif
rmark_record_selector_node_1:
je rmark_strict_record_selector_node_1
......@@ -579,7 +548,6 @@ rmark_record_selector_node_1:
cmp word ptr (-2)[rbx],258
jbe rmark_small_tuple_or_record
ifdef NEW_DESCRIPTORS
mov d2,qword ptr 16[rdx]
mov rbx,qword ptr neg_heap_p3+0
......@@ -646,9 +614,6 @@ rmark_tuple_or_record_selector_node_2:
mov qword ptr [rbp],rcx
mov rdx,rbp
jmp rmark_node_d1
else
jmp rmark_large_tuple_or_record
endif
rmark_strict_record_selector_node_1:
mov rbp,rbx
......@@ -701,12 +666,11 @@ rmark_select_from_small_record:
cmp rcx,qword ptr pointer_compare_address+0
ja rmark_selector_pointer_not_reversed
ifdef NEW_DESCRIPTORS
ifdef PIC
ifdef PIC
movzx eax,word ptr (4-8)[rbx]
else
else
movzx eax,word ptr 4[rbx]
endif
endif
cmp rax,16
jle rmark_strict_record_selector_node_2
mov rax,qword ptr (-24)[d2+rax]
......@@ -716,11 +680,11 @@ rmark_strict_record_selector_node_2:
rmark_strict_record_selector_node_3:
mov qword ptr 8[rcx],rax
ifdef PIC
ifdef PIC
movzx eax,word ptr (6-8)[rbx]
else
else
movzx eax,word ptr 6[rbx]
endif
endif
test rax,rax
je rmark_strict_record_selector_node_5
cmp rax,16
......@@ -732,34 +696,23 @@ rmark_strict_record_selector_node_4:
mov qword ptr 16[rcx],rax
rmark_strict_record_selector_node_5:
ifdef PIC
ifdef PIC
mov rax,qword ptr ((-8)-8)[rbx]
else
mov rax,qword ptr (-8)[rbx]
endif
else
mov qword ptr [rcx],rax
mov qword ptr [rsi],rcx
push rsi
mov ebx,4[rbx]
call near ptr rbx
pop rsi
mov rax,qword ptr [rcx]
mov rax,qword ptr (-8)[rbx]
endif
add rsi,1
mov qword ptr [rcx],rsi
mov qword ptr (-1)[rsi],rax
jmp rmark_next_node
rmark_selector_pointer_not_reversed:
ifdef NEW_DESCRIPTORS
ifdef PIC
ifdef PIC
movzx eax,word ptr (4-8)[rbx]
else
else
movzx eax,word ptr 4[rbx]
endif
endif
cmp rax,16
jle rmark_strict_record_selector_node_6
mov rax,qword ptr (-24)[d2+rax]
......@@ -769,11 +722,11 @@ rmark_strict_record_selector_node_6:
rmark_strict_record_selector_node_7:
mov qword ptr 8[rcx],rax
ifdef PIC
ifdef PIC
movzx eax,word ptr (6-8)[rbx]
else
else
movzx eax,word ptr 6[rbx]
endif
endif
test rax,rax
je rmark_strict_record_selector_node_9
cmp rax,16
......@@ -785,16 +738,12 @@ rmark_strict_record_selector_node_8:
mov qword ptr 16[rcx],rax
rmark_strict_record_selector_node_9:
ifdef PIC
ifdef PIC
mov rax,qword ptr ((-8)-8)[rbx]
else
mov rax,qword ptr (-8)[rbx]
endif
mov qword ptr [rcx],rax
else
mov ebx,4[rbx]
call near ptr rbx
mov rax,qword ptr (-8)[rbx]
endif
mov qword ptr [rcx],rax
jmp rmark_next_node
rmark_reverse_and_mark_next_node:
......@@ -898,11 +847,8 @@ rmark_hnf_0:
endif
and dword ptr [rdi+rbp*4],edx
ifdef NEW_DESCRIPTORS
lea rdx,((-8)-2)[rax]
else
lea rdx,((-12)-2)[rax]
endif
mov qword ptr [rsi],rdx
cmp rcx,rbx
ja rmark_next_node
......
......@@ -390,18 +390,17 @@ rmarkr_large_tuple_or_record:
pop rax
jne rmarkr_hnf_1
ifdef NEW_DESCRIPTORS
mov rbx,qword ptr neg_heap_p3+0
lea rbx,(-8)[rcx+rbx]
push rcx
ifdef PIC
ifdef PIC
movsxd rcx,dword ptr (-8)[rax]
add rax,rcx
else
else
mov eax,dword ptr (-8)[rax]
endif
endif
mov rcx,rbx
and rcx,31*8
......@@ -445,33 +444,6 @@ rmarkr_tuple_selector_node_2:
endif
mov qword ptr [rdx],rcx
jmp rmarkr_node
else
rmarkr_small_tuple_or_record:
mov rbx,qword ptr neg_heap_p3+0
lea rbx,(-8)[rcx+rbx]
push rcx
mov rcx,rbx
and rcx,31*8
shr rbx,8
mov ecx,dword ptr (bit_clear_table2)[rcx]
and dword ptr [rdi+rbx*4],ecx
mov eax,(-8)[rax]
mov rcx,rdx
push rbp
mov eax,4[rax]
call near ptr rax
pop rbp
pop rdx
mov qword ptr (-8)[rdx],offset e__system__nind
mov qword ptr [rdx],rcx
jmp rmarkr_node
endif
rmarkr_record_selector_node_1:
je rmarkr_strict_record_selector_node_1
......@@ -499,7 +471,6 @@ rmarkr_record_selector_node_1:
je rmarkr_hnf_1
cmp word ptr (-2)[rbx],258
ifdef NEW_DESCRIPTORS
jbe rmarkr_small_tuple_or_record
mov rbx,qword ptr 16[rdx]
......@@ -565,10 +536,6 @@ rmarkr_tuple_or_record_selector_node_2:
endif
mov qword ptr [rdx],rcx
jmp rmarkr_node
else
jbe rmarkr_small_tuple_or_record
jmp rmarkr_large_tuple_or_record
endif
rmarkr_strict_record_selector_node_1:
push rax
......@@ -626,12 +593,11 @@ rmarkr_select_from_small_record:
endif
sub rcx,8
ifdef NEW_DESCRIPTORS
ifdef PIC
ifdef PIC
movzx ebx,word ptr (4-8)[rax]
else
else
movzx ebx,word ptr 4[rax]
endif
endif
cmp rbx,16
jle rmarkr_strict_record_selector_node_2
add rbx,qword ptr 16[rdx]
......@@ -642,11 +608,11 @@ rmarkr_strict_record_selector_node_2:
rmarkr_strict_record_selector_node_3:
mov qword ptr 8[rcx],rbx
ifdef PIC
ifdef PIC
movzx ebx,word ptr (6-8)[rax]
else
else
movzx ebx,word ptr 6[rax]
endif
endif
test rbx,rbx
je rmarkr_strict_record_selector_node_5
cmp rbx,16
......@@ -658,16 +624,12 @@ rmarkr_strict_record_selector_node_4:
mov qword ptr 16[rcx],rbx
rmarkr_strict_record_selector_node_5:
ifdef PIC
ifdef PIC
mov rax,qword ptr ((-8)-8)[rbx]
else
mov rax,qword ptr (-8)[rbx]
endif
mov qword ptr [rcx],rax
else
mov eax,4[rax]
call near ptr rax
mov rax,qword ptr (-8)[rbx]
endif
mov qword ptr [rcx],rax
jmp rmarkr_next_node
; a2,d1: free
......@@ -778,11 +740,7 @@ rmarkr_hnf_0:
endif
and dword ptr [rdi+rbx*4],ecx
ifdef NEW_DESCRIPTORS
lea rcx,((-8)-2)[rax]
else
lea rcx,((-12)-2)[rax]
endif
jmp rmarkr_next_node_after_static
rmarkr_int_3:
......
......@@ -491,7 +491,6 @@ rmark_large_tuple_or_record:
jc rmark_hnf_1
#endif
#ifdef NEW_DESCRIPTORS
movl neg_heap_p3,d1
lea -4(a0,d1),d1
......@@ -526,39 +525,6 @@ rmark_tuple_selector_node_2:
movl $e__system__nind,-4(a1)
movl a0,(a1)
jmp rmark_node_d1
#else
rmark_small_tuple_or_record:
movl neg_heap_p3,d1
lea -4(a0,d1),d1
pushl a0
# ifdef NO_BIT_INSTRUCTIONS
movl d1,a0
andl $31*4,a0
shrl $7,d1
movl bit_clear_table(a0),a0
andl a0,(a4,d1,4)
# else
shrl $2,d1
btr d1,(a4)
# endif
movl -8(d0),d0
movl a1,a0
pushl a3
call *4(d0)
pop a3
pop a1
movl a0,(a3)
movl pointer_compare_address,d1
movl $e__system__nind,-4(a1)
movl a0,(a1)
jmp rmark_node_d1
#endif
rmark_record_selector_node_1:
je rmark_strict_record_selector_node_1
......@@ -580,7 +546,6 @@ rmark_record_selector_node_1:
je rmark_hnf_1
cmpw $258,-2(d1)
#ifdef NEW_DESCRIPTORS
jbe rmark_small_tuple_or_record
movl 8(a1),d1
......@@ -623,10 +588,6 @@ rmark_tuple_or_record_selector_node_2:
movl $e__system__nind,-4(a1)
movl a0,(a1)
jmp rmark_node_d1
#else
jbe rmark_small_tuple_or_record
jmp rmark_large_tuple_or_record
#endif
rmark_strict_record_selector_node_1:
#ifdef NO_BIT_INSTRUCTIONS
......@@ -671,7 +632,6 @@ rmark_select_from_small_record:
cmpl pointer_compare_address,a0
ja rmark_selector_pointer_not_reversed
#ifdef NEW_DESCRIPTORS
movzwl 4(d1),d0
cmpl $8,d0
jle rmark_strict_record_selector_node_2
......@@ -696,23 +656,12 @@ rmark_strict_record_selector_node_4:
rmark_strict_record_selector_node_5:
movl -4(d1),d0
#else
movl d0,(a0)
movl a0,(a3)
pushl a3
call *4(d1)
popl a3
movl (a0),d0
#endif
addl $1,a3
movl a3,(a0)
movl d0,-1(a3)
jmp rmark_next_node
rmark_selector_pointer_not_reversed:
#ifdef NEW_DESCRIPTORS
movzwl 4(d1),d0
cmpl $8,d0
jle rmark_strict_record_selector_node_6
......@@ -738,9 +687,6 @@ rmark_strict_record_selector_node_9:
movl -4(d1),d0
movl d0,(a0)
#else
call *4(d1)
#endif
jmp rmark_next_node
rmark_reverse_and_mark_next_node:
......
......@@ -395,7 +395,6 @@ rmarkr_large_tuple_or_record:
jc rmarkr_hnf_1
#endif
#ifdef NEW_DESCRIPTORS
movl neg_heap_p3,d1
lea -4(a0,d1),d1
......@@ -426,36 +425,6 @@ rmarkr_tuple_selector_node_2:
movl $e__system__nind,-4(a1)
movl a0,(a1)
jmp rmarkr_node
#else
rmarkr_small_tuple_or_record:
movl neg_heap_p3,d1
lea -4(a0,d1),d1
push a0
#ifdef NO_BIT_INSTRUCTIONS
movl d1,a0
andl $31*4,a0
shrl $7,d1
movl bit_clear_table(a0),a0
andl a0,(a4,d1,4)
#else
shrl $2,d1
btr d1,(a4)
#endif
movl -8(d0),d0
movl a1,a0
push a2
call *4(d0)
pop a2
pop a1
movl $e__system__nind,-4(a1)
movl a0,(a1)
jmp rmarkr_node
#endif
rmarkr_record_selector_node_1:
je rmarkr_strict_record_selector_node_1
......@@ -479,7 +448,6 @@ rmarkr_record_selector_node_1:
je rmarkr_hnf_1
cmpw $258,-2(d1)
#ifdef NEW_DESCRIPTORS
jbe rmarkr_small_tuple_or_record
movl 8(a1),d1
......@@ -521,10 +489,6 @@ rmarkr_tuple_or_record_selector_node_2:
movl $e__system__nind,-4(a1)
movl a0,(a1)
jmp rmarkr_node
#else
jbe rmarkr_small_tuple_or_record
jmp rmarkr_large_tuple_or_record
#endif
rmarkr_strict_record_selector_node_1:
#ifdef NO_BIT_INSTRUCTIONS
......@@ -570,7 +534,6 @@ rmarkr_select_from_small_record:
movl -8(d0),d0
subl $4,a0
#ifdef NEW_DESCRIPTORS
movzwl 4(d0),d1
cmpl $8,d1
jle rmarkr_strict_record_selector_node_2
......@@ -596,9 +559,6 @@ rmarkr_strict_record_selector_node_5:
movl -4(d0),d0
movl d0,(a0)
#else
call *4(d0)
#endif
jmp rmarkr_next_node
/ a2,d1: free
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment