1
0
Fork 0
mirror of https://github.com/notwa/lips synced 2024-05-02 09:33:23 -07:00
Commit Graph

38 Commits

Author SHA1 Message Date
Connor Olding e1ae1fdd64 optimize incbin via string passthru 2016-11-23 12:22:31 -08:00
Connor Olding cdc0f8edb2 add a barebones expression parser
at the moment, this probably only works in directives.
some of the operators are still unimplemented, and the errors are poor.
there will be support for accessing variables in the future.
2016-10-14 09:27:19 -07:00
Connor Olding 575af689b5 fix loading labels with overflowed PC 2016-10-14 04:50:14 -07:00
Connor Olding 11b62bf9de fix a typo that broke table unpacking 2016-10-14 04:19:11 -07:00
Connor Olding 1540062a6f clean up informat parsing a little 2016-05-13 07:57:39 -07:00
Connor Olding 693294bef2 fix labels and variables in data directives 2016-04-24 04:41:30 -07:00
Connor Olding f851540b24 various fixes, mostly for labels
reimplement modulo by 0x80000000 for labels.
allow numeric label values ("REL") to be "fixed" to bypass label calculation.
add offsets after label calculation instead of before.
properly check for EOL after all expected arguments have been exhausted.
finally, add token properties to debug dumps.
2016-04-24 03:55:12 -07:00
Connor Olding 6433227c26 rewrite overrides, reimplement ROL/ROR 2016-04-23 19:36:26 -07:00
Connor Olding 1188543cd2 more verbose errors 2016-04-23 16:24:46 -07:00
Connor Olding 87c210d617 add .push/.pop directives for basic states 2016-04-23 02:06:43 -07:00
Connor Olding 1266dfd18f add .base directive; PC calculation 2016-04-21 11:46:29 -07:00
Connor Olding 6eac36584f properly compute offsets 2016-04-21 04:10:40 -07:00
Connor Olding 694f09c9e0 clean up some of my mess 2016-04-21 03:35:17 -07:00
Connor Olding fc153d5191 fix label importing; cache data lengths 2016-04-21 02:56:56 -07:00
Connor Olding 901d7ceac5 fix .align directive and data measurement 2016-04-21 02:32:49 -07:00
Connor Olding bf439cafb3 cleanup some dead code 2016-04-21 02:10:12 -07:00
Connor Olding c8f28bbbfb reimplement Dumper; lips is mostly working again 2016-04-21 01:54:04 -07:00
Connor Olding 14e397a7a8 get a bunch of overrides working again 2016-04-21 00:28:50 -07:00
Connor Olding acb5a3a6df assemble some arguments that aren't registers again 2016-04-20 21:23:32 -07:00
Connor Olding 027485543c assemble basic instructions again 2016-04-20 20:55:28 -07:00
Connor Olding a655e67bd3 fix align/skip fill value overflow 2016-04-20 13:15:17 -07:00
Connor Olding d10c0f0ee9 use Base class pattern; extend off existing classes 2016-04-20 13:15:17 -07:00
Connor Olding 071169df48 redo internal paths/requires 2016-04-14 07:33:33 -07:00
Connor Olding 3290735c8f pass numbers to writer instead of hex strings 2016-04-10 08:56:00 -07:00
Connor Olding a9b702114a allow importing/exporting of labels 2016-04-10 06:52:20 -07:00
Connor Olding 311b1e362f implement offsets for constants 2016-04-10 03:25:11 -07:00
Connor Olding 4220509be5 expect addresses in literal immediates of branches
this is more useful than letting the immediate number simply pass through
2016-04-02 08:38:22 -07:00
Connor Olding fdb4b351a6 fix labels in word directives 2016-04-02 08:05:07 -07:00
Connor Olding 54f28dc333 don't strip 0x80 prefix from .ORG addresses
the rest of the code seems to handle this fine,
since setting options.offset was bypassing it anyway
2016-03-13 20:24:43 -07:00
Connor Olding 07c68b6229 implement basic specials; more refactoring 2016-01-15 20:34:37 -08:00
Connor Olding 195236a52c begin work on specials; big refactor 2016-01-15 11:15:02 -08:00
Connor Olding 1eed93f2e7 add filenames to Dumper errors 2016-01-14 11:33:53 -08:00
Connor Olding fffe542d10 fix most line numbers in errors
this might be a bit of a hack;
i feel like nextc() should always happen after yield(),
not a mix of before and after.
2016-01-14 10:32:08 -08:00
Connor Olding e21dbc72e6 reimplement addressing modes
this allows labels as offsets
and implied offsets of 0
2016-01-13 14:31:58 -08:00
Connor Olding bf3f86e568 allow labels in WORD directives 2016-01-13 13:07:00 -08:00
Connor Olding 7c4becf0b6 use 2**n alignment instead of 2*n 2016-01-13 11:46:29 -08:00
Connor Olding a47c924e75 implement ascii/asciiz directives, basic string lexing 2016-01-13 11:18:36 -08:00
Connor Olding 9fd46b571f set up as a proper module; fix some stuff 2016-01-13 07:40:14 -08:00