Request for review (L): 6797305: Add LoadUB and LoadUI opcode class
Christian Thalinger
Christian.Thalinger at Sun.COM
Wed Mar 11 06:12:24 PDT 2009
On Tue, 2009-03-10 at 11:40 -0700, John Rose wrote:
> My new RegisterConstant stuff provides a way to build up address
> expressions by parts, emitting code only when necessary. The risc
> way, of course, is to build addressing modes with multiple
> instructions as necessary, while the Intel way is to have a powerful
> set of HW-supported addressing modes, which we express by Address.
> This frays a little around the edges when we get to x64.
>
> Maybe SPARC needs to change Address to rs1+{rs2,simm13} (i.e.,
> Register, RegisterConstant) and have a new AddressLiteral subtype that
> manages the multi-instruction use cases.
>
> Not sure how to rationalize all this into correspondence, except by
> improving bit by bit as improvements occur to us.
Maybe I missing something here, but would it be possible to have a:
Address Address::make_raw(int base, int index, int scale, int disp, bool disp_is_oop) {
function on SPARC too, so it's possible to use $mem$$Address in the AD
file and let (Address src, Register dst)-signature functions decide
which emit function to call? Furthermore we could assert on reg-reg
forms that have a displacement set, which is obviously wrong.
The only problem I see when using MacroAssembler instructions in
sparc.ad is the VerifyOops check in emit_form3_mem_reg. Is that still
used/necessary or can it be moved somewhere else?
-- Christian
More information about the hotspot-compiler-dev
mailing list