summaryrefslogtreecommitdiff
path: root/enums.h
diff options
context:
space:
mode:
Diffstat (limited to 'enums.h')
-rw-r--r--enums.h86
1 files changed, 69 insertions, 17 deletions
diff --git a/enums.h b/enums.h
index bca5010..07338ee 100644
--- a/enums.h
+++ b/enums.h
@@ -1,23 +1,56 @@
enum am {
/* Part of Base ISA. */
- IMM, /* Immediate Data. */
- ZM, /* Zero Matrix. */
- ZMX, /* Zero Matrix, indexed with X. */
- ZMY, /* Zero Matrix, indexed with Y. */
- IND, /* Indirect. */
- INDX, /* Indexed Indirect. */
- INDY, /* Indirect Indexed. */
- ABS, /* Absolute. */
- REL, /* Relative to Program Counter. */
- BREG, /* B Register. */
- IMPL, /* Implied. */
+ IMM, /* Immediate Data. */
+ ZM, /* Zero Matrix. */
+ ZMX, /* Zero Matrix, indexed with X. */
+ ZMY, /* Zero Matrix, indexed with Y. */
+ IND, /* Indirect. */
+ INDX, /* Indexed Indirect. */
+ INDY, /* Indirect Indexed. */
+ ABS, /* Absolute. */
+ REL, /* Relative to Program Counter. */
+ BREG, /* B Register. */
+ IMPL, /* Implied. */
/* Part of Base Extension. */
- ABSX, /* Absolute, Indexed with X. */
- ABSY, /* Absolute, Indexed with Y. */
- AIND, /* Absolute Indirect. */
- AINDX, /* Absolute Indexed Indirect. */
- AINDY, /* Absolute Indirect Indexed. */
- EIND, /* Effective Address Register, Indirect. */
+ ABSX, /* Absolute, Indexed with X. */
+ ABSY, /* Absolute, Indexed with Y. */
+ AIND, /* Absolute Indirect. */
+ AINDX, /* Absolute Indexed Indirect. */
+ AINDY, /* Absolute Indirect Indexed. */
+ EIND, /* Effective Address Register, Indirect. */
+};
+
+/* Part of the Orthogonal Extension. */
+enum ortho_reg {
+ REG_A,
+ REG_B,
+ REG_X,
+ REG_Y,
+ REG_E,
+ REG_C,
+ REG_D,
+ REG_S,
+ REG_F,
+ REG_SP,
+ REG_BP,
+ REG_R11,
+ REG_R12,
+ REG_R13,
+ REG_R14,
+ REG_R15,
+};
+
+enum ortho_mem {
+ MEM_ABS, /* Absolute. */
+ MEM_ZM, /* Zero Matrix. */
+ MEM_ABSR, /* Absolute, Indexed with register. */
+ MEM_ZMR, /* Zero Matrix, Indexed with register. */
+ MEM_ZINDR, /* Zero Matrix, Indirect Indexed Register. */
+ MEM_ZRIND, /* Zero Matrix, Indexed Indirect Register. */
+ MEM_AINDR, /* Absolute, Indirect Indexed Register. */
+ MEM_ARIND, /* Absolute, Indexed Indirect Register. */
+ MEM_RIND, /* Register Indirect. */
+ MEM_SIB, /* Scale Index Base. */
};
enum mne {
@@ -149,6 +182,25 @@ enum ext_mne {
SNE
};
+enum ortho_mne {
+ MNG,
+ MPO,
+ MCS,
+ MCC,
+ MEQ,
+ MNE,
+ MVS,
+ MVC,
+ OR ,
+ MOV,
+ IML,
+ IDV,
+ PSH,
+ PUL,
+ NEG,
+ SET
+};
+
enum base_isa {
CPS_IMP = 0x00, /* Clear Processor Status. */
ADC_IMM = 0x01, /* ADd with Carry. */