Age | Commit message (Collapse) | Author |
|
Test: testrunner.py --target --64 --optimizing -t 712
Bug: 328420806
Change-Id: I5cc1ce481bc1c398453226c5385506ee91c3468d
|
|
Temporarily remove the test because it hits a bug on arm64.
The test shall be added back together with a fix.
This partially reverts commit
7b6786441045496aaf84a0f40289a62ead431672 .
Test: Presubmit.
Bug: 328420806
Change-Id: I85d767b0dda1cf15a426d0ced6e9427354839d2f
|
|
Test: testrunner.py --target --64 --optimizing -t 712
Bug: 328420806
Change-Id: I6c12e66e5d0602b23af157016ba423aae7425031
|
|
Fix the byte-swap CAS case for narrow types (short, char).
Note that these cases are not currently supported by libcore
and we therefore take the slow path during the access mode
check. However, the ART VarHandle implementation is ready to
handle them in case this arbitrary libcore (or upstream?)
decision changes and it generates code for them. This fix
avoids a `DCHECK` failure in `GenerateByteSwapAndExtract()`
by doing the `DCHECK` in two of its three callers and
generates the correct (and smaller) code in all cases.
Extend the run-test 712 to test offsets that would lead to
non-zero shift in `GenerateByteSwapAndExtract()`. To test
this code path, one needs to modify the libcore method
`VarHandle.unalignedAccessModesBitMask()` to permit the
`NUMERIC_ATOMIC_UPDATE_ACCESS_MODES_BIT_MASK` for `short`
(and maybe `char` but that makes less sense than `short`).
Test: testrunner.py --target --64 --ndebug --optimizing
Bug: 283082089
Change-Id: I23926bbafc9eff21e094b00f36357d629cc550a9
|
|
Check that varhandle intrisics do not crash and delegate to slow path
when array index is negative. The runtime should throw an out-of-bounds
exception, which is caught and ignored by the test. Not throwing an
exception fails the test as well.
Bug: 71781600
Test: art/test.py -r -t 712-varhandle-invocations --host
Test: art/test.py -r -t 712-varhandle-invocations --target
Test: Manually change/remove the generated instructions that check for
negative array indices on arm64/x86_64 and ensure that the above test
crash in the generated code, as expected.
Change-Id: Id2c31b639ab63fd1f3fb7d521f9e6a3676535fe5
|
|
This commit implements VarHandle getAndAdd intrinsic. This also implied
adding xadd instruction and tests for it.
Test: art/test.py --host -r -t 712-varhandle-invocation --32
Test: m test-art-host-gtest
Bug: 65872996
Change-Id: I84dd95ba6464c8a73ace03a13817147c7099677a
|
|
Bug: 65872996
Test: run-test --host 712
Change-Id: I29190f9e86dd60ff9d8428c8fc08e3f84e99baf0
|
|
Reduce number of allocations when running 712-varhandle-invocations as
it timeouts under gcstress.
In the runtime, avoid allocating a MethodType when raising a
WrongMethodTypeException when dispatching an erroneous VarHandle
accessor.
In the test, limit the number of incorrect types tested in boxing test
portion of 712 which is particularly slow. And pre-allocate boxed
values and share across sub-tests.
The total time to run 712-varhandle-invocations is reduced by 45% on
host and 33% on angler.
Test: art/test/run-test --host --64 --gcstress 712
Bug: 73275005
Change-Id: If5b323a61291d490f51638d416c2529874282f1c
|
|
This reverts commit c4d3bf4eaff9720ed0bb7775db6fc24a1bd755dd.
Bug: 65872996
Test: art/test/testrunner.py -b --host
Change-Id: I2d1017c45cee5b2fd2dd05e5eeff0a72146663b1
|
|
This reverts commit becc83b59ff703c02198f832dbc3216a0ab8a022.
Reason for revert: breaks on the ART buildbots due to localized toolchain differences.
Change-Id: Ieb1d93b0fc7116ddc542d8bbfee1975bcb30a8f7
|
|
Add support for invoking VarHandle accessors in the interpreter and
forces code with VarHandles accessor invocations to use the interpreter.
Bug: 65872996
Test: art/test/run-test --host 712
Change-Id: I9ee3ad6aef6a3bc73d90cec0a8e023e5db42b7a2
|