OSDN Git Service

android-x86/art.git
8 years agoMerge \\"Revert \\"Revert \\"Optimize IMT\\"\\"\\" am: 83e4903f9f
Jeff Hao [Fri, 8 Jul 2016 20:25:21 +0000 (20:25 +0000)]
Merge \\"Revert \\"Revert \\"Optimize IMT\\"\\"\\" am: 83e4903f9f
am: 295a8a75ef

Change-Id: I7184162772b1878cab62b042de1f493a1b1d52f4

8 years agoMerge \"Revert \"Revert \"Optimize IMT\"\"\"
Artem Udovichenko [Fri, 8 Jul 2016 20:20:42 +0000 (20:20 +0000)]
Merge \"Revert \"Revert \"Optimize IMT\"\"\"
am: 83e4903f9f

Change-Id: I8e62c7310ad66948716d8e5a628022b4f92c7f86

8 years agoMerge "Revert "Revert "Optimize IMT"""
Jeff Hao [Fri, 8 Jul 2016 20:06:58 +0000 (20:06 +0000)]
Merge "Revert "Revert "Optimize IMT"""

8 years agoMerge \\"Fix missing patchoat dependency for dex2oat test.\\" am: dadc075149
Richard Uhler [Fri, 8 Jul 2016 17:42:14 +0000 (17:42 +0000)]
Merge \\"Fix missing patchoat dependency for dex2oat test.\\" am: dadc075149
am: e2555d843b

Change-Id: I9643a9bcc5ac41851567a307d728f92a3a3932d1

8 years agoMerge \"Fix missing patchoat dependency for dex2oat test.\"
Richard Uhler [Fri, 8 Jul 2016 17:38:44 +0000 (17:38 +0000)]
Merge \"Fix missing patchoat dependency for dex2oat test.\"
am: dadc075149

Change-Id: Ia4a0f663f186c94ef8bcf632c6bd3285e2eae388

8 years agoMerge \\"MIPS64: java.lang.Math.round\\" am: b136c87854
Aart Bik [Fri, 8 Jul 2016 17:38:39 +0000 (17:38 +0000)]
Merge \\"MIPS64: java.lang.Math.round\\" am: b136c87854
am: ee76f0740f

Change-Id: I000e77f536ee2a4a16d59f01e8bb361a75225995

8 years agoMerge \"MIPS64: java.lang.Math.round\"
Chris Larsen [Fri, 8 Jul 2016 17:35:12 +0000 (17:35 +0000)]
Merge \"MIPS64: java.lang.Math.round\"
am: b136c87854

Change-Id: I13aeb94bf27ae0b888cbe6b2391c7f39288daef4

8 years agoMerge "Fix missing patchoat dependency for dex2oat test."
Treehugger Robot [Fri, 8 Jul 2016 17:31:52 +0000 (17:31 +0000)]
Merge "Fix missing patchoat dependency for dex2oat test."

8 years agoMerge "MIPS64: java.lang.Math.round"
Aart Bik [Fri, 8 Jul 2016 17:26:30 +0000 (17:26 +0000)]
Merge "MIPS64: java.lang.Math.round"

8 years agoMerge \\"Math Round Intrinsic Implementations For Java8.\\" am: a548c081fe
Roland Levillain [Fri, 8 Jul 2016 16:38:59 +0000 (16:38 +0000)]
Merge \\"Math Round Intrinsic Implementations For Java8.\\" am: a548c081fe
am: 7b5da38b55

Change-Id: Ia559faecf2a1ce5e863f9c9f0e08501cd133de76

8 years agoMerge \"Math Round Intrinsic Implementations For Java8.\"
xueliang.zhong [Fri, 8 Jul 2016 16:35:27 +0000 (16:35 +0000)]
Merge \"Math Round Intrinsic Implementations For Java8.\"
am: a548c081fe

Change-Id: I6fa34bb5386619435811c71b4c9b927249b8b06c

8 years agoMerge "Math Round Intrinsic Implementations For Java8."
Roland Levillain [Fri, 8 Jul 2016 16:28:23 +0000 (16:28 +0000)]
Merge "Math Round Intrinsic Implementations For Java8."

8 years agoFix missing patchoat dependency for dex2oat test.
Richard Uhler [Fri, 8 Jul 2016 16:22:33 +0000 (09:22 -0700)]
Fix missing patchoat dependency for dex2oat test.

Change-Id: I7d00e676b895da805a1e476214cb4c92d7581e2b
Test: rm -r out && m test-art-host-gtest-dex2oat_test
Test: rm -r out && m test-art-host-gtest-oat_file_assistant_test

8 years agoMerge \\"ARM: Remove unnecessary VMOV from float/double-to-int.\\" am: 4a7a7d2679
Vladimir Marko [Fri, 8 Jul 2016 15:55:59 +0000 (15:55 +0000)]
Merge \\"ARM: Remove unnecessary VMOV from float/double-to-int.\\" am: 4a7a7d2679
am: dae628784e

