[llvm] 2c4e38f - [X86] Emit REX prefix immediately before the opcode
Amir Ayupov via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 16 08:30:37 PDT 2022
Author: Amir Ayupov
Date: 2022-03-16T08:30:31-07:00
New Revision: 2c4e38fa6f33d371f9169715f97046343095bba0
URL: https://github.com/llvm/llvm-project/commit/2c4e38fa6f33d371f9169715f97046343095bba0
DIFF: https://github.com/llvm/llvm-project/commit/2c4e38fa6f33d371f9169715f97046343095bba0.diff
LOG: [X86] Emit REX prefix immediately before the opcode
Fix prefix emission order to emit REX immediately before the opcode (SDM vol2,
2.1, Figure 2-1). According to SDM vol2 2.2.1, "Other placements are ignored".
This fix has a side effect of outputting segment override prefix in a different
order than previously (benign).
Follow-up to https://reviews.llvm.org/D120592
Reviewed By: skan, craig.topper
Differential Revision: https://reviews.llvm.org/D120871
Added:
Modified:
llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
llvm/test/MC/Disassembler/X86/moffs.txt
llvm/test/MC/X86/I186-32.s
llvm/test/MC/X86/I186-64.s
llvm/test/MC/X86/I386-32.s
llvm/test/MC/X86/I386-64.s
llvm/test/MC/X86/I86-32.s
llvm/test/MC/X86/I86-64.s
llvm/test/MC/X86/code16gcc.s
llvm/test/MC/X86/index-operations.s
llvm/test/MC/X86/x86-16.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
index c03bbb61907f1..527df81562bd9 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
@@ -617,14 +617,6 @@ bool X86MCCodeEmitter::emitPrefixImpl(unsigned &CurOp, const MCInst &MI,
Flags & X86::IP_HAS_AD_SIZE)
emitByte(0x67, OS);
- // Encoding type for this instruction.
- uint64_t Encoding = TSFlags & X86II::EncodingMask;
- bool HasREX = false;
- if (Encoding)
- emitVEXOpcodePrefix(MemoryOperand, MI, OS);
- else
- HasREX = emitOpcodePrefix(MemoryOperand, MI, STI, OS);
-
uint64_t Form = TSFlags & X86II::FormMask;
switch (Form) {
default:
@@ -654,6 +646,15 @@ bool X86MCCodeEmitter::emitPrefixImpl(unsigned &CurOp, const MCInst &MI,
}
}
+ // REX prefix is optional, but if used must be immediately before the opcode
+ // Encoding type for this instruction.
+ uint64_t Encoding = TSFlags & X86II::EncodingMask;
+ bool HasREX = false;
+ if (Encoding)
+ emitVEXOpcodePrefix(MemoryOperand, MI, OS);
+ else
+ HasREX = emitOpcodePrefix(MemoryOperand, MI, STI, OS);
+
return HasREX;
}
diff --git a/llvm/test/MC/Disassembler/X86/moffs.txt b/llvm/test/MC/Disassembler/X86/moffs.txt
index ac18859549447..cbabd450bacda 100644
--- a/llvm/test/MC/Disassembler/X86/moffs.txt
+++ b/llvm/test/MC/Disassembler/X86/moffs.txt
@@ -37,9 +37,9 @@
# 64: movw 0x5a5a5a5a, %ax # encoding: [0x67,0x66,0xa1,0x5a,0x5a,0x5a,0x5a]
0x67 0x66 0xa1 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a
-# 16: movl %es:0x5a5a5a5a, %eax # encoding: [0x67,0x66,0x26,0xa1,0x5a,0x5a,0x5a,0x5a]
-# 32: movw %es:0x5a5a, %ax # encoding: [0x67,0x66,0x26,0xa1,0x5a,0x5a]
-# 64: movw %es:0x5a5a5a5a, %ax # encoding: [0x67,0x66,0x26,0xa1,0x5a,0x5a,0x5a,0x5a]
+# 16: movl %es:0x5a5a5a5a, %eax # encoding: [0x67,0x26,0x66,0xa1,0x5a,0x5a,0x5a,0x5a]
+# 32: movw %es:0x5a5a, %ax # encoding: [0x67,0x26,0x66,0xa1,0x5a,0x5a]
+# 64: movw %es:0x5a5a5a5a, %ax # encoding: [0x67,0x26,0x66,0xa1,0x5a,0x5a,0x5a,0x5a]
0x67 0x26 0x66 0xa1 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a # encoding: [0xa0,0x5a,0x5a]
@@ -79,8 +79,8 @@
# 64: movw %ax, 0x5a5a5a5a # encoding: [0x67,0x66,0xa3,0x5a,0x5a,0x5a,0x5a]
0x67 0x66 0xa3 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a
-# 16: movl %eax, %es:0x5a5a5a5a # encoding: [0x67,0x66,0x26,0xa3,0x5a,0x5a,0x5a,0x5a]
-# 32: movw %ax, %es:0x5a5a # encoding: [0x67,0x66,0x26,0xa3,0x5a,0x5a]
-# 64: movw %ax, %es:0x5a5a5a5a # encoding: [0x67,0x66,0x26,0xa3,0x5a,0x5a,0x5a,0x5a]
+# 16: movl %eax, %es:0x5a5a5a5a # encoding: [0x67,0x26,0x66,0xa3,0x5a,0x5a,0x5a,0x5a]
+# 32: movw %ax, %es:0x5a5a # encoding: [0x67,0x26,0x66,0xa3,0x5a,0x5a]
+# 64: movw %ax, %es:0x5a5a5a5a # encoding: [0x67,0x26,0x66,0xa3,0x5a,0x5a,0x5a,0x5a]
0x67 0x26 0x66 0xa3 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a 0x5a
diff --git a/llvm/test/MC/X86/I186-32.s b/llvm/test/MC/X86/I186-32.s
index adb7802cfcf18..afa28a142f38d 100644
--- a/llvm/test/MC/X86/I186-32.s
+++ b/llvm/test/MC/X86/I186-32.s
@@ -57,7 +57,7 @@ outsb %es:(%esi), %dx
outsl %es:(%esi), %dx
// CHECK: outsw %es:(%esi), %dx
-// CHECK: encoding: [0x66,0x26,0x6f]
+// CHECK: encoding: [0x26,0x66,0x6f]
outsw %es:(%esi), %dx
// CHECK: popal
@@ -269,7 +269,7 @@ repne outsb %es:(%esi), %dx
repne outsl %es:(%esi), %dx
// CHECK: repne outsw %es:(%esi), %dx
-// CHECK: encoding: [0xf2,0x66,0x26,0x6f]
+// CHECK: encoding: [0xf2,0x26,0x66,0x6f]
repne outsw %es:(%esi), %dx
// CHECK: rep outsb %es:(%esi), %dx
@@ -281,7 +281,7 @@ rep outsb %es:(%esi), %dx
rep outsl %es:(%esi), %dx
// CHECK: rep outsw %es:(%esi), %dx
-// CHECK: encoding: [0xf3,0x66,0x26,0x6f]
+// CHECK: encoding: [0xf3,0x26,0x66,0x6f]
rep outsw %es:(%esi), %dx
// CHECK: rolb $0, -485498096(%edx,%eax,4)
diff --git a/llvm/test/MC/X86/I186-64.s b/llvm/test/MC/X86/I186-64.s
index 18aa124127a56..0ee6fee616b00 100644
--- a/llvm/test/MC/X86/I186-64.s
+++ b/llvm/test/MC/X86/I186-64.s
@@ -33,7 +33,7 @@ outsb %gs:(%rsi), %dx
outsl %gs:(%rsi), %dx
// CHECK: outsw %gs:(%rsi), %dx
-// CHECK: encoding: [0x66,0x65,0x6f]
+// CHECK: encoding: [0x65,0x66,0x6f]
outsw %gs:(%rsi), %dx
// CHECK: pushq $0
@@ -289,7 +289,7 @@ repne outsb %gs:(%rsi), %dx
repne outsl %gs:(%rsi), %dx
// CHECK: repne outsw %gs:(%rsi), %dx
-// CHECK: encoding: [0xf2,0x66,0x65,0x6f]
+// CHECK: encoding: [0xf2,0x65,0x66,0x6f]
repne outsw %gs:(%rsi), %dx
// CHECK: rep outsb %gs:(%rsi), %dx
@@ -301,7 +301,7 @@ rep outsb %gs:(%rsi), %dx
rep outsl %gs:(%rsi), %dx
// CHECK: rep outsw %gs:(%rsi), %dx
-// CHECK: encoding: [0xf3,0x66,0x65,0x6f]
+// CHECK: encoding: [0xf3,0x65,0x66,0x6f]
rep outsw %gs:(%rsi), %dx
// CHECK: rolb $0, 485498096
diff --git a/llvm/test/MC/X86/I386-32.s b/llvm/test/MC/X86/I386-32.s
index d4c73d77b756d..0915300d3f7b2 100644
--- a/llvm/test/MC/X86/I386-32.s
+++ b/llvm/test/MC/X86/I386-32.s
@@ -153,7 +153,7 @@ cmpsb %es:(%edi), %es:(%esi)
cmpsl %es:(%edi), %es:(%esi)
// CHECK: cmpsw %es:(%edi), %es:(%esi)
-// CHECK: encoding: [0x66,0x26,0xa7]
+// CHECK: encoding: [0x26,0x66,0xa7]
cmpsw %es:(%edi), %es:(%esi)
// CHECK: insb %dx, %es:(%edi)
@@ -193,7 +193,7 @@ movsb %es:(%esi), %es:(%edi)
movsl %es:(%esi), %es:(%edi)
// CHECK: movsw %es:(%esi), %es:(%edi)
-// CHECK: encoding: [0x66,0x26,0xa5]
+// CHECK: encoding: [0x26,0x66,0xa5]
movsw %es:(%esi), %es:(%edi)
// CHECK: outsb %es:(%esi), %dx
@@ -205,7 +205,7 @@ outsb %es:(%esi), %dx
outsl %es:(%esi), %dx
// CHECK: outsw %es:(%esi), %dx
-// CHECK: encoding: [0x66,0x26,0x6f]
+// CHECK: encoding: [0x26,0x66,0x6f]
outsw %es:(%esi), %dx
// CHECK: popal
@@ -249,7 +249,7 @@ rep cmpsb %es:(%edi), %es:(%esi)
rep cmpsl %es:(%edi), %es:(%esi)
// CHECK: rep cmpsw %es:(%edi), %es:(%esi)
-// CHECK: encoding: [0xf3,0x66,0x26,0xa7]
+// CHECK: encoding: [0xf3,0x26,0x66,0xa7]
rep cmpsw %es:(%edi), %es:(%esi)
// CHECK: rep insb %dx, %es:(%edi)
@@ -277,7 +277,7 @@ rep movsb %es:(%esi), %es:(%edi)
rep movsl %es:(%esi), %es:(%edi)
// CHECK: rep movsw %es:(%esi), %es:(%edi)
-// CHECK: encoding: [0xf3,0x66,0x26,0xa5]
+// CHECK: encoding: [0xf3,0x26,0x66,0xa5]
rep movsw %es:(%esi), %es:(%edi)
// CHECK: repne cmpsb %es:(%edi), %es:(%esi)
@@ -289,7 +289,7 @@ repne cmpsb %es:(%edi), %es:(%esi)
repne cmpsl %es:(%edi), %es:(%esi)
// CHECK: repne cmpsw %es:(%edi), %es:(%esi)
-// CHECK: encoding: [0xf2,0x66,0x26,0xa7]
+// CHECK: encoding: [0xf2,0x26,0x66,0xa7]
repne cmpsw %es:(%edi), %es:(%esi)
// CHECK: repne insb %dx, %es:(%edi)
@@ -317,7 +317,7 @@ repne movsb %es:(%esi), %es:(%edi)
repne movsl %es:(%esi), %es:(%edi)
// CHECK: repne movsw %es:(%esi), %es:(%edi)
-// CHECK: encoding: [0xf2,0x66,0x26,0xa5]
+// CHECK: encoding: [0xf2,0x26,0x66,0xa5]
repne movsw %es:(%esi), %es:(%edi)
// CHECK: repne outsb %es:(%esi), %dx
@@ -329,7 +329,7 @@ repne outsb %es:(%esi), %dx
repne outsl %es:(%esi), %dx
// CHECK: repne outsw %es:(%esi), %dx
-// CHECK: encoding: [0xf2,0x66,0x26,0x6f]
+// CHECK: encoding: [0xf2,0x26,0x66,0x6f]
repne outsw %es:(%esi), %dx
// CHECK: repne scasl %es:(%edi), %eax
@@ -349,7 +349,7 @@ rep outsb %es:(%esi), %dx
rep outsl %es:(%esi), %dx
// CHECK: rep outsw %es:(%esi), %dx
-// CHECK: encoding: [0xf3,0x66,0x26,0x6f]
+// CHECK: encoding: [0xf3,0x26,0x66,0x6f]
rep outsw %es:(%esi), %dx
// CHECK: rep scasl %es:(%edi), %eax
diff --git a/llvm/test/MC/X86/I386-64.s b/llvm/test/MC/X86/I386-64.s
index b626534f6ebd6..b4f2c79d499fe 100644
--- a/llvm/test/MC/X86/I386-64.s
+++ b/llvm/test/MC/X86/I386-64.s
@@ -226,11 +226,11 @@ cmpsb %es:(%rdi), %gs:(%rsi)
cmpsl %es:(%rdi), %gs:(%rsi)
// CHECK: cmpsq %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0x48,0x65,0xa7]
+// CHECK: encoding: [0x65,0x48,0xa7]
cmpsq %es:(%rdi), %gs:(%rsi)
// CHECK: cmpsw %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0x66,0x65,0xa7]
+// CHECK: encoding: [0x65,0x66,0xa7]
cmpsw %es:(%rdi), %gs:(%rsi)
// CHECK: insb %dx, %es:(%rdi)
@@ -306,11 +306,11 @@ movsbl (%rdx), %r13d
movsl %gs:(%rsi), %es:(%rdi)
// CHECK: movsq %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0x48,0x65,0xa5]
+// CHECK: encoding: [0x65,0x48,0xa5]
movsq %gs:(%rsi), %es:(%rdi)
// CHECK: movsw %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0x66,0x65,0xa5]
+// CHECK: encoding: [0x65,0x66,0xa5]
movsw %gs:(%rsi), %es:(%rdi)
// CHECK: movswl 485498096, %r13d
@@ -418,7 +418,7 @@ outsb %gs:(%rsi), %dx
outsl %gs:(%rsi), %dx
// CHECK: outsw %gs:(%rsi), %dx
-// CHECK: encoding: [0x66,0x65,0x6f]
+// CHECK: encoding: [0x65,0x66,0x6f]
outsw %gs:(%rsi), %dx
// CHECK: rep cmpsb %es:(%rdi), %gs:(%rsi)
@@ -430,11 +430,11 @@ rep cmpsb %es:(%rdi), %gs:(%rsi)
rep cmpsl %es:(%rdi), %gs:(%rsi)
// CHECK: rep cmpsq %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0xf3,0x48,0x65,0xa7]
+// CHECK: encoding: [0xf3,0x65,0x48,0xa7]
rep cmpsq %es:(%rdi), %gs:(%rsi)
// CHECK: rep cmpsw %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0xf3,0x66,0x65,0xa7]
+// CHECK: encoding: [0xf3,0x65,0x66,0xa7]
rep cmpsw %es:(%rdi), %gs:(%rsi)
// CHECK: rep insb %dx, %es:(%rdi)
@@ -462,11 +462,11 @@ rep movsb %gs:(%rsi), %es:(%rdi)
rep movsl %gs:(%rsi), %es:(%rdi)
// CHECK: rep movsq %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0xf3,0x48,0x65,0xa5]
+// CHECK: encoding: [0xf3,0x65,0x48,0xa5]
rep movsq %gs:(%rsi), %es:(%rdi)
// CHECK: rep movsw %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0xf3,0x66,0x65,0xa5]
+// CHECK: encoding: [0xf3,0x65,0x66,0xa5]
rep movsw %gs:(%rsi), %es:(%rdi)
// CHECK: repne cmpsb %es:(%rdi), %gs:(%rsi)
@@ -478,11 +478,11 @@ repne cmpsb %es:(%rdi), %gs:(%rsi)
repne cmpsl %es:(%rdi), %gs:(%rsi)
// CHECK: repne cmpsq %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0xf2,0x48,0x65,0xa7]
+// CHECK: encoding: [0xf2,0x65,0x48,0xa7]
repne cmpsq %es:(%rdi), %gs:(%rsi)
// CHECK: repne cmpsw %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0xf2,0x66,0x65,0xa7]
+// CHECK: encoding: [0xf2,0x65,0x66,0xa7]
repne cmpsw %es:(%rdi), %gs:(%rsi)
// CHECK: repne insb %dx, %es:(%rdi)
@@ -510,11 +510,11 @@ repne movsb %gs:(%rsi), %es:(%rdi)
repne movsl %gs:(%rsi), %es:(%rdi)
// CHECK: repne movsq %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0xf2,0x48,0x65,0xa5]
+// CHECK: encoding: [0xf2,0x65,0x48,0xa5]
repne movsq %gs:(%rsi), %es:(%rdi)
// CHECK: repne movsw %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0xf2,0x66,0x65,0xa5]
+// CHECK: encoding: [0xf2,0x65,0x66,0xa5]
repne movsw %gs:(%rsi), %es:(%rdi)
// CHECK: repne outsb %gs:(%rsi), %dx
@@ -526,7 +526,7 @@ repne outsb %gs:(%rsi), %dx
repne outsl %gs:(%rsi), %dx
// CHECK: repne outsw %gs:(%rsi), %dx
-// CHECK: encoding: [0xf2,0x66,0x65,0x6f]
+// CHECK: encoding: [0xf2,0x65,0x66,0x6f]
repne outsw %gs:(%rsi), %dx
// CHECK: repne scasl %es:(%rdi), %eax
@@ -546,7 +546,7 @@ rep outsb %gs:(%rsi), %dx
rep outsl %gs:(%rsi), %dx
// CHECK: rep outsw %gs:(%rsi), %dx
-// CHECK: encoding: [0xf3,0x66,0x65,0x6f]
+// CHECK: encoding: [0xf3,0x65,0x66,0x6f]
rep outsw %gs:(%rsi), %dx
// CHECK: rep scasl %es:(%rdi), %eax
diff --git a/llvm/test/MC/X86/I86-32.s b/llvm/test/MC/X86/I86-32.s
index 59148647a3680..b422c92128368 100644
--- a/llvm/test/MC/X86/I86-32.s
+++ b/llvm/test/MC/X86/I86-32.s
@@ -565,7 +565,7 @@ cmpsb %es:(%edi), %es:(%esi)
cmpsl %es:(%edi), %es:(%esi)
// CHECK: cmpsw %es:(%edi), %es:(%esi)
-// CHECK: encoding: [0x66,0x26,0xa7]
+// CHECK: encoding: [0x26,0x66,0xa7]
cmpsw %es:(%edi), %es:(%esi)
// CHECK: cmpw $0, -485498096(%edx,%eax,4)
@@ -1197,7 +1197,7 @@ lock xchgl %eax, (%edx)
lodsb %es:(%esi), %al
// CHECK: lodsw %es:(%esi), %ax
-// CHECK: encoding: [0x66,0x26,0xad]
+// CHECK: encoding: [0x26,0x66,0xad]
lodsw %es:(%esi), %ax
// CHECK: loop 64
@@ -1345,7 +1345,7 @@ movsb %es:(%esi), %es:(%edi)
movsl %es:(%esi), %es:(%edi)
// CHECK: movsw %es:(%esi), %es:(%edi)
-// CHECK: encoding: [0x66,0x26,0xa5]
+// CHECK: encoding: [0x26,0x66,0xa5]
movsw %es:(%esi), %es:(%edi)
// CHECK: movw $0, -485498096(%edx,%eax,4)
@@ -2221,7 +2221,7 @@ rep cmpsb %es:(%edi), %es:(%esi)
rep cmpsl %es:(%edi), %es:(%esi)
// CHECK: rep cmpsw %es:(%edi), %es:(%esi)
-// CHECK: encoding: [0xf3,0x66,0x26,0xa7]
+// CHECK: encoding: [0xf3,0x26,0x66,0xa7]
rep cmpsw %es:(%edi), %es:(%esi)
// CHECK: rep lodsb %es:(%esi), %al
@@ -2229,7 +2229,7 @@ rep cmpsw %es:(%edi), %es:(%esi)
rep lodsb %es:(%esi), %al
// CHECK: rep lodsw %es:(%esi), %ax
-// CHECK: encoding: [0xf3,0x66,0x26,0xad]
+// CHECK: encoding: [0xf3,0x26,0x66,0xad]
rep lodsw %es:(%esi), %ax
// CHECK: rep movsb %es:(%esi), %es:(%edi)
@@ -2241,7 +2241,7 @@ rep movsb %es:(%esi), %es:(%edi)
rep movsl %es:(%esi), %es:(%edi)
// CHECK: rep movsw %es:(%esi), %es:(%edi)
-// CHECK: encoding: [0xf3,0x66,0x26,0xa5]
+// CHECK: encoding: [0xf3,0x26,0x66,0xa5]
rep movsw %es:(%esi), %es:(%edi)
// CHECK: repne cmpsb %es:(%edi), %es:(%esi)
@@ -2253,7 +2253,7 @@ repne cmpsb %es:(%edi), %es:(%esi)
repne cmpsl %es:(%edi), %es:(%esi)
// CHECK: repne cmpsw %es:(%edi), %es:(%esi)
-// CHECK: encoding: [0xf2,0x66,0x26,0xa7]
+// CHECK: encoding: [0xf2,0x26,0x66,0xa7]
repne cmpsw %es:(%edi), %es:(%esi)
// CHECK: repne lodsb %es:(%esi), %al
@@ -2261,7 +2261,7 @@ repne cmpsw %es:(%edi), %es:(%esi)
repne lodsb %es:(%esi), %al
// CHECK: repne lodsw %es:(%esi), %ax
-// CHECK: encoding: [0xf2,0x66,0x26,0xad]
+// CHECK: encoding: [0xf2,0x26,0x66,0xad]
repne lodsw %es:(%esi), %ax
// CHECK: repne movsb %es:(%esi), %es:(%edi)
@@ -2273,7 +2273,7 @@ repne movsb %es:(%esi), %es:(%edi)
repne movsl %es:(%esi), %es:(%edi)
// CHECK: repne movsw %es:(%esi), %es:(%edi)
-// CHECK: encoding: [0xf2,0x66,0x26,0xa5]
+// CHECK: encoding: [0xf2,0x26,0x66,0xa5]
repne movsw %es:(%esi), %es:(%edi)
// CHECK: repne scasb %es:(%edi), %al
diff --git a/llvm/test/MC/X86/I86-64.s b/llvm/test/MC/X86/I86-64.s
index 6ea78e258dbc9..7e9544e22899c 100644
--- a/llvm/test/MC/X86/I86-64.s
+++ b/llvm/test/MC/X86/I86-64.s
@@ -873,11 +873,11 @@ cmpsb %es:(%rdi), %gs:(%rsi)
cmpsl %es:(%rdi), %gs:(%rsi)
// CHECK: cmpsq %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0x48,0x65,0xa7]
+// CHECK: encoding: [0x65,0x48,0xa7]
cmpsq %es:(%rdi), %gs:(%rsi)
// CHECK: cmpsw %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0x66,0x65,0xa7]
+// CHECK: encoding: [0x65,0x66,0xa7]
cmpsw %es:(%rdi), %gs:(%rsi)
// CHECK: cmpw $0, 485498096
@@ -1645,7 +1645,7 @@ leal (%rdx), %r13d
lodsb %gs:(%rsi), %al
// CHECK: lodsw %gs:(%rsi), %ax
-// CHECK: encoding: [0x66,0x65,0xad]
+// CHECK: encoding: [0x65,0x66,0xad]
lodsw %gs:(%rsi), %ax
// CHECK: loop 64
@@ -1821,11 +1821,11 @@ movsb %gs:(%rsi), %es:(%rdi)
movsl %gs:(%rsi), %es:(%rdi)
// CHECK: movsq %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0x48,0x65,0xa5]
+// CHECK: encoding: [0x65,0x48,0xa5]
movsq %gs:(%rsi), %es:(%rdi)
// CHECK: movsw %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0x66,0x65,0xa5]
+// CHECK: encoding: [0x65,0x66,0xa5]
movsw %gs:(%rsi), %es:(%rdi)
// CHECK: movw $0, 485498096
@@ -2985,11 +2985,11 @@ rep cmpsb %es:(%rdi), %gs:(%rsi)
rep cmpsl %es:(%rdi), %gs:(%rsi)
// CHECK: rep cmpsq %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0xf3,0x48,0x65,0xa7]
+// CHECK: encoding: [0xf3,0x65,0x48,0xa7]
rep cmpsq %es:(%rdi), %gs:(%rsi)
// CHECK: rep cmpsw %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0xf3,0x66,0x65,0xa7]
+// CHECK: encoding: [0xf3,0x65,0x66,0xa7]
rep cmpsw %es:(%rdi), %gs:(%rsi)
// CHECK: rep lodsb %gs:(%rsi), %al
@@ -2997,7 +2997,7 @@ rep cmpsw %es:(%rdi), %gs:(%rsi)
rep lodsb %gs:(%rsi), %al
// CHECK: rep lodsw %gs:(%rsi), %ax
-// CHECK: encoding: [0xf3,0x66,0x65,0xad]
+// CHECK: encoding: [0xf3,0x65,0x66,0xad]
rep lodsw %gs:(%rsi), %ax
// CHECK: rep movsb %gs:(%rsi), %es:(%rdi)
@@ -3009,11 +3009,11 @@ rep movsb %gs:(%rsi), %es:(%rdi)
rep movsl %gs:(%rsi), %es:(%rdi)
// CHECK: rep movsq %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0xf3,0x48,0x65,0xa5]
+// CHECK: encoding: [0xf3,0x65,0x48,0xa5]
rep movsq %gs:(%rsi), %es:(%rdi)
// CHECK: rep movsw %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0xf3,0x66,0x65,0xa5]
+// CHECK: encoding: [0xf3,0x65,0x66,0xa5]
rep movsw %gs:(%rsi), %es:(%rdi)
// CHECK: repne cmpsb %es:(%rdi), %gs:(%rsi)
@@ -3025,11 +3025,11 @@ repne cmpsb %es:(%rdi), %gs:(%rsi)
repne cmpsl %es:(%rdi), %gs:(%rsi)
// CHECK: repne cmpsq %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0xf2,0x48,0x65,0xa7]
+// CHECK: encoding: [0xf2,0x65,0x48,0xa7]
repne cmpsq %es:(%rdi), %gs:(%rsi)
// CHECK: repne cmpsw %es:(%rdi), %gs:(%rsi)
-// CHECK: encoding: [0xf2,0x66,0x65,0xa7]
+// CHECK: encoding: [0xf2,0x65,0x66,0xa7]
repne cmpsw %es:(%rdi), %gs:(%rsi)
// CHECK: repne lodsb %gs:(%rsi), %al
@@ -3037,7 +3037,7 @@ repne cmpsw %es:(%rdi), %gs:(%rsi)
repne lodsb %gs:(%rsi), %al
// CHECK: repne lodsw %gs:(%rsi), %ax
-// CHECK: encoding: [0xf2,0x66,0x65,0xad]
+// CHECK: encoding: [0xf2,0x65,0x66,0xad]
repne lodsw %gs:(%rsi), %ax
// CHECK: repne movsb %gs:(%rsi), %es:(%rdi)
@@ -3049,11 +3049,11 @@ repne movsb %gs:(%rsi), %es:(%rdi)
repne movsl %gs:(%rsi), %es:(%rdi)
// CHECK: repne movsq %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0xf2,0x48,0x65,0xa5]
+// CHECK: encoding: [0xf2,0x65,0x48,0xa5]
repne movsq %gs:(%rsi), %es:(%rdi)
// CHECK: repne movsw %gs:(%rsi), %es:(%rdi)
-// CHECK: encoding: [0xf2,0x66,0x65,0xa5]
+// CHECK: encoding: [0xf2,0x65,0x66,0xa5]
repne movsw %gs:(%rsi), %es:(%rdi)
// CHECK: repne scasb %es:(%rdi), %al
diff --git a/llvm/test/MC/X86/code16gcc.s b/llvm/test/MC/X86/code16gcc.s
index bb7940cffed5b..4b669bf99ba22 100644
--- a/llvm/test/MC/X86/code16gcc.s
+++ b/llvm/test/MC/X86/code16gcc.s
@@ -11,7 +11,7 @@
lodsb (%esi), %al
//CHECK: lodsb (%esi), %al # encoding: [0x67,0xac]
lodsl %gs:(%esi)
- //CHECK: lodsl %gs:(%esi), %eax # encoding: [0x67,0x66,0x65,0xad]
+ //CHECK: lodsl %gs:(%esi), %eax # encoding: [0x67,0x65,0x66,0xad]
lods (%esi), %ax
//CHECK: lodsw (%esi), %ax # encoding: [0x67,0xad]
stosw
@@ -29,11 +29,11 @@
cmpsw (%edi), (%esi)
//CHECK: cmpsw %es:(%edi), (%esi) # encoding: [0x67,0xa7]
cmpsl %es:(%edi), %ss:(%esi)
- //CHECK: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x67,0x66,0x36,0xa7]
+ //CHECK: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x67,0x36,0x66,0xa7]
movsb (%esi), (%edi)
//CHECK: movsb (%esi), %es:(%edi) # encoding: [0x67,0xa4]
movsl %gs:(%esi), (%edi)
- //CHECK: movsl %gs:(%esi), %es:(%edi) # encoding: [0x67,0x66,0x65,0xa5]
+ //CHECK: movsl %gs:(%esi), %es:(%edi) # encoding: [0x67,0x65,0x66,0xa5]
outsb
//CHECK: outsb (%esi), %dx # encoding: [0x67,0x6e]
outsw %fs:(%esi), %dx
diff --git a/llvm/test/MC/X86/index-operations.s b/llvm/test/MC/X86/index-operations.s
index 425b194065a6b..0c39fe8a90da0 100644
--- a/llvm/test/MC/X86/index-operations.s
+++ b/llvm/test/MC/X86/index-operations.s
@@ -28,7 +28,7 @@ lodsb (%si), %al
lodsl %gs:(%esi)
// 64: lodsl %gs:(%esi), %eax # encoding: [0x67,0x65,0xad]
// 32: lodsl %gs:(%esi), %eax # encoding: [0x65,0xad]
-// 16: lodsl %gs:(%esi), %eax # encoding: [0x67,0x66,0x65,0xad]
+// 16: lodsl %gs:(%esi), %eax # encoding: [0x67,0x65,0x66,0xad]
lodsl (%edi), %eax
// ERR64: invalid operand
@@ -113,7 +113,7 @@ cmpsb (%di), (%esi)
cmpsl %es:(%edi), %ss:(%esi)
// 64: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x67,0x36,0xa7]
// 32: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x36,0xa7]
-// 16: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x67,0x66,0x36,0xa7]
+// 16: cmpsl %es:(%edi), %ss:(%esi) # encoding: [0x67,0x36,0x66,0xa7]
cmpsq (%rdi), (%rsi)
// 64: cmpsq %es:(%rdi), (%rsi) # encoding: [0x48,0xa7]
@@ -128,7 +128,7 @@ movsb (%esi), (%edi)
movsl %gs:(%esi), (%edi)
// 64: movsl %gs:(%esi), %es:(%edi) # encoding: [0x67,0x65,0xa5]
// 32: movsl %gs:(%esi), %es:(%edi) # encoding: [0x65,0xa5]
-// 16: movsl %gs:(%esi), %es:(%edi) # encoding: [0x67,0x66,0x65,0xa5]
+// 16: movsl %gs:(%esi), %es:(%edi) # encoding: [0x67,0x65,0x66,0xa5]
outsb
// 64: outsb (%rsi), %dx # encoding: [0x6e]
@@ -136,8 +136,8 @@ outsb
// 16: outsb (%si), %dx # encoding: [0x6e]
outsw %fs:(%esi), %dx
-// 64: outsw %fs:(%esi), %dx # encoding: [0x67,0x66,0x64,0x6f]
-// 32: outsw %fs:(%esi), %dx # encoding: [0x66,0x64,0x6f]
+// 64: outsw %fs:(%esi), %dx # encoding: [0x67,0x64,0x66,0x6f]
+// 32: outsw %fs:(%esi), %dx # encoding: [0x64,0x66,0x6f]
// 16: outsw %fs:(%esi), %dx # encoding: [0x67,0x64,0x6f]
insw %dx, (%edi)
diff --git a/llvm/test/MC/X86/x86-16.s b/llvm/test/MC/X86/x86-16.s
index 9f8c639726f9a..6670e736a6fe5 100644
--- a/llvm/test/MC/X86/x86-16.s
+++ b/llvm/test/MC/X86/x86-16.s
@@ -340,7 +340,7 @@ cmovnae %bx,%bx
// CHECK: encoding: [0x9b]
fwait
-// CHECK: [0x66,0x65,0xa1,0x7c,0x00]
+// CHECK: [0x65,0x66,0xa1,0x7c,0x00]
movl %gs:124, %eax
// CHECK: pusha
More information about the llvm-commits
mailing list