Commit Graph

54 Commits

Author SHA1 Message Date
Ian Gulliver 5af90aa6ff Make memory sizes parameters 2021-11-20 18:27:06 -10:00
Ian Gulliver bd84a5b969 Restrict global and function references to memory size 2021-11-20 18:12:17 -10:00
Ian Gulliver bdb6b17187 Generate random single instructions 2021-11-20 17:59:22 -10:00
Ian Gulliver ae771823b0 Move operand type lists into the vm 2021-11-20 17:26:58 -10:00
Ian Gulliver 30ff003494 Parallelize slow tests 2021-11-20 17:21:46 -10:00
Ian Gulliver 56f61545ce Signed biased distribution generator 2021-11-20 16:56:07 -10:00
Ian Gulliver c12a546447 Biased random generator 2021-11-20 15:20:42 -10:00
Ian Gulliver 51f318c924 Execute code between assembly and disassembly 2021-11-20 10:23:54 -10:00
Ian Gulliver 3ced099a47 Remove broken loader 2021-11-20 10:20:29 -10:00
Ian Gulliver c67028520c Hex and binary literal support in hex 2021-11-20 10:19:08 -10:00
Ian Gulliver c43836a9f0 Working disassembler 2021-11-20 10:10:21 -10:00
Ian Gulliver b4a27cafd3 Make Operands an array 2021-11-20 09:46:51 -10:00
Ian Gulliver 579ddab2de Disassembler skeleton 2021-11-19 20:38:56 -10:00
Ian Gulliver 5ccf6832c8 Program wrapper struct 2021-11-19 20:16:01 -10:00
Ian Gulliver c536961df3 Bit shift operators 2021-11-19 17:04:11 -10:00
Ian Gulliver e2dafcf21a Better Not operation 2021-11-19 16:45:39 -10:00
Ian Gulliver cc8e4a8ccb Bitwise operators 2021-11-19 16:43:59 -10:00
Ian Gulliver 50f986fb13 Conditional return instructions 2021-11-19 16:30:11 -10:00
Ian Gulliver 7a24eee583 Add conditional call instructions 2021-11-19 16:24:04 -10:00
Ian Gulliver 6e36152b6a Typed operands 2021-11-19 16:14:38 -10:00
Ian Gulliver 534c4fe513 Handle invalid function calls 2021-11-19 15:45:51 -10:00
Ian Gulliver 7da1ea96da Jump tests 2021-11-19 15:42:27 -10:00
Ian Gulliver 007c56348c Signed comparison tests 2021-11-19 15:38:28 -10:00
Ian Gulliver 4988893b10 More opcode tests 2021-11-19 15:32:49 -10:00
Ian Gulliver cfec23f4e9 More opcode tests 2021-11-19 07:24:16 -10:00
Ian Gulliver b0ee500304 Split test utils, add opcode tests 2021-11-18 20:12:35 -10:00
Ian Gulliver 4332632c77 Split out the loader from the VM 2021-11-18 19:56:58 -10:00
Ian Gulliver 941939da83 asm support for all opcodes 2021-11-18 19:48:46 -10:00
Ian Gulliver 8b502f940c Split packages 2021-11-18 19:35:24 -10:00
Ian Gulliver b1e27cce79 Rename for clarity 2021-11-18 19:33:43 -10:00
Ian Gulliver eff0017fec Fix assembly of second operand 2021-11-18 19:33:09 -10:00
Ian Gulliver e99387beb4 Full test (which fails) 2021-11-18 17:53:38 -10:00
Ian Gulliver 8e34c67f11 Move go.mod to top level 2021-11-18 17:44:40 -10:00
Ian Gulliver bacbcc38d8 Assembler working 2021-11-18 17:43:13 -10:00
Ian Gulliver 6de2e87342 Return state error code 2021-11-18 15:34:10 -10:00
Ian Gulliver b8b13680ad Naming 2021-11-16 21:12:32 -10:00
Ian Gulliver 6449d4762a Basic parsing 2021-11-16 21:08:46 -10:00
Ian Gulliver db33045391 Move vm into subdir 2021-11-16 20:41:57 -10:00
Ian Gulliver cf33a52392 Use memory type for function memory 2021-11-16 16:21:32 -10:00
Ian Gulliver 012d5faecf Make memory an object 2021-11-16 16:15:46 -10:00
Ian Gulliver 1fdeaaf4cc Private members 2021-11-16 15:39:12 -10:00
Ian Gulliver f2d552e076 More State constructors 2021-11-16 15:36:34 -10:00
Ian Gulliver 69e69acc6f More private 2021-11-16 15:33:03 -10:00
Ian Gulliver 7ab0aba088 More private members 2021-11-16 15:27:30 -10:00
Ian Gulliver f39a856361 Make private 2021-11-16 15:13:30 -10:00
Ian Gulliver c52d6f5f9f Start hiding members 2021-11-15 20:49:54 -10:00
Ian Gulliver 6b1da92a3a Split files 2021-11-15 20:44:26 -10:00
Ian Gulliver be6b726851 First test 2021-11-15 20:36:02 -10:00
Ian Gulliver 2c063e5382 Simplify main loop conditional 2021-11-15 20:24:20 -10:00
Ian Gulliver b6d0828e3e Pre-resolve handlers 2021-11-15 16:46:37 -10:00