Preparing to add register windows and function calls
This commit is contained in:
@@ -94,14 +94,14 @@ if True:
|
||||
for size in sizes:
|
||||
result += f"""
|
||||
case BC_LOAD_FROM_MEMORY{size}:{{
|
||||
U{size} *load_address = b->registers[instr->index_a].pointer{size};
|
||||
b->registers[instr->index_c].u{size} = *load_address;
|
||||
bc_log("load_address[r%u, %llx] dst[r%u] [0x%llx|%lld|%f]", instr->index_a, load_address, instr->index_c, b->registers[instr->index_c].u{size}, b->registers[instr->index_c].u{size}, b->registers[instr->index_c].u{size});
|
||||
U{size} *load_address = R(instr->index_a).pointer_u{size};
|
||||
R(instr->index_c).u{size} = *load_address;
|
||||
bc_log("load_address[r%u, %llx] dst[r%u] [0x%llx|%lld|%f]", instr->index_a, load_address, instr->index_c, R(instr->index_c).u{size}, R(instr->index_c).u{size}, R(instr->index_c).u{size});
|
||||
}}break;
|
||||
|
||||
case BC_STORE_TO_MEMORY{size}:{{
|
||||
U{size} *store_address = b->registers[instr->index_c].pointer{size};
|
||||
*store_address = b->registers[instr->index_a].u{size};
|
||||
U{size} *store_address = R(instr->index_c).pointer_u{size};
|
||||
*store_address = R(instr->index_a).u{size};
|
||||
bc_log("src[r%u] store_address[r%u, %llx] value_written[0x%llx|%lld|%f]", instr->index_a, instr->index_c, store_address, *store_address, *store_address, *store_address);
|
||||
}}break;
|
||||
"""
|
||||
@@ -119,9 +119,9 @@ if True:
|
||||
if symbol == "~":
|
||||
result += f"""
|
||||
case BC_{op_name}_{T}:{{
|
||||
{T} left = ({T})b->registers[instr->index_a].{t};
|
||||
{T} left = ({T})R(instr->index_a).{t};
|
||||
{T} result = {symbol}left;
|
||||
{T} *dst = b->registers[instr->index_c].pointer_{t};
|
||||
{T} *dst = R(instr->index_c).pointer_{t};
|
||||
*dst = result;
|
||||
bc_log("{symbol} [{sign}] = [{sign}]", left, result);
|
||||
}}break;
|
||||
@@ -133,10 +133,10 @@ if True:
|
||||
# Binary operation
|
||||
result += f"""
|
||||
case BC_{op_name}_{T}:{{
|
||||
{T} left = b->registers[instr->index_a].{t};
|
||||
{T} right = b->registers[instr->index_b].{t};
|
||||
{T} left = R(instr->index_a).{t};
|
||||
{T} right = R(instr->index_b).{t};
|
||||
{T} result = left {symbol} right;
|
||||
b->registers[instr->index_c].{t} = result;
|
||||
R(instr->index_c).{t} = result;
|
||||
bc_log("[r%s, {sign}] {symbol} [r%s, {sign}] = [r%s, {sign}]", instr->index_a, left, instr->index_b, right, instr->index_c, result);
|
||||
}}break;
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user