Update metaprogram to automatically update changes
This commit is contained in:
@@ -8,14 +8,15 @@
|
||||
#endif
|
||||
|
||||
//
|
||||
// Generated using code_generating_script.py
|
||||
// *Begin* of enum generated using code_generating_script.py
|
||||
//
|
||||
|
||||
enum Operation: S32{
|
||||
enum Operation: U16{
|
||||
BC_END_OF_INSTRUCTIONS,
|
||||
BC_POP_STACK,
|
||||
BC_PUSH_STACK,
|
||||
BC_LOAD_CONSTANT,
|
||||
BC_STORE_CONSTANT,
|
||||
BC_CALL,
|
||||
BC_LOAD_FROM_MEMORY64,
|
||||
BC_LOAD_FROM_MEMORY32,
|
||||
BC_LOAD_FROM_MEMORY16,
|
||||
@@ -76,6 +77,8 @@ const char *op_name[] = {
|
||||
"BC_POP_STACK",
|
||||
"BC_PUSH_STACK",
|
||||
"BC_LOAD_CONSTANT",
|
||||
"BC_STORE_CONSTANT",
|
||||
"BC_CALL",
|
||||
"BC_LOAD_FROM_MEMORY64",
|
||||
"BC_LOAD_FROM_MEMORY32",
|
||||
"BC_LOAD_FROM_MEMORY16",
|
||||
@@ -133,7 +136,7 @@ const char *op_name[] = {
|
||||
};
|
||||
|
||||
//
|
||||
// **End** of generated using code_generating_script.py
|
||||
// *End* of enum generated using code_generating_script.py
|
||||
//
|
||||
|
||||
typedef S32 Register_Index;
|
||||
@@ -164,12 +167,15 @@ struct Instruction{
|
||||
Token *debug_pos;
|
||||
};
|
||||
|
||||
//
|
||||
// Bytecode interpreter context
|
||||
//
|
||||
struct Call_Frame{
|
||||
Call_Frame *previous_call;
|
||||
Register_Index first_register;
|
||||
};
|
||||
|
||||
struct Bc{
|
||||
U32 dis; // @debug_id
|
||||
|
||||
Call_Frame *top_call;
|
||||
U64 *stack_bottom;
|
||||
U64 *stack_pointer;
|
||||
U64 *stack_top;
|
||||
@@ -257,6 +263,14 @@ new_instruction(Bc *b, Token *pos){
|
||||
return i;
|
||||
}
|
||||
|
||||
// function void
|
||||
// emit_call(Bc *b, Token *pos, Register_Index register_with_call_address, Register_Index register_with_last_argument){
|
||||
// auto i = new_instruction(b, pos);
|
||||
// i->operation = BC_CALL;
|
||||
// i->index_a = register_with_call_address;
|
||||
// i->index_b = register_with_last_argument;
|
||||
// }
|
||||
|
||||
function void
|
||||
emit_load_constant_f64(Bc *b, Token *pos, Register_Index dst, F64 constant){
|
||||
auto i = new_instruction(b, pos);
|
||||
@@ -398,7 +412,7 @@ run_bytecode_interp(Bc *b){
|
||||
}break;
|
||||
|
||||
//
|
||||
// Generated using code_generating_script.py
|
||||
// *Begin* of switch_cases generated using code_generating_script.py
|
||||
//
|
||||
|
||||
case BC_ADD_S64:{
|
||||
@@ -406,7 +420,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left + right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] + [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] + [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_SUB_S64:{
|
||||
@@ -414,7 +428,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left - right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] - [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] - [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_DIV_S64:{
|
||||
@@ -422,7 +436,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left / right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] / [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] / [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_MUL_S64:{
|
||||
@@ -430,7 +444,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left * right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] * [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] * [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_MOD_S64:{
|
||||
@@ -438,7 +452,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left % right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] % [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] % [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_SHR_S64:{
|
||||
@@ -446,7 +460,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left >> right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] >> [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] >> [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_SHL_S64:{
|
||||
@@ -454,7 +468,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left << right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] << [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] << [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_BITAND_S64:{
|
||||
@@ -462,7 +476,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left & right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] & [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] & [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_BITOR_S64:{
|
||||
@@ -470,7 +484,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left | right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] | [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] | [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_BITXOR_S64:{
|
||||
@@ -478,7 +492,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left ^ right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] ^ [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] ^ [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_BITNOT_S64:{
|
||||
@@ -494,7 +508,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left == right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] == [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] == [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_NEQ_S64:{
|
||||
@@ -502,7 +516,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left != right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] != [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] != [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_GT_S64:{
|
||||
@@ -510,7 +524,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left > right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] > [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] > [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_LT_S64:{
|
||||
@@ -518,7 +532,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left < right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] < [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] < [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_OR_S64:{
|
||||
@@ -526,7 +540,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left || right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] || [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] || [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_GTE_S64:{
|
||||
@@ -534,7 +548,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left >= right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] >= [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] >= [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_LTE_S64:{
|
||||
@@ -542,7 +556,7 @@ run_bytecode_interp(Bc *b){
|
||||
S64 right = b->registers[instr->index_b].s64;
|
||||
S64 result = left <= right;
|
||||
b->registers[instr->index_c].s64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%lld] <= [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%lld] <= [%lld] = [%lld]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_ADD_U64:{
|
||||
@@ -550,7 +564,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left + right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] + [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] + [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_SUB_U64:{
|
||||
@@ -558,7 +572,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left - right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] - [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] - [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_DIV_U64:{
|
||||
@@ -566,7 +580,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left / right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] / [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] / [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_MUL_U64:{
|
||||
@@ -574,7 +588,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left * right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] * [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] * [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_MOD_U64:{
|
||||
@@ -582,7 +596,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left % right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] % [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] % [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_SHR_U64:{
|
||||
@@ -590,7 +604,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left >> right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] >> [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] >> [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_SHL_U64:{
|
||||
@@ -598,7 +612,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left << right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] << [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] << [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_BITAND_U64:{
|
||||
@@ -606,7 +620,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left & right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] & [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] & [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_BITOR_U64:{
|
||||
@@ -614,7 +628,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left | right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] | [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] | [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_BITXOR_U64:{
|
||||
@@ -622,7 +636,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left ^ right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] ^ [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] ^ [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_BITNOT_U64:{
|
||||
@@ -638,7 +652,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left == right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] == [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] == [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_NEQ_U64:{
|
||||
@@ -646,7 +660,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left != right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] != [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] != [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_GT_U64:{
|
||||
@@ -654,7 +668,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left > right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] > [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] > [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_LT_U64:{
|
||||
@@ -662,7 +676,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left < right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] < [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] < [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_OR_U64:{
|
||||
@@ -670,7 +684,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left || right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] || [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] || [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_GTE_U64:{
|
||||
@@ -678,7 +692,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left >= right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] >= [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] >= [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_LTE_U64:{
|
||||
@@ -686,7 +700,7 @@ run_bytecode_interp(Bc *b){
|
||||
U64 right = b->registers[instr->index_b].u64;
|
||||
U64 result = left <= right;
|
||||
b->registers[instr->index_c].u64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%llu] <= [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%llu] <= [%llu] = [%llu]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_ADD_F64:{
|
||||
@@ -694,7 +708,7 @@ run_bytecode_interp(Bc *b){
|
||||
F64 right = b->registers[instr->index_b].f64;
|
||||
F64 result = left + right;
|
||||
b->registers[instr->index_c].f64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%f] + [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%f] + [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_SUB_F64:{
|
||||
@@ -702,7 +716,7 @@ run_bytecode_interp(Bc *b){
|
||||
F64 right = b->registers[instr->index_b].f64;
|
||||
F64 result = left - right;
|
||||
b->registers[instr->index_c].f64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%f] - [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%f] - [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_DIV_F64:{
|
||||
@@ -710,7 +724,7 @@ run_bytecode_interp(Bc *b){
|
||||
F64 right = b->registers[instr->index_b].f64;
|
||||
F64 result = left / right;
|
||||
b->registers[instr->index_c].f64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%f] / [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%f] / [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_MUL_F64:{
|
||||
@@ -718,7 +732,7 @@ run_bytecode_interp(Bc *b){
|
||||
F64 right = b->registers[instr->index_b].f64;
|
||||
F64 result = left * right;
|
||||
b->registers[instr->index_c].f64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%f] * [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%f] * [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_EQ_F64:{
|
||||
@@ -726,7 +740,7 @@ run_bytecode_interp(Bc *b){
|
||||
F64 right = b->registers[instr->index_b].f64;
|
||||
F64 result = left == right;
|
||||
b->registers[instr->index_c].f64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%f] == [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%f] == [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_NEQ_F64:{
|
||||
@@ -734,7 +748,7 @@ run_bytecode_interp(Bc *b){
|
||||
F64 right = b->registers[instr->index_b].f64;
|
||||
F64 result = left != right;
|
||||
b->registers[instr->index_c].f64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%f] != [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%f] != [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_GT_F64:{
|
||||
@@ -742,7 +756,7 @@ run_bytecode_interp(Bc *b){
|
||||
F64 right = b->registers[instr->index_b].f64;
|
||||
F64 result = left > right;
|
||||
b->registers[instr->index_c].f64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%f] > [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%f] > [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_LT_F64:{
|
||||
@@ -750,7 +764,7 @@ run_bytecode_interp(Bc *b){
|
||||
F64 right = b->registers[instr->index_b].f64;
|
||||
F64 result = left < right;
|
||||
b->registers[instr->index_c].f64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%f] < [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%f] < [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_GTE_F64:{
|
||||
@@ -758,7 +772,7 @@ run_bytecode_interp(Bc *b){
|
||||
F64 right = b->registers[instr->index_b].f64;
|
||||
F64 result = left >= right;
|
||||
b->registers[instr->index_c].f64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%f] >= [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%f] >= [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
case BC_LTE_F64:{
|
||||
@@ -766,15 +780,15 @@ run_bytecode_interp(Bc *b){
|
||||
F64 right = b->registers[instr->index_b].f64;
|
||||
F64 result = left <= right;
|
||||
b->registers[instr->index_c].f64 = result;
|
||||
bc_log("r%u + r%u = r%u => [%f] <= [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
bc_log("r%s + r%s = r%s => [%f] <= [%f] = [%f]", instr->index_a, instr->index_b, instr->index_c, left, right, result);
|
||||
}break;
|
||||
|
||||
//
|
||||
// **End** of generated using code_generating_script.py
|
||||
// *End* of switch_cases generated using code_generating_script.py
|
||||
//
|
||||
|
||||
}
|
||||
bc_log("\n");
|
||||
}
|
||||
end_of_program:;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user