diff --git a/arch/sim/pipe/ncopy.ys b/arch/sim/pipe/ncopy.ys index 0f04c28..4f4b37c 100644 --- a/arch/sim/pipe/ncopy.ys +++ b/arch/sim/pipe/ncopy.ys @@ -17,7 +17,7 @@ ncopy: # You can modify this portion xorq %rax, %rax - iaddq $0xfffffffffffffff7, %rdx + iaddq $-9, %rdx jle Remaining Loop: @@ -83,28 +83,24 @@ F9: F10: iaddq $80, %rdi iaddq $80, %rsi - iaddq $0xfffffffffffffff6, %rdx + iaddq $-10, %rdx jg Loop Remaining: - addq %rdx, %rdx - addq %rdx, %rdx - addq %rdx, %rdx - mrmovq JT(%rdx), %rdx - pushq %rdx - ret - - .quad Done - .quad J1 - .quad J2 - .quad J3 - .quad J4 - .quad J5 - .quad J6 - .quad J7 - .quad J8 -JT: - .quad J9 + iaddq $8, %rdx + jl Done + je J1 + iaddq $-2, %rdx + jl J2 + je J3 + iaddq $-2, %rdx + jl J4 + je J5 + iaddq $-2, %rdx + jl J6 + je J7 + iaddq $-1, %rdx + je J8 J9: mrmovq 64(%rdi), %r10