Add read/write support for X86's sseregparm.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54744 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AsmParser/LLLexer.cpp b/lib/AsmParser/LLLexer.cpp
index 1da2e38..ce53f0d 100644
--- a/lib/AsmParser/LLLexer.cpp
+++ b/lib/AsmParser/LLLexer.cpp
@@ -483,6 +483,7 @@
   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);
diff --git a/lib/AsmParser/llvmAsmParser.y b/lib/AsmParser/llvmAsmParser.y
index 69c1459..9f317d8 100644
--- a/lib/AsmParser/llvmAsmParser.y
+++ b/lib/AsmParser/llvmAsmParser.y
@@ -1082,6 +1082,7 @@
 %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 @@
                  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");
diff --git a/lib/VMCore/AsmWriter.cpp b/lib/VMCore/AsmWriter.cpp
index 9a87b18..1cb9993 100644
--- a/lib/VMCore/AsmWriter.cpp
+++ b/lib/VMCore/AsmWriter.cpp
@@ -1084,6 +1084,7 @@
   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 @@
     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 @@
     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;
     }
 
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp
index c093274..90f22df 100644
--- a/lib/VMCore/Verifier.cpp
+++ b/lib/VMCore/Verifier.cpp
@@ -488,6 +488,7 @@
   default:
     break;
   case CallingConv::C:
+  case CallingConv::X86_SSECall:
     break;
   case CallingConv::Fast:
   case CallingConv::Cold: