Add read/write support for X86's sseregparm.
authorDale Johannesen <dalej@apple.com>
Wed, 13 Aug 2008 18:40:23 +0000 (18:40 +0000)
committerDale Johannesen <dalej@apple.com>
Wed, 13 Aug 2008 18:40:23 +0000 (18:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54744 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AsmParser/LLLexer.cpp
lib/AsmParser/llvmAsmParser.y
lib/VMCore/AsmWriter.cpp
lib/VMCore/Verifier.cpp

index 1da2e383ab97154af46cac576de4dfdfbdc3cab5..ce53f0d2a904da00f95e16de8a2a909ea7e55280 100644 (file)
@@ -483,6 +483,7 @@ int LLLexer::LexIdentifier() {
   KEYWORD("coldcc", COLDCC_TOK);
   KEYWORD("x86_stdcallcc", X86_STDCALLCC_TOK);
   KEYWORD("x86_fastcallcc", X86_FASTCALLCC_TOK);
+  KEYWORD("x86_ssecallcc", X86_SSECALLCC_TOK);
 
   KEYWORD("signext", SIGNEXT);
   KEYWORD("zeroext", ZEROEXT);
index 69c145980f06af7ef053f9a1ea104d33f0ab314d..9f317d8703f1bf1233c71b4adfb1aba2519c9e9f 100644 (file)
@@ -1082,6 +1082,7 @@ Module *llvm::RunVMAsmParser(llvm::MemoryBuffer *MB) {
 %token OPAQUE EXTERNAL TARGET TRIPLE ALIGN ADDRSPACE
 %token DEPLIBS CALL TAIL ASM_TOK MODULE SIDEEFFECT
 %token CC_TOK CCC_TOK FASTCC_TOK COLDCC_TOK X86_STDCALLCC_TOK X86_FASTCALLCC_TOK
+%token X86_SSECALLCC_TOK
 %token DATALAYOUT
 %type <UIntVal> OptCallingConv
 %type <ParamAttrs> OptParamAttrs ParamAttr 
@@ -1237,6 +1238,7 @@ OptCallingConv : /*empty*/          { $$ = CallingConv::C; } |
                  COLDCC_TOK         { $$ = CallingConv::Cold; } |
                  X86_STDCALLCC_TOK  { $$ = CallingConv::X86_StdCall; } |
                  X86_FASTCALLCC_TOK { $$ = CallingConv::X86_FastCall; } |
+                 X86_SSECALLCC_TOK  { $$ = CallingConv::X86_SSECall; } |
                  CC_TOK EUINT64VAL  {
                    if ((unsigned)$2 != $2)
                      GEN_ERROR("Calling conv too large");
index 9a87b1867df44474679932b9ed764bafb6fc8881..1cb9993843169b365d3d4c8aae5b4d8996d5d6e2 100644 (file)
@@ -1084,6 +1084,7 @@ void AssemblyWriter::printFunction(const Function *F) {
   case CallingConv::Cold:         Out << "coldcc "; break;
   case CallingConv::X86_StdCall:  Out << "x86_stdcallcc "; break;
   case CallingConv::X86_FastCall: Out << "x86_fastcallcc "; break; 
+  case CallingConv::X86_SSECall:  Out << "x86_ssecallcc "; break;
   default: Out << "cc" << F->getCallingConv() << " "; break;
   }
 
@@ -1318,6 +1319,7 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
     case CallingConv::Cold:  Out << " coldcc"; break;
     case CallingConv::X86_StdCall:  Out << " x86_stdcallcc"; break;
     case CallingConv::X86_FastCall: Out << " x86_fastcallcc"; break; 
+    case CallingConv::X86_SSECall: Out << " x86_ssecallcc"; break; 
     default: Out << " cc" << CI->getCallingConv(); break;
     }
 
@@ -1360,6 +1362,7 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
     case CallingConv::Cold:  Out << " coldcc"; break;
     case CallingConv::X86_StdCall:  Out << "x86_stdcallcc "; break;
     case CallingConv::X86_FastCall: Out << "x86_fastcallcc "; break;
+    case CallingConv::X86_SSECall: Out << "x86_ssecallcc "; break;
     default: Out << " cc" << II->getCallingConv(); break;
     }
 
index c093274d9de4f156c74f0055157fb0e1648fb13a..90f22df8faf3be6b9a4b58cbaa30a74a3c508dda 100644 (file)
@@ -488,6 +488,7 @@ void Verifier::visitFunction(Function &F) {
   default:
     break;
   case CallingConv::C:
+  case CallingConv::X86_SSECall:
     break;
   case CallingConv::Fast:
   case CallingConv::Cold: