Skip to content

Commit

Permalink
wip gcc
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperFola committed Sep 24, 2024
1 parent a547cf7 commit 19940db
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 58 deletions.
116 changes: 59 additions & 57 deletions src/arkreactor/VM/VM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -270,12 +270,12 @@ namespace Ark
unsigned long long instructions_executed = 0;
#endif

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic"

#if ARK_USE_COMPUTED_GOTOS
# define TARGET(op) TARGET_##op:
# define DISPATCH_GOTO() goto* opcode_targets[inst]
# define DISPATCH_GOTO() \
_Pragma("GCC diagnostic push") \
_Pragma("GCC diagnostic ignored \"-Wpedantic\"") goto* opcode_targets[inst];
_Pragma("GCC diagnostic pop")
# define GOTO_HALT() goto dispatch_end
#else
# define TARGET(op) case op:
Expand All @@ -297,58 +297,61 @@ namespace Ark
DISPATCH_GOTO();

#if ARK_USE_COMPUTED_GOTOS
const std::array opcode_targets = {
&&TARGET_NOP,
&&TARGET_LOAD_SYMBOL,
&&TARGET_LOAD_CONST,
&&TARGET_POP_JUMP_IF_TRUE,
&&TARGET_STORE,
&&TARGET_LET,
&&TARGET_POP_JUMP_IF_FALSE,
&&TARGET_JUMP,
&&TARGET_RET,
&&TARGET_HALT,
&&TARGET_CALL,
&&TARGET_CAPTURE,
&&TARGET_BUILTIN,
&&TARGET_MUT,
&&TARGET_DEL,
&&TARGET_SAVE_ENV,
&&TARGET_GET_FIELD,
&&TARGET_PLUGIN,
&&TARGET_LIST,
&&TARGET_APPEND,
&&TARGET_CONCAT,
&&TARGET_APPEND_IN_PLACE,
&&TARGET_CONCAT_IN_PLACE,
&&TARGET_POP_LIST,
&&TARGET_POP_LIST_IN_PLACE,
&&TARGET_POP,
&&TARGET_DUP,
&&TARGET_ADD,
&&TARGET_SUB,
&&TARGET_MUL,
&&TARGET_DIV,
&&TARGET_GT,
&&TARGET_LT,
&&TARGET_LE,
&&TARGET_GE,
&&TARGET_NEQ,
&&TARGET_EQ,
&&TARGET_LEN,
&&TARGET_EMPTY,
&&TARGET_TAIL,
&&TARGET_HEAD,
&&TARGET_ISNIL,
&&TARGET_ASSERT,
&&TARGET_TO_NUM,
&&TARGET_TO_STR,
&&TARGET_AT,
&&TARGET_MOD,
&&TARGET_TYPE,
&&TARGET_HASFIELD,
&&TARGET_NOT,
};
# pragma GCC diagnostic push
# pragma GCC diagnostic ignored "-Wpedantic"
const std::array opcode_targets = {
&&TARGET_NOP,
&&TARGET_LOAD_SYMBOL,
&&TARGET_LOAD_CONST,
&&TARGET_POP_JUMP_IF_TRUE,
&&TARGET_STORE,
&&TARGET_LET,
&&TARGET_POP_JUMP_IF_FALSE,
&&TARGET_JUMP,
&&TARGET_RET,
&&TARGET_HALT,
&&TARGET_CALL,
&&TARGET_CAPTURE,
&&TARGET_BUILTIN,
&&TARGET_MUT,
&&TARGET_DEL,
&&TARGET_SAVE_ENV,
&&TARGET_GET_FIELD,
&&TARGET_PLUGIN,
&&TARGET_LIST,
&&TARGET_APPEND,
&&TARGET_CONCAT,
&&TARGET_APPEND_IN_PLACE,
&&TARGET_CONCAT_IN_PLACE,
&&TARGET_POP_LIST,
&&TARGET_POP_LIST_IN_PLACE,
&&TARGET_POP,
&&TARGET_DUP,
&&TARGET_ADD,
&&TARGET_SUB,
&&TARGET_MUL,
&&TARGET_DIV,
&&TARGET_GT,
&&TARGET_LT,
&&TARGET_LE,
&&TARGET_GE,
&&TARGET_NEQ,
&&TARGET_EQ,
&&TARGET_LEN,
&&TARGET_EMPTY,
&&TARGET_TAIL,
&&TARGET_HEAD,
&&TARGET_ISNIL,
&&TARGET_ASSERT,
&&TARGET_TO_NUM,
&&TARGET_TO_STR,
&&TARGET_AT,
&&TARGET_MOD,
&&TARGET_TYPE,
&&TARGET_HASFIELD,
&&TARGET_NOT,
};
# pragma GCC diagnostic pop
#endif

try
Expand Down Expand Up @@ -1176,7 +1179,6 @@ namespace Ark
backtrace(context);
m_exit_code = 1;
}
#pragma GCC diagnostic pop

#ifdef ARK_PROFILER_MIPS
auto end_time = std::chrono::system_clock::now();
Expand Down

0 comments on commit 19940db

Please sign in to comment.