OSDN Git Service

X86 call instructions can take variable number of operands. Parameters of
authorEvan Cheng <evan.cheng@apple.com>
Wed, 14 Jun 2006 22:24:55 +0000 (22:24 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 14 Jun 2006 22:24:55 +0000 (22:24 +0000)
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

index 97f6d9f..e195f0f 100644 (file)
@@ -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.