mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-02 22:23:10 +00:00
Add new calling convention for WebKit Java Script.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193812 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -151,6 +151,15 @@ def RetCC_X86_64_HiPE : CallingConv<[
|
||||
CCIfType<[i64], CCAssignToReg<[R15, RBP, RAX, RDX]>>
|
||||
]>;
|
||||
|
||||
// X86-64 WebKit_JS return-value convention.
|
||||
def RetCC_X86_64_WebKit_JS : CallingConv<[
|
||||
// Promote all types to i64
|
||||
CCIfType<[i8, i16, i32], CCPromoteToType<i64>>,
|
||||
|
||||
// Return: RAX
|
||||
CCIfType<[i64], CCAssignToReg<[RAX]>>
|
||||
]>;
|
||||
|
||||
// This is the root return-value convention for the X86-32 backend.
|
||||
def RetCC_X86_32 : CallingConv<[
|
||||
// If FastCC, use RetCC_X86_32_Fast.
|
||||
@@ -167,6 +176,9 @@ def RetCC_X86_64 : CallingConv<[
|
||||
// HiPE uses RetCC_X86_64_HiPE
|
||||
CCIfCC<"CallingConv::HiPE", CCDelegateTo<RetCC_X86_64_HiPE>>,
|
||||
|
||||
// Handle JavaScript calls.
|
||||
CCIfCC<"CallingConv::WebKit_JS", CCDelegateTo<RetCC_X86_64_WebKit_JS>>,
|
||||
|
||||
// Handle explicit CC selection
|
||||
CCIfCC<"CallingConv::X86_64_Win64", CCDelegateTo<RetCC_X86_Win64_C>>,
|
||||
CCIfCC<"CallingConv::X86_64_SysV", CCDelegateTo<RetCC_X86_64_C>>,
|
||||
@@ -329,6 +341,15 @@ def CC_X86_64_HiPE : CallingConv<[
|
||||
CCIfType<[i32, i64, f32, f64], CCAssignToStack<8, 8>>
|
||||
]>;
|
||||
|
||||
def CC_X86_64_WebKit_JS : CallingConv<[
|
||||
// Promote i8/i16 arguments to i32.
|
||||
CCIfType<[i8, i16], CCPromoteToType<i32>>,
|
||||
|
||||
// Integer/FP values are always stored in stack slots that are 8 bytes in size
|
||||
// and 8-byte aligned.
|
||||
CCIfType<[i32, i64, f32, f64], CCAssignToStack<8, 8>>
|
||||
]>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// X86 C Calling Convention
|
||||
//===----------------------------------------------------------------------===//
|
||||
@@ -520,6 +541,7 @@ def CC_X86_32 : CallingConv<[
|
||||
def CC_X86_64 : CallingConv<[
|
||||
CCIfCC<"CallingConv::GHC", CCDelegateTo<CC_X86_64_GHC>>,
|
||||
CCIfCC<"CallingConv::HiPE", CCDelegateTo<CC_X86_64_HiPE>>,
|
||||
CCIfCC<"CallingConv::WebKit_JS", CCDelegateTo<CC_X86_64_WebKit_JS>>,
|
||||
CCIfCC<"CallingConv::X86_64_Win64", CCDelegateTo<CC_X86_Win64_C>>,
|
||||
CCIfCC<"CallingConv::X86_64_SysV", CCDelegateTo<CC_X86_64_C>>,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user