Change-Id: I348409c461e99c4bcbc2b40cfbd47d04590d4f82

8 years agoMerge \"ARM: Remove unnecessary VMOV from float/double-to-int.\"
Vladimir Marko [Fri, 8 Jul 2016 15:52:12 +0000 (15:52 +0000)]
Merge \"ARM: Remove unnecessary VMOV from float/double-to-int.\"
am: 4a7a7d2679

Change-Id: Ic344be7007d64a5045005c796535b8dab7c91ac1

8 years agoMerge "ARM: Remove unnecessary VMOV from float/double-to-int."
Vladimir Marko [Fri, 8 Jul 2016 15:43:25 +0000 (15:43 +0000)]
Merge "ARM: Remove unnecessary VMOV from float/double-to-int."

8 years agoMerge \\"Fix the definition of THREAD_CURRENT_IBASE_OFFSET.\\" am: 5f485719b1
Roland Levillain [Fri, 8 Jul 2016 15:30:37 +0000 (15:30 +0000)]
Merge \\"Fix the definition of THREAD_CURRENT_IBASE_OFFSET.\\" am: 5f485719b1
am: 2576d6227d

Change-Id: Ib54b6b7ede9662e33fd5c67743ff2d91fffe7a38

8 years agoMerge \"Fix the definition of THREAD_CURRENT_IBASE_OFFSET.\"
Roland Levillain [Fri, 8 Jul 2016 15:27:07 +0000 (15:27 +0000)]
Merge \"Fix the definition of THREAD_CURRENT_IBASE_OFFSET.\"
am: 5f485719b1

Change-Id: I826e160196ec939d5c913dab8ededb50253929c3

8 years agoMerge "Fix the definition of THREAD_CURRENT_IBASE_OFFSET."
Roland Levillain [Fri, 8 Jul 2016 15:15:17 +0000 (15:15 +0000)]
Merge "Fix the definition of THREAD_CURRENT_IBASE_OFFSET."

8 years agoMerge \\"ARM: Use 64-bit literals for LoadDImmediate().\\" am: 4d35bee020
Vladimir Marko [Fri, 8 Jul 2016 14:47:31 +0000 (14:47 +0000)]
Merge \\"ARM: Use 64-bit literals for LoadDImmediate().\\" am: 4d35bee020
am: 6e6fd09b7c

Change-Id: I21083adcffb8fae97e2d24ca44dfcd43ae5eb672

8 years agoMerge \"ARM: Use 64-bit literals for LoadDImmediate().\"
Vladimir Marko [Fri, 8 Jul 2016 14:43:46 +0000 (14:43 +0000)]
Merge \"ARM: Use 64-bit literals for LoadDImmediate().\"
am: 4d35bee020

Change-Id: Idda579ae8bf35ee11634db8d75e7ac70aa9d522d

8 years agoMerge "ARM: Use 64-bit literals for LoadDImmediate()."
Treehugger Robot [Fri, 8 Jul 2016 14:36:43 +0000 (14:36 +0000)]
Merge "ARM: Use 64-bit literals for LoadDImmediate()."

8 years agoFix the definition of THREAD_CURRENT_IBASE_OFFSET.
Roland Levillain [Fri, 8 Jul 2016 13:21:44 +0000 (14:21 +0100)]
Fix the definition of THREAD_CURRENT_IBASE_OFFSET.

The difference between between
art::Thread::tlsPtr_.mterp_current_ibase and
art::Thread::tlsPtr_.thread_local_objects is sizeof(size_t),
not sizeof(void*) (even if they have the same value on all
supported platforms/compilers in practice).

Test: ART host tests.
Change-Id: I70d196732499bd0cd073983de564547d08ee59ef

8 years agoMath Round Intrinsic Implementations For Java8.
xueliang.zhong [Fri, 27 May 2016 17:56:13 +0000 (18:56 +0100)]
Math Round Intrinsic Implementations For Java8.

According to Java 8 API definition Math.round() performs:
Return the closest long or int to the argument,
with ties rounding to positive infinity.

Before this patch, the Math.round intrinsics were disabled,
because they followed the old definition of Math.round: floor(input+0.5).

This patch reimplement Math.round intrinsic to follow the new definition.

Change-Id: I453c01a9857a3d461b230e4d4e98c2d7bdf7a3c7

8 years agoARM: Use 64-bit literals for LoadDImmediate().
Vladimir Marko [Thu, 7 Jul 2016 14:37:02 +0000 (15:37 +0100)]
ARM: Use 64-bit literals for LoadDImmediate().

And rewrite the medium-range long/fp literal to use
MOVW+ADD+LDRD/VLDR because the old instruction sequence
was broken if the "ADD ip, pc" was not 4-byte aligned.

Test: assembler_thumb2_test has been updated. Standard
      ART test suite has been run on host and Nexus 5.
Change-Id: I37c6a62aa6e77c6a9701b5a1fb4db2e666c1eae9

