From: <brg...@us...> - 2011-10-22 22:07:12
|
Revision: 419 http://ggnfs.svn.sourceforge.net/ggnfs/?rev=419&view=rev Author: brgladman Date: 2011-10-22 22:07:05 +0000 (Sat, 22 Oct 2011) Log Message: ----------- correct Windows assembler handling of RIP relative addressing Modified Paths: -------------- trunk/src/experimental/lasieve4_64/x64/asm-zeit.asm trunk/src/experimental/lasieve4_64/x64/mpqs_gauss.asm trunk/src/experimental/lasieve4_64/x64/mpqs_sieve.asm trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm Modified: trunk/src/experimental/lasieve4_64/x64/asm-zeit.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/asm-zeit.asm 2011-10-22 19:20:40 UTC (rev 418) +++ trunk/src/experimental/lasieve4_64/x64/asm-zeit.asm 2011-10-22 22:07:05 UTC (rev 419) @@ -16,16 +16,16 @@ rdtsc shl rdx, 32 or rax, rdx - mov rdx, [rip+asmzeitcounter] - sub [rdx+rdi*8], rax + mov rdx, [rel asmzeitcounter] + sub [rdx+rcx*8], rax ret LEAF_PROC zeitB rdtsc shl rdx, 32 or rax, rdx - mov rdx, [rip+asmzeitcounter] - add [rdx+rdi*8], rax + mov rdx, [rel asmzeitcounter] + add [rdx+rcx*8], rax ret end Modified: trunk/src/experimental/lasieve4_64/x64/mpqs_gauss.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/mpqs_gauss.asm 2011-10-22 19:20:40 UTC (rev 418) +++ trunk/src/experimental/lasieve4_64/x64/mpqs_gauss.asm 2011-10-22 22:07:05 UTC (rev 419) @@ -28,10 +28,10 @@ FRAME_PROC asm_gauss, 0, reg_save_list -.1: mov eax, [rip+mpqs_gauss_k] +.1: mov eax, [rel mpqs_gauss_k] dec eax mov r8d, 1 - mov [rip+mpqs_gauss_k], eax + mov [rel mpqs_gauss_k], eax jl .14 mov ecx, eax and ecx, 31 @@ -39,31 +39,31 @@ mov ecx, eax shr ecx, 5 ; %r11d mov r11d, ecx - mov ecx, [rip+mpqs_gauss_j] + mov ecx, [rel mpqs_gauss_j] mov rdi, mpqs_gauss_c - mov rsi, [rip+mpqs_gauss_row] + mov rsi, [rel mpqs_gauss_row] mov eax, r11d - mov edx, [rip+mpqs_gauss_n32] + mov edx, [rel mpqs_gauss_n32] mov rsi, [rsi+rcx*8] sub rax, rdx dec ecx lea rsi, [rsi+rax*4] - mov eax, [rip+mpqs_gauss_n32] + mov eax, [rel mpqs_gauss_n32] align 16 .2: inc ecx -.3: cmp ecx, [rip+mpqs_gauss_m] +.3: cmp ecx, [rel mpqs_gauss_m] jnc .15 lea rsi, [rsi+rax*4] mov edx, [rsi] and edx, r8d jz .2 -.4: cmp ecx, [rip+mpqs_gauss_j] +.4: cmp ecx, [rel mpqs_gauss_j] jz .7 - mov rsi, [rip+mpqs_gauss_row] + mov rsi, [rel mpqs_gauss_row] mov rax, [rsi+rcx*8] ; mpqs_gauss_row[j] - mov edx, [rip+mpqs_gauss_j] + mov edx, [rel mpqs_gauss_j] mov r9, [rsi+rdx*8] ; mpqs_gauss_row[mpqs_gauss_j] xor rdx, rdx .5: movq mm0, [rax+rdx*4] @@ -71,20 +71,20 @@ movq [r9+rdx*4], mm0 movq [rax+rdx*4], mm1 add rdx, 2 - cmp edx, [rip+mpqs_gauss_n32] + cmp edx, [rel mpqs_gauss_n32] jc .5 -.6: mov ecx, [rip+mpqs_gauss_j] +.6: mov ecx, [rel mpqs_gauss_j] .7: mov rsi, mpqs_gauss_d - mov eax, [rip+mpqs_gauss_k] + mov eax, [rel mpqs_gauss_k] mov [rsi+rax*2], cx mov [rdi+rcx*2], ax - inc dword[rip+mpqs_gauss_j] + inc dword[rel mpqs_gauss_j] mov r10d, ecx - mov rsi, [rip+mpqs_gauss_mat] + mov rsi, [rel mpqs_gauss_mat] mov rdi, mpqs_gauss_col mov edx, r11d test ecx, ecx - mov eax, [rip+mpqs_gauss_n32] + mov eax, [rel mpqs_gauss_n32] lea rsi, [rsi+rdx*4] mov rdx, 2 jz .9 @@ -102,7 +102,7 @@ lea rsi, [rsi+rax*4] jc .8 .9: inc ecx - cmp ecx, [rip+mpqs_gauss_m] + cmp ecx, [rel mpqs_gauss_m] lea rsi, [rsi+rax*4] jnc .11 @@ -114,14 +114,14 @@ cmovnz r9, rdx inc rcx add rdi, r9 - cmp ecx, [rip+mpqs_gauss_m] + cmp ecx, [rel mpqs_gauss_m] lea rsi, [rsi+rax*4] jc .10 .11: mov r8, mpqs_gauss_col cmp rdi, r8 jz .1 mov ecx, r10d - mov rsi, [rip+mpqs_gauss_row] + mov rsi, [rel mpqs_gauss_row] mov rsi, [rsi+rcx*8] mov edx, r11d cmp edx, 2 @@ -133,7 +133,7 @@ align 16 .12: movzx r9, word[r8] - mov rax, [rip+mpqs_gauss_row] + mov rax, [rel mpqs_gauss_row] mov rax, [rax+r9*8] xor ecx, ecx .13: mov edx, [rsi+rcx*4] @@ -150,14 +150,14 @@ EXIT_PROC reg_save_list .15: mov rdi, mpqs_gauss_d - mov eax, [rip+mpqs_gauss_k] + mov eax, [rel mpqs_gauss_k] mov r9w, -1 mov [rdi+rax*2], r9w mov r10d, ecx jmp .14 .16 movzx r9, word[r8] movq mm0, [rsi] - mov rsi, [rip+mpqs_gauss_row] + mov rsi, [rel mpqs_gauss_row] mov rax, [rsi+r9*8] .17: movq mm1, [rax] lea r8, [r8+2] @@ -171,7 +171,7 @@ .18: movq mm0, [rsi] movzx r9, word[r8] movq mm2, [rsi+8] - mov rsi, [rip+mpqs_gauss_row] + mov rsi, [rel mpqs_gauss_row] mov rax, [rsi+r9*8] .19: movq mm1, [rax] lea r8, [r8+2] @@ -189,7 +189,7 @@ movzx r9, word[r8] movq mm2, [rsi+8] movq mm4, [rsi+16] - mov rsi, [rip+mpqs_gauss_row] + mov rsi, [rel mpqs_gauss_row] mov rax, [rsi+r9*8] .21: movq mm1, [rax] lea r8, [r8+2] Modified: trunk/src/experimental/lasieve4_64/x64/mpqs_sieve.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/mpqs_sieve.asm 2011-10-22 19:20:40 UTC (rev 418) +++ trunk/src/experimental/lasieve4_64/x64/mpqs_sieve.asm 2011-10-22 22:07:05 UTC (rev 419) @@ -17,8 +17,8 @@ FRAME_PROC asm_sieve, 0, reg_save_list - movzx rax, word[rip+mpqs_sievebegin] - movzx r10, word[rip+mpqs_sievelen] + movzx rax, word[rel mpqs_sievebegin] + movzx r10, word[rel mpqs_sievelen] mov rcx, mpqs_FB mov r8, mpqs_FB_start mov r9, mpqs_FB_log @@ -27,7 +27,7 @@ lea r9, [r9+rax] mov r11, r10 shr r10, 2 - mov r13, [rip+mpqs_sievearray] + mov r13, [rel mpqs_sievearray] mov r15, r13 add r15, r11 Modified: trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm 2011-10-22 19:20:40 UTC (rev 418) +++ trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm 2011-10-22 22:07:05 UTC (rev 419) @@ -58,10 +58,10 @@ pxor xmm5, xmm5 movzx r9, word[rdi+8] ; %r9 - movzx rcx, word[rip+mpqs_td_begin] + movzx rcx, word[rel mpqs_td_begin] mov rbx, mpqs_FB_inv_info mov r11, mpqs_FB_start - mov r13w, [rip+mpqs_nFBk_1] + mov r13w, [rel mpqs_nFBk_1] add r13w, 4 movaps xmm0, [rbx] movaps xmm1, [rbx+16] @@ -139,7 +139,7 @@ jmp .1 .2: mov r10, mpqs_FB - movzx rdx, word[rip+mpqs_nFBk_1] + movzx rdx, word[rel mpqs_nFBk_1] add rdx, rdx add rdx, rdx sub r10, rdx @@ -163,7 +163,7 @@ inc r9 cmp r9, 27 jnc .16 - mov cx, [rip+mpqs_nFBk_1] + mov cx, [rel mpqs_nFBk_1] mov [rdi+r9*2+8], cx shr r8, 1 jmp .5 @@ -195,7 +195,7 @@ mul r11d mov r8d, eax mov r11, mpqs_FB_inv - movzx rcx, word[rip+mpqs_nFBk_1] + movzx rcx, word[rel mpqs_nFBk_1] add rcx, rcx add rcx, rcx sub r11, rcx @@ -223,7 +223,7 @@ jz .15 mov r11, mpqs_FBk_inv mov r10, mpqs_FBk - movzx rsi, word[rip+mpqs_nFBk] + movzx rsi, word[rel mpqs_nFBk] inc rsi .10: dec rsi mov eax, r8d @@ -247,8 +247,8 @@ jz .15 mov r11, mpqs_FB_A_inv mov r10, mpqs_Adiv_all - mov r13w, [rip+mpqs_nFB] - add r13w, [rip+mpqs_nFBk] + mov r13w, [rel mpqs_nFB] + add r13w, [rel mpqs_nFBk] movzx rsi, word[mpqs_nAdiv_total] inc rsi .13: dec rsi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |