|
@@ -5168,124 +5168,6 @@ VAR
|
|
BEGIN RETURN (operandType = imm64)
|
|
BEGIN RETURN (operandType = imm64)
|
|
END IsImmediate64;
|
|
END IsImmediate64;
|
|
|
|
|
|
- PROCEDURE IsRegister8*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registers[index].type = reg8;
|
|
|
|
- END IsRegister8;
|
|
|
|
-
|
|
|
|
- PROCEDURE Register8*(index: SHORTINT): LONGINT;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registersByClass[reg8,index]
|
|
|
|
- END Register8;
|
|
|
|
-
|
|
|
|
- PROCEDURE IsRegister8Low*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- CASE index OF
|
|
|
|
- regAL, regBL, regCL,regDL,regR8B,regR9B,regR10B,regR11B,regR12B,regR13B,regR14B,regR15B: RETURN TRUE
|
|
|
|
- ELSE
|
|
|
|
- RETURN FALSE
|
|
|
|
- END
|
|
|
|
- END IsRegister8Low;
|
|
|
|
-
|
|
|
|
- PROCEDURE IsRegister8High*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- CASE index OF
|
|
|
|
- regAH, regBH, regCH,regDH: RETURN TRUE
|
|
|
|
- ELSE
|
|
|
|
- RETURN FALSE
|
|
|
|
- END
|
|
|
|
- END IsRegister8High;
|
|
|
|
-
|
|
|
|
- PROCEDURE Register16*(index: SHORTINT): LONGINT;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registersByClass[reg16,index]
|
|
|
|
- END Register16;
|
|
|
|
-
|
|
|
|
- PROCEDURE IsRegister16*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registers[index].type = reg16;
|
|
|
|
- END IsRegister16;
|
|
|
|
-
|
|
|
|
- PROCEDURE Register32*(index: SHORTINT): LONGINT;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registersByClass[reg32,index]
|
|
|
|
- END Register32;
|
|
|
|
-
|
|
|
|
- PROCEDURE IsRegister32*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registers[index].type = reg32;
|
|
|
|
- END IsRegister32;
|
|
|
|
-
|
|
|
|
- PROCEDURE Register64*(index: SHORTINT): LONGINT;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registersByClass[reg64,index]
|
|
|
|
- END Register64;
|
|
|
|
-
|
|
|
|
- PROCEDURE IsRegister64*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registers[index].type = reg64;
|
|
|
|
- END IsRegister64;
|
|
|
|
-
|
|
|
|
- PROCEDURE CounterRegister*(index: SHORTINT): LONGINT;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registersByClass[CRn,index]
|
|
|
|
- END CounterRegister;
|
|
|
|
-
|
|
|
|
- PROCEDURE IsCounterRegister*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registers[index].type = CRn;
|
|
|
|
- END IsCounterRegister;
|
|
|
|
-
|
|
|
|
- PROCEDURE DebugRegister*(index: SHORTINT): LONGINT;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registersByClass[DRn,index]
|
|
|
|
- END DebugRegister;
|
|
|
|
-
|
|
|
|
- PROCEDURE IsDebugRegister*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registers[index].type = DRn;
|
|
|
|
- END IsDebugRegister;
|
|
|
|
-
|
|
|
|
- PROCEDURE SegmentRegister*(index: SHORTINT): LONGINT;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registersByClass[segReg,index]
|
|
|
|
- END SegmentRegister;
|
|
|
|
-
|
|
|
|
- PROCEDURE IsSegmentRegister*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registers[index].type = segReg;
|
|
|
|
- END IsSegmentRegister;
|
|
|
|
-
|
|
|
|
- PROCEDURE MMXRegister*(index: SHORTINT): LONGINT;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registersByClass[mmx,index]
|
|
|
|
- END MMXRegister;
|
|
|
|
-
|
|
|
|
- PROCEDURE IsMMXRegister*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registers[index].type = mmx;
|
|
|
|
- END IsMMXRegister;
|
|
|
|
-
|
|
|
|
- PROCEDURE SSERegister*(index: SHORTINT): LONGINT;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registersByClass[xmm,index]
|
|
|
|
- END SSERegister;
|
|
|
|
-
|
|
|
|
- PROCEDURE IsSSERegister*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registers[index].type = xmm;
|
|
|
|
- END IsSSERegister;
|
|
|
|
-
|
|
|
|
- PROCEDURE FPRegister*(index: SHORTINT): LONGINT;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registersByClass[sti,index]
|
|
|
|
- END FPRegister;
|
|
|
|
-
|
|
|
|
- PROCEDURE IsFPRegister*(index: LONGINT): BOOLEAN;
|
|
|
|
- BEGIN
|
|
|
|
- RETURN registers[index].type = sti;
|
|
|
|
- END IsFPRegister;
|
|
|
|
-
|
|
|
|
(** setup register tables **)
|
|
(** setup register tables **)
|
|
PROCEDURE InitRegisters;
|
|
PROCEDURE InitRegisters;
|
|
(* insert an new register *)
|
|
(* insert an new register *)
|