ISSOtm
2b0c34ecb5
Fix a few code style errors
2020-04-08 00:44:41 +02:00
ISSOtm
b0ec8468e6
Allow specifying offset in addition to alignment
2020-04-08 00:40:41 +02:00
ISSOtm
e82ad21704
Use a single byte for alignment
2020-04-07 21:19:09 +02:00
ISSOtm
e098bf47ba
Allow references to be overridden by constant symbols
...
RGBLINK is capable of handling it now.
Though it'd be ideal for RGBASM to directly catch it.
Fixes #496 .
2020-04-07 20:57:20 +02:00
ISSOtm
9f82fa4cf7
Fix BANK(@) outside sections causing crashes
2020-04-07 15:51:17 +02:00
ISSOtm
927c65e863
Fix incorrect PC in LOAD blocks at link time
2020-04-07 14:44:51 +02:00
ISSOtm
5b6c1569a4
Make failure to open file a fatal error
2020-04-07 11:36:44 +02:00
ISSOtm
bdad1499fe
Merge branch 'release'
2020-04-03 11:58:53 +02:00
Eldred Habert
1f5ca39559
Merge pull request #494 from ISSOtm/docs
...
Overhaul man pages
2020-04-03 11:56:41 +02:00
ISSOtm
bcfeb49d6b
Allow labels to be passed to DEF
2020-04-02 16:54:41 +02:00
ISSOtm
a3d8836671
Prevent assertions outside sections from crashing
2020-03-29 12:18:24 +02:00
ISSOtm
db1eb8fbcb
Revert "Prevent RGBASM from outputting corrupted files"
...
This reverts commit 06fe27c516 .
According to Microsoft's documentation
https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/tmpfile?view=vs-2019
`tmpfile` attempts to create the temporary file at the **root** folder
This seems to assume that the user has admin rights; might be a compat
thing, idk, but it breaks on people's computers.
(CI didn't catch it, annoyingly.)
Reverting to make RGBASM usable on most Windows computers.
(Sanely-configured ones, at least.)
Another solution to #446 needs to be figured out, yay...
2020-03-27 23:36:11 +01:00
ISSOtm
6579120d9e
Simplify symbol-writing logic
2020-03-27 12:32:14 +01:00
ISSOtm
84cd9f2db9
Fix segfaults when using PC outside a section
2020-03-27 12:30:09 +01:00
ISSOtm
06fe27c516
Prevent RGBASM from outputting corrupted files
...
Properly fixes #451
2020-03-27 11:19:02 +01:00
ISSOtm
5039af6af1
Document new "unionized section" feature
2020-03-26 23:50:30 +01:00
ISSOtm
9113647d41
Fix incorrect macro used for x-ref
2020-03-26 23:11:01 +01:00
ISSOtm
713eef9ef2
Update mandoc style sheet
2020-03-26 23:11:01 +01:00
ISSOtm
7635a2fc74
Reword and give an example of symbol interpolation
2020-03-26 23:11:01 +01:00
ISSOtm
7955447ca4
Overhaul man pages
2020-03-26 23:11:01 +01:00
ISSOtm
187f88aa50
Only copy necessary characters for bare labels
2020-03-26 23:10:51 +01:00
ISSOtm
caddd61f17
Remove "column 1" restriction for local labels
...
Because a local symbol is necessarily a label, the disambiguation
is not necessary. This is a first step towards fixing #457 .
2020-03-26 22:36:40 +01:00
ISSOtm
29629245a4
Use new hashmap implementation for symbols
2020-03-24 12:50:53 +01:00
ISSOtm
7deb8d3e8a
Allow purging exported symbols
2020-03-24 10:52:02 +01:00
ISSOtm
cb0a882a31
Order warnings alphabetically
2020-03-23 16:03:36 +01:00
ISSOtm
df2c0dc2f9
Check for unsatisfiable alignment constraints
...
Fixes #493
2020-03-22 11:54:57 +01:00
ISSOtm
062fa5392b
Still override alignment even if not satisfied
2020-03-22 11:52:31 +01:00
ISSOtm
4877bb783c
Add more tests for unionized sections + fix bugs
...
Implementing those tests found a few bugs... oops
2020-03-22 11:14:04 +01:00
ISSOtm
e123b6dec7
Implement unionized sections in RGBLINK
2020-03-22 11:13:39 +01:00
ISSOtm
cb52ae0f26
Implement unionized sections in RGBASM
...
This touched a lot more code than initially expected, for two reasons.
First, this broke a big RGBASM assumption: that sections are always being
written to at their end. This plus other problems required touching
basically the entirety of `section.c`.
Second, I tried different solutions to solve the above problem, and along
the way I cleaned up many things around. (I believe that keeping this to
"cleanup" commits yields subpar results, and since it's boring they get
postponed anyways.)
RGBLINK support still needs to be added, but this will come next.
2020-03-22 11:06:17 +01:00
ISSOtm
46a402f7d7
Prevent passing assertions that RGBASM passed to RGBLINK
2020-03-22 10:46:37 +01:00
Eldred Habert
fe824e0068
Merge pull request #490 from ISSOtm/const
...
Implement `ISCONST`, reporting compile-time constness
2020-03-21 23:20:01 +01:00
ISSOtm
fb58166e5d
Add assertions
...
Closes #292
2020-03-21 23:00:38 +01:00
ISSOtm
8191e5eb27
Define version symbols
...
Major blunder. That warrants a new release on its own...
2020-03-21 19:26:40 +01:00
ISSOtm
03967bd623
Prevent purging referenced symbols
...
This is an immediate fix for #492 , although #342 is needed to implement the
desired functionality.
2020-03-21 15:42:52 +01:00
ISSOtm
af22cf182b
Simplify out_PCRelByte by using PC
2020-03-20 20:22:19 +01:00
ISSOtm
5a0fcda4c8
Prevent POPS within LOAD blocks
2020-03-20 18:57:37 +01:00
ISSOtm
deb91f679d
Reset symbol scope on every section change
2020-03-20 17:59:47 +01:00
ISSOtm
fb5e768142
Prevent using LOAD blocks outide code sections
2020-03-20 16:37:10 +01:00
ISSOtm
ecf44c784c
Reject including directories
2020-03-20 01:24:53 +01:00
ISSOtm
5bca1172ff
Fix section continuation when only one bank exists
2020-03-19 23:07:07 +01:00
ISSOtm
136446fccb
Improve checking of RST and LDH values at assembly time
2020-03-15 15:23:39 +01:00
ISSOtm
7ddbe44b21
Use hashmap system for charmap
2020-03-15 15:23:32 +01:00
ISSOtm
af60e7f74a
Allow charmap creation even if its base doesn't exist
2020-03-15 00:40:45 +01:00
ISSOtm
2f16e82cf7
Improve PC offset management
...
Basically make it always point to the instruction's first byte.
This was the behavior all whom I asked to intuitively expected.
2020-03-15 00:18:10 +01:00
ISSOtm
7b54312d97
Deprecate OPT z in favor of OPT p
...
Fixes #298
2020-03-14 17:09:15 +01:00
ISSOtm
5b98beec8b
Use left recursion instead of right
...
> Any kind of sequence can be defined using either left recursion or right
> recursion, but you should always use left recursion, because it can
> parse a sequence of any number of elements with bounded stack space.
https://www.gnu.org/software/bison/manual/html_node/Recursion.html
2020-03-14 16:22:33 +01:00
ISSOtm
6662c86d5e
Define 3-bit value when invalid
2020-03-14 16:17:30 +01:00
ISSOtm
2f466c2939
Revamp macro arg system
...
This should significantly improve performance: on pokecrystal builds, perf
reported as much CPU time spent on `yyparse` as on `sym_UseNewMacroArgs`
Measurements show ~6 seconds of improvement on that codebase.
This also fixes #321 , as a bonus, due to saner management!
2020-03-14 16:13:40 +01:00
ISSOtm
a259f53b52
Rename macro functions with proper prefix
2020-03-13 23:20:27 +01:00