aboutsummaryrefslogtreecommitdiff
path: root/src/as_op.c
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-03-26 19:10:25 +0800
committerMistivia <i@mistivia.com>2025-03-26 19:10:25 +0800
commit312716a295626f2b60b41777728c7f220fee843d (patch)
tree5747882b5a662c29a734dc66486035f93fe42990 /src/as_op.c
parentb2be728e0cf6f024ecc524b28806012c53ca5206 (diff)
finish fvm-as
Diffstat (limited to 'src/as_op.c')
-rw-r--r--src/as_op.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/as_op.c b/src/as_op.c
index 71ba0f3..a50812a 100644
--- a/src/as_op.c
+++ b/src/as_op.c
@@ -94,7 +94,7 @@ struct op_table_entry op_table [] = {
};
int op_size(enum op op) {
- if (op == OP_IMM || op == OP_REL) {
+ if (op == OP_IMM) {
return 8 + 1;
}
if (op == OP_CALL
@@ -104,23 +104,16 @@ int op_size(enum op op) {
|| op == OP_SYSCALL) {
return 8 + 1 + 1;
}
- if (op == OP_LDARG || op == OP_STARG) {
- return 9 + 9 + 1 + 9 + 4;
- }
- if (op == OP_LDVAR || op == OP_STVAR) {
- return 9 + 9 + 2 + 9 + 4;
+ if (op == OP_REL) {
+ return 11;
}
- return 1;
-}
-
-int is_pseudo_op(enum op op) {
if (op == OP_LDARG || op == OP_STARG) {
- return 1;
+ return 12;
}
if (op == OP_LDVAR || op == OP_STVAR) {
- return 1;
+ return 12;
}
- return 0;
+ return 1;
}
enum op str2op(const char* str) {