[aarch64-port-dev ] RFR: 8143067: aarch64: guarantee failure in javac (adrp out of range in relocation)
Edward Nevill
edward.nevill at gmail.com
Thu Nov 19 15:24:50 UTC 2015
On Thu, 2015-11-19 at 10:02 +0000, Andrew Haley wrote:
> On 18/11/15 13:06, Edward Nevill wrote:
> > On Tue, 2015-11-17 at 15:34 +0000, Andrew Haley wrote:
> > I have kept the adrp/nop and adrp/movk for generating the out of
> > range addresses as this is 2 instructions instead of the 3 for
> > movz/movk/movk.
> > The byte map base is almost always out of range because of the way
> > it is calculated - IE. (byte map) - (heap base) >> 9 - so using 2
> > instructions as above gives a small performance boost.
>
> That's a lot better. However, I'm going to ask for one more change.
> I don't think there is any need for the use of NOP instead of MOVK #0
> in that corner case. Take that out, and we have a clean and simple
> patch.
OK. My concern about generating adrp/movk was that some implementations might have a dependency between the adrp and movk. However, I have tested it on all 4 implementations available to me and the performance of adrp/nop is identical to adrp/movk on all 4.
New webrev, changed as requested.
http://cr.openjdk.java.net/~enevill/8143067/webrev.03
Thanks,
Ed.
More information about the hotspot-compiler-dev
mailing list