momiji
m68k emulator infrastructure
About Source codeTable of contents
momiji::ParserOperand
Defined in header <momiji/Parser.h>
enum class ParserOperand : std::int8_t
This enum describes possible operand types.
It is primarily used for LIGHTWEIGHT error checking, like if a type of operand is in a list of other operands.
This is NOT meant to be used for storing operands with their information, for that you should use [momiji::Operand
]({{ ‘/userapi/Parser#typedefs’ | relative_url }}).
Values
DataRegister | |
AddressRegister | |
Address | |
AddressPre | |
AddressPost | |
AddressOffset | |
AddressIndex | |
Immediate | |
AbsoluteShort | |
AbsoluteLong | |
ProgramCounterOffset | |
ProgramCounterIndex |
Remarks
This is completely different from momiji::Operand
!
When manipulating VALUES OF OPERANDS you should use that one!
Future
This is probably the worst name in the library.
When error-checking, some context is not really needed, this means that some
space can be saved when storing an error: a typical class in
momiji::operands::*
occupies 32 to 64 bits of memory, while a ParserOperand
takes just 8 bits.
An example of this is when the parser signals that an operand is invalid for a
particular instruction and then returns the list of valid operands. In that
case, what would be appropriate? Creating a mock ~64-bits wide momiji::Operand
to convey 8-bits of information is wasteful.