8 years agoMerge \\"Implement System.arraycopy intrinsic on x86.\\" am: 2e7acaffda
Nicolas Geoffray [Fri, 8 Jul 2016 13:03:38 +0000 (13:03 +0000)]
Merge \\"Implement System.arraycopy intrinsic on x86.\\" am: 2e7acaffda
am: 7bfa67d404

Change-Id: I7eaa1f52054fa789737c18f82ed32f134ede4174

8 years agoMerge \"Implement System.arraycopy intrinsic on x86.\"
Nicolas Geoffray [Fri, 8 Jul 2016 13:00:27 +0000 (13:00 +0000)]
Merge \"Implement System.arraycopy intrinsic on x86.\"
am: 2e7acaffda

Change-Id: If7581ac4c13c547afd1ffbbe4655fd5c930c3531

8 years agoMerge "Implement System.arraycopy intrinsic on x86."
Nicolas Geoffray [Fri, 8 Jul 2016 12:51:01 +0000 (12:51 +0000)]
Merge "Implement System.arraycopy intrinsic on x86."

8 years agoMerge \\"Mark ReadBarrierJni as a direct entry point on MIPS32.\\" am: 7d14037d25
Roland Levillain [Fri, 8 Jul 2016 11:31:54 +0000 (11:31 +0000)]
Merge \\"Mark ReadBarrierJni as a direct entry point on MIPS32.\\" am: 7d14037d25
am: e7c4e932b3

Change-Id: I3ab244847c3245979a617b6b29d997b429e5d59f

8 years agoMerge \"Mark ReadBarrierJni as a direct entry point on MIPS32.\"
Roland Levillain [Fri, 8 Jul 2016 11:28:22 +0000 (11:28 +0000)]
Merge \"Mark ReadBarrierJni as a direct entry point on MIPS32.\"
am: 7d14037d25

Change-Id: I047cf431bbf6d69ac6fc24a73077556540d3b732

8 years agoMerge "Mark ReadBarrierJni as a direct entry point on MIPS32."
Roland Levillain [Fri, 8 Jul 2016 11:19:03 +0000 (11:19 +0000)]
Merge "Mark ReadBarrierJni as a direct entry point on MIPS32."

8 years agoMerge \\"Revert \\"Revert \\"ART: Add Mterp export pc poison testing mode\\"\\"\...
Bill Buzbee [Thu, 7 Jul 2016 22:04:14 +0000 (22:04 +0000)]
Merge \\"Revert \\"Revert \\"ART: Add Mterp export pc poison testing mode\\"\\"\\" am: 59313b2035
am: 08a4340053

Change-Id: I99e867dafd2dd3ccb34e14fc129752484dce858f

8 years agoMerge \"Revert \"Revert \"ART: Add Mterp export pc poison testing mode\"\"\"
Bill Buzbee [Thu, 7 Jul 2016 22:00:59 +0000 (22:00 +0000)]
Merge \"Revert \"Revert \"ART: Add Mterp export pc poison testing mode\"\"\"
am: 59313b2035

Change-Id: I25cef95ff4d7714e56bd692c37d62c4100f989f5

8 years agoMerge "Revert "Revert "ART: Add Mterp export pc poison testing mode"""
Bill Buzbee [Thu, 7 Jul 2016 21:53:29 +0000 (21:53 +0000)]
Merge "Revert "Revert "ART: Add Mterp export pc poison testing mode"""

8 years agoMerge \\"Add missing dependency required for ahat-test.\\" am: c9c5fe47ea
Richard Uhler [Thu, 7 Jul 2016 18:09:39 +0000 (18:09 +0000)]
Merge \\"Add missing dependency required for ahat-test.\\" am: c9c5fe47ea
am: 0fc2b06bb0

Change-Id: I982f86e4cea335ad3dbc7feaa51b7f91b5a2a94f

8 years agoMerge \"Add missing dependency required for ahat-test.\"
Richard Uhler [Thu, 7 Jul 2016 18:04:50 +0000 (18:04 +0000)]
Merge \"Add missing dependency required for ahat-test.\"
am: c9c5fe47ea

Change-Id: I1088756fe48935df229e477a52fb0b8ba2560b01

8 years agoMerge "Add missing dependency required for ahat-test."
Treehugger Robot [Thu, 7 Jul 2016 17:53:56 +0000 (17:53 +0000)]
Merge "Add missing dependency required for ahat-test."

8 years agoImplement System.arraycopy intrinsic on x86.
Nicolas Geoffray [Wed, 6 Jul 2016 11:09:12 +0000 (12:09 +0100)]
Implement System.arraycopy intrinsic on x86.

Also remove wrong comments when doing the raw copying.

test:run-test, 537-checker-arraycopy, 610-arraycopy

Change-Id: I2495bc03cde8ccad03c93f7722dd29bf85138525

8 years agoRevert "Revert "ART: Add Mterp export pc poison testing mode""
Bill Buzbee [Thu, 7 Jul 2016 14:42:43 +0000 (14:42 +0000)]
Revert "Revert "ART: Add Mterp export pc poison testing mode""

