diff options
Diffstat (limited to 'lib/Target/X86/X86InstrInfo.td')
-rw-r--r-- | lib/Target/X86/X86InstrInfo.td | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index 77c167242c..2bae9f79bc 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -351,6 +351,17 @@ def IMPLICIT_DEF_R32 : I<0, Pseudo, (ops R32:$dst), // Nop def NOOP : I<0x90, RawFrm, (ops), "nop", []>; +// Truncate +def TRUNC_R32_R8 : I<0x89, MRMDestReg, (ops R8:$dst, R32:$src), + "mov{l} {$src, ${dst:trunc32}|${dst:trunc32}, $src}", + [(set R8:$dst, (trunc R32:$src))]>; +def TRUNC_R32_R16 : I<0x89, MRMDestReg, (ops R16:$dst, R32:$src), + "mov{l} {$src, ${dst:trunc32}|${dst:trunc32}, $src}", + [(set R16:$dst, (trunc R32:$src))]>; +def TRUNC_R16_R8 : I<0x89, MRMDestReg, (ops R8:$dst, R16:$src), + "mov{w} {$src, ${dst:trunc16}|${dst:trunc16}, $src}", + [(set R8:$dst, (trunc R16:$src))]>; + //===----------------------------------------------------------------------===// // Control Flow Instructions... // |