diff options
-rw-r--r-- | llvm/lib/Target/X86/X86InstrExtension.td | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/llvm/lib/Target/X86/X86InstrExtension.td b/llvm/lib/Target/X86/X86InstrExtension.td index bb391fd9c81..2a8ab0069b1 100644 --- a/llvm/lib/Target/X86/X86InstrExtension.td +++ b/llvm/lib/Target/X86/X86InstrExtension.td @@ -9,36 +9,36 @@ // // This file describes the sign and zero extension operations. // -//===----------------------------------------------------------------------===//
-
-let hasSideEffects = 0 in {
- let Defs = [AX], Uses = [AL] in // AX = signext(AL)
- def CBW : I<0x98, RawFrm, (outs), (ins),
- "{cbtw|cbw}", [], IIC_CBW>, OpSize16, Sched<[WriteALU]>;
- let Defs = [EAX], Uses = [AX] in // EAX = signext(AX)
- def CWDE : I<0x98, RawFrm, (outs), (ins),
- "{cwtl|cwde}", [], IIC_CBW>, OpSize32, Sched<[WriteALU]>;
-
- let Defs = [AX,DX], Uses = [AX] in // DX:AX = signext(AX)
- def CWD : I<0x99, RawFrm, (outs), (ins),
- "{cwtd|cwd}", [], IIC_CBW>, OpSize16, Sched<[WriteALU]>;
- let Defs = [EAX,EDX], Uses = [EAX] in // EDX:EAX = signext(EAX)
- def CDQ : I<0x99, RawFrm, (outs), (ins),
- "{cltd|cdq}", [], IIC_CBW>, OpSize32, Sched<[WriteALU]>;
-
-
- let Defs = [RAX], Uses = [EAX] in // RAX = signext(EAX)
- def CDQE : RI<0x98, RawFrm, (outs), (ins),
- "{cltq|cdqe}", [], IIC_CBW>, Sched<[WriteALU]>;
-
- let Defs = [RAX,RDX], Uses = [RAX] in // RDX:RAX = signext(RAX)
- def CQO : RI<0x99, RawFrm, (outs), (ins),
- "{cqto|cqo}", [], IIC_CBW>, Sched<[WriteALU]>;
-}
-
-// Sign/Zero extenders
-let hasSideEffects = 0 in {
-def MOVSX16rr8 : I<0xBE, MRMSrcReg, (outs GR16:$dst), (ins GR8:$src),
+//===----------------------------------------------------------------------===// + +let hasSideEffects = 0 in { + let Defs = [AX], Uses = [AL] in // AX = signext(AL) + def CBW : I<0x98, RawFrm, (outs), (ins), + "{cbtw|cbw}", [], IIC_CBW>, OpSize16, Sched<[WriteALU]>; + let Defs = [EAX], Uses = [AX] in // EAX = signext(AX) + def CWDE : I<0x98, RawFrm, (outs), (ins), + "{cwtl|cwde}", [], IIC_CBW>, OpSize32, Sched<[WriteALU]>; + + let Defs = [AX,DX], Uses = [AX] in // DX:AX = signext(AX) + def CWD : I<0x99, RawFrm, (outs), (ins), + "{cwtd|cwd}", [], IIC_CBW>, OpSize16, Sched<[WriteALU]>; + let Defs = [EAX,EDX], Uses = [EAX] in // EDX:EAX = signext(EAX) + def CDQ : I<0x99, RawFrm, (outs), (ins), + "{cltd|cdq}", [], IIC_CBW>, OpSize32, Sched<[WriteALU]>; + + + let Defs = [RAX], Uses = [EAX] in // RAX = signext(EAX) + def CDQE : RI<0x98, RawFrm, (outs), (ins), + "{cltq|cdqe}", [], IIC_CBW>, Sched<[WriteALU]>; + + let Defs = [RAX,RDX], Uses = [RAX] in // RDX:RAX = signext(RAX) + def CQO : RI<0x99, RawFrm, (outs), (ins), + "{cqto|cqo}", [], IIC_CBW>, Sched<[WriteALU]>; +} + +// Sign/Zero extenders +let hasSideEffects = 0 in { +def MOVSX16rr8 : I<0xBE, MRMSrcReg, (outs GR16:$dst), (ins GR8:$src), "movs{bw|x}\t{$src, $dst|$dst, $src}", [], IIC_MOVSX_R16_R8>, TB, OpSize16, Sched<[WriteALU]>; let mayLoad = 1 in |