This reverts commit d7af522c0f03cd926b13bbef7c21a8a504969f36.

Fixes mips assembly typo: "mov" -> "move"

TEST: Previously tested arm/arm64/x86/x86_64 via test-art-host,
test-art-target plus injected error.  Neglected to test mips
builds.  Now those tested as well.

Change-Id: If2f9fb06973f8c1220a7d7699d79e6b9f1ce3197

8 years agoMerge \\"Fix System.arraycopy when doing same array copying.\\" am: 9fa78522de
Nicolas Geoffray [Thu, 7 Jul 2016 13:46:54 +0000 (13:46 +0000)]
Merge \\"Fix System.arraycopy when doing same array copying.\\" am: 9fa78522de
am: 2ecc121a29

Change-Id: Ia115828a9adfa656683d59505e322b260ffd47c6

8 years agoMerge \"Fix System.arraycopy when doing same array copying.\"
Nicolas Geoffray [Thu, 7 Jul 2016 13:44:09 +0000 (13:44 +0000)]
Merge \"Fix System.arraycopy when doing same array copying.\"
am: 9fa78522de

Change-Id: I295b38438ee78e16135b6623d5d1437bc3225432

8 years agoMerge "Fix System.arraycopy when doing same array copying."
Treehugger Robot [Thu, 7 Jul 2016 13:38:44 +0000 (13:38 +0000)]
Merge "Fix System.arraycopy when doing same array copying."

8 years agoARM: Remove unnecessary VMOV from float/double-to-int.
Vladimir Marko [Thu, 7 Jul 2016 11:07:44 +0000 (12:07 +0100)]
ARM: Remove unnecessary VMOV from float/double-to-int.

Test: Run standard ART test suite on Nexus 5.
Change-Id: I780fd0cca68f89401d2a114e1022bed498d02979

8 years agoFix System.arraycopy when doing same array copying.
Nicolas Geoffray [Thu, 7 Jul 2016 11:07:42 +0000 (12:07 +0100)]
Fix System.arraycopy when doing same array copying.

At compile time, if constant source < constant destination, and we don't
know if the arrays are the same, then we must emit code that checks
if the two arrays are the same. If so, we jump to the slow path.

test:610-arraycopy

Change-Id: Ida67993d472b0ba4056d9c21c68f6e5239421f7d

8 years agoRevert "Revert "Optimize IMT""
Artem Udovichenko [Thu, 30 Jun 2016 09:18:25 +0000 (09:18 +0000)]
Revert "Revert "Optimize IMT""

This reverts commit 88f288e3564d79d87c0cd8bb831ec5a791ba4861.

Change-Id: I49605d53692cbec1e2622e23ff2893fc51ed4115

8 years agoMerge \\"Revert \\"Revert \\"Inline and optimize interface calls.\\"\\"\\" am: f731706af1
Nicolas Geoffray [Thu, 7 Jul 2016 08:36:42 +0000 (08:36 +0000)]
Merge \\"Revert \\"Revert \\"Inline and optimize interface calls.\\"\\"\\" am: f731706af1
am: 72065f1300

Change-Id: I47385f260bf30f79f0486f62af7ac93e2095d429

8 years agoMerge \"Revert \"Revert \"Inline and optimize interface calls.\"\"\"
Nicolas Geoffray [Thu, 7 Jul 2016 08:33:41 +0000 (08:33 +0000)]
Merge \"Revert \"Revert \"Inline and optimize interface calls.\"\"\"
am: f731706af1

Change-Id: Id0d347305f2f35f485c6131574346fcde0eea225

8 years agoMerge "Revert "Revert "Inline and optimize interface calls."""
Nicolas Geoffray [Thu, 7 Jul 2016 08:28:47 +0000 (08:28 +0000)]
Merge "Revert "Revert "Inline and optimize interface calls."""

8 years agoMerge \\"Revert \\"ART: Add Mterp export pc poison testing mode\\"\\" am: 05801f4b2b
Bill Buzbee [Wed, 6 Jul 2016 23:55:45 +0000 (23:55 +0000)]
Merge \\"Revert \\"ART: Add Mterp export pc poison testing mode\\"\\" am: 05801f4b2b
am: 974bd6be23

Change-Id: I9b47e3e8de10bc7b53840c1dd660cc3b3acab5ee

8 years agoMerge \"Revert \"ART: Add Mterp export pc poison testing mode\"\"
Bill Buzbee [Wed, 6 Jul 2016 23:52:49 +0000 (23:52 +0000)]
Merge \"Revert \"ART: Add Mterp export pc poison testing mode\"\"
am: 05801f4b2b

Change-Id: I1d189ec9ab8c1839d8e737a15fa01e998f62b5fb

8 years agoMerge "Revert "ART: Add Mterp export pc poison testing mode""
Bill Buzbee [Wed, 6 Jul 2016 23:31:30 +0000 (23:31 +0000)]
Merge "Revert "ART: Add Mterp export pc poison testing mode""

