diff options
author | Dmitry Petrochenko <dmitry.petrochenko@intel.com> | 2014-05-17 01:02:18 +0700 |
---|---|---|
committer | Dmitry Petrochenko <dmitry.petrochenko@intel.com> | 2014-06-07 01:28:05 +0000 |
commit | 58994cdb00b323339bd83828eddc53976048006f (patch) | |
tree | a1ec67c5b04cf99439619bf972a58b6d46dd2823 /compiler/dex/compiler_enums.h | |
parent | 9529d6273777ee297a8aa7513e8172775f0496df (diff) | |
download | android_art-58994cdb00b323339bd83828eddc53976048006f.tar.gz android_art-58994cdb00b323339bd83828eddc53976048006f.tar.bz2 android_art-58994cdb00b323339bd83828eddc53976048006f.zip |
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 <serguei.i.katkov@intel.com>
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Diffstat (limited to 'compiler/dex/compiler_enums.h')
-rw-r--r-- | compiler/dex/compiler_enums.h | 6 |
1 files changed, 6 insertions, 0 deletions
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, |