MDS.xcc
Benoit Dupont de Dinechin (Benoit.Dupont-de-Dinechin@st.com).
Copyright 2002 - 2007 STMicroelectronics. Copyright 1995 - 1998 Commissariat a l'Energie Atomique.
This program is free software; you can redistribute it and/or modify it under the terms of either (at your option): the GNU General Public License (GPL) version 2; the GNU Lesser General Public License (LGPL) version 2.1; any later version of these licences as published by the Free Software Foundation.
Platform— Enumeration.
typedef uint8_t Platform; extern const int Platform__COUNT; #define Platform__UNDEF 0
Resource— Enumeration.
typedef uint8_t Resource; extern const int Resource__COUNT; #define Resource__FIXME 8 #define Resource__UNDEF 0 #define Resource__ISSUE 1
Processor— Enumeration.
typedef uint8_t Processor; extern const int Processor__COUNT; #define Processor__UNDEF 0 #define Processor__DEFAULT 1
Encoding— Enumeration.
typedef uint8_t Encoding; extern const int Encoding__COUNT; #define Encoding__UNDEF 0 #ifdef MDS_FAMILY_arm #define Encoding_SIZE_MAX 4 //FIXME! #endif//MDS_FAMILY_arm #ifdef MDS_FAMILY_st200 #define Encoding_SIZE_MAX 8 //FIXME! #endif//MDS_FAMILY_st200
NativeType— Enumeration.
typedef uint8_t NativeType; extern const int NativeType__COUNT; #define NativeType__UNDEF 0
StorageCell— Enumeration.
typedef uint8_t StorageCell; extern const int StorageCell__COUNT; extern const int StorageCell__Volatile; extern const int StorageCell__Control; extern const int StorageCell__Memory; #define StorageCell__UNDEF 0 #ifdef MDS_FAMILY_arm #define RegisterStorageCells_COUNT_MAX 32 //FIXME! #endif//MDS_FAMILY_arm #ifdef MDS_FAMILY_st200 #define RegisterStorageCells_COUNT_MAX 2 //FIXME! #endif//MDS_FAMILY_st200
Register— Enumeration.
typedef uint8_t Register; extern const int Register__COUNT; #define Register__FIXME 128 #define Register__UNDEF 0 #define Register__Volatile (Register__COUNT + 0) #define Register__Control (Register__COUNT + 1) #define Register__Memory (Register__COUNT + 2) #define Register__XCOUNT (Register__COUNT + 3) #ifdef MDS_FAMILY_arm #define RegisterSet_WORDTYPE uint32_t //FIXME! #define RegisterList_COUNT_MAX 74 #endif//MDS_FAMILY_arm #ifdef MDS_FAMILY_st200 #define RegisterSet_WORDTYPE uint32_t //FIXME! #define RegisterList_COUNT_MAX 104 //FIXME! #endif//MDS_FAMILY_st200 #define RegisterSet_WORDTYPE uint32_t //FIXME! #define RegisterSet_WORDCOUNT (RegisterSet_MAJOR(104) + 1) //FIXME! #define RegisterSet_WORDBITS (sizeof(RegisterSet_WORDTYPE)*8) //FIXME! #define RegisterSet_MAJOR(member) ((Register)(member)/(RegisterSet_WORDBITS)) //FIXME! #define RegisterSet_MINOR(member) ((Register)(member)&(RegisterSet_WORDBITS - 1)) //FIXME! typedef RegisterSet_WORDTYPE RegisterSetWord;
RegFile— Enumeration.
typedef uint8_t RegFile; extern const int RegFile__COUNT; #define RegFile__FIXME 8 #define RegFile__UNDEF 0
RegClass— Enumeration.
typedef uint8_t RegClass; extern const int RegClass__COUNT; #define RegClass__UNDEF 0
RegMask— Enumeration.
typedef uint8_t RegMask; extern const int RegMask__COUNT; #define RegMask__UNDEF 0
Modifier— Enumeration.
typedef uint8_t Modifier; extern const int Modifier__COUNT; #define Modifier__UNDEF 0
ModifierMember— Enumeration.
typedef uint8_t ModifierMember; extern const int ModifierMember__COUNT; #define ModifierMember__UNDEF 0
Relocation— Enumeration.
typedef uint8_t Relocation; extern const int Relocation__COUNT; #define Relocation__UNDEF 0
Immediate— Enumeration.
typedef uint8_t Immediate; extern const int Immediate__COUNT; #define Immediate__UNDEF 0 #ifdef MDS_FAMILY_arm #define ImmediateRelocations_COUNT_MAX 1 //FIXME! #endif//MDS_FAMILY_arm #ifdef MDS_FAMILY_st200 #define ImmediateRelocations_COUNT_MAX 4 //FIXME! #endif//MDS_FAMILY_st200
Operand— Enumeration.
typedef uint8_t Operand; extern const int Operand__COUNT; #define Operand__UNDEF 0 #ifdef MDS_FAMILY_arm #define Operands_COUNT_MAX 7 //FIXME! #define Operands_IMMEDIATE_COUNT_MAX 2 //FIXME! #define Operands_REGMASK_COUNT_MAX 1 //FIXME! #endif//MDS_FAMILY_arm #ifdef MDS_FAMILY_st200 #define Operands_COUNT_MAX 5 //FIXME! #define Operands_IMMEDIATE_COUNT_MAX 1 //FIXME! #define Operands_REGMASK_COUNT_MAX 0 //FIXME! #endif//MDS_FAMILY_st200
Operands— Enumeration.
typedef uint8_t Operands; extern const int Operands__COUNT; #define Operands__UNDEF 0
Format— Enumeration.
typedef uint8_t Format; extern const int Format__COUNT; #define Format__UNDEF 0
Syntax— Enumeration.
typedef uint8_t Syntax; extern const int Syntax__COUNT; #define Syntax__UNDEF 0
Instance— Enumeration.
typedef uint16_t Instance; extern const int Instance__COUNT; #define Instance__UNDEF 0
Operator— Enumeration.
typedef uint16_t Operator; extern const int Operator__COUNT; #define Operator__UNDEF 0 //FIXME! #define Operator_ENTRY 1 //FIXME! #define Operator_LABEL 2 //FIXME! #define Operator_FALL 3 //FIXME! #define Operator_LOOP 4 //FIXME! #define Operator_GOTO 5 //FIXME! #define Operator_GOTRUE 6 //FIXME! #define Operator_GOFALSE 7 //FIXME! #define Operator_JUMP 8 //FIXME! #define Operator_CALL 9 //FIXME! #define Operator_LINK 10 //FIXME! #define Operator_RETURN 11 //FIXME! #define Operator_PHI 12 //FIXME! #define Operator_PSI 13 //FIXME! #define Operator_SIGMA 14 //FIXME! #define Operator_KILL 15 //FIXME! #define Operator_PCOPY 16 //FIXME! #define Operator_ECOPY 17 //FIXME! #define Operator_LCOPY 18 //FIXME! #define Operator_COPY 19 //FIXME! #define Operator_SKIP 20 //FIXME! #define Operator_LNOT 21 //FIXME! #define Operator_BNOT 22 //FIXME! #define Operator_NEG 23 //FIXME! #define Operator_ADD 24 //FIXME! #define Operator_SUB 25 //FIXME! #define Operator_MUL 26 //FIXME! #define Operator_DIV 27 //FIXME! #define Operator_REM 28 //FIXME! #define Operator_SHL 29 //FIXME! #define Operator_ASHR 30 //FIXME! #define Operator_LSHR 31 //FIXME! #define Operator_LAND 32 //FIXME! #define Operator_LIOR 33 //FIXME! #define Operator_LXOR 34 //FIXME! #define Operator_BAND 35 //FIXME! #define Operator_BIOR 36 //FIXME! #define Operator_BXOR 37 //FIXME! #define Operator_MIN 38 //FIXME! #define Operator_MAX 39 //FIXME! #define Operator_SELECT 40 //FIXME! #define Operator_APPLY 41 //FIXME! #ifdef MDS_FAMILY_arm #define OperatorParameterArray_COUNT_MAX 11 //FIXME! #define OperatorParameter_CONFLICTS_COUNT_MAX 4 //FIXME! #endif//MDS_FAMILY_arm #ifdef MDS_FAMILY_st200 #define OperatorParameterArray_COUNT_MAX 5 //FIXME! #define OperatorParameter_CONFLICTS_COUNT_MAX 0 //FIXME! #endif//MDS_FAMILY_st200
Bundling— Enumeration.
typedef uint8_t Bundling; extern const int Bundling__COUNT; #define Bundling__UNDEF 0 #define Bundling__BIAS 1
Template— Enumeration.
typedef uint16_t Template; extern const int Template__COUNT; #define Template__UNDEF 0
Bundle— Enumeration.
typedef uint16_t Bundle; extern const int Bundle__COUNT; #define Bundle__UNDEF 0 #ifdef MDS_FAMILY_arm #define Bundle_ISSUE_MAX 0 //FIXME! #define BundleMatch_COUNT_MAX 0 //FIXME! #endif//MDS_FAMILY_arm #ifdef MDS_FAMILY_st200 #define Bundle_ISSUE_MAX 4 //FIXME! #define BundleMatch_COUNT_MAX 4 //FIXME! #endif//MDS_FAMILY_st200
Reservation— Enumeration.
typedef uint8_t Reservation; extern const int Reservation__COUNT; #define Reservation__FIXME 32 #define Reservation__UNDEF 0 #ifdef MDS_FAMILY_arm #define Reservation_COLUMNS_COUNT_MAX 6 //FIXME! #endif//MDS_FAMILY_arm #ifdef MDS_FAMILY_st200 #define Reservation_COLUMNS_COUNT_MAX 1 //FIXME! #endif//MDS_FAMILY_st200
Scheduling— Enumeration.
typedef uint8_t Scheduling; extern const int Scheduling__COUNT; #define Scheduling__UNDEF 0
Convention— Enumeration.
typedef uint8_t Convention; extern const int Convention__COUNT; #define Convention__UNDEF 0 #define Convention__DEFAULT 1
MDS_TRACE— File handle used to trace the MDS.
extern FILE *MDS_TRACE; #ifdef ECL_NTRACE #define MDS_TRACE NULL #endif//ECL_NTRACE
Variables used to control MDS in non-release mode.
extern int FORCE_MAXISSUE; extern int FORCE_MINTAKEN;
MDS_INIT— MDS init function.
void MDS_INIT(void);
MDS_FINI— MDS fini function.
void MDS_FINI(void);