8 years agoRevert "ART: Add Mterp export pc poison testing mode"
Bill Buzbee [Wed, 6 Jul 2016 23:28:26 +0000 (23:28 +0000)]
Revert "ART: Add Mterp export pc poison testing mode"

This reverts commit e664cfef4d373a037dcf18637bea6b41e0624302.

Change-Id: I521dfccd6c829946c93290163bf817b8a2c368e9

8 years agoMerge \\"ART: Add Mterp export pc poison testing mode\\" am: 2812ddd2de
Bill Buzbee [Wed, 6 Jul 2016 21:32:04 +0000 (21:32 +0000)]
Merge \\"ART: Add Mterp export pc poison testing mode\\" am: 2812ddd2de
am: ae2469391a

Change-Id: Ie6de1084bdf0ed47e327dafb2cdd12c2f955309e

8 years agoMerge \"ART: Add Mterp export pc poison testing mode\"
buzbee [Wed, 6 Jul 2016 21:29:21 +0000 (21:29 +0000)]
Merge \"ART: Add Mterp export pc poison testing mode\"
am: 2812ddd2de

Change-Id: I0ed6fc8c38e7df7c2d4bbfcd4949aadb3364704f

8 years agoAdd missing dependency required for ahat-test.
Richard Uhler [Fri, 1 Jul 2016 20:10:56 +0000 (13:10 -0700)]
Add missing dependency required for ahat-test.

Change-Id: I8f7afc97a82fadcdd2f18032900f2b8d8b2059bf
Test: rm -r out/ && m ahat-test
Test: rm -r out/ && m build-art-host
Test: rm -r out/ && m build-art-host-tests
Test: rm -r out/ && m build-art-target
Test: rm -r out/ && m build-art-target-tests

8 years agoMerge "ART: Add Mterp export pc poison testing mode"
Bill Buzbee [Wed, 6 Jul 2016 21:06:06 +0000 (21:06 +0000)]
Merge "ART: Add Mterp export pc poison testing mode"

8 years agoMerge \\"Revert \\"Add missing dependency required for ahat-test.\\"\\" am: 072350e6a1
Richard Uhler [Wed, 6 Jul 2016 20:23:02 +0000 (20:23 +0000)]
Merge \\"Revert \\"Add missing dependency required for ahat-test.\\"\\" am: 072350e6a1
am: 4610e7a94d

Change-Id: I7e9afda19fe445aa466f82b515fe43a1e3cab783

8 years agoMerge \"Revert \"Add missing dependency required for ahat-test.\"\"
Richard Uhler [Wed, 6 Jul 2016 20:18:50 +0000 (20:18 +0000)]
Merge \"Revert \"Add missing dependency required for ahat-test.\"\"
am: 072350e6a1

Change-Id: Ia49afaa89291621f14b9d43daab83c4ed065d44d

8 years agoMerge "Revert "Add missing dependency required for ahat-test.""
Richard Uhler [Wed, 6 Jul 2016 20:02:20 +0000 (20:02 +0000)]
Merge "Revert "Add missing dependency required for ahat-test.""

8 years agoRevert "Add missing dependency required for ahat-test."
Richard Uhler [Wed, 6 Jul 2016 19:59:33 +0000 (19:59 +0000)]
Revert "Add missing dependency required for ahat-test."

This reverts commit 13f6d39da8ba6450dc861c4bfd09d21f3b403d4b.

Breaks 'build-art-target'.
https://build.chromium.org/p/client.art/builders/mips64-emulator-debug/builds/5651/steps/build%20target/logs/stdio

Change-Id: I1466f92308955604ecfcac65deff86cb581d6fdc

8 years agoMerge \\"Add missing dependency required for ahat-test.\\" am: 97c78733eb
Richard Uhler [Wed, 6 Jul 2016 18:30:06 +0000 (18:30 +0000)]
Merge \\"Add missing dependency required for ahat-test.\\" am: 97c78733eb
am: 98f057c0d5

Change-Id: Ia7e8c4c56724031c64a84a80da2568ab6b9f0723

8 years agoMerge \"Add missing dependency required for ahat-test.\"
Richard Uhler [Wed, 6 Jul 2016 18:27:43 +0000 (18:27 +0000)]
Merge \"Add missing dependency required for ahat-test.\"
am: 97c78733eb

Change-Id: I5ab4200f4ee3c93d609e52ad7ed065b1d14925ae

8 years agoMerge "Add missing dependency required for ahat-test."
Treehugger Robot [Wed, 6 Jul 2016 18:21:34 +0000 (18:21 +0000)]
Merge "Add missing dependency required for ahat-test."

8 years agoART: Add Mterp export pc poison testing mode
buzbee [Thu, 23 Jun 2016 20:35:39 +0000 (13:35 -0700)]
ART: Add Mterp export pc poison testing mode

One of the optimizations of the Mterp assembly interpreter is
that it attempts to limit the number of times it updates the saved
dex_pc_ value stored in the shadow frame.  Instead, it maintains
a pointer to the current dex instruction in a dedicated register.

