aboutsummaryrefslogtreecommitdiff
path: root/tasm/src
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2023-10-29 13:16:25 +0200
committerKimplul <kimi.h.kuparinen@gmail.com>2023-10-29 13:16:25 +0200
commit80d78c5589d42f81b04e671b28c103a2112458d1 (patch)
tree81390d685648d25dd05dfa0092deb0587821cf5a /tasm/src
parentb7525c84619f7bc28bcd3c43aa119d1c6bc23b6d (diff)
downloadtri-80d78c5589d42f81b04e671b28c103a2112458d1.tar.gz
tri-80d78c5589d42f81b04e671b28c103a2112458d1.zip
move common stuff to core
+ Might have to come up with a better name, but works for now
Diffstat (limited to 'tasm/src')
-rw-r--r--tasm/src/assembler.c2
-rw-r--r--tasm/src/bits.c75
-rw-r--r--tasm/src/parser.y4
3 files changed, 3 insertions, 78 deletions
diff --git a/tasm/src/assembler.c b/tasm/src/assembler.c
index 9f6dc95..3faf1fb 100644
--- a/tasm/src/assembler.c
+++ b/tasm/src/assembler.c
@@ -1,6 +1,6 @@
#include <tasm/assembler.h>
#include <tasm/parser.h>
-#include <tasm/bits.h>
+#include <bits.h>
#include <string.h>
#include <unistd.h>
diff --git a/tasm/src/bits.c b/tasm/src/bits.c
deleted file mode 100644
index 7a54632..0000000
--- a/tasm/src/bits.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#include <tasm/bits.h>
-
-tri_t parse_opcode(tri_t i)
-{
- /* opcode is lowest five trits */
- return tri_mask(i, 5);
-}
-
-tri_t build_r(tri_t opcode, tri_t rd, tri_t fn0, tri_t rs1, tri_t rs2, tri_t fn5)
-{
- return opcode
- | tri_sl(rd , 5)
- | tri_sl(fn0, 9)
- | tri_sl(rs1, 14)
- | tri_sl(rs2, 18)
- | tri_sl(fn5, 22);
-}
-
-void parse_r(tri_t i, tri_t *rd, tri_t *fn0, tri_t *rs1, tri_t *rs2, tri_t *fn5)
-{
- *rd = tri_mask(tri_sr(i, 5), 4);
- *fn0 = tri_mask(tri_sr(i, 9), 5);
- *rs1 = tri_mask(tri_sr(i, 14), 4);
- *rs2 = tri_mask(tri_sr(i, 18), 4);
- *fn5 = tri_mask(tri_sr(i, 22), 5);
-}
-
-tri_t build_i(tri_t opcode, tri_t rd, tri_t fn0, tri_t rs1, tri_t imm9)
-{
- return opcode
- | tri_sl(rd , 5)
- | tri_sl(fn0 , 9)
- | tri_sl(rs1 , 14)
- | tri_sl(imm9, 18);
-}
-
-void parse_i(tri_t i, tri_t *rd, tri_t *fn0, tri_t *rs1, tri_t *imm9)
-{
- *rd = tri_mask(tri_sr(i, 5), 4);
- *fn0 = tri_mask(tri_sr(i, 9), 5);
- *rs1 = tri_mask(tri_sr(i, 14), 4);
- *imm9 = tri_mask(tri_sr(i, 18), 9);
-}
-
-tri_t build_s(tri_t opcode, tri_t imm4, tri_t fn0, tri_t rs1, tri_t rs2, tri_t imm5)
-{
- return opcode
- | tri_sl(imm4, 5)
- | tri_sl(fn0 , 9)
- | tri_sl(rs1 , 14)
- | tri_sl(rs2 , 18)
- | tri_sl(imm5, 22);
-}
-
-void parse_s(tri_t i, tri_t *imm4, tri_t *fn0, tri_t *rs1, tri_t *rs2, tri_t *imm5)
-{
- *imm4 = tri_mask(tri_sr(i, 5), 4);
- *fn0 = tri_mask(tri_sr(i, 9), 5);
- *rs1 = tri_mask(tri_sr(i, 14), 4);
- *rs2 = tri_mask(tri_sr(i, 18), 4);
- *imm5 = tri_mask(tri_sr(i, 22), 5);
-}
-
-tri_t build_u(tri_t opcode, tri_t rd, tri_t imm18)
-{
- return opcode
- | tri_sl(rd , 5)
- | tri_sl(imm18, 9);
-}
-
-void parse_u(tri_t i, tri_t *rd, tri_t *imm18)
-{
- *rd = tri_mask(tri_sr(i, 5), 4);
- *imm18 = tri_mask(tri_sr(i, 9), 18);
-}
diff --git a/tasm/src/parser.y b/tasm/src/parser.y
index 559cbba..64418d1 100644
--- a/tasm/src/parser.y
+++ b/tasm/src/parser.y
@@ -13,8 +13,8 @@
#include <tasm/assembler.h>
#include <tasm/parser.h>
-#include <tasm/bits.h>
-#include <tasm/regs.h>
+#include <bits.h>
+#include <regs.h>
#include <tri.h>
%}