]> xenbits.xensource.com Git - xen.git/commitdiff
x86/entry: Use 32bit xors rater than 64bit xors for clearing GPRs
authorAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 6 Mar 2018 15:20:48 +0000 (16:20 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 6 Mar 2018 15:20:48 +0000 (16:20 +0100)
Intel's Silvermont/Knights Landing architecture treats them as full ALU
operations, rather than zeroing idoms.

No functional change, and no change in code volume (only changing the bit
selection in the REX prefix).

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
master commit: eb1d3a3f04b85d596862a4c9dcf796e67ab4dc09
master date: 2018-02-15 11:08:27 +0000

xen/include/asm-x86/asm_defns.h

index 0749b8f5fa64337bbb527b90b8a27b20bfe73e23..b01ba0e64cb9ac628461c1598617eb94bc61b77e 100644 (file)
@@ -271,10 +271,10 @@ static always_inline void stac(void)
         movq  %r10,UREGS_r10(%rsp)
         movq  %r11,UREGS_r11(%rsp)
 .endif
-        xor   %r8, %r8
-        xor   %r9, %r9
-        xor   %r10, %r10
-        xor   %r11, %r11
+        xor   %r8d, %r8d
+        xor   %r9d, %r9d
+        xor   %r10d, %r10d
+        xor   %r11d, %r11d
         movq  %rbx,UREGS_rbx(%rsp)
         xor   %ebx, %ebx
         movq  %rbp,UREGS_rbp(%rsp)
@@ -291,10 +291,10 @@ static always_inline void stac(void)
         movq  %r14,UREGS_r14(%rsp)
         movq  %r15,UREGS_r15(%rsp)
 .endif
-        xor   %r12, %r12
-        xor   %r13, %r13
-        xor   %r14, %r14
-        xor   %r15, %r15
+        xor   %r12d, %r12d
+        xor   %r13d, %r13d
+        xor   %r14d, %r14d
+        xor   %r15d, %r15d
 .endm
 
 #define LOAD_ONE_REG(reg, compat) \