summaryrefslogtreecommitdiff
path: root/test/712-varhandle-invocations/util-src/generate_java.py
AgeCommit message (Collapse)Author
2024-03-18arm64: Fix `VarHandle.getAndAdd(..., 0)`. Vladimir Marko
Test: testrunner.py --target --64 --optimizing -t 712 Bug: 328420806 Change-Id: I5cc1ce481bc1c398453226c5385506ee91c3468d
2024-03-12Do not test VarHandle.getAndAdd(..., 0). Vladimir Marko
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
2024-03-12riscv64: Fix `VarHandle.getAndAdd(..., 0)`. Vladimir Marko
Test: testrunner.py --target --64 --optimizing -t 712 Bug: 328420806 Change-Id: I6c12e66e5d0602b23af157016ba423aae7425031
2023-12-01riscv64: Fix VarHandle GetAndUpdate intrinsic. Vladimir Marko
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
2021-10-29Extend test 712-varhandle-invocations to check negative array indices. Ulya Trafimovich
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
2020-09-18X86: Implement VarHandle.getAndAdd intrinsic Andra Danciu
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
2020-08-27VarHandle tests for interfaces Orion Hodson
Bug: 65872996 Test: run-test --host 712 Change-Id: I29190f9e86dd60ff9d8428c8fc08e3f84e99baf0
2018-05-21ART: Faster 712-varhandle-invocations Orion Hodson
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
2018-02-09Revert^2 "ART: Interpreter support for VarHandle accessors" Orion Hodson
This reverts commit c4d3bf4eaff9720ed0bb7775db6fc24a1bd755dd. Bug: 65872996 Test: art/test/testrunner.py -b --host Change-Id: I2d1017c45cee5b2fd2dd05e5eeff0a72146663b1
2018-02-06Revert "ART: Interpreter support for VarHandle accessors" Orion Hodson
This reverts commit becc83b59ff703c02198f832dbc3216a0ab8a022. Reason for revert: breaks on the ART buildbots due to localized toolchain differences. Change-Id: Ieb1d93b0fc7116ddc542d8bbfee1975bcb30a8f7
2018-02-06ART: Interpreter support for VarHandle accessors Orion Hodson
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