Add ADS for single transf instructions w/ S
This commit is contained in:
parent
d6148f6d34
commit
23d0e826a4
46
src/a64instruction_SingleTransfer.h
Normal file
46
src/a64instruction_SingleTransfer.h
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
#include <stdbool.h>
|
||||||
|
#include "a64instruction_global.h"
|
||||||
|
#include "global.h"
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
a64inst_SINGLE_TRANSFER_SINGLE_DATA_TRANSFER,
|
||||||
|
a64inst_SINGLE_TRANSFER_LOAD_LITERAL
|
||||||
|
} a64inst_SingleTransferType;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
a64inst_STORE,
|
||||||
|
a64inst_LOAD
|
||||||
|
} a64inst_TransferType;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
a64inst_REGISTER_OFFSET,
|
||||||
|
a64inst_PRE_INDEXED,
|
||||||
|
a64inst_POST_INDEXED,
|
||||||
|
a64inst_UNSIGNED_OFFSET
|
||||||
|
} a64inst_AddressingMode;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
a64inst_TransferType transferType;
|
||||||
|
a64inst_regSpecifier base;
|
||||||
|
a64inst_AddressingMode addressingMode;
|
||||||
|
// I think the following is better than another level of nesting.
|
||||||
|
union {
|
||||||
|
a64inst_regSpecifier offsetReg;
|
||||||
|
word preIndexedOffset;
|
||||||
|
word postIndexedOffset;
|
||||||
|
word unsignedOffset;
|
||||||
|
} a64inst_addressingModeData;
|
||||||
|
} a64inst_SingleDataTransferData;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
word offset;
|
||||||
|
} a64inst_LoadLiteralData;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
a64inst_regSpecifier target;
|
||||||
|
a64inst_regType regType;
|
||||||
|
union {
|
||||||
|
a64inst_SingleDataTransferData singleDataTransferData;
|
||||||
|
a64inst_LoadLiteralData loadLiteralData;
|
||||||
|
} processOpData;
|
||||||
|
} a64inst_SingleTransferData;
|
||||||
Loading…
Reference in New Issue
Block a user