summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86CallingConv.td
diff options
context:
space:
mode:
authorJuergen Ributzka <juergen@apple.com>2013-12-16 19:53:31 +0000
committerJuergen Ributzka <juergen@apple.com>2013-12-16 19:53:31 +0000
commit1d86f6730f70de4234b1c09841eebf64c692625f (patch)
treecedd2abb76ec6f95fde2d797329dc0135bcfe646 /lib/Target/X86/X86CallingConv.td
parentb961a26cec1e7b7b96edc200ef8d09fc12c11088 (diff)
downloadllvm-1d86f6730f70de4234b1c09841eebf64c692625f.tar.gz
llvm-1d86f6730f70de4234b1c09841eebf64c692625f.tar.bz2
llvm-1d86f6730f70de4234b1c09841eebf64c692625f.tar.xz
[Stackmap] The first integer argument is passed in register for the WebKit_JS calling convention.
Pass the first integer argument (callee) in register to optimize inline caches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197416 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86CallingConv.td')
-rw-r--r--lib/Target/X86/X86CallingConv.td4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/X86/X86CallingConv.td b/lib/Target/X86/X86CallingConv.td
index 31c62c3f5e..ef8caa0290 100644
--- a/lib/Target/X86/X86CallingConv.td
+++ b/lib/Target/X86/X86CallingConv.td
@@ -357,6 +357,10 @@ def CC_X86_64_WebKit_JS : CallingConv<[
// Promote i8/i16 arguments to i32.
CCIfType<[i8, i16], CCPromoteToType<i32>>,
+ // Only the first integer argument is passed in register.
+ CCIfType<[i32], CCAssignToReg<[EDI]>>,
+ CCIfType<[i64], CCAssignToReg<[RDI]>>,
+
// 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>>