From 58994cdb00b323339bd83828eddc53976048006f Mon Sep 17 00:00:00 2001 From: Dmitry Petrochenko Date: Sat, 17 May 2014 01:02:18 +0700 Subject: x86_64: Hard Float ABI support in QCG This patch shows our efforts on resolving the ART limitations: - passing "float"/"double" arguments via FPR - passing "long" arguments via single GPR, not pair - passing more than 3 agruments via GPR. Work done: - Extended SpecialTargetRegister enum with kARG4, kARG5, fARG4..fARG7. - Created initial LoadArgRegs/GenDalvikX/FlushIns version in X86Mir2Lir. - Unlimited number of long/double/float arguments support - Refactored (v2) Change-Id: I5deadd320b4341d5b2f50ba6fa4a98031abc3902 Signed-off-by: Serguei Katkov Signed-off-by: Dmitry Petrochenko Signed-off-by: Chao-ying Fu Signed-off-by: Mark Mendell --- compiler/dex/compiler_enums.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'compiler/dex/compiler_enums.h') diff --git a/compiler/dex/compiler_enums.h b/compiler/dex/compiler_enums.h index eb48cc3783..f0b47878e6 100644 --- a/compiler/dex/compiler_enums.h +++ b/compiler/dex/compiler_enums.h @@ -48,10 +48,16 @@ enum SpecialTargetRegister { kArg1, kArg2, kArg3, + kArg4, + kArg5, kFArg0, kFArg1, kFArg2, kFArg3, + kFArg4, + kFArg5, + kFArg6, + kFArg7, kRet0, kRet1, kInvokeTgt, -- cgit v1.2.3-59-g8ed1b