diff options
author | Vladimir Kostyukov <vladimir.kostyukov@intel.com> | 2014-04-02 18:42:20 +0700 |
---|---|---|
committer | Andreas Gampe <agampe@google.com> | 2014-04-07 09:39:16 -0700 |
commit | 1dd61ba3081a52c3e2efdc78d64f5c134eea7895 (patch) | |
tree | 3d708c62ffacf62d1ecd2019ea7a183411ff5787 /test/MyClassNatives | |
parent | 427ca38b0a6c6fd7dc0dbb380619e2b91b56cf1c (diff) | |
download | art-1dd61ba3081a52c3e2efdc78d64f5c134eea7895.tar.gz art-1dd61ba3081a52c3e2efdc78d64f5c134eea7895.tar.bz2 art-1dd61ba3081a52c3e2efdc78d64f5c134eea7895.zip |
ART: A workaround for a wrongly-read caller's frame
The quick-trampoline treats caller's frame in a different way
then it was formed by quck-invoke stub for hard float ABI targets
such as x86_64 and aarch64. The patch workarounds the issue of
wrongly-read stack arguments due to no contract between quick-invoke
stub and quick-trampoline/shadow-frame-builder regarding the reg-
spill area.
Change-Id: I302f212b4ea5e38632527a5ace03f136b21ef806
Signed-off-by: Vladimir Kostyukov <vladimir.kostyukov@intel.com>
Diffstat (limited to 'test/MyClassNatives')
-rw-r--r-- | test/MyClassNatives/MyClassNatives.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/MyClassNatives/MyClassNatives.java b/test/MyClassNatives/MyClassNatives.java index 09f1783780..b5e0204ab8 100644 --- a/test/MyClassNatives/MyClassNatives.java +++ b/test/MyClassNatives/MyClassNatives.java @@ -80,4 +80,16 @@ class MyClassNatives { Object o248, Object o249, Object o250, Object o251, Object o252, Object o253); native void withoutImplementation(); + + native static void stackArgsIntsFirst(int i1, int i2, int i3, int i4, int i5, int i6, int i7, + int i8, int i9, int i10, float f1, float f2, float f3, float f4, float f5, float f6, + float f7, float f8, float f9, float f10); + + native static void stackArgsFloatsFirst(float f1, float f2, float f3, float f4, float f5, + float f6, float f7, float f8, float f9, float f10, int i1, int i2, int i3, int i4, int i5, + int i6, int i7, int i8, int i9, int i10); + + native static void stackArgsMixed(int i1, float f1, int i2, float f2, int i3, float f3, int i4, + float f4, int i5, float f5, int i6, float f6, int i7, float f7, int i8, float f8, int i9, + float f9, int i10, float f10); } |