diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2015-01-16 11:14:27 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2015-01-19 09:10:12 +0000 |
commit | a8eef82f394f31272610d7ed80328ee465fa1a0f (patch) | |
tree | 363103fcf07b2b4e6c944b02984d3f345b2949f1 /test/440-stmp | |
parent | c2c7a33a25169cdf19a0dcf45ddb3747055c7296 (diff) | |
download | art-a8eef82f394f31272610d7ed80328ee465fa1a0f.zip art-a8eef82f394f31272610d7ed80328ee465fa1a0f.tar.gz art-a8eef82f394f31272610d7ed80328ee465fa1a0f.tar.bz2 |
Do not use STMP, it conflicts with the calling convention.
Hard-float calling convention uses S14 and D7 for argument passing,
so we cannot use them.
Change-Id: I77a2d8c875677640204baebc24355051aa4175fd
Diffstat (limited to 'test/440-stmp')
-rw-r--r-- | test/440-stmp/expected.txt | 1 | ||||
-rw-r--r-- | test/440-stmp/info.txt | 3 | ||||
-rw-r--r-- | test/440-stmp/src/Main.java | 47 |
3 files changed, 51 insertions, 0 deletions
diff --git a/test/440-stmp/expected.txt b/test/440-stmp/expected.txt new file mode 100644 index 0000000..e995b05 --- /dev/null +++ b/test/440-stmp/expected.txt @@ -0,0 +1 @@ +-118.0 diff --git a/test/440-stmp/info.txt b/test/440-stmp/info.txt new file mode 100644 index 0000000..c4a7bf1 --- /dev/null +++ b/test/440-stmp/info.txt @@ -0,0 +1,3 @@ +Regression test for optimizing, that used to consider +a S/D register a temp, while it conflicted with the +hard-float calling convention. diff --git a/test/440-stmp/src/Main.java b/test/440-stmp/src/Main.java new file mode 100644 index 0000000..2dd10f8 --- /dev/null +++ b/test/440-stmp/src/Main.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +class Main { + public static void main(String[] args) { + new Main().bar(); + } + + public void bar() { + // Use up all available D registers on ARM. + baz(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o); + } + + public static void baz(float a, float b, float c, float d, float e, float f, float g, + float h, float i, float j, float k, float l, float m, float n, float o) { + System.out.println(a - b - c - d - e - f - g - h - i - j - k - l - m - n - o); + } + + float a = 1.0f; + float b = 2.0f; + float c = 3.0f; + float d = 4.0f; + float e = 5.0f; + float f = 6.0f; + float g = 7.0f; + float h = 8.0f; + float i = 9.0f; + float j = 10.0f; + float k = 11.0f; + float l = 12.0f; + float m = 13.0f; + float n = 14.0f; + float o = 15.0f; +} |