[master] Integrated: 8303813: [Lilliput] (AArch64) Use tbz instead of tst and br in load_klass()

Roman Kennke rkennke at openjdk.org
Thu Mar 9 17:12:15 UTC 2023


On Wed, 8 Mar 2023 09:43:02 GMT, Roman Kennke <rkennke at openjdk.org> wrote:

> In the implementation of load_klass(), we have a test-and-branch idiom:
> 
> 
> tst(dst, markWord::monitor_value);
> br(Assembler::EQ, fast);
> 
> 
> We can make this better:
> 
> `tbz(dst, exact_log2(markWord::monitor_value), fast);
> `
> This is not only smaller and perhaps a little faster, it also has the advantage that it doesn't touch the condition flags. This is relevant in at least one place: in verify_oop() the condition flag is alive across the load_klass() call and one jtreg test (runtime/CheckUnhandledOops/TestVerifyOops.java) is failing because of that.
> 
> Testing:
>  - [x] tier1

This pull request has now been integrated.

Changeset: 5da26a6f
Author:    Roman Kennke <rkennke at openjdk.org>
URL:       https://git.openjdk.org/lilliput/commit/5da26a6f7457efda6be6a88ccbc168bed6ac7e8e
Stats:     4 lines in 1 file changed: 0 ins; 2 del; 2 mod

8303813: [Lilliput] (AArch64) Use tbz instead of tst and br in load_klass()

Reviewed-by: phh, stuefe

-------------

PR: https://git.openjdk.org/lilliput/pull/78


More information about the lilliput-dev mailing list