Modifier and Type | Field and Description |
---|---|
private final ByteOrder | byteOrder
The byte ordering can be either little or big endian. |
private final int | implicitMemoryBarriers
Mask of the barrier constants denoting the barriers that are not required to be explicitly inserted under this architecture. |
private final int | machineCodeCallDisplacementOffset
Offset in bytes from the beginning of a call instruction to the displacement. |
private final String | name
The name of this architecture (e.g. "AMD64"). |
private final RegisterArray | registers
List of all available registers on this architecture. |
private final int | returnAddressSize
The size of the return address pushed to the stack by a call instruction. |
private final boolean | unalignedMemoryAccess
Whether the architecture supports unaligned memory accesses. |
private final PlatformKind | wordKind
The architecture specific type of a native word. |
Access | Constructor and Description |
---|---|
protected | Architecture(String name, PlatformKind wordKind, ByteOrder byteOrder, boolean unalignedMemoryAccess, RegisterArray registers, int implicitMemoryBarriers, int nativeCallDisplacementOffset, int returnAddressSize)
|
Modifier and Type | Method and Description |
---|---|
public abstract boolean | canStoreValue(Register.
the category of the register category,the kind that should be stored in the register kind)Determine whether a kind can be stored in a register of a given category. |
public final boolean | equals(Object
the reference object with which to compare. obj)Overrides java. Indicates whether some other object is "equal to" this one. |
public RegisterArray | getAvailableValueRegisters()
Gets a list of all registers available for storing values on this architecture. |
public ByteOrder | |
public abstract Set | |
public abstract PlatformKind | Returns: the largest kind that can be stored in a registercategory the category of the register categoryReturn the largest kind that can be stored in a register of a given category. |
public int | getMachineCodeCallDisplacementOffset()
Gets the offset in bytes from the beginning of a call instruction to the displacement. |
public String | |
public abstract PlatformKind | getPlatformKind(JavaKind javaKind)
Gets the |
public RegisterArray | |
public int | getReturnAddressSize()
Gets the size of the return address pushed to the stack by a call instruction. |
public PlatformKind | |
public int | getWordSize()
Gets the natural size of words (typically registers and pointers) of this architecture, in bytes. |
public final int | |
public final int | Returns: the value ofbarriers minus the barriers unnecessary on this architecturea mask of the barrier constants barriers)Determines the barriers in a given barrier mask that are explicitly required on this architecture. |
public boolean | Returns: true if the architecture supports unaligned memory accesses.
|
public final String | Returns: the string representation of this architectureOverrides java. Converts this architecture to a string. |
byteOrder | back to summary |
---|---|
private final ByteOrder byteOrder The byte ordering can be either little or big endian. |
implicitMemoryBarriers | back to summary |
---|---|
private final int implicitMemoryBarriers Mask of the barrier constants denoting the barriers that are not required to be explicitly inserted under this architecture. |
machineCodeCallDisplacementOffset | back to summary |
---|---|
private final int machineCodeCallDisplacementOffset Offset in bytes from the beginning of a call instruction to the displacement. |
name | back to summary |
---|---|
private final String name The name of this architecture (e.g. "AMD64"). |
registers | back to summary |
---|---|
private final RegisterArray registers List of all available registers on this architecture. The index of each register in this list is equal to its number. |
returnAddressSize | back to summary |
---|---|
private final int returnAddressSize The size of the return address pushed to the stack by a call instruction. A value of 0 denotes that call linkage uses registers instead (e.g. SPARC). |
unalignedMemoryAccess | back to summary |
---|---|
private final boolean unalignedMemoryAccess Whether the architecture supports unaligned memory accesses. |
wordKind | back to summary |
---|---|
private final PlatformKind wordKind The architecture specific type of a native word. |
Architecture | back to summary |
---|---|
protected Architecture(String name, PlatformKind wordKind, ByteOrder byteOrder, boolean unalignedMemoryAccess, RegisterArray registers, int implicitMemoryBarriers, int nativeCallDisplacementOffset, int returnAddressSize) |
canStoreValue | back to summary |
---|---|
public abstract boolean canStoreValue(Register. Determine whether a kind can be stored in a register of a given category.
|
equals | back to summary |
---|---|
public final boolean equals(Object obj) Overrides java. Doc from java. Indicates whether some other object is "equal to" this one.
The
An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes. |
getAvailableValueRegisters | back to summary |
---|---|
public RegisterArray getAvailableValueRegisters() Gets a list of all registers available for storing values on this architecture. This may be a
subset of |
getByteOrder | back to summary |
---|---|
public ByteOrder getByteOrder() |
getFeatures | back to summary |
---|---|
public abstract Set Gets the set of CPU features supported by the current platform. |
getLargestStorableKind | back to summary |
---|---|
public abstract PlatformKind getLargestStorableKind(Register. Return the largest kind that can be stored in a register of a given category.
|
getMachineCodeCallDisplacementOffset | back to summary |
---|---|
public int getMachineCodeCallDisplacementOffset() Gets the offset in bytes from the beginning of a call instruction to the displacement. |
getName | back to summary |
---|---|
public String getName() Gets the name of this architecture. |
getPlatformKind | back to summary |
---|---|
public abstract PlatformKind getPlatformKind(JavaKind javaKind) Gets the
|
getRegisters | back to summary |
---|---|
public RegisterArray getRegisters() Gets the list of all registers that exist on this architecture. This contains all registers that exist in the specification of this architecture. Not all of them may be available on this particular architecture instance. The index of each register in this list is equal to its number. |
getReturnAddressSize | back to summary |
---|---|
public int getReturnAddressSize() Gets the size of the return address pushed to the stack by a call instruction. A value of 0 denotes that call linkage uses registers instead. |
getWordKind | back to summary |
---|---|
public PlatformKind getWordKind() |
getWordSize | back to summary |
---|---|
public int getWordSize() Gets the natural size of words (typically registers and pointers) of this architecture, in bytes. |
hashCode | back to summary |
---|---|
public final int hashCode() Overrides java. Doc from java. Returns a hash code value for this object. This method is
supported for the benefit of hash tables such as those provided by
The general contract of
|
requiredBarriers | back to summary |
---|---|
public final int requiredBarriers(int barriers) Determines the barriers in a given barrier mask that are explicitly required on this architecture.
|
supportsUnalignedMemoryAccess | back to summary |
---|---|
public boolean supportsUnalignedMemoryAccess()
|
toString | back to summary |
---|---|
public final String toString() Overrides java. Converts this architecture to a string. |