Changes in directory llvm/lib/Target/X86:
X86InstrInfo.td updated: 1.205 -> 1.206 --- Log message: Added patterns for 8-bit multiply --- Diffs of the changes: (+11 -2) X86InstrInfo.td | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-) Index: llvm/lib/Target/X86/X86InstrInfo.td diff -u llvm/lib/Target/X86/X86InstrInfo.td:1.205 llvm/lib/Target/X86/X86InstrInfo.td:1.206 --- llvm/lib/Target/X86/X86InstrInfo.td:1.205 Fri Jan 13 21:14:10 2006 +++ llvm/lib/Target/X86/X86InstrInfo.td Sun Jan 15 04:05:20 2006 @@ -682,14 +682,23 @@ // // Extra precision multiplication -def MUL8r : I<0xF6, MRM4r, (ops R8:$src), "mul{b} $src", []>, +def MUL8r : I<0xF6, MRM4r, (ops R8:$src), "mul{b} $src", + // FIXME: Used for 8-bit mul, ignore result upper 8 bits. + // This probably ought to be moved to a def : Pat<> if the + // syntax can be accepted. + [(set AL, (mul AL, R8:$src))]>, Imp<[AL],[AX]>; // AL,AH = AL*R8 def MUL16r : I<0xF7, MRM4r, (ops R16:$src), "mul{w} $src", []>, Imp<[AX],[AX,DX]>, OpSize; // AX,DX = AX*R16 def MUL32r : I<0xF7, MRM4r, (ops R32:$src), "mul{l} $src", []>, Imp<[EAX],[EAX,EDX]>; // EAX,EDX = EAX*R32 def MUL8m : I<0xF6, MRM4m, (ops i8mem :$src), - "mul{b} $src", []>, Imp<[AL],[AX]>; // AL,AH = AL*[mem8] + "mul{b} $src", + // FIXME: Used for 8-bit mul, ignore result upper 8 bits. + // This probably ought to be moved to a def : Pat<> if the + // syntax can be accepted. + [(set AL, (mul AL, (loadi8 addr:$src)))]>, + Imp<[AL],[AX]>; // AL,AH = AL*[mem8] def MUL16m : I<0xF7, MRM4m, (ops i16mem:$src), "mul{w} $src", []>, Imp<[AX],[AX,DX]>, OpSize; // AX,DX = AX*[mem16] _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits