Package ghidra.program.model.lang
Class RegisterBuilder
- java.lang.Object
-
- ghidra.program.model.lang.RegisterBuilder
-
public class RegisterBuilder extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description RegisterBuilder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddLaneSize(java.lang.String registerName, int laneSizeInBytes)Add a vector lane size to the specified register.voidaddRegister(Register register)voidaddRegister(java.lang.String name, java.lang.String description, Address address, int numBytes, boolean bigEndian, int typeFlags)voidaddRegister(java.lang.String name, java.lang.String description, Address address, int numBytes, int leastSignificantBit, int bitLength, boolean bigEndian, int typeFlags)AddressgetProcessContextAddress()Returns the processor context address of the first context register added to this builder.RegistergetRegister(java.lang.String name)Returns the register with the given name;RegisterManagergetRegisterManager()voidremoveRegister(java.lang.String name)booleanrenameRegister(java.lang.String oldName, java.lang.String newName)Rename a register.booleansetFlag(java.lang.String registerName, int registerFlag)Set a register flag for the specified registerbooleansetGroup(java.lang.String registerName, java.lang.String groupName)Set the group name for the specified register
-
-
-
Method Detail
-
addRegister
public void addRegister(java.lang.String name, java.lang.String description, Address address, int numBytes, boolean bigEndian, int typeFlags)
-
addRegister
public void addRegister(java.lang.String name, java.lang.String description, Address address, int numBytes, int leastSignificantBit, int bitLength, boolean bigEndian, int typeFlags)
-
addRegister
public void addRegister(Register register)
-
getProcessContextAddress
public Address getProcessContextAddress()
Returns the processor context address of the first context register added to this builder.- Returns:
- context address
-
removeRegister
public void removeRegister(java.lang.String name)
-
getRegisterManager
public RegisterManager getRegisterManager()
-
getRegister
public Register getRegister(java.lang.String name)
Returns the register with the given name;- Parameters:
name- the name of the register to retrieve
-
renameRegister
public boolean renameRegister(java.lang.String oldName, java.lang.String newName)Rename a register. This allows generic register names declared within the langauge specification (*.slaspec) to be renamed for a processor variant specification (*.pspec).- Parameters:
oldName- original register namenewName- new register name- Returns:
- true if rename was successful, else false
-
setGroup
public boolean setGroup(java.lang.String registerName, java.lang.String groupName)Set the group name for the specified register- Parameters:
registerName- register namegroupName- group name- Returns:
- true if register was found, else false
-
setFlag
public boolean setFlag(java.lang.String registerName, int registerFlag)Set a register flag for the specified register- Parameters:
registerName- register nameregisterFlag- Register defined flag bit(s)- Returns:
- true if register was found, else false
-
addLaneSize
public boolean addLaneSize(java.lang.String registerName, int laneSizeInBytes)Add a vector lane size to the specified register.- Parameters:
registerName- register nameregisterFlag- Register defined flag bit(s)- Returns:
- true if register was found, else false
- Throws:
java.lang.UnsupportedOperationException- if register is unable to support the definition of lanes.java.lang.IllegalArgumentException- iflaneSizeInBytesis invalid
-
-