forked from OSchip/llvm-project
Use X86_thiscall calling convention for Win64 as well.
llvm-svn: 126934
This commit is contained in:
parent
d92d17bf67
commit
3bc0bcf3ad
|
@ -94,10 +94,7 @@ namespace CallingConv {
|
||||||
|
|
||||||
/// MBLAZE_INTR - Calling convention used for MBlaze interrupt support
|
/// MBLAZE_INTR - Calling convention used for MBlaze interrupt support
|
||||||
/// routines (i.e. GCC's save_volatiles attribute).
|
/// routines (i.e. GCC's save_volatiles attribute).
|
||||||
MBLAZE_SVOL = 74,
|
MBLAZE_SVOL = 74
|
||||||
|
|
||||||
/// Win64_ThisCall - Calling convention used for method calls on Win64.
|
|
||||||
Win64_ThisCall = 75
|
|
||||||
};
|
};
|
||||||
} // End CallingConv namespace
|
} // End CallingConv namespace
|
||||||
|
|
||||||
|
|
|
@ -549,7 +549,6 @@ lltok::Kind LLLexer::LexIdentifier() {
|
||||||
KEYWORD(msp430_intrcc);
|
KEYWORD(msp430_intrcc);
|
||||||
KEYWORD(ptx_kernel);
|
KEYWORD(ptx_kernel);
|
||||||
KEYWORD(ptx_device);
|
KEYWORD(ptx_device);
|
||||||
KEYWORD(win64_thiscallcc);
|
|
||||||
|
|
||||||
KEYWORD(cc);
|
KEYWORD(cc);
|
||||||
KEYWORD(c);
|
KEYWORD(c);
|
||||||
|
|
|
@ -1087,7 +1087,6 @@ bool LLParser::ParseOptionalVisibility(unsigned &Res) {
|
||||||
/// ::= 'msp430_intrcc'
|
/// ::= 'msp430_intrcc'
|
||||||
/// ::= 'ptx_kernel'
|
/// ::= 'ptx_kernel'
|
||||||
/// ::= 'ptx_device'
|
/// ::= 'ptx_device'
|
||||||
/// ::= 'win64_thiscallcc'
|
|
||||||
/// ::= 'cc' UINT
|
/// ::= 'cc' UINT
|
||||||
///
|
///
|
||||||
bool LLParser::ParseOptionalCallingConv(CallingConv::ID &CC) {
|
bool LLParser::ParseOptionalCallingConv(CallingConv::ID &CC) {
|
||||||
|
@ -1105,7 +1104,6 @@ bool LLParser::ParseOptionalCallingConv(CallingConv::ID &CC) {
|
||||||
case lltok::kw_msp430_intrcc: CC = CallingConv::MSP430_INTR; break;
|
case lltok::kw_msp430_intrcc: CC = CallingConv::MSP430_INTR; break;
|
||||||
case lltok::kw_ptx_kernel: CC = CallingConv::PTX_Kernel; break;
|
case lltok::kw_ptx_kernel: CC = CallingConv::PTX_Kernel; break;
|
||||||
case lltok::kw_ptx_device: CC = CallingConv::PTX_Device; break;
|
case lltok::kw_ptx_device: CC = CallingConv::PTX_Device; break;
|
||||||
case lltok::kw_win64_thiscallcc:CC = CallingConv::Win64_ThisCall; break;
|
|
||||||
case lltok::kw_cc: {
|
case lltok::kw_cc: {
|
||||||
unsigned ArbitraryCC;
|
unsigned ArbitraryCC;
|
||||||
Lex.Lex();
|
Lex.Lex();
|
||||||
|
|
|
@ -74,7 +74,6 @@ namespace lltok {
|
||||||
kw_arm_apcscc, kw_arm_aapcscc, kw_arm_aapcs_vfpcc,
|
kw_arm_apcscc, kw_arm_aapcscc, kw_arm_aapcs_vfpcc,
|
||||||
kw_msp430_intrcc,
|
kw_msp430_intrcc,
|
||||||
kw_ptx_kernel, kw_ptx_device,
|
kw_ptx_kernel, kw_ptx_device,
|
||||||
kw_win64_thiscallcc,
|
|
||||||
|
|
||||||
kw_signext,
|
kw_signext,
|
||||||
kw_zeroext,
|
kw_zeroext,
|
||||||
|
|
|
@ -218,7 +218,7 @@ def CC_X86_Win64_C : CallingConv<[
|
||||||
|
|
||||||
// Do not pass the sret argument in RCX, the Win64 thiscall calling
|
// Do not pass the sret argument in RCX, the Win64 thiscall calling
|
||||||
// convention requires "this" to be passed in RCX.
|
// convention requires "this" to be passed in RCX.
|
||||||
CCIfCC<"CallingConv::Win64_ThisCall",
|
CCIfCC<"CallingConv::X86_ThisCall",
|
||||||
CCIfSRet<CCIfType<[i64], CCAssignToRegWithShadow<[RDX , R8 , R9 ],
|
CCIfSRet<CCIfType<[i64], CCAssignToRegWithShadow<[RDX , R8 , R9 ],
|
||||||
[XMM1, XMM2, XMM3]>>>>,
|
[XMM1, XMM2, XMM3]>>>>,
|
||||||
|
|
||||||
|
|
|
@ -1586,7 +1586,6 @@ void AssemblyWriter::printFunction(const Function *F) {
|
||||||
case CallingConv::MSP430_INTR: Out << "msp430_intrcc "; break;
|
case CallingConv::MSP430_INTR: Out << "msp430_intrcc "; break;
|
||||||
case CallingConv::PTX_Kernel: Out << "ptx_kernel"; break;
|
case CallingConv::PTX_Kernel: Out << "ptx_kernel"; break;
|
||||||
case CallingConv::PTX_Device: Out << "ptx_device"; break;
|
case CallingConv::PTX_Device: Out << "ptx_device"; break;
|
||||||
case CallingConv::Win64_ThisCall:Out << "win64_thiscallcc "; break;
|
|
||||||
default: Out << "cc" << F->getCallingConv() << " "; break;
|
default: Out << "cc" << F->getCallingConv() << " "; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1859,7 +1858,6 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
|
||||||
case CallingConv::MSP430_INTR: Out << " msp430_intrcc "; break;
|
case CallingConv::MSP430_INTR: Out << " msp430_intrcc "; break;
|
||||||
case CallingConv::PTX_Kernel: Out << " ptx_kernel"; break;
|
case CallingConv::PTX_Kernel: Out << " ptx_kernel"; break;
|
||||||
case CallingConv::PTX_Device: Out << " ptx_device"; break;
|
case CallingConv::PTX_Device: Out << " ptx_device"; break;
|
||||||
case CallingConv::Win64_ThisCall:Out << " win64_thiscallcc "; break;
|
|
||||||
default: Out << " cc" << CI->getCallingConv(); break;
|
default: Out << " cc" << CI->getCallingConv(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1916,7 +1914,6 @@ void AssemblyWriter::printInstruction(const Instruction &I) {
|
||||||
case CallingConv::MSP430_INTR: Out << " msp430_intrcc "; break;
|
case CallingConv::MSP430_INTR: Out << " msp430_intrcc "; break;
|
||||||
case CallingConv::PTX_Kernel: Out << " ptx_kernel"; break;
|
case CallingConv::PTX_Kernel: Out << " ptx_kernel"; break;
|
||||||
case CallingConv::PTX_Device: Out << " ptx_device"; break;
|
case CallingConv::PTX_Device: Out << " ptx_device"; break;
|
||||||
case CallingConv::Win64_ThisCall:Out << " win64_thiscallcc "; break;
|
|
||||||
default: Out << " cc" << II->getCallingConv(); break;
|
default: Out << " cc" << II->getCallingConv(); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue