jade-mouse
20 months agoImplement instruction execution develop
Cassie Jones [Wed, 22 Jan 2020 06:41:59 +0000 (01:41 -0500)]
Implement instruction execution

20 months agoChange bitmatch to use the published version
Cassie Jones [Wed, 22 Jan 2020 04:10:43 +0000 (23:10 -0500)]
Change bitmatch to use the published version

20 months agoImplement instruction decoder
Cassie Jones [Sun, 19 Jan 2020 12:54:42 +0000 (07:54 -0500)]
Implement instruction decoder

20 months agoAdd more mid-byte underscores to the ISA spec
Cassie Jones [Sun, 19 Jan 2020 10:01:59 +0000 (05:01 -0500)]
Add more mid-byte underscores to the ISA spec

For consistency with the first byte in the multi-byte instructions, and
to make it look nicer to translate the specs directly to the code.

20 months ago[WIP] Implementing encoding
Cassie Jones [Sat, 18 Jan 2020 05:43:39 +0000 (00:43 -0500)]
[WIP] Implementing encoding

20 months agoAdd proptest encoding round-trip test
Cassie Jones [Sat, 18 Jan 2020 04:19:16 +0000 (23:19 -0500)]
Add proptest encoding round-trip test

20 months agoMinor ISA changes
Cassie Jones [Fri, 17 Jan 2020 08:51:09 +0000 (03:51 -0500)]
Minor ISA changes

20 months agoModify the Rust instruction definition for v0.2
Cassie Jones [Thu, 16 Jan 2020 07:11:40 +0000 (02:11 -0500)]
Modify the Rust instruction definition for v0.2

20 months agoAdd ISA version 0.2
Cassie Jones [Thu, 16 Jan 2020 05:00:47 +0000 (00:00 -0500)]
Add ISA version 0.2

This changes the registers to 16-bit registers in order to solve the
code and data addressing problems in the first revision. Having
registers be address-sized means that we don't need to use register
pairs or segments. Some of these changes open up new encoding space, or
invalidate some previous design decisions. For instance, registers are
16 bits now, so AND/OR/XOR can no longer have a full-size immediate in
one byte. With this, we free up encoding space for other options.

Major additions include a "load upper/lower immediate" instruction.

20 months agoImplement mov and add tests
Cassie Jones [Sat, 11 Jan 2020 04:32:01 +0000 (23:32 -0500)]
Implement mov and add tests

20 months agoRun cargo fmt
Cassie Jones [Sat, 11 Jan 2020 03:37:27 +0000 (22:37 -0500)]
Run cargo fmt

20 months agoStart adding framework for encoding and decoding
Cassie Jones [Sat, 11 Jan 2020 03:25:15 +0000 (22:25 -0500)]
Start adding framework for encoding and decoding

20 months agoStart adding the toolchain
Cassie Jones [Sat, 11 Jan 2020 03:03:02 +0000 (22:03 -0500)]
Start adding the toolchain

The toolchain project will include an instruction set simulator, an
assembler, etc.

20 months agoAdd instruction program synthesis
Cassie Jones [Sat, 11 Jan 2020 02:51:58 +0000 (21:51 -0500)]
Add instruction program synthesis

This is inspired by Whitequark's work with program synthesis in Rosette.
I used it for generating wider shifts to gain some confidence that I
don't need instructions that use the carry.

20 months agoAdd a revision of the ISA design
Cassie Jones [Sat, 11 Jan 2020 02:44:15 +0000 (21:44 -0500)]
Add a revision of the ISA design