mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-13 23:18:58 +00:00
Add MSP430 interrupt calling conv. No functionality change yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90738 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b2de1ea29b
commit
211a14e476
@ -68,7 +68,10 @@ namespace CallingConv {
|
||||
ARM_AAPCS = 67,
|
||||
|
||||
/// ARM_AAPCS_VFP - Same as ARM_AAPCS, but uses hard floating point ABI.
|
||||
ARM_AAPCS_VFP = 68
|
||||
ARM_AAPCS_VFP = 68,
|
||||
|
||||
/// MSP430_INTR - Calling convention used for MSP430 interrupt routines.
|
||||
MSP430_INTR = 69
|
||||
};
|
||||
} // End CallingConv namespace
|
||||
|
||||
|
@ -540,6 +540,7 @@ lltok::Kind LLLexer::LexIdentifier() {
|
||||
KEYWORD(arm_apcscc);
|
||||
KEYWORD(arm_aapcscc);
|
||||
KEYWORD(arm_aapcs_vfpcc);
|
||||
KEYWORD(msp430_intrcc);
|
||||
|
||||
KEYWORD(cc);
|
||||
KEYWORD(c);
|
||||
|
@ -1074,6 +1074,7 @@ bool LLParser::ParseOptionalVisibility(unsigned &Res) {
|
||||
/// ::= 'arm_apcscc'
|
||||
/// ::= 'arm_aapcscc'
|
||||
/// ::= 'arm_aapcs_vfpcc'
|
||||
/// ::= 'msp430_intrcc'
|
||||
/// ::= 'cc' UINT
|
||||
///
|
||||
bool LLParser::ParseOptionalCallingConv(CallingConv::ID &CC) {
|
||||
@ -1087,6 +1088,7 @@ bool LLParser::ParseOptionalCallingConv(CallingConv::ID &CC) {
|
||||
case lltok::kw_arm_apcscc: CC = CallingConv::ARM_APCS; break;
|
||||
case lltok::kw_arm_aapcscc: CC = CallingConv::ARM_AAPCS; break;
|
||||
case lltok::kw_arm_aapcs_vfpcc:CC = CallingConv::ARM_AAPCS_VFP; break;
|
||||
case lltok::kw_msp430_intrcc: CC = CallingConv::MSP430_INTR; break;
|
||||
case lltok::kw_cc: {
|
||||
unsigned ArbitraryCC;
|
||||
Lex.Lex();
|
||||
|
@ -69,6 +69,7 @@ namespace lltok {
|
||||
kw_cc, kw_ccc, kw_fastcc, kw_coldcc,
|
||||
kw_x86_stdcallcc, kw_x86_fastcallcc,
|
||||
kw_arm_apcscc, kw_arm_aapcscc, kw_arm_aapcs_vfpcc,
|
||||
kw_msp430_intrcc,
|
||||
|
||||
kw_signext,
|
||||
kw_zeroext,
|
||||
|
@ -1660,6 +1660,7 @@ void AssemblyWriter::printFunction(const Function *F) {
|
||||
case CallingConv::ARM_APCS: Out << "arm_apcscc "; break;
|
||||
case CallingConv::ARM_AAPCS: Out << "arm_aapcscc "; break;
|
||||
case CallingConv::ARM_AAPCS_VFP:Out << "arm_aapcs_vfpcc "; break;
|
||||
case CallingConv::MSP430_INTR: Out << "msp430_intrcc "; break;
|
||||
default: Out << "cc" << F->getCallingConv() << " "; break;
|
||||
}
|
||||
|
||||
@ -1927,6 +1928,7 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
|
||||
case CallingConv::ARM_APCS: Out << " arm_apcscc "; break;
|
||||
case CallingConv::ARM_AAPCS: Out << " arm_aapcscc "; break;
|
||||
case CallingConv::ARM_AAPCS_VFP:Out << " arm_aapcs_vfpcc "; break;
|
||||
case CallingConv::MSP430_INTR: Out << " msp430_intrcc "; break;
|
||||
default: Out << " cc" << CI->getCallingConv(); break;
|
||||
}
|
||||
|
||||
@ -1977,6 +1979,7 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
|
||||
case CallingConv::ARM_APCS: Out << " arm_apcscc "; break;
|
||||
case CallingConv::ARM_AAPCS: Out << " arm_aapcscc "; break;
|
||||
case CallingConv::ARM_AAPCS_VFP:Out << " arm_aapcs_vfpcc "; break;
|
||||
case CallingConv::MSP430_INTR: Out << " msp430_intrcc "; break;
|
||||
default: Out << " cc" << II->getCallingConv(); break;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user