From 3cfd8e1da5dedecf9c306770acbc7125ec874d35 Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Thu, 9 May 2024 18:54:46 -0400 Subject: Move to Big Endian Binaries --- qdme.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 qdme.h (limited to 'qdme.h') diff --git a/qdme.h b/qdme.h new file mode 100644 index 0000000..50652f0 --- /dev/null +++ b/qdme.h @@ -0,0 +1,50 @@ +#ifndef _QDME_H +#define _QDME_H + +#include + +#define MEM_SIZE 36 +#define RA 31 +#define V0 2 +#define V1 3 +#define A0 4 +#define A1 5 +#define A2 6 +#define A3 7 +#define WORD_SIZE 4 + +typedef struct { + unsigned int op: 6; + unsigned int rs: 5; + unsigned int rt: 5; + unsigned int rd: 5; + unsigned int shamt: 5; + unsigned int func: 6; +} rtype_t; + +typedef struct { + unsigned int op: 6; + unsigned int rs: 5; + unsigned int rt: 5; + unsigned int imm: 16; +} itype_t; + +typedef struct { + unsigned int op: 6; + unsigned int addr: 26; +} jtype_t; + +typedef enum { NOP, RTYPE, ITYPE, JTYPE } type_t; + +typedef struct { + type_t type; + union { + rtype_t r; + jtype_t j; + itype_t i; + uint32_t value; + }; +} inst_t; + +#endif + -- cgit v1.2.3