diff options
author | Vladimir Marko <vmarko@google.com> | 2015-01-12 18:19:45 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-01-12 18:19:46 +0000 |
commit | 13428670585d9a7f6b24273fb26c721c2ff6c551 (patch) | |
tree | 25b602a442679540e6ec029bd81857b098bea3a5 /runtime/entrypoints | |
parent | 603104b5b5c3759b0bc2733bda2f972686a775a3 (diff) | |
parent | 59b9cf7ec0ccc13df91be0bd5c723b8c52410739 (diff) | |
download | art-13428670585d9a7f6b24273fb26c721c2ff6c551.zip art-13428670585d9a7f6b24273fb26c721c2ff6c551.tar.gz art-13428670585d9a7f6b24273fb26c721c2ff6c551.tar.bz2 |
Merge "ART: Implement hard float for X86"
Diffstat (limited to 'runtime/entrypoints')
-rw-r--r-- | runtime/entrypoints/quick/quick_trampoline_entrypoints.cc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc index 4bec70a..24bedba 100644 --- a/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc +++ b/runtime/entrypoints/quick/quick_trampoline_entrypoints.cc @@ -145,14 +145,18 @@ class QuickArgumentVisitor { // | EBX | arg3 // | EDX | arg2 // | ECX | arg1 + // | XMM3 | float arg 4 + // | XMM2 | float arg 3 + // | XMM1 | float arg 2 + // | XMM0 | float arg 1 // | EAX/Method* | <- sp - static constexpr bool kQuickSoftFloatAbi = true; // This is a soft float ABI. + static constexpr bool kQuickSoftFloatAbi = false; // This is a hard float ABI. static constexpr bool kQuickDoubleRegAlignedFloatBackFilled = false; static constexpr size_t kNumQuickGprArgs = 3; // 3 arguments passed in GPRs. - static constexpr size_t kNumQuickFprArgs = 0; // 0 arguments passed in FPRs. - static constexpr size_t kQuickCalleeSaveFrame_RefAndArgs_Fpr1Offset = 0; // Offset of first FPR arg. - static constexpr size_t kQuickCalleeSaveFrame_RefAndArgs_Gpr1Offset = 4; // Offset of first GPR arg. - static constexpr size_t kQuickCalleeSaveFrame_RefAndArgs_LrOffset = 28; // Offset of return address. + static constexpr size_t kNumQuickFprArgs = 4; // 4 arguments passed in FPRs. + static constexpr size_t kQuickCalleeSaveFrame_RefAndArgs_Fpr1Offset = 4; // Offset of first FPR arg. + static constexpr size_t kQuickCalleeSaveFrame_RefAndArgs_Gpr1Offset = 4 + 4*8; // Offset of first GPR arg. + static constexpr size_t kQuickCalleeSaveFrame_RefAndArgs_LrOffset = 28 + 4*8; // Offset of return address. static size_t GprIndexToGprOffset(uint32_t gpr_index) { return gpr_index * GetBytesPerGprSpillLocation(kRuntimeISA); } |