However, whenever execution flow exits the immediate mterp
environment and some other part of the runtime needs to know the
current dex pc (for example - exception throws), mterp must
save - or "export" the dex_pc back into it's home location in
the shadow frame.

Forgetting to do this is a typical bug when developing mterp
instruction handlers.  And, the failures show up in odd and
sometimes hard to track down ways.  This CL adds a testing mode
that poisons the saved dex_pc prior to each instruction
interpretation.  Thus, if any individual handler neglects to
properly export the current dex pc and then goes on to use it
we'll segfault out with an identifiable fault address: 0xdead00ff.

TEST: test-art-target (Nexus 5x, Nexus 6p), test-art-host.  Verified
expected failure by artificially neglecting an EXPORT_PC.

Bug: 26572899
Change-Id: I704fbb8ece693b94341aed0ffbb51a6acfb89697

8 years agoRevert "Revert "Inline and optimize interface calls.""
Nicolas Geoffray [Wed, 6 Jul 2016 14:18:23 +0000 (14:18 +0000)]
Revert "Revert "Inline and optimize interface calls.""

This reverts commit 19dc255bf94a4229de8627a2079ee6f0e9005e2d.

Change-Id: Ifc3a92280878d4db1b460d486137497b3456beae

8 years agoMerge \\"Revert \\"Inline and optimize interface calls.\\"\\" am: a5f0a1ab3f
Nicolas Geoffray [Wed, 6 Jul 2016 14:13:49 +0000 (14:13 +0000)]
Merge \\"Revert \\"Inline and optimize interface calls.\\"\\" am: a5f0a1ab3f
am: b7d0a58762

Change-Id: Ia01502477d97a4db2f2981b7ab4fa23789424ec7

8 years agoMerge \"Revert \"Inline and optimize interface calls.\"\"
Nicolas Geoffray [Wed, 6 Jul 2016 14:10:44 +0000 (14:10 +0000)]
Merge \"Revert \"Inline and optimize interface calls.\"\"
am: a5f0a1ab3f

Change-Id: Iaf791cd9863d0bab2a0a1f2ac74cd5992183ae4b

8 years agoMerge "Revert "Inline and optimize interface calls.""
Nicolas Geoffray [Wed, 6 Jul 2016 14:02:13 +0000 (14:02 +0000)]
Merge "Revert "Inline and optimize interface calls.""

8 years agoRevert "Inline and optimize interface calls."
Nicolas Geoffray [Wed, 6 Jul 2016 14:01:50 +0000 (14:01 +0000)]
Revert "Inline and optimize interface calls."

Went ahead too quickly.

This reverts commit d9faceaa8da92f4a56c2907de949081bd42faf79.

Change-Id: I1610deaf89b38037cf2786d135a59c48b10ced0c

8 years agoMerge \\"Inline and optimize interface calls.\\" am: 4f3438fb81
Nicolas Geoffray [Wed, 6 Jul 2016 13:45:59 +0000 (13:45 +0000)]
Merge \\"Inline and optimize interface calls.\\" am: 4f3438fb81
am: 82323fb2c7

Change-Id: I7034658796098ca0459fcdfe53944087633e3894

8 years agoMerge \"Inline and optimize interface calls.\"
Nicolas Geoffray [Wed, 6 Jul 2016 13:43:02 +0000 (13:43 +0000)]
Merge \"Inline and optimize interface calls.\"
am: 4f3438fb81

Change-Id: I97c16779ebac5deceebfdde24c5b6d66f5d528b2

8 years agoMerge "Inline and optimize interface calls."
Treehugger Robot [Wed, 6 Jul 2016 13:37:49 +0000 (13:37 +0000)]
Merge "Inline and optimize interface calls."

8 years agoMerge \\"Fix stack alignment in x86 read barrier entry points.\\" am: c96b0b00ad
Roland Levillain [Wed, 6 Jul 2016 13:30:43 +0000 (13:30 +0000)]
Merge \\"Fix stack alignment in x86 read barrier entry points.\\" am: c96b0b00ad
am: 53607fbb15

Change-Id: I5cdca8aa90b41c8b51f2e127d63c1eeb0ac5d6be

8 years agoMerge \"Fix stack alignment in x86 read barrier entry points.\"
Roland Levillain [Wed, 6 Jul 2016 13:27:05 +0000 (13:27 +0000)]
Merge \"Fix stack alignment in x86 read barrier entry points.\"
am: c96b0b00ad

Change-Id: I15f2fccb7e7f9b04113ac7f81351899b59906d8b

8 years agoMerge "Fix stack alignment in x86 read barrier entry points."
Roland Levillain [Wed, 6 Jul 2016 13:20:52 +0000 (13:20 +0000)]
Merge "Fix stack alignment in x86 read barrier entry points."

8 years agoMark ReadBarrierJni as a direct entry point on MIPS32.
Roland Levillain [Wed, 6 Jul 2016 12:45:52 +0000 (13:45 +0100)]
Mark ReadBarrierJni as a direct entry point on MIPS32.

