aboutsummaryrefslogtreecommitdiffstats
path: root/creole.c
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2023-02-11 17:04:17 +0000
committerGravatar Peter McGoron 2023-02-11 17:04:17 +0000
commit15fb92e5022eb6331806c6f9aeb8e0ca71fac6f2 (patch)
tree5bf313c4fea5632aadc50e4a50d54affb6d3c7bf /creole.c
parentenable compiling and add compile test (diff)
comments and negative immediates
Diffstat (limited to 'creole.c')
-rw-r--r--creole.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/creole.c b/creole.c
index b482d1e..1fa6b11 100644
--- a/creole.c
+++ b/creole.c
@@ -448,17 +448,18 @@ creole_compile(struct creole_env *env, struct creole_reader *r)
return CREOLE_COMPILE_OK;
}
-enum creole_run_ret creole_reg_write(struct creole_env *env,
- creole_word w, unsigned reg)
+enum creole_run_ret creole_reg_write(struct creole_env *env, unsigned reg,
+ creole_word w)
{
- if (!valid_register(env, reg))
- return CREOLE_REGISTER_OVERFLOW;
+ if (!valid_register(env, reg)) {
+ return CREOLE_REGISTER_OVERFLOW;
+ }
env->reg[reg] = w;
return CREOLE_STEP_CONTINUE;
}
-enum creole_run_ret creole_reg_read(struct creole_env *env, creole_word *w,
- unsigned reg)
+enum creole_run_ret creole_reg_read(struct creole_env *env, unsigned reg,
+ creole_word *w)
{
if (!valid_register(env, reg))
return CREOLE_REGISTER_OVERFLOW;
@@ -472,7 +473,7 @@ static enum creole_run_ret read_val(struct creole_env *env,
creole_word *w)
{
if (ins->w_flags[arg] == CREOLE_REGISTER) {
- return creole_reg_read(env, w, ins->w[arg]);
+ return creole_reg_read(env, ins->w[arg], w);
} else {
*w = ins->w[arg];
}
@@ -526,7 +527,7 @@ enum creole_run_ret creole_step(struct creole_env *env, creole_word *sc)
break;
case CREOLE_POP:
check(creole_pop(env, &a1));
- check(creole_reg_write(env, a1, ins->w[0]));
+ check(creole_reg_write(env, ins->w[0], a1));
break;
case CREOLE_ADD:
check(read_val(env, ins, 1, &a1));