aboutsummaryrefslogtreecommitdiff
path: root/triscv/src
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-04-30 15:44:47 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-04-30 15:44:47 +0300
commit912dd003b081b628085e86bc151b8d91fbccb0c8 (patch)
tree8e27533fc5555e4c152e3f132c2b09e0dba9d86d /triscv/src
parent9fce87134559f8b5f86e105283b59e61a1707d39 (diff)
downloadtri-912dd003b081b628085e86bc151b8d91fbccb0c8.tar.gz
tri-912dd003b081b628085e86bc151b8d91fbccb0c8.zip
janitorial duties
+ Add doc and formatting tooling
Diffstat (limited to 'triscv/src')
-rw-r--r--triscv/src/cpu.c44
-rw-r--r--triscv/src/main.c26
-rw-r--r--triscv/src/mem.c16
-rw-r--r--triscv/src/mmu.c18
-rw-r--r--triscv/src/uart.c12
5 files changed, 61 insertions, 55 deletions
diff --git a/triscv/src/cpu.c b/triscv/src/cpu.c
index 9e82974..59ba238 100644
--- a/triscv/src/cpu.c
+++ b/triscv/src/cpu.c
@@ -113,8 +113,8 @@ static void do_op_imm(struct cpu *cpu, tri_t i)
break;
}
default: fprintf(stderr, "illegal/unimplemented OP_IMM at %lli, "
- "aborting\n", (long long int)cpu->pc);
- abort();
+ "aborting\n", (long long int)cpu->pc);
+ abort();
}
cpu->pc += 3;
@@ -129,7 +129,7 @@ static void do_op(struct cpu *cpu, tri_t i)
tri_t src2 = get_gpr(cpu, rs2);
switch (fn5) {
- case 0:
+ case 0:
switch (fn0) {
case OP_ADD: {
tri_t r = tri_add(src1, src2);
@@ -143,14 +143,14 @@ static void do_op(struct cpu *cpu, tri_t i)
break;
}
default: fprintf(stderr, "illegal/unimplemented OP at %lli, "
- "aborting\n", (long long int)cpu->pc);
- abort();
+ "aborting\n", (long long int)cpu->pc);
+ abort();
}
break;
- default: fprintf(stderr, "illegal/unimplemented OP at %lli, "
- "aborting\n", (long long int)cpu->pc);
- abort();
+ default: fprintf(stderr, "illegal/unimplemented OP at %lli, "
+ "aborting\n", (long long int)cpu->pc);
+ abort();
}
cpu->pc += 3;
@@ -174,8 +174,8 @@ static void do_system(struct cpu *cpu, tri_t i)
}
default: fprintf(stderr, "illegal/unimplemented SYSTEM at %lli,"
- "aborting\n", (long long int)cpu->pc);
- abort();
+ "aborting\n", (long long int)cpu->pc);
+ abort();
}
cpu->pc += 3;
@@ -297,13 +297,13 @@ static void do_branch(struct cpu *cpu, tri_t i)
bool take = false;
switch (fn0) {
- case BRANCH_BLT: take = tri_lt(c0, c1); break;
- case BRANCH_BGE: take = tri_ge(c0, c1); break;
- case BRANCH_BNE: take = tri_ne(c0, c1); break;
- case BRANCH_BEQ: take = tri_eq(c0, c1); break;
- default: fprintf(stderr, "illegal/unimplemented BRANCH at %lli,"
- "aborting\n", (long long int)cpu->pc);
- abort();
+ case BRANCH_BLT: take = tri_lt(c0, c1); break;
+ case BRANCH_BGE: take = tri_ge(c0, c1); break;
+ case BRANCH_BNE: take = tri_ne(c0, c1); break;
+ case BRANCH_BEQ: take = tri_eq(c0, c1); break;
+ default: fprintf(stderr, "illegal/unimplemented BRANCH at %lli,"
+ "aborting\n", (long long int)cpu->pc);
+ abort();
}
cpu->pc = take ? t : f;
@@ -336,11 +336,11 @@ void cpu_run(struct cpu *cpu, vm_t start)
case OPCODE_JALR: do_jalr(cpu, i); break;
case OPCODE_BRANCH: do_branch(cpu, i); break;
default: /** @todo raise illegal instruction exception */
- fprintf(stderr, "illegal/unimplemented "
- "instruction at %lli, aborting\n",
- (long long int)cpu->pc);
- abort();
- break;
+ fprintf(stderr, "illegal/unimplemented "
+ "instruction at %lli, aborting\n",
+ (long long int)cpu->pc);
+ abort();
+ break;
}
/* do_* is responsible for updating pc */
diff --git a/triscv/src/main.c b/triscv/src/main.c
index 37be2cb..2d23af7 100644
--- a/triscv/src/main.c
+++ b/triscv/src/main.c
@@ -20,10 +20,10 @@
#define IMM18(t) ((t) << 18)
static const char *cmdline_usage =
-"triscv simulator usage:\n"
-" triscv simfile\n"
-" -h Show usage(this)\n"
-" simfile File to simulate\n"
+ "triscv simulator usage:\n"
+ " triscv simfile\n"
+ " -h Show usage(this)\n"
+ " simfile File to simulate\n"
;
static void usage()
@@ -54,7 +54,7 @@ static void *read_simulation_file(const char *file, size_t *len)
if (!buf)
return NULL;
- fread(buf, s, 1 , f);
+ fread(buf, s, 1, f);
fclose(f);
return buf;
}
@@ -64,14 +64,14 @@ int main(int argc, char *argv[])
int opt;
while ((opt = getopt(argc, argv, "h")) != -1) {
switch (opt) {
- case 'h':
- usage();
- exit(EXIT_SUCCESS);
- break;
- default:
- usage();
- exit(EXIT_FAILURE);
- break;
+ case 'h':
+ usage();
+ exit(EXIT_SUCCESS);
+ break;
+ default:
+ usage();
+ exit(EXIT_FAILURE);
+ break;
}
}
diff --git a/triscv/src/mem.c b/triscv/src/mem.c
index 1bcecfc..9c77e95 100644
--- a/triscv/src/mem.c
+++ b/triscv/src/mem.c
@@ -8,7 +8,9 @@ struct mem {
struct mem *mem_create(size_t size)
{
- struct mem *mem = calloc(1, sizeof(struct mem) + size * sizeof(mem->buf[0]));
+ struct mem *mem = calloc(1,
+ sizeof(struct mem) + size *
+ sizeof(mem->buf[0]));
mem->size = size;
return mem;
}
@@ -60,11 +62,11 @@ static tri_t mem_read3(struct cpu *cpu, struct mem *mem, pm_t addr)
struct dev mem_dev(struct mem *mem)
{
return (struct dev){
- .dev = mem,
- .size = mem->size,
- .write1 = (dev_write1_t)mem_write1,
- .write3 = (dev_write3_t)mem_write3,
- .read1 = (dev_read1_t)mem_read1,
- .read3 = (dev_read3_t)mem_read3
+ .dev = mem,
+ .size = mem->size,
+ .write1 = (dev_write1_t)mem_write1,
+ .write3 = (dev_write3_t)mem_write3,
+ .read1 = (dev_read1_t)mem_read1,
+ .read3 = (dev_read3_t)mem_read3
};
}
diff --git a/triscv/src/mmu.c b/triscv/src/mmu.c
index 7549012..1b35961 100644
--- a/triscv/src/mmu.c
+++ b/triscv/src/mmu.c
@@ -76,7 +76,8 @@ struct tri_option {
bool ok;
};
-static struct tri_option __mmu_read3(struct cpu *cpu, struct mmu *mmu, vm_t addr)
+static struct tri_option __mmu_read3(struct cpu *cpu, struct mmu *mmu,
+ vm_t addr)
{
struct dev_map *d = mmu_find_dev_map(mmu, addr);
if (!d || !d->dev.read3) {
@@ -85,8 +86,8 @@ static struct tri_option __mmu_read3(struct cpu *cpu, struct mmu *mmu, vm_t addr
}
return (struct tri_option){
- .value = d->dev.read3(cpu, d->dev.dev, addr - d->start),
- .ok = true
+ .value = d->dev.read3(cpu, d->dev.dev, addr - d->start),
+ .ok = true
};
}
@@ -128,8 +129,9 @@ static bool __leaf_pte(tri_t pte)
return !(x == 0 && rw == 0);
}
-static pm_t __process_pte(struct cpu *cpu, struct mmu *mmu, pm_t table, tri_t orig, size_t shift,
- struct tlb_map *mapping)
+static pm_t __process_pte(struct cpu *cpu, struct mmu *mmu, pm_t table,
+ tri_t orig, size_t shift,
+ struct tlb_map *mapping)
{
tri_t ppn = tri_mask(tri_sr(orig, shift), 6);
pm_t i = tri_to(ppn);
@@ -148,14 +150,16 @@ static pm_t __process_pte(struct cpu *cpu, struct mmu *mmu, pm_t table, tri_t or
tri_t cur = tri_discard(orig, shift);
tri_t off = tri_sub(orig, cur);
- *mapping = __build_mapping(tri_to(orig), tri_to(base) + tri_to(off), tag);
+ *mapping = __build_mapping(tri_to(orig),
+ tri_to(base) + tri_to(off), tag);
return 0;
}
return pte.value;
}
-static struct tlb_map __fetch_mapping(struct cpu *cpu, struct mmu *mmu, vm_t addr)
+static struct tlb_map __fetch_mapping(struct cpu *cpu, struct mmu *mmu,
+ vm_t addr)
{
/* feels kind of silly to convert back to trinary, but I guess fine for
* now. */
diff --git a/triscv/src/uart.c b/triscv/src/uart.c
index 492f0dd..aa4b0bd 100644
--- a/triscv/src/uart.c
+++ b/triscv/src/uart.c
@@ -34,11 +34,11 @@ static void uart_write1(struct cpu *cpu, struct uart *uart, pm_t addr, tri_t t)
struct dev uart_dev(struct uart *uart)
{
return (struct dev){
- .dev = uart,
- .size = 1,
- .write1 = (dev_write1_t)uart_write1,
- .write3 = NULL, /* illegal */
- .read1 = NULL, /* not supported for now */
- .read3 = NULL
+ .dev = uart,
+ .size = 1,
+ .write1 = (dev_write1_t)uart_write1,
+ .write3 = NULL, /* illegal */
+ .read1 = NULL, /* not supported for now */
+ .read3 = NULL
};
}