The ReadBarrierJni MIPS32 entry point is a direct reference
to the native (C++) method art::ReadBarrierJni.

Test: Build ART for MIPS32.
Bug: 12687968
Change-Id: I6475855f4696690a681f69931618a055be65a00a

8 years agoInline and optimize interface calls.
Nicolas Geoffray [Wed, 6 Jul 2016 09:19:23 +0000 (10:19 +0100)]
Inline and optimize interface calls.

- Support for inlining methods with invoke-interface (the
  previous performance limitation is now fixed with the new
  ImtConflictTable).
- Turn non inlineable invoke-interface into invoke-virtual to
  avoid any potential execution of the conflict trampoline.

test:609-checker-inline-interface

Change-Id: Ibe33bc945deaada8fb78541e6e0bf034ebb52420

8 years agoMerge \\"Expect spurious wake-up from futex(2)/FUTEX_WAIT call.\\" am: 94aaec9544
Vladimir Marko [Wed, 6 Jul 2016 12:23:11 +0000 (12:23 +0000)]
Merge \\"Expect spurious wake-up from futex(2)/FUTEX_WAIT call.\\" am: 94aaec9544
am: 79d44a96da

Change-Id: I034ee3b45f7fe7539dbdf19abf38827bb5b550f1

8 years agoMerge \"Expect spurious wake-up from futex(2)/FUTEX_WAIT call.\"
Vladimir Marko [Wed, 6 Jul 2016 12:20:11 +0000 (12:20 +0000)]
Merge \"Expect spurious wake-up from futex(2)/FUTEX_WAIT call.\"
am: 94aaec9544

Change-Id: Ib4d8108456da7b765ad5a3a081d798f9917d7b73

8 years agoMerge "Expect spurious wake-up from futex(2)/FUTEX_WAIT call."
Vladimir Marko [Wed, 6 Jul 2016 12:12:28 +0000 (12:12 +0000)]
Merge "Expect spurious wake-up from futex(2)/FUTEX_WAIT call."

8 years agoMerge \\"Remove stray end of macro.\\" am: ed22d481c1
Roland Levillain [Wed, 6 Jul 2016 09:46:04 +0000 (09:46 +0000)]
Merge \\"Remove stray end of macro.\\" am: ed22d481c1
am: 25c522cfea

Change-Id: I35e8cd133eb612268303c1951ec33ac197de00f3

8 years agoMerge \"Remove stray end of macro.\"
Roland Levillain [Wed, 6 Jul 2016 09:43:09 +0000 (09:43 +0000)]
Merge \"Remove stray end of macro.\"
am: ed22d481c1

Change-Id: Ie0fd2541f467d2353ef680ff5c905eae7b6f1c70

8 years agoMerge "Remove stray end of macro."
Roland Levillain [Wed, 6 Jul 2016 09:35:26 +0000 (09:35 +0000)]
Merge "Remove stray end of macro."

8 years agoRemove stray end of macro.
Roland Levillain [Tue, 5 Jul 2016 17:43:51 +0000 (18:43 +0100)]
Remove stray end of macro.

These lines used to be part of the definition of
SETUP_REFS_ONLY_CALLEE_SAVE_FRAME_PRESERVE_RTEMP2,
which has been deleted.

Test: ART target (ARM) tests.
Bug: 29259539
Change-Id: I4eda77cb739e58d387ffab61a127dc7bc24e2374

8 years agoExpect spurious wake-up from futex(2)/FUTEX_WAIT call.
Vladimir Marko [Tue, 5 Jul 2016 16:29:55 +0000 (17:29 +0100)]
Expect spurious wake-up from futex(2)/FUTEX_WAIT call.

Test: Run standard ART test suite.
Bug: 27913630
Change-Id: I742544f7a0a7f896e47293d209a874782577e971

8 years agoMerge \\"MIPS32: Fix MipsInstructionSetFeatures::FromVariant()\\" am: 74c0d1bb67
Alexey Frunze [Tue, 5 Jul 2016 10:20:19 +0000 (10:20 +0000)]
Merge \\"MIPS32: Fix MipsInstructionSetFeatures::FromVariant()\\" am: 74c0d1bb67
am: d073843962

Change-Id: Iee36e8ac1e47fe2a94db9449815e1950f9994c5e

8 years agoMerge \"MIPS32: Fix MipsInstructionSetFeatures::FromVariant()\"
Alexey Frunze [Tue, 5 Jul 2016 10:17:40 +0000 (10:17 +0000)]
Merge \"MIPS32: Fix MipsInstructionSetFeatures::FromVariant()\"
am: 74c0d1bb67

Change-Id: Ia0d2d2a0f219bde9c8becd551b5f662d38241e6c

8 years agoMerge "MIPS32: Fix MipsInstructionSetFeatures::FromVariant()"
Treehugger Robot [Tue, 5 Jul 2016 10:10:25 +0000 (10:10 +0000)]
Merge "MIPS32: Fix MipsInstructionSetFeatures::FromVariant()"

