summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-06-14 22:24:55 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-06-14 22:24:55 +0000
commitc8734381ac2ad5e794709ec7899d2336eb997f91 (patch)
treea4f6b6c15aecaa74ed742ad7e17d7ec0add2f5bf
parentff7c28dfddfedd8b0d469e07edd79f13950e0e94 (diff)
downloadbcm5719-llvm-c8734381ac2ad5e794709ec7899d2336eb997f91.tar.gz
bcm5719-llvm-c8734381ac2ad5e794709ec7899d2336eb997f91.zip
X86 call instructions can take variable number of operands. Parameters of
vector types are passed via XMM registers. llvm-svn: 28789
-rw-r--r--llvm/lib/Target/X86/X86InstrInfo.td11
1 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td
index 97f6d9ff8be..e195f0fb150 100644
--- a/llvm/lib/Target/X86/X86InstrInfo.td
+++ b/llvm/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.
OpenPOWER on IntegriCloud