From: <brg...@us...> - 2011-10-22 19:20:47
|
Revision: 418 http://ggnfs.svn.sourceforge.net/ggnfs/?rev=418&view=rev Author: brgladman Date: 2011-10-22 19:20:40 +0000 (Sat, 22 Oct 2011) Log Message: ----------- update Windows x64 assembler code Modified Paths: -------------- trunk/src/experimental/lasieve4_64/x64/MMX-TD1.asm trunk/src/experimental/lasieve4_64/x64/MMX-TD2.asm trunk/src/experimental/lasieve4_64/x64/lasched0.asm trunk/src/experimental/lasieve4_64/x64/lasched1.asm trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm trunk/src/experimental/lasieve4_64/x64/medsched0.asm trunk/src/experimental/lasieve4_64/x64/modinv1000.asm trunk/src/experimental/lasieve4_64/x64/modinv1000b.asm trunk/src/experimental/lasieve4_64/x64/mpqs_sieveinit.asm trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm trunk/src/experimental/lasieve4_64/x64/pt64.asm trunk/src/experimental/lasieve4_64/x64/search0.asm trunk/src/experimental/lasieve4_64/x64/slinie1A.asm trunk/src/experimental/lasieve4_64/x64/slinie2A.asm trunk/src/experimental/lasieve4_64/x64/slinie3A.asm trunk/src/experimental/lasieve4_64/x64/tdsieve-from-sched.asm Modified: trunk/src/experimental/lasieve4_64/x64/MMX-TD1.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/MMX-TD1.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/MMX-TD1.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -14,7 +14,7 @@ mov rdi, rcx mov esi, edx mov rdx, r8 - mov ecx, r9d + mov rcx, r9 mov r8d, esi movq mm2, [rdx] Modified: trunk/src/experimental/lasieve4_64/x64/MMX-TD2.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/MMX-TD2.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/MMX-TD2.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -14,7 +14,7 @@ mov rdi, rcx mov esi, edx mov rdx, r8 - mov ecx, r9d + mov rcx, r9 mov r8d, esi movdqa xmm2, [rdx] Modified: trunk/src/experimental/lasieve4_64/x64/lasched0.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/lasched0.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/lasched0.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -23,7 +23,7 @@ mov rdx, r8 mov ecx, r9d mov r8, [rsp+stack_use+40] - mov r9d, dword [rsp+stack_use+48] + mov r9d, [rsp+stack_use+48] shl rcx, n_i_bits mov eax, [rsi] Modified: trunk/src/experimental/lasieve4_64/x64/lasched1.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/lasched1.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/lasched1.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -23,7 +23,7 @@ mov rdx, r8 mov ecx, r9d mov r8, [rsp+stack_use+40] - mov r9d, dword [rsp+stack_use+48] + mov r9d, [rsp+stack_use+48] shl rcx, n_i_bits shr r9, 16 Modified: trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -178,13 +178,17 @@ psrldq xmm7, 8 mov esi, ebx pmuludq xmm12, xmm2 + add rsp, 32 call asm_modinv32b + sub rsp, 32 movd edi, xmm7 pmuludq xmm12, xmm0 movd xmm11, eax mov esi, r15d pxor xmm10, xmm10 + add rsp, 32 call asm_modinv32b + sub rsp, 32 movd xmm8, eax psubq xmm9, xmm12 mov rax, [r12] @@ -243,13 +247,17 @@ psrldq xmm7, 8 movdqa xmm2, xmm11 pmuludq xmm11, xmm8 + add rsp, 32 call get_recurrence_info + sub rsp, 32 mov esi, r15d lea rdi, [r13+8] movd edx, xmm7 pmuludq xmm11, xmm2 movdqa xmm0, xmm8 + add rsp, 32 call get_recurrence_info + sub rsp, 32 cmp r14, r12 pslld xmm2, 1 pshufd xmm12, xmm1, 0x98 Modified: trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -191,7 +191,9 @@ pshufd xmm8, xmm8, 0x4e mov esi, ebx pmuludq xmm12, xmm2 + add rsp, 32 call asm_modinv32b + sub rsp, 32 %if %1 * (%1 - 3) == 0 sub r15d, eax %endif @@ -256,13 +258,17 @@ psrldq xmm7, 8 movdqa xmm2, xmm11 pmuludq xmm11, xmm8 + add rsp, 32 call get_recurrence_info + sub rsp, 32 mov esi, ebx lea rdi, [r13+8] movd edx, xmm7 pmuludq xmm11, xmm2 movdqa xmm0, xmm8 + add rsp, 32 call get_recurrence_info + sub rsp, 32 cmp r14, r12 pslld xmm2, 1 pshufd xmm12, xmm1, 0x98 Modified: trunk/src/experimental/lasieve4_64/x64/medsched0.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/medsched0.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/medsched0.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -15,7 +15,7 @@ mov rsi, rdx mov rdx, r8 mov rcx, r9 - mov r8d, dword [rsp+stack_use+40] + mov r8d, [rsp+stack_use+40] shl r8d, 16 cmp rdx, rsi Modified: trunk/src/experimental/lasieve4_64/x64/modinv1000.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/modinv1000.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/modinv1000.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -75,7 +75,9 @@ mov eax, [rel modulo32] sub eax, r8d ret -.6: call abort +.6: add rsp, 32 + call abort + sub rsp, 32 end \ No newline at end of file Modified: trunk/src/experimental/lasieve4_64/x64/modinv1000b.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/modinv1000b.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/modinv1000b.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -80,7 +80,9 @@ sub eax, r8d ret .6: je .8 -.7: call abort +.7: add rsp, 32 + call abort + sub rsp, 32 .8: xor eax, eax ret Modified: trunk/src/experimental/lasieve4_64/x64/mpqs_sieveinit.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/mpqs_sieveinit.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/mpqs_sieveinit.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -25,8 +25,8 @@ mov esi, edx mov rdx, r8 mov rcx, r9 - mov r8, [rsp+stack_use+40] - mov r9d, [rsp+stack_use+48] + mov r8, [rsp+stack_use+40] + mov r9d, [rsp+stack_use+48] mov rbx, rdx mov rcx, [rcx] @@ -70,8 +70,8 @@ mov esi, edx mov rdx, r8 mov rcx, r9 - mov r8, [rsp+stack_use+40] - mov r9d, [rsp+stack_use+48] + mov r8, [rsp+stack_use+40] + mov r9d, [rsp+stack_use+48] mov rbx, rdx mov rcx, [rcx] Modified: trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -278,7 +278,9 @@ .16: xor rax, rax emms EXIT_PROC reg_save_list -.17: call abort +.17: add rsp, 32 + call abort + sub rsp, 32 END_PROC reg_save_list end Modified: trunk/src/experimental/lasieve4_64/x64/pt64.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/pt64.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/pt64.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -60,7 +60,9 @@ mov rcx, rax mov r11, rsi jmp .5 -.4: call modsq64 +.4: add rsp,32 + call modsq64 + sub rsp, 32 test r9, rcx jz .6 .5: xor rax, rax @@ -79,7 +81,9 @@ je .9 dec r10 jz .8 + add rsp, 32 call modsq64 + sub rsp, 32 jmp .7 align 8 Modified: trunk/src/experimental/lasieve4_64/x64/search0.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/search0.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/search0.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -1,6 +1,6 @@ -; lasieve_search0(uchar*, uchar*, uchar*, uchar*, uchar*, u16_t*, uchar*); -; GAS rax rdi, rsi, rdx, rcx, r8, r9, [rsp+8] +; lasieve_search0(uchar*, uchar*, uchar*, uchar*, uchar*, u16_t*, uchar*); +; GAS rax rdi, rsi, rdx, rcx, r8, r9, [rsp+8] ; YASM rax rcx, rdx, r8, r9, [rsp+40], [rsp+48], [rsp+56], %include "ls-defs.inc" @@ -15,9 +15,9 @@ mov rsi, rdx mov rdx, r8 mov rcx, r9 - mov r8, qword [rsp+stack_use+40] - mov r9, qword [rsp+stack_use+48] - mov r14, qword [rsp+stack_use+56] + mov r8, [rsp+stack_use+40] + mov r9, [rsp+stack_use+48] + mov r14, [rsp+stack_use+56] mov r10, rdi lea r15, [rdi+128] Modified: trunk/src/experimental/lasieve4_64/x64/slinie1A.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/slinie1A.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/slinie1A.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -77,6 +77,10 @@ %define j_per_strip_minus1 1 FRAME_PROC slinie1, 0, reg_save_list + mov rdi, rcx + mov rsi, rdx + mov rdx, r8 + cmp rsi, rdi jbe .3 sub rsi, 8 Modified: trunk/src/experimental/lasieve4_64/x64/slinie2A.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/slinie2A.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/slinie2A.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -81,6 +81,9 @@ %define j_per_strip_minus1 1 FRAME_PROC slinie2, 0, reg_save_list + mov rdi, rcx + mov rsi, rdx + mov rdx, r8 cmp rsi, rdi jbe .3 Modified: trunk/src/experimental/lasieve4_64/x64/slinie3A.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/slinie3A.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/slinie3A.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -87,6 +87,9 @@ %define j_per_strip_minus1 1 FRAME_PROC slinie3, 0, reg_save_list + mov rdi, rcx + mov rsi, rdx + mov rdx, r8 cmp rsi, rdi jbe .3 Modified: trunk/src/experimental/lasieve4_64/x64/tdsieve-from-sched.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/tdsieve-from-sched.asm 2011-10-22 07:34:27 UTC (rev 417) +++ trunk/src/experimental/lasieve4_64/x64/tdsieve-from-sched.asm 2011-10-22 19:20:40 UTC (rev 418) @@ -15,7 +15,7 @@ mov rsi, rdx mov rdx, r8 mov rcx, r9 - mov r8, qword [rsp+stack_use+40] + mov r8, [rsp+stack_use+40] mov r9, [rdi] lea rsi, [rsi-12] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |
From: <brg...@us...> - 2011-10-22 22:25:04
|
Revision: 420 http://ggnfs.svn.sourceforge.net/ggnfs/?rev=420&view=rev Author: brgladman Date: 2011-10-22 22:24:58 +0000 (Sat, 22 Oct 2011) Log Message: ----------- correct Windows assembler handling of RIP relative addressing Modified Paths: -------------- trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm trunk/src/experimental/lasieve4_64/x64/modinv1000.asm trunk/src/experimental/lasieve4_64/x64/modinv1000b.asm trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm trunk/src/experimental/lasieve4_64/x64/pt64.asm Modified: trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm 2011-10-22 22:07:05 UTC (rev 419) +++ trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm 2011-10-22 22:24:58 UTC (rev 420) @@ -178,17 +178,17 @@ psrldq xmm7, 8 mov esi, ebx pmuludq xmm12, xmm2 + sub rsp, 32 + call asm_modinv32b add rsp, 32 - call asm_modinv32b - sub rsp, 32 movd edi, xmm7 pmuludq xmm12, xmm0 movd xmm11, eax mov esi, r15d pxor xmm10, xmm10 + sub rsp, 32 + call asm_modinv32b add rsp, 32 - call asm_modinv32b - sub rsp, 32 movd xmm8, eax psubq xmm9, xmm12 mov rax, [r12] @@ -247,17 +247,17 @@ psrldq xmm7, 8 movdqa xmm2, xmm11 pmuludq xmm11, xmm8 + sub rsp, 32 + call get_recurrence_info add rsp, 32 - call get_recurrence_info - sub rsp, 32 mov esi, r15d lea rdi, [r13+8] movd edx, xmm7 pmuludq xmm11, xmm2 movdqa xmm0, xmm8 + sub rsp, 32 + call get_recurrence_info add rsp, 32 - call get_recurrence_info - sub rsp, 32 cmp r14, r12 pslld xmm2, 1 pshufd xmm12, xmm1, 0x98 Modified: trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm 2011-10-22 22:07:05 UTC (rev 419) +++ trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm 2011-10-22 22:24:58 UTC (rev 420) @@ -191,9 +191,9 @@ pshufd xmm8, xmm8, 0x4e mov esi, ebx pmuludq xmm12, xmm2 - add rsp, 32 + sub rsp, 32 call asm_modinv32b - sub rsp, 32 + add rsp, 32 %if %1 * (%1 - 3) == 0 sub r15d, eax %endif @@ -258,17 +258,17 @@ psrldq xmm7, 8 movdqa xmm2, xmm11 pmuludq xmm11, xmm8 - add rsp, 32 + sub rsp, 32 call get_recurrence_info - sub rsp, 32 + add rsp, 32 mov esi, ebx lea rdi, [r13+8] movd edx, xmm7 pmuludq xmm11, xmm2 movdqa xmm0, xmm8 + sub rsp, 32 + call get_recurrence_info add rsp, 32 - call get_recurrence_info - sub rsp, 32 cmp r14, r12 pslld xmm2, 1 pshufd xmm12, xmm1, 0x98 Modified: trunk/src/experimental/lasieve4_64/x64/modinv1000.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/modinv1000.asm 2011-10-22 22:07:05 UTC (rev 419) +++ trunk/src/experimental/lasieve4_64/x64/modinv1000.asm 2011-10-22 22:24:58 UTC (rev 420) @@ -75,9 +75,9 @@ mov eax, [rel modulo32] sub eax, r8d ret -.6: add rsp, 32 +.6: sub rsp, 32 call abort - sub rsp, 32 + add rsp, 32 end \ No newline at end of file Modified: trunk/src/experimental/lasieve4_64/x64/modinv1000b.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/modinv1000b.asm 2011-10-22 22:07:05 UTC (rev 419) +++ trunk/src/experimental/lasieve4_64/x64/modinv1000b.asm 2011-10-22 22:24:58 UTC (rev 420) @@ -80,9 +80,9 @@ sub eax, r8d ret .6: je .8 -.7: add rsp, 32 +.7: sub rsp, 32 call abort - sub rsp, 32 + add rsp, 32 .8: xor eax, eax ret Modified: trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm 2011-10-22 22:07:05 UTC (rev 419) +++ trunk/src/experimental/lasieve4_64/x64/mpqs_td.asm 2011-10-22 22:24:58 UTC (rev 420) @@ -278,9 +278,9 @@ .16: xor rax, rax emms EXIT_PROC reg_save_list -.17: add rsp, 32 +.17: sub rsp, 32 call abort - sub rsp, 32 + add rsp, 32 END_PROC reg_save_list end Modified: trunk/src/experimental/lasieve4_64/x64/pt64.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/pt64.asm 2011-10-22 22:07:05 UTC (rev 419) +++ trunk/src/experimental/lasieve4_64/x64/pt64.asm 2011-10-22 22:24:58 UTC (rev 420) @@ -60,9 +60,9 @@ mov rcx, rax mov r11, rsi jmp .5 -.4: add rsp,32 +.4: sub rsp,32 call modsq64 - sub rsp, 32 + add rsp, 32 test r9, rcx jz .6 .5: xor rax, rax @@ -81,9 +81,9 @@ je .9 dec r10 jz .8 + sub rsp, 32 + call modsq64 add rsp, 32 - call modsq64 - sub rsp, 32 jmp .7 align 8 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <brg...@us...> - 2011-10-23 19:58:45
|
Revision: 422 http://ggnfs.svn.sourceforge.net/ggnfs/?rev=422&view=rev Author: brgladman Date: 2011-10-23 19:58:39 +0000 (Sun, 23 Oct 2011) Log Message: ----------- More Windows x64 assembler errors Modified Paths: -------------- trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm trunk/src/experimental/lasieve4_64/x64/siever-config.h Modified: trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm 2011-10-23 16:20:46 UTC (rev 421) +++ trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn.asm 2011-10-23 19:58:39 UTC (rev 422) @@ -248,6 +248,9 @@ movdqa xmm2, xmm11 pmuludq xmm11, xmm8 sub rsp, 32 + mov r8, rdx + mov rdx, rsi + mov rcx, rdi call get_recurrence_info add rsp, 32 mov esi, r15d @@ -256,6 +259,9 @@ pmuludq xmm11, xmm2 movdqa xmm0, xmm8 sub rsp, 32 + mov r8, rdx + mov rdx, rsi + mov rcx, rdi call get_recurrence_info add rsp, 32 cmp r14, r12 Modified: trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm =================================================================== --- trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm 2011-10-23 16:20:46 UTC (rev 421) +++ trunk/src/experimental/lasieve4_64/x64/lasieve-asmprepn2.asm 2011-10-23 19:58:39 UTC (rev 422) @@ -259,6 +259,9 @@ movdqa xmm2, xmm11 pmuludq xmm11, xmm8 sub rsp, 32 + mov r8, rdx + mov rdx, rsi + mov rcx, rdi call get_recurrence_info add rsp, 32 mov esi, ebx @@ -267,6 +270,9 @@ pmuludq xmm11, xmm2 movdqa xmm0, xmm8 sub rsp, 32 + mov r8, rdx + mov rdx, rsi + mov rcx, rdi call get_recurrence_info add rsp, 32 cmp r14, r12 Modified: trunk/src/experimental/lasieve4_64/x64/siever-config.h =================================================================== --- trunk/src/experimental/lasieve4_64/x64/siever-config.h 2011-10-23 16:20:46 UTC (rev 421) +++ trunk/src/experimental/lasieve4_64/x64/siever-config.h 2011-10-23 19:58:39 UTC (rev 422) @@ -32,8 +32,14 @@ typedef int i32_t; typedef short int i16_t; typedef unsigned short u16_t; +#ifdef _WIN32 +typedef unsigned long long u64_t; +typedef long long i64_t; +#else typedef unsigned long u64_t; typedef long int i64_t; +#endif + #define U32_MAX 0xffffffff #define I32_MAX INT_MAX This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |