mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-31 01:22:38 +02:00
* basic stuff fixed
This commit is contained in:
parent
a1db92451c
commit
612a8cbbb1
@ -52,15 +52,18 @@ uses
|
||||
A_SBC,A_SMLAL.A_SMLA,A_SMLAL,A_SMLAW,A_SMULL,A_SMUL,
|
||||
A_SMULW,A_STC,A_STC2,A_STM,A_STR,A_STRB,A_STRBT,A_STRD,
|
||||
A_STRH,A_STRT,A_SUB,A_SWI,A_SWP,A_SWPB,A_TEQ,A_TST.
|
||||
A_UMLAL,A_UMULL);
|
||||
A_UMLAL,A_UMULL
|
||||
{ FPU coprocessor codes }
|
||||
{ Vec unit coprocessor codes }
|
||||
);
|
||||
|
||||
{# This should define the array of instructions as string }
|
||||
{ This should define the array of instructions as string }
|
||||
op2strtable=array[tasmop] of string[11];
|
||||
|
||||
Const
|
||||
{# First value of opcode enumeration }
|
||||
{ First value of opcode enumeration }
|
||||
firstop = low(tasmop);
|
||||
{# Last value of opcode enumeration }
|
||||
{ Last value of opcode enumeration }
|
||||
lastop = high(tasmop);
|
||||
|
||||
{*****************************************************************************
|
||||
@ -87,19 +90,26 @@ uses
|
||||
}
|
||||
{ don't change the order }
|
||||
{ it's used by the register size conversions }
|
||||
tregister = (R_NO,
|
||||
R_EAX,R_ECX,R_EDX,R_EBX,R_ESP,R_EBP,R_ESI,R_EDI,
|
||||
R_AX,R_CX,R_DX,R_BX,R_SP,R_BP,R_SI,R_DI,
|
||||
R_AL,R_CL,R_DL,R_BL,R_AH,R_CH,R_BH,R_DH,
|
||||
R_CS,R_DS,R_ES,R_SS,R_FS,R_GS,
|
||||
R_ST,R_ST0,R_ST1,R_ST2,R_ST3,R_ST4,R_ST5,R_ST6,R_ST7,
|
||||
R_DR0,R_DR1,R_DR2,R_DR3,R_DR6,R_DR7,
|
||||
R_CR0,R_CR2,R_CR3,R_CR4,
|
||||
R_TR3,R_TR4,R_TR5,R_TR6,R_TR7,
|
||||
R_MM0,R_MM1,R_MM2,R_MM3,R_MM4,R_MM5,R_MM6,R_MM7,
|
||||
R_XMM0,R_XMM1,R_XMM2,R_XMM3,R_XMM4,R_XMM5,R_XMM6,R_XMM7
|
||||
toldregister = (R_NO,
|
||||
R_RAX,R_RCX,R_RDX,R_RBX,R_RSP,R_RBP,R_RSI,R_RDI,
|
||||
R_R0,R_R1,R_R2,R_R3,R_R4,R_R5,R_R6,R_R7,
|
||||
R_R8,R_R9,R_R10,R_R11,R_R12,R_R13,R_R14,R_PC,
|
||||
R_CPSR
|
||||
);
|
||||
|
||||
type
|
||||
tnewregister=word;
|
||||
|
||||
Tregister = packed record
|
||||
enum : Toldregister;
|
||||
{ This is a word for now, change to cardinal
|
||||
when the old register coding is away.}
|
||||
number : Tnewregister;
|
||||
end;
|
||||
|
||||
Tsuperregister = byte;
|
||||
Tsubregister = byte;
|
||||
|
||||
{ A type to store register locations for 64 Bit values. }
|
||||
tregister64 = packed record
|
||||
reglo,reghi : tregister;
|
||||
@ -108,10 +118,11 @@ uses
|
||||
{ alias for compact code }
|
||||
treg64 = tregister64;
|
||||
|
||||
{# Set type definition for registers }
|
||||
{ Set type definition for registers }
|
||||
tregisterset = set of tregister;
|
||||
tsupregset = set of tsuperregister;
|
||||
|
||||
{# Type definition for the array of string of register names }
|
||||
{ Type definition for the array of string of register names }
|
||||
reg2strtable = array[tregister] of string[6];
|
||||
|
||||
const
|
||||
@ -170,22 +181,18 @@ uses
|
||||
|
||||
type
|
||||
TAsmCond=(C_None,
|
||||
C_A,C_AE,C_B,C_BE,C_C,C_E,C_G,C_GE,C_L,C_LE,C_NA,C_NAE,
|
||||
C_NB,C_NBE,C_NC,C_NE,C_NG,C_NGE,C_NL,C_NLE,C_NO,C_NP,
|
||||
C_NS,C_NZ,C_O,C_P,C_PE,C_PO,C_S,C_Z
|
||||
C_EQ,C_NE,C_CS,C_CC,C_MI,C_PL,C_VS,C_VC,C_HI,C_LS,
|
||||
C_GE,C_LT,C_GT,C_LE,C_AL,C_NV
|
||||
);
|
||||
|
||||
const
|
||||
cond2str:array[TAsmCond] of string[3]=('',
|
||||
'a','ae','b','be','c','e','g','ge','l','le','na','nae',
|
||||
'nb','nbe','nc','ne','ng','nge','nl','nle','no','np',
|
||||
'ns','nz','o','p','pe','po','s','z'
|
||||
cond2str:array[TAsmCond] of string[2]=('',
|
||||
'eq','ne','cs','cc','mi','pl','vs','vc','hi','ls',
|
||||
'ge','lt','gt','le','al','nv'
|
||||
);
|
||||
|
||||
inverse_cond:array[TAsmCond] of TAsmCond=(C_None,
|
||||
C_NA,C_NAE,C_NB,C_NBE,C_NC,C_NE,C_NG,C_NGE,C_NL,C_NLE,C_A,C_AE,
|
||||
C_B,C_BE,C_C,C_E,C_G,C_GE,C_L,C_LE,C_O,C_P,
|
||||
C_S,C_Z,C_NO,C_NP,C_NP,C_P,C_NS,C_NZ
|
||||
|
||||
);
|
||||
|
||||
{*****************************************************************************
|
||||
@ -526,6 +533,9 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.1 2003-07-21 16:35:30 florian
|
||||
Revision 1.2 2003-07-26 00:55:57 florian
|
||||
* basic stuff fixed
|
||||
|
||||
Revision 1.1 2003/07/21 16:35:30 florian
|
||||
* very basic stuff for the arm
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user