[X86] Disable CQTO and CLTQ instructions in the assembly parser outside 64-bit mode.

llvm-svn: 356419
This commit is contained in:
Craig Topper 2019-03-18 22:06:14 +00:00
parent 1814355655
commit b24bdf626a
2 changed files with 8 additions and 2 deletions

View File

@ -28,11 +28,11 @@ let hasSideEffects = 0 in {
let Defs = [RAX], Uses = [EAX] in // RAX = signext(EAX)
def CDQE : RI<0x98, RawFrm, (outs), (ins),
"{cltq|cdqe}", []>, Sched<[WriteALU]>;
"{cltq|cdqe}", []>, Sched<[WriteALU]>, Requires<[In64BitMode]>;
let Defs = [RAX,RDX], Uses = [RAX] in // RDX:RAX = signext(RAX)
def CQO : RI<0x99, RawFrm, (outs), (ins),
"{cqto|cqo}", []>, Sched<[WriteALU]>;
"{cqto|cqo}", []>, Sched<[WriteALU]>, Requires<[In64BitMode]>;
}
// Sign/Zero extenders

View File

@ -158,3 +158,9 @@ mov v_ecx(%eax), %ecx
// 32: 7: error: invalid operand for instruction
// 64: 7: error: invalid operand for instruction
addb (%dx), %al
// 32: error: instruction requires: 64-bit mode
cqto
// 32: error: instruction requires: 64-bit mode
cltq