[aarch64-port-dev ] RFC: 64 bit literal oops
Andrew Haley
aph at redhat.com
Mon Dec 3 18:40:02 UTC 2018
On 12/3/18 4:53 PM, Stuart Monteith wrote:
> There is another possible option, which is to just avoid 48-bit
> literals, and just use 64-bit unconditionally everywhere. It would
> mean that we could be easily consistent and 52-bit VA would be easier
> to implement on top of it. Again, I seek people's opinions.
Could well be. I am starting to wonder if it is worth the effort.
Maybe the best thing to do is have a global 48- to 64-bit switch
and use it everywhere we want a pointer literal.
Please don't put code of any complexity into header files. Put it
into .c files instead.
The logic in MacroAssembler::movoop is a already a mess, and
adding an isOop flag to pass to doesn't help. I think it would
make more sense to have explicit 48- and 64-bit mov methods, and
let MacroAssembler::mov(Register, Address) control which one is
called.
This hunk makes no sense. The comment directly contradicts
the code:
enum Aarch64_specific_constants {
instruction_size = 3 * 4, // movz, movk, movk, [movk]. See movptr().
instruction_offset = 0,
displacement_offset = 0,
};
It makes no sense to have instruction_size be a constant here.
I guess it never did.
--
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
More information about the aarch64-port-dev
mailing list