coins
クラス MachineParamX86_64

java.lang.Object
  |
  +--coins.MachineParam
        |
        +--coins.MachineParamX86_64

public class MachineParamX86_64
extends MachineParam

MachineParamX86_64 class: Define target machine parameters and methods. The target machine is Intel x86_64.


フィールドの概要
(パッケージプライベート) static int ALIGN_ADDRESS
           
(パッケージプライベート) static int ALIGN_BOOL
           
(パッケージプライベート) static int ALIGN_CHAR
           
(パッケージプライベート) static int ALIGN_DOUBLE
           
(パッケージプライベート) static int ALIGN_ENUM
           
(パッケージプライベート) static int ALIGN_FLOAT
           
(パッケージプライベート) static int ALIGN_INT
           
(パッケージプライベート) static int ALIGN_LONG
           
(パッケージプライベート) static int ALIGN_LONG_DOUBLE
           
(パッケージプライベート) static int ALIGN_LONG_LONG
           
(パッケージプライベート) static int ALIGN_OFFSET
           
(パッケージプライベート) static int ALIGN_PTR
           
(パッケージプライベート) static int ALIGN_REGION_MIN
           
(パッケージプライベート) static int ALIGN_SHORT
           
(パッケージプライベート) static int ALIGN_STRUCT_MIN
           
(パッケージプライベート) static int ALIGN_SUBP
           
(パッケージプライベート) static int ALIGN_VOID
           
(パッケージプライベート) static int ALIGN_WCHAR
           
(パッケージプライベート) static int NUMBER_OF_BITS_IN_ADDRESSING_UNIT
           
(パッケージプライベート) static int NUMBER_OF_BITS_IN_PACKED_CHAR
           
(パッケージプライベート) static int NUMBER_OF_BITS_IN_PACKED_SHORT
           
(パッケージプライベート) static int SIZEOF_ADDRESS
           
(パッケージプライベート) static int SIZEOF_BOOL
           
(パッケージプライベート) static int SIZEOF_CHAR
           
(パッケージプライベート) static int SIZEOF_DOUBLE
           
(パッケージプライベート) static int SIZEOF_ENUM
           
(パッケージプライベート) static int SIZEOF_FLOAT
           
(パッケージプライベート) static int SIZEOF_INT
           
(パッケージプライベート) static int SIZEOF_LONG
           
(パッケージプライベート) static int SIZEOF_LONG_DOUBLE
           
(パッケージプライベート) static int SIZEOF_LONG_LONG
           
(パッケージプライベート) static int SIZEOF_OFFSET
           
(パッケージプライベート) static int SIZEOF_PTR
           
(パッケージプライベート) static int SIZEOF_SHORT
           
(パッケージプライベート) static int SIZEOF_VOID
           
(パッケージプライベート) static int SIZEOF_WCHAR
           
 
クラス coins.MachineParam から継承したフィールド
COST_INDEX_CALL, COST_INDEX_GLOBAL_LOAD, COST_INDEX_TEMP_LOAD, INT_TYPE_OF_ADDRESS_IS_INT, INT_TYPE_OF_ADDRESS_IS_LONG, INT_TYPE_OF_ADDRESS_IS_U_INT, INT_TYPE_OF_ADDRESS_IS_U_LONG, INT_TYPE_OF_ADDRESS_IS_U_LONG_LONG, INT_TYPE_OF_CHAR_IS_INT, INT_TYPE_OF_CHAR_IS_U_INT, ioRoot
 
コンストラクタの概要
MachineParamX86_64(IoRoot pIoRoot)
           
 
メソッドの概要
 java.lang.String blankRegionName()
          balnkRegionName: //##29
 int costOfInstruction(int pIndex)
          costOfInstruction Approximate cost of executing instructions in unit of register-register integer addition.
 int evaluateSize(int pTypeKind)
          evaluateSize:
 int getAlignment(int pTypeKind)
           
 int getCharCode(char pChar)
          getCharCode: Get the character code of the given character.
 int getIntKindForAddress()
          Select one of the constants INT_TYPE_OF_ADDRESS_IS_* (see abobe).
 int getIntKindForChar()
          Select one of the constants INT_TYPE_OF_CHAR_IS_* (see abobe).
 int getLargestAlignment()
           
 int getNumberOfFloatingRegisters()
           
 int getNumberOfGeneralRegisters()
           
 Type getStringElemType()
           
 boolean initByDataCode()
           
 boolean initGlobalExplicitly()
           
 boolean isBigEndian()
          isBigEndian: //##16
 boolean isLittleEndian()
          isLittleEndian: //##16
 boolean isPackedFromLeft()
          isPackedFromLeft: //##16
 boolean isPackedFromRight()
          isPackedFromRight: //##16
 int minimumNumberOfAddressingUnitsForBitFieldSequence()
          Allocation unit for bit field sequence.
 int numberOfBitsInAddressingUnit()
           
 int numberOfBitsInPackedChar()
           
 int numberOfBitsInPackedShort()
           
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

NUMBER_OF_BITS_IN_ADDRESSING_UNIT

static final int NUMBER_OF_BITS_IN_ADDRESSING_UNIT
関連項目:
定数フィールド値

NUMBER_OF_BITS_IN_PACKED_CHAR

static final int NUMBER_OF_BITS_IN_PACKED_CHAR
関連項目:
定数フィールド値

NUMBER_OF_BITS_IN_PACKED_SHORT

static final int NUMBER_OF_BITS_IN_PACKED_SHORT
関連項目:
定数フィールド値

SIZEOF_BOOL

static final int SIZEOF_BOOL
関連項目:
定数フィールド値

SIZEOF_SHORT

static final int SIZEOF_SHORT
関連項目:
定数フィールド値

SIZEOF_INT

static final int SIZEOF_INT
関連項目:
定数フィールド値

SIZEOF_LONG

static final int SIZEOF_LONG
関連項目:
定数フィールド値

SIZEOF_LONG_LONG

static final int SIZEOF_LONG_LONG
関連項目:
定数フィールド値

SIZEOF_CHAR

static final int SIZEOF_CHAR
関連項目:
定数フィールド値

SIZEOF_WCHAR

static final int SIZEOF_WCHAR
関連項目:
定数フィールド値

SIZEOF_VOID

static final int SIZEOF_VOID
関連項目:
定数フィールド値

SIZEOF_PTR

static final int SIZEOF_PTR
関連項目:
定数フィールド値

SIZEOF_ENUM

static final int SIZEOF_ENUM
関連項目:
定数フィールド値

SIZEOF_ADDRESS

static final int SIZEOF_ADDRESS
関連項目:
定数フィールド値

SIZEOF_OFFSET

static final int SIZEOF_OFFSET
関連項目:
定数フィールド値

SIZEOF_FLOAT

static final int SIZEOF_FLOAT
関連項目:
定数フィールド値

SIZEOF_DOUBLE

static final int SIZEOF_DOUBLE
関連項目:
定数フィールド値

SIZEOF_LONG_DOUBLE

static final int SIZEOF_LONG_DOUBLE
関連項目:
定数フィールド値

ALIGN_BOOL

static final int ALIGN_BOOL
関連項目:
定数フィールド値

ALIGN_SHORT

static final int ALIGN_SHORT
関連項目:
定数フィールド値

ALIGN_INT

static final int ALIGN_INT
関連項目:
定数フィールド値

ALIGN_LONG

static final int ALIGN_LONG
関連項目:
定数フィールド値

ALIGN_LONG_LONG

static final int ALIGN_LONG_LONG
関連項目:
定数フィールド値

ALIGN_CHAR

static final int ALIGN_CHAR
関連項目:
定数フィールド値

ALIGN_WCHAR

static final int ALIGN_WCHAR
関連項目:
定数フィールド値

ALIGN_VOID

static final int ALIGN_VOID
関連項目:
定数フィールド値

ALIGN_PTR

static final int ALIGN_PTR
関連項目:
定数フィールド値

ALIGN_ENUM

static final int ALIGN_ENUM
関連項目:
定数フィールド値

ALIGN_ADDRESS

static final int ALIGN_ADDRESS
関連項目:
定数フィールド値

ALIGN_OFFSET

static final int ALIGN_OFFSET
関連項目:
定数フィールド値

ALIGN_FLOAT

static final int ALIGN_FLOAT
関連項目:
定数フィールド値

ALIGN_DOUBLE

static final int ALIGN_DOUBLE
関連項目:
定数フィールド値

ALIGN_LONG_DOUBLE

static final int ALIGN_LONG_DOUBLE
関連項目:
定数フィールド値

ALIGN_STRUCT_MIN

static final int ALIGN_STRUCT_MIN
関連項目:
定数フィールド値

ALIGN_REGION_MIN

static final int ALIGN_REGION_MIN
関連項目:
定数フィールド値

ALIGN_SUBP

static final int ALIGN_SUBP
関連項目:
定数フィールド値
コンストラクタの詳細

