< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.aarch64/src/org/graalvm/compiler/asm/aarch64/AArch64MacroAssembler.java

Print this page




1547     /**
1548      * Generates an address of the form {@code base + displacement}.
1549      *
1550      * Does not change base register to fulfill this requirement. Will fail if displacement cannot
1551      * be represented directly as address.
1552      *
1553      * @param base general purpose register. May not be null or the zero register.
1554      * @param displacement arbitrary displacement added to base.
1555      * @return AArch64Address referencing memory at {@code base + displacement}.
1556      */
1557     @Override
1558     public AArch64Address makeAddress(Register base, int displacement) {
1559         return makeAddress(base, displacement, zr, /* signExtend */false, /* transferSize */0, zr, /* allowOverwrite */false);
1560     }
1561 
1562     @Override
1563     public AbstractAddress getPlaceholder(int instructionStartPosition) {
1564         return AArch64Address.PLACEHOLDER;
1565     }
1566 






1567     /**
1568      * Loads an address into Register d.
1569      *
1570      * @param d general purpose register. May not be null.
1571      * @param a AArch64Address the address of an operand.
1572      */
1573     public void lea(Register d, AArch64Address a) {
1574         a.lea(this, d);
1575     }
1576 }


1547     /**
1548      * Generates an address of the form {@code base + displacement}.
1549      *
1550      * Does not change base register to fulfill this requirement. Will fail if displacement cannot
1551      * be represented directly as address.
1552      *
1553      * @param base general purpose register. May not be null or the zero register.
1554      * @param displacement arbitrary displacement added to base.
1555      * @return AArch64Address referencing memory at {@code base + displacement}.
1556      */
1557     @Override
1558     public AArch64Address makeAddress(Register base, int displacement) {
1559         return makeAddress(base, displacement, zr, /* signExtend */false, /* transferSize */0, zr, /* allowOverwrite */false);
1560     }
1561 
1562     @Override
1563     public AbstractAddress getPlaceholder(int instructionStartPosition) {
1564         return AArch64Address.PLACEHOLDER;
1565     }
1566 
1567     public void addressOf(Register dst) {
1568         // This will be fixed up later.
1569         super.adrp(dst);
1570         super.add(64, dst, dst, 0);
1571     }
1572 
1573     /**
1574      * Loads an address into Register d.
1575      *
1576      * @param d general purpose register. May not be null.
1577      * @param a AArch64Address the address of an operand.
1578      */
1579     public void lea(Register d, AArch64Address a) {
1580         a.lea(this, d);
1581     }
1582 }
< prev index next >