[aarch64-port-dev ] AARCH64: Changes to HotSpot shared code

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Wed Nov 12 11:40:09 UTC 2014


Hi Andrew,

I think EM_AARCH64 is not defined in my case because the gcc / environment 
is too old to know about AARCH.

metaspace:
Ok, I think I missed that you can ignore the shift altogether as the compressed class space
is enforced to be < 0xc0000000. Further, klasses are never 0.
So on ppc we will still prefer to shift if the heap is < 32g, but 4G alignment helps in the
other cases as long as the compressed class space is smaller than 4G.

Best regards,
  Goetz.


-----Original Message-----
From: Andrew Haley [mailto:aph at redhat.com] 
Sent: Mittwoch, 12. November 2014 10:39
To: Lindenmaier, Goetz; hotspot-dev Source Developers; aarch64-port-dev at openjdk.java.net
Subject: Re: AARCH64: Changes to HotSpot shared code

Hi,

On 12/11/14 08:32, Lindenmaier, Goetz wrote:

> the change does not build as the file 
>    sun.jvm.hotspot.debugger.MachineDescriptionAArch64.java
> is missing.

Sorry, I will fix that in a new webrev.

> If I add that file, I get                                                                                                   
>    cc1plus: error: unrecognized command line option "-Wno-error=cpp"
> We are using g++ 4.1.2.

This is very awkward.  Without this command it does not build on a
recent GCC.  I want to avoid yet more configury if I can, so I'll
have a think.

> Then I get 
>   os_linux.cpp:1927: error: EM_AARCH64 was not declared in this scope
> A few lines above it's dealt with a missing EM_486 definition.
> I guess this should be fixed similarly.

Okay, I will try to see why this does not work for you.

> After these fixes the change builds and runs on PPC nicely.
> 
> Considering the change in metaspace: I just proposed a similar change
> for the java heap, see 
> http://cr.openjdk.java.net/~goetz/webrevs/8064457-disjoint/webrev.00/
> 
> Don't you want to use 4*G << narrow_klass_shift() for alignment and
> the test for zerobased compressed klasses?  That's what we enforce for
> the heap. I think the shift is superior to movk, as it preserves 0
> (which is rare for klass pointers, I admit).

I don't understand what you are saying.  We have a solution that
can compress a klass in one instruction.  What would we want that
is different?

> And, could you add #if !defined(AARCH64) && !defined(PPC64) at this place?  We'll 
> implement the optimized klass compression, too. ;)

Okay, if it makes sense to do so.

> In ci_LIR.hpp|cpp please use AARCH64 in #ifs.  
> 
> I would propose to add aarch stuff in alphabetical order
> (or maybe establish alphabetical order where absent) whenever all cpus are 
> listed (makefiles, os_linux, vm_version, ...)
> 
> Also, should we sort the cpu includes alphabetically at some point?

I'm trying to make the minimum changes, but I will do whatever people
want.

Andrew.




More information about the aarch64-port-dev mailing list