as suggested by John Reiser and Greg Parker.
It seems that GCC has a more relaxed attitude about what it accepts
as valid input.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13610
fnstcw saved_cw # store control word to mem
movzwl saved_cw, %eax # load cw from mem, zero extending
movb $12, %ah # set cw for "round to zero"
- movw %rax, cw # store back to memory
+ movw %ax, cw # store back to memory
fldcw cw # save new rounding mode
fistpl result # save stack value as integer to mem
fldcw saved_cw # restore old cw
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpistri $0x4A, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpistri $0x0A, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpistrm $0x4A, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpistrm $0x0A, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpestri $0x4A, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpestri $0x0A, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpestrm $0x4A, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpestrm $0x0A, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpistri $0x4B, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpistri $0x0B, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpistrm $0x4B, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpistrm $0x0B, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpestri $0x4B, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpestri $0x0B, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpestrm $0x4B, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"
"movq 32(%0), %%rdx" "\n\t"
"movq 40(%0), %%rax" "\n\t"
"movupd 48(%0), %%xmm0" "\n\t"
- "movw 64(%0), %%rcx" "\n\t"
+ "movw 64(%0), %%cx" "\n\t"
"pcmpestrm $0x0B, %%xmm2, %%xmm13" "\n\t"
"movupd %%xmm0, 48(%0)" "\n\t"
- "movw %%rcx, 64(%0)" "\n\t"
+ "movw %%cx, 64(%0)" "\n\t"
"pushfq" "\n\t"
"popq %%r15" "\n\t"
"movq %%r15, 72(%0)" "\n\t"