Files
Odin/src/asm_tables.cpp
2026-08-17 21:10:24 +01:00

60 lines
1.2 KiB
C++

enum AsmRegClass : u8 {
AsmRegClass_Unknown,
AsmRegClass_Integer,
AsmRegClass_Float,
AsmRegClass_Vector,
AsmRegClass_Mask,
AsmRegClass_COUNT
};
gb_global String const asm_reg_class_strings[AsmRegClass_COUNT] = {
str_lit("unknown"),
str_lit("integer"),
str_lit("float"),
str_lit("vector"),
str_lit("mask"),
};
gb_global String const asm_reg_class_strings_with_article[AsmRegClass_COUNT] = {
str_lit("an unknown"),
str_lit("an integer"),
str_lit("a float"),
str_lit("a vector"),
str_lit("a mask"),
};
enum AsmOperandKind : u8 {
AsmOperand_Invalid,
AsmOperand_Register,
AsmOperand_Memory,
AsmOperand_Register_Or_Memory,
AsmOperand_Immediate,
AsmOperand_Label,
AsmOperand_COUNT
};
gb_global String const asm_operand_kind_strings[AsmOperand_COUNT] = {
str_lit(""),
str_lit("register"),
str_lit("memory"),
str_lit("register or memory"),
str_lit("immediate"),
str_lit("label"),
};
gb_global String const asm_operand_kind_expected_strings[AsmOperand_COUNT] = {
str_lit(""),
str_lit("a register"),
str_lit("a memory"),
str_lit("a register or memory"),
str_lit("an immediate"),
str_lit("a label"),
};
#include "asm_tables_amd64.cpp"
void init_asm_tables() {
g_asm_amd64.init();
}