diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/sse_accel.S | 15 | 
1 files changed, 5 insertions, 10 deletions
| diff --git a/src/sse_accel.S b/src/sse_accel.S index dab5dce..98a5ea0 100644 --- a/src/sse_accel.S +++ b/src/sse_accel.S @@ -34,15 +34,10 @@    * accel_invert128(uint64_t addr)    */  accel_invert128: -    movq %rdi, %rax -    movdqu (%rax), %xmm0 +    movq %rdi, %rax         // Store first argument in %rax +    movdqu (%rax), %xmm0    // Read 128 bits from ptr in %rax into %xmm0 -    /* -     * Set %xmm1 to all 1s and emulate NOT for %xmm0. -     * Result of inversion will be stored in %xmm1. -     */ -    pcmpeqb %xmm1, %xmm1 -    pxor %xmm0, %xmm1 - -    movdqu %xmm1, (%rax) +    pcmpeqb %xmm1, %xmm1    // Set %xmm1 to all 1s +    pxor %xmm0, %xmm1       // NOT %xmm0; result stored in %xmm1 +    movdqu %xmm1, (%rax)    // Writeback the result      retq | 