MachineParamX86_64

public MachineParamX86_64(IoRoot pIoRoot)
メソッドの詳細

numberOfBitsInAddressingUnit

public int numberOfBitsInAddressingUnit()
オーバーライド:
クラス MachineParam 内の numberOfBitsInAddressingUnit

numberOfBitsInPackedChar

public int numberOfBitsInPackedChar()
オーバーライド:
クラス MachineParam 内の numberOfBitsInPackedChar

numberOfBitsInPackedShort

public int numberOfBitsInPackedShort()
オーバーライド:
クラス MachineParam 内の numberOfBitsInPackedShort

getIntKindForAddress

public int getIntKindForAddress()
Select one of the constants INT_TYPE_OF_ADDRESS_IS_* (see abobe).

オーバーライド:
クラス MachineParam 内の getIntKindForAddress
戻り値:
the selected constant.

getIntKindForChar

public int getIntKindForChar()
Select one of the constants INT_TYPE_OF_CHAR_IS_* (see abobe).

オーバーライド:
クラス MachineParam 内の getIntKindForChar
戻り値:
the selected constant.

getAlignment

public int getAlignment(int pTypeKind)
オーバーライド:
クラス MachineParam 内の getAlignment

minimumNumberOfAddressingUnitsForBitFieldSequence

public int minimumNumberOfAddressingUnitsForBitFieldSequence()
Allocation unit for bit field sequence.

オーバーライド:
クラス MachineParam 内の minimumNumberOfAddressingUnitsForBitFieldSequence
戻り値:
the number of allocation units.

initGlobalExplicitly

public boolean initGlobalExplicitly()
オーバーライド:
クラス MachineParam 内の initGlobalExplicitly

initByDataCode

public boolean initByDataCode()
オーバーライド:
クラス MachineParam 内の initByDataCode

evaluateSize

public int evaluateSize(int pTypeKind)
evaluateSize:

オーバーライド:
クラス MachineParam 内の evaluateSize

getCharCode

public int getCharCode(char pChar)
getCharCode: Get the character code of the given character.

オーバーライド:
クラス MachineParam 内の getCharCode
戻り値:
the character code.

getStringElemType

public Type getStringElemType()
オーバーライド:
クラス MachineParam 内の getStringElemType

blankRegionName

public java.lang.String blankRegionName()
balnkRegionName: //##29

オーバーライド:
クラス MachineParam 内の blankRegionName
戻り値:
the name to represent blank (unnamed) region.

getLargestAlignment

public int getLargestAlignment()
オーバーライド:
クラス MachineParam 内の getLargestAlignment

isBigEndian

public boolean isBigEndian()
isBigEndian: //##16

オーバーライド:
クラス MachineParam 内の isBigEndian
戻り値:
true if big endian is selected, false otherwise.

isLittleEndian

public boolean isLittleEndian()
isLittleEndian: //##16

オーバーライド:
クラス MachineParam 内の isLittleEndian
戻り値:
true if little endian is selected, false otherwise.

isPackedFromRight

public boolean isPackedFromRight()
isPackedFromRight: //##16

オーバーライド:
クラス MachineParam 内の isPackedFromRight
戻り値:
true if bit fields of a structure are packed from right (the least significant bit of 1st field is placed at the least significant bit of object).

isPackedFromLeft

public boolean isPackedFromLeft()
isPackedFromLeft: //##16

オーバーライド:
クラス MachineParam 内の isPackedFromLeft
戻り値:
true if bit fields of a structure are packed from left (the most significant bit of 1st field is placed at the most significant bit of object).

costOfInstruction

public int costOfInstruction(int pIndex)
costOfInstruction Approximate cost of executing instructions in unit of register-register integer addition. The cost of each executable HIR node is assumed at least 1, so that the cost of (assign (exp e)) is assumed to be (1 + (cost of x) + (cost of e)). This value is used in HIR optimization, etc.

オーバーライド:
クラス MachineParam 内の costOfInstruction
パラメータ:
pIndex - is the index to select instruction in such way as COST_INDEX_TEMP_LOAD, COST_INDEX_CALL, etc.
戻り値:
the approximate cost of instruction specified by pIndex.

getNumberOfGeneralRegisters

public int getNumberOfGeneralRegisters()
オーバーライド:
クラス MachineParam 内の getNumberOfGeneralRegisters

getNumberOfFloatingRegisters

public int getNumberOfFloatingRegisters()
オーバーライド:
クラス MachineParam 内の getNumberOfFloatingRegisters