mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-16 20:58:22 +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_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_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_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];
|
op2strtable=array[tasmop] of string[11];
|
||||||
|
|
||||||
Const
|
Const
|
||||||
{# First value of opcode enumeration }
|
{ First value of opcode enumeration }
|
||||||
firstop = low(tasmop);
|
firstop = low(tasmop);
|
||||||
{# Last value of opcode enumeration }
|
{ Last value of opcode enumeration }
|
||||||
lastop = high(tasmop);
|
lastop = high(tasmop);
|
||||||
|
|
||||||
{*****************************************************************************
|
{*****************************************************************************
|
||||||
@ -87,19 +90,26 @@ uses
|
|||||||
}
|
}
|
||||||
{ don't change the order }
|
{ don't change the order }
|
||||||
{ it's used by the register size conversions }
|
{ it's used by the register size conversions }
|
||||||
tregister = (R_NO,
|
toldregister = (R_NO,
|
||||||
R_EAX,R_ECX,R_EDX,R_EBX,R_ESP,R_EBP,R_ESI,R_EDI,
|
R_RAX,R_RCX,R_RDX,R_RBX,R_RSP,R_RBP,R_RSI,R_RDI,
|
||||||
R_AX,R_CX,R_DX,R_BX,R_SP,R_BP,R_SI,R_DI,
|
R_R0,R_R1,R_R2,R_R3,R_R4,R_R5,R_R6,R_R7,
|
||||||
R_AL,R_CL,R_DL,R_BL,R_AH,R_CH,R_BH,R_DH,
|
R_R8,R_R9,R_R10,R_R11,R_R12,R_R13,R_R14,R_PC,
|
||||||
R_CS,R_DS,R_ES,R_SS,R_FS,R_GS,
|
R_CPSR
|
||||||
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
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
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. }
|
{ A type to store register locations for 64 Bit values. }
|
||||||
tregister64 = packed record
|
tregister64 = packed record
|
||||||
reglo,reghi : tregister;
|
reglo,reghi : tregister;
|
||||||
@ -108,10 +118,11 @@ uses
|
|||||||
{ alias for compact code }
|
{ alias for compact code }
|
||||||
treg64 = tregister64;
|
treg64 = tregister64;
|
||||||
|
|
||||||
{# Set type definition for registers }
|
{ Set type definition for registers }
|
||||||
tregisterset = set of tregister;
|
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];
|
reg2strtable = array[tregister] of string[6];
|
||||||
|
|
||||||
const
|
const
|
||||||
@ -170,22 +181,18 @@ uses
|
|||||||
|
|
||||||
type
|
type
|
||||||
TAsmCond=(C_None,
|
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_EQ,C_NE,C_CS,C_CC,C_MI,C_PL,C_VS,C_VC,C_HI,C_LS,
|
||||||
C_NB,C_NBE,C_NC,C_NE,C_NG,C_NGE,C_NL,C_NLE,C_NO,C_NP,
|
C_GE,C_LT,C_GT,C_LE,C_AL,C_NV
|
||||||
C_NS,C_NZ,C_O,C_P,C_PE,C_PO,C_S,C_Z
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const
|
const
|
||||||
cond2str:array[TAsmCond] of string[3]=('',
|
cond2str:array[TAsmCond] of string[2]=('',
|
||||||
'a','ae','b','be','c','e','g','ge','l','le','na','nae',
|
'eq','ne','cs','cc','mi','pl','vs','vc','hi','ls',
|
||||||
'nb','nbe','nc','ne','ng','nge','nl','nle','no','np',
|
'ge','lt','gt','le','al','nv'
|
||||||
'ns','nz','o','p','pe','po','s','z'
|
|
||||||
);
|
);
|
||||||
|
|
||||||
inverse_cond:array[TAsmCond] of TAsmCond=(C_None,
|
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.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$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
|
* very basic stuff for the arm
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user