Package jnr.a64asm
Class Assembler_A64
- java.lang.Object
-
- jnr.a64asm.SerializerCore
-
- jnr.a64asm.SerializerIntrinsics_a64
-
- jnr.a64asm.Serializer
-
- jnr.a64asm.Assembler_A64
-
public final class Assembler_A64 extends Serializer
Low level code generation.
-
-
Field Summary
Fields Modifier and Type Field Description private CodeBuffer_bufferprivate Logger_loggerprivate int_propertiesprivate java.util.List<RelocData>_relocDatastatic CPU_A64Aarch_64private CPU_A64cpuprivate CpuInfocpuInfo-
Fields inherited from class jnr.a64asm.SerializerCore
_none
-
-
Constructor Summary
Constructors Constructor Description Assembler_A64(CPU_A64 cpu)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void_emita64(INST_CODE code, Operand o1, Operand o2, Operand o3, Operand o4, Operand o5)(package private) void_emitByte(int x)Emit Byte to internal buffer.(package private) void_emitDWord(int x)Emit DWord (4 bytes) to internal buffer.(package private) void_emitImmediate(Immediate imm, int size)(package private) void_emitInt32(int x)Emit Int32 (4 bytes) to internal buffer.(package private) void_emitJmpOrCallReloc(InstructionGroup instruction, long target)(package private) void_emitOpCode(int opCode)(package private) void_emitQWord(long x)Emit QWord (8 bytes) to internal buffer.(package private) void_emitSysInt(long x)Emit system signed integer (4 or 8 bytes) to internal buffer.(package private) void_emitWord(int x)Emit Word (2 bytes) to internal buffer.intcodeSize()Gets the required size of memory required to store all the generated codebytegetByteAt(int pos)intgetDWordAt(int pos)intgetInt32At(int pos)longgetQWordAt(int pos)shortgetWordAt(int pos)private static intintValue(boolean b)(package private) booleanis64()intoffset()voidrelocCode(java.nio.ByteBuffer buffer, long address)voidsetByteAt(int pos, byte x)voidsetDWordAt(int pos, int x)voidsetInt32At(int pos, long x)voidsetQWordAt(int pos, long x)voidsetVarAt(int pos, long i, boolean isUnsigned, int size)voidsetWordAt(int pos, short x)-
Methods inherited from class jnr.a64asm.SerializerIntrinsics_a64
adc, adcs, add, add, add, adds, adds, adds, adr, adrp, and, and, ands, ands, asr, asr, asrv, b, bcc, bcs, beq, bfi, bfm, bfxil, bge, bgt, bhi, bhs, bic, bics, bl, ble, blo, blr, bls, blt, bmi, bne, bpl, br, brk, bvc, bvs, cbnz, cbz, ccmn, ccmn, ccmp, ccmp, cinc, cinv, clrex, cls, clz, cmn, cmn, cmn, cmp, cmp, cmp, cneg, csel, cset, csetm, csinc, csinv, csneg, dc, dcps1, dcps2, dcps3, dmb, drps, dsb, eon, eor, eor, eret, extr, hint, hlt, hvc, ic, isb, ldar, ldarb, ldarh, ldaxp, ldaxr, ldaxrb, ldaxrh, ldnp, ldp, ldp, ldp, ldpsw, ldpsw, ldpsw, ldr, ldr, ldr, ldr, ldr, ldrb, ldrb, ldrb, ldrb, ldrh, ldrh, ldrh, ldrh, ldrsb, ldrsb, ldrsb, ldrsb, ldrsh, ldrsh, ldrsh, ldrsh, ldrsw, ldrsw, ldrsw, ldrsw, ldrsw, ldtr, ldtrb, ldtrh, ldtrsb, ldtrsh, ldtrsw, ldur, ldurb, ldurh, ldursb, ldursh, ldursw, ldxp, ldxr, ldxrb, ldxrh, lsl, lsl, lslv, lsr, lsr, lsrv, madd, mneg, mov, mov, mov, movk, movn, movz, mrs, msr, msr, msub, mul, mvn, neg, negs, ngc, ngcs, nop, orn, orr, orr, prfm, prfm, prfm, prfum, rbit, ret, rev, rev16, rev32, ror, ror, rorv, sbc, sbcs, sbfiz, sbfm, sbfx, sdiv, sev, sevl, smaddl, smc, smnegl, smsubl, smulh, smull, stlr, stlrb, stlrh, stlxp, stlxr, stlxrb, stlxrh, stnp, stp, stp, stp, str, str, str, str, strb, strb, strb, strb, strh, strh, strh, strh, sttr, sttrb, sttrh, stur, sturb, sturh, stxp, stxr, stxrb, stxrh, sub, sub, sub, subs, subs, subs, svc, sxtb, sxth, sxtw, tbnz, tbz, tst, tst, ubfiz, ubfm, ubfx, udiv, umaddl, umnegl, umsubl, umulh, umull, uxtb, uxth, uxtw, wfe, wfi, yield
-
-
-
-
Field Detail
-
_buffer
private final CodeBuffer _buffer
-
_relocData
private final java.util.List<RelocData> _relocData
-
cpuInfo
private final CpuInfo cpuInfo
-
_properties
private int _properties
-
_logger
private final Logger _logger
-
cpu
private final CPU_A64 cpu
-
Aarch_64
public static final CPU_A64 Aarch_64
-
-
Constructor Detail
-
Assembler_A64
public Assembler_A64(CPU_A64 cpu)
-
-
Method Detail
-
is64
boolean is64()
- Specified by:
is64in classSerializerCore
-
intValue
private static final int intValue(boolean b)
-
offset
public final int offset()
-
codeSize
public final int codeSize()
Gets the required size of memory required to store all the generated code
-
getByteAt
public final byte getByteAt(int pos)
-
getWordAt
public final short getWordAt(int pos)
-
getDWordAt
public final int getDWordAt(int pos)
-
getQWordAt
public final long getQWordAt(int pos)
-
setByteAt
public final void setByteAt(int pos, byte x)
-
setWordAt
public final void setWordAt(int pos, short x)
-
setDWordAt
public final void setDWordAt(int pos, int x)
-
setQWordAt
public final void setQWordAt(int pos, long x)
-
getInt32At
public final int getInt32At(int pos)
-
setInt32At
public final void setInt32At(int pos, long x)
-
setVarAt
public final void setVarAt(int pos, long i, boolean isUnsigned, int size)
-
_emitByte
final void _emitByte(int x)
Emit Byte to internal buffer.
-
_emitWord
final void _emitWord(int x)
Emit Word (2 bytes) to internal buffer.
-
_emitDWord
final void _emitDWord(int x)
Emit DWord (4 bytes) to internal buffer.
-
_emitQWord
final void _emitQWord(long x)
Emit QWord (8 bytes) to internal buffer.
-
_emitInt32
final void _emitInt32(int x)
Emit Int32 (4 bytes) to internal buffer.
-
_emitSysInt
final void _emitSysInt(long x)
Emit system signed integer (4 or 8 bytes) to internal buffer.
-
_emitOpCode
final void _emitOpCode(int opCode)
-
_emitImmediate
void _emitImmediate(Immediate imm, int size)
-
_emita64
void _emita64(INST_CODE code, Operand o1, Operand o2, Operand o3, Operand o4, Operand o5)
- Specified by:
_emita64in classSerializerCore
-
_emitJmpOrCallReloc
void _emitJmpOrCallReloc(InstructionGroup instruction, long target)
-
relocCode
public void relocCode(java.nio.ByteBuffer buffer, long address)
-
-