Package ghidra.pcode.emu.jit.gen
Record Class FieldForArrDirect
java.lang.Object
java.lang.Record
ghidra.pcode.emu.jit.gen.FieldForArrDirect
- Record Components:
 address- the address contained by the page to pre-fetch
- All Implemented Interfaces:
 FieldReq,InstanceFieldReq
A field request for a pre-fetched page from the 
JitBytesPcodeExecutorStatePiece.JitBytesPcodeExecutorStateSpace.
 
 The field is used for direct memory accesses. For those, the address space and fixed address is given in the p-code, so we are able to pre-fetch the page and access it directly at run time.
- 
Constructor Summary
ConstructorsConstructorDescriptionFieldForArrDirect(Address address) Creates an instance of aFieldForArrDirectrecord class. - 
Method Summary
Modifier and TypeMethodDescriptionaddress()Returns the value of theaddressrecord component.final booleanIndicates whether some other object is "equal to" this one.voidgenerateInitCode(JitCodeGenerator gen, org.objectweb.asm.ClassVisitor cv, org.objectweb.asm.MethodVisitor iv) Emit the field declaration and its initialization bytecodevoidgenerateLoadCode(JitCodeGenerator gen, org.objectweb.asm.MethodVisitor rv) Emit code to load the field onto the JVM stackfinal inthashCode()Returns a hash code value for this object.name()Derive a suitable name for the fieldfinal StringtoString()Returns a string representation of this record class. 
- 
Constructor Details
- 
FieldForArrDirect
Creates an instance of aFieldForArrDirectrecord class.- Parameters:
 address- the value for theaddressrecord component
 
 - 
 - 
Method Details
- 
name
Description copied from interface:FieldReqDerive a suitable name for the field - 
generateInitCode
public void generateInitCode(JitCodeGenerator gen, org.objectweb.asm.ClassVisitor cv, org.objectweb.asm.MethodVisitor iv) Emit the field declaration and its initialization bytecodeThe declaration is emitted into the class definition, and the initialization code is emitted into the class constructor.
Consider the address
ram:00600000. The declaration is equivalent to:private final byte[] arrDir_ram_600000;
And the initialization is equivalent to:
arrDir_ram_600000 = state.getForSpace(ADDRESS_FACTORY.getAddressSpace(ramId)).getDirect(0x600000);- Specified by:
 generateInitCodein interfaceInstanceFieldReq- Parameters:
 gen- the code generatorcv- the visitor for the class definitioniv- the visitor for the class constructor
 - 
generateLoadCode
Description copied from interface:FieldReqEmit code to load the field onto the JVM stack- Specified by:
 generateLoadCodein interfaceFieldReq- Parameters:
 gen- the code generatorrv- the visitor often for therunmethod, but could be the static initializer or constructor
 - 
toString
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components. - 
hashCode
public final int hashCode()Returns a hash code value for this object. The value is derived from the hash code of each of the record components. - 
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared withObjects::equals(Object,Object). - 
address
Returns the value of theaddressrecord component.- Returns:
 - the value of the 
addressrecord component 
 
 -