From fae299430294b8ead6b37efa014fa50a75d6dbaf Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Wed, 14 Jun 2006 22:24:55 +0000 Subject: [PATCH] X86 call instructions can take variable number of operands. Parameters of vector types are passed via XMM registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28789 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/X86InstrInfo.td | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index 97f6d9ff8be..e195f0fb150 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -438,11 +438,12 @@ let isCall = 1, noResults = 1 in // All calls clobber the non-callee saved registers... let Defs = [EAX, ECX, EDX, FP0, FP1, FP2, FP3, FP4, FP5, FP6, ST0, XMM0, XMM1, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7] in { - def CALLpcrel32 : I<0xE8, RawFrm, (ops i32imm:$dst), "call ${dst:call}", - []>; - def CALL32r : I<0xFF, MRM2r, (ops GR32:$dst), "call {*}$dst", - [(X86call GR32:$dst)]>; - def CALL32m : I<0xFF, MRM2m, (ops i32mem:$dst), "call {*}$dst", []>; + def CALLpcrel32 : I<0xE8, RawFrm, (ops i32imm:$dst, variable_ops), + "call ${dst:call}", []>; + def CALL32r : I<0xFF, MRM2r, (ops GR32:$dst, variable_ops), + "call {*}$dst", [(X86call GR32:$dst)]>; + def CALL32m : I<0xFF, MRM2m, (ops i32mem:$dst, variable_ops), + "call {*}$dst", []>; } // Tail call stuff. -- 2.34.1