Commit Graph

217 Commits

Author SHA1 Message Date
Connor Olding dea1955aec allow empty words on stack in push/pop 2015-12-18 16:47:41 -08:00
Connor Olding ad93ae9feb fix weird typo 2015-12-17 08:51:22 -08:00
Connor Olding 0edaa3f2de add JPOP pseudo-instruction 2015-12-17 08:50:24 -08:00
Connor Olding dc4dac8138 add PUSH and POP pseudo-instructions 2015-12-17 08:41:59 -08:00
Connor Olding b60ca90873 ensure labels exist 2015-12-17 07:22:43 -08:00
Connor Olding f12fec5094 add offset option for jumps 2015-12-17 07:19:24 -08:00
Connor Olding 91533bc083 Revert "add a warning about integer precision in Lua"
This reverts commit 5544c5226b.
2015-12-16 10:07:16 -08:00
Connor Olding c27aaa4008 fix args 2015-12-02 10:20:32 -08:00
Connor Olding c2f436a161 separate LA from LI; improve LI logic 2015-12-02 10:06:18 -08:00
Connor Olding efe3864814 notes 2015-12-02 09:43:54 -08:00
Connor Olding 3d28e95707 add bitrange function to make code a little clearer 2015-12-02 09:09:44 -08:00
Connor Olding 08472cdc1a remove obsolete comments; move a function 2015-12-02 08:30:52 -08:00
Connor Olding 5544c5226b add a warning about integer precision in Lua 2015-11-28 15:11:51 -08:00
Connor Olding 63851234f9 allow signed constants for some instructions 2015-11-26 21:38:08 -08:00
Connor Olding 975ff3f942 make only the assemble function visible 2015-11-26 19:45:13 -08:00
Connor Olding c978d4914f set all lexer states at EOF 2015-11-26 19:28:14 -08:00
Connor Olding 3ea0184fb6 implement HEX directives; a couple misc fixes 2015-11-26 19:15:15 -08:00
Connor Olding 76fe45adee lex newlines in block comments 2015-11-26 18:51:07 -08:00
Connor Olding dc7f457b95 simplify buffer handling in lexer 2015-11-26 18:49:01 -08:00
Connor Olding fa12154420 use coroutines to lex
this will be relevant due time.
2015-11-26 18:45:45 -08:00
Connor Olding 82af3d531e unallow labels as immediates; allow labels in DEREF instructions 2015-11-25 21:55:45 -08:00
Connor Olding c7f0d15910 fix LA 2015-11-25 21:27:46 -08:00
Connor Olding 774b04795d update readme 2015-11-25 21:23:22 -08:00
Connor Olding cc5e673d0c implement and fix many pseudo-instructions
up until this commit, there was a bug
that caused LI/LA to load wrong values
for 0x8000 <= immediate <= 0xFFFF.
2015-11-25 21:21:39 -08:00
Connor Olding 6e97d134e4 implicit RA argument for JR 2015-11-25 10:47:37 -08:00
Connor Olding 14f44f8206 add remaining instructions 2015-11-25 10:28:55 -08:00
Connor Olding b89c92087f update readme 2015-11-25 09:37:05 -08:00
Connor Olding 03cb168ad0 add more instructions 2015-11-25 03:04:55 -08:00
Connor Olding 9ccf2fd883 don't error when no options are given
d'oh!
2015-11-24 17:15:12 -08:00
Connor Olding 5aa0b5abe1 added 'unsafe' option to not wrap execution in pcall 2015-11-24 17:06:38 -08:00
Connor Olding d1edcf4fab add line numbers to Dumper errors 2015-11-24 17:00:44 -08:00
Connor Olding 32368f3998 optimize LI/LA 2015-11-24 16:34:18 -08:00
Connor Olding 89fcdd825d be more strict with immediate sizes
this will be made up for by pseudo-instructions in due time.
2015-11-24 16:25:05 -08:00
Connor Olding 338685d5bc fix a couple coprocessor instructions 2015-11-24 13:34:24 -08:00
Connor Olding bd0c5f4b34 implement align and skip directives 2015-11-24 13:23:22 -08:00
Connor Olding 9a2335fab1 a little more info 2015-11-23 20:42:19 -08:00
Connor Olding 2694035873 cleanup and documenting; alias S8 register to FP 2015-11-23 14:16:31 -08:00
Connor Olding 3590093470 fix line number in 'undefined define' error 2015-11-23 13:13:54 -08:00
Connor Olding bead0e5576 brain fart 2015-11-22 14:00:17 -08:00
Connor Olding bc72559091 rename; readme 2015-11-22 13:58:29 -08:00
Connor Olding c508c6efd9 move assembler to its own repo 2015-11-22 13:50:44 -08:00
Connor Olding e15d699ac3 ignore highest bit of .org directive
are you *really* gonna be assembling files over 2GiB?
2015-11-22 13:49:12 -08:00
Connor Olding e31b73d34e handle immediates in place of most offsets 2015-11-22 13:49:10 -08:00
Connor Olding 25b0ade37a reimplement parsing; resolve defines after lexing 2015-11-22 13:49:09 -08:00
Connor Olding 92c5819e3f tokenize all at once (WIP) 2015-11-22 13:49:08 -08:00
Connor Olding d560f47be9 unfudge LI/LA a little 2015-11-22 13:49:06 -08:00
Connor Olding 009d7080a4 use proper instruction type names 2015-11-22 13:49:05 -08:00
Connor Olding 6fc3b8f2b5 add reg# register aliases 2015-11-22 13:49:03 -08:00
Connor Olding 4a6c7c4d09 pseudo-instruction crap 2015-11-22 13:49:01 -08:00
Connor Olding 57ca41d414 various
fix jump and branch destinations.
note: branching is no longer compatible with CajeASM.

make LUI dumb: only use 'UPPER' with LI/LA.
note: this is very incompatible with CajeASM.
add LUUI pseudo-instruction to use 'UPPER' instead of 'LOWER'.

fix SUBI/SUBIU parsing.

fix LI for values under 0x10000.

pass filename through main().
tell Lexer our filename.
don't print filename in Dumper since it's irrelevant.
2015-11-22 13:48:59 -08:00