8 years agoMerge \\"Simplification for associative and commutative operations on constants\...
Nicolas Geoffray [Tue, 5 Jul 2016 08:30:56 +0000 (08:30 +0000)]
Merge \\"Simplification for associative and commutative operations on constants\\" am: f7ba875851
am: 0978cb0122

Change-Id: I653e17332d0b488e25b18215e1750d39939cb64c

8 years agoMerge \"Simplification for associative and commutative operations on constants\"
Anton Kirilov [Tue, 5 Jul 2016 08:28:16 +0000 (08:28 +0000)]
Merge \"Simplification for associative and commutative operations on constants\"
am: f7ba875851

Change-Id: I3aac15baf7dd9b5f4903fd0e4799e37036cb5a25

8 years agoMerge "Simplification for associative and commutative operations on constants"
Nicolas Geoffray [Tue, 5 Jul 2016 08:24:46 +0000 (08:24 +0000)]
Merge "Simplification for associative and commutative operations on constants"

8 years agoMerge \\"Never go to resolution while inspecting inlined frames.\\" am: 5aef803591
Nicolas Geoffray [Tue, 5 Jul 2016 08:16:22 +0000 (08:16 +0000)]
Merge \\"Never go to resolution while inspecting inlined frames.\\" am: 5aef803591
am: 5df4f129ac

Change-Id: Idbbfff0eee88f2e112bfb060bed49b81f436e1c1

8 years agoMerge \"Never go to resolution while inspecting inlined frames.\"
Nicolas Geoffray [Tue, 5 Jul 2016 08:13:35 +0000 (08:13 +0000)]
Merge \"Never go to resolution while inspecting inlined frames.\"
am: 5aef803591

Change-Id: I8cbe7db13d2c09ea1cc0428b9a81bd4a97ed3f37

8 years agoMerge "Never go to resolution while inspecting inlined frames."
Nicolas Geoffray [Tue, 5 Jul 2016 08:07:44 +0000 (08:07 +0000)]
Merge "Never go to resolution while inspecting inlined frames."

8 years agoNever go to resolution while inspecting inlined frames.
Nicolas Geoffray [Mon, 4 Jul 2016 09:15:47 +0000 (10:15 +0100)]
Never go to resolution while inspecting inlined frames.

Instead, do a manual inspection and decoding of the invoke
with the dex cache.

Also update oatdump to dump types in the dex cache.

bug:27858645
Change-Id: I7c0b612ee96e6865fa438c3a1d253686231337bd
test:run-test

8 years agoMerge \\"MIPS32: Improve method invocation\\" am: d80c5d2368
Alexey Frunze [Mon, 4 Jul 2016 12:18:11 +0000 (12:18 +0000)]
Merge \\"MIPS32: Improve method invocation\\" am: d80c5d2368
am: 0ca323853e

Change-Id: I2fb68a4a564dc9a065d116516b56a38742f727d7

8 years agoMerge \"MIPS32: Improve method invocation\"
Alexey Frunze [Mon, 4 Jul 2016 12:15:14 +0000 (12:15 +0000)]
Merge \"MIPS32: Improve method invocation\"
am: d80c5d2368

Change-Id: I07f137a2299eb63fe4f971c789a6a7a9622bae90

8 years agoMerge "MIPS32: Improve method invocation"
Treehugger Robot [Mon, 4 Jul 2016 12:10:53 +0000 (12:10 +0000)]
Merge "MIPS32: Improve method invocation"

8 years agoAdd missing dependency required for ahat-test.
Richard Uhler [Fri, 1 Jul 2016 20:10:56 +0000 (13:10 -0700)]
Add missing dependency required for ahat-test.

Change-Id: Ifeb4a5ca0ba192b6ae85177cafa7d773c979379f
Test: rm -r out/ && m ahat-test

8 years agoMIPS32: Improve method invocation
Alexey Frunze [Tue, 10 May 2016 23:08:05 +0000 (16:08 -0700)]
MIPS32: Improve method invocation

Improvements include:
- CodeGeneratorMIPS::GenerateStaticOrDirectCall() supports:
  - MethodLoadKind::kDirectAddressWithFixup (via literals)
  - CodePtrLocation::kCallDirectWithFixup (via literals)
  - MethodLoadKind::kDexCachePcRelative
- 32-bit literals to support the above (not ready for general-
  purpose applications yet because RA is not saved in leaf
  methods, but is clobbered on MIPS32R2 when simulating
  PC-relative addressing (MIPS32R6 is OK because it has
  PC-relative addressing with the lwpc instruction))
- shorter instruction sequences for recursive static/direct
  calls

Tested:
- test-art-host-gtest
- test-art-target-gtest and test-art-target-run-test-optimizing on:
  - MIPS32R2 QEMU
  - CI20 board
  - MIPS32R6 (2nd arch) QEMU

Change-Id: Id5b137ad32d5590487fd154c9a01d3b3e7e044ff