diff --git a/src/a64instruction_SingleTransfer.h b/src/a64instruction_SingleTransfer.h index 150437b..120f173 100644 --- a/src/a64instruction_SingleTransfer.h +++ b/src/a64instruction_SingleTransfer.h @@ -21,24 +21,26 @@ typedef enum { 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; + uint16_t preIndexedOffset; + uint16_t postIndexedOffset; + uint16_t unsignedOffset; } a64inst_addressingModeData; + + a64inst_regSpecifier base; } a64inst_SingleDataTransferData; typedef struct { - word offset; + uint32_t offset; } a64inst_LoadLiteralData; typedef struct { - a64inst_regSpecifier target; + a64inst_SingleTransferType SingleTransferOpType; a64inst_regType regType; + a64inst_regSpecifier target; union { a64inst_SingleDataTransferData singleDataTransferData; a64inst_LoadLiteralData loadLiteralData;