Commit Graph

62 Commits

Author SHA1 Message Date
Jeremiah Orians 286964d5f8
Properly remove blocks that aren't executed 2022-12-10 20:55:41 -05:00
Andrius Štikonas b8664784b6 Fix a typo. 2022-10-25 00:44:29 +01:00
Andrius Štikonas f7fcc0af6e Adapt to M2libc changes.
* Some test includes have changed.
* New GAS style amd64 defines.
* Make M2-Planet output position independent code on amd64.
2022-10-09 14:15:07 +01:00
Jeremiah Orians c9b9920986
Release_1.10.0 2022-05-01 14:24:47 -04:00
Andrius Štikonas a495e6faf6 Update error message to include riscv32. 2021-12-04 18:35:00 +00:00
Andrius Štikonas 1e784f5afb Add riscv32 port. 2021-12-02 22:41:27 +00:00
Andrius Štikonas 646bd15b19 Remove old function. 2021-11-22 00:41:06 +00:00
Andrius Štikonas 185ef7a7c2 Improve handling of compound assignment operators.
Previously, compound assignment operators were replaced in preprocessor.
This only worked for simple cases where we only had 1-token variable.

This commit switches to proper implementation in the parser.
2021-11-15 00:06:08 +00:00
Andrius Štikonas b2414918cc Add support for assignment operators. 2021-11-11 21:18:14 +00:00
Andrius Štikonas e3651879a5 Define arch specific variables. 2021-11-01 20:50:11 +00:00
Jeremiah Orians ffe4e5f66e
better validate arguments passed 2021-10-04 20:49:44 -04:00
Jeremiah Orians ae9e700592
Release_1.9.0 2021-10-03 09:34:22 -04:00
Andrius Štikonas ae48dbd6cb Add riscv64 port. 2021-10-02 11:59:21 +01:00
Jeremiah Orians a3c14bcd1b
Fixed Memory leak, thanks melg8 2021-06-23 07:58:11 -04:00
Jeremiah Orians d80d8a652b
Move more functionality into M2libc 2021-04-03 22:41:52 -04:00
Jeremiah Orians 46cf81af83
Replace file_print with fputs 2021-04-03 18:56:55 -04:00
Jeremiah Orians a9d88e8e6c
Add support for -D variable and -D variable=value 2021-02-05 21:34:00 -05:00
Jeremiah Orians 8007ae9ce6
Add support for #if defined(__M2__) to enable M2-Planet specific functionality 2021-02-05 20:39:54 -05:00
Sanne Wouda a8551f2fcd Implement --bootstrap-mode for preprocessor
- // and # lines always appear in the result of read_all_tokens

- in bootstrap mode, // tokens (but not the subsequent lines) and #
  lines are stripped. no preprocessing happens.

- in non-bootstrap mode, // lines are stripped and # lines stay for the
  preprocessing phase

- updates tests to pass --bootstrap-mode when necessary
2021-01-09 17:38:50 +00:00
Sanne Wouda 7b8a99db3c Add a preprocessor-only mode
- Very useful for testing and debugging
- Add preprocess() stub and skip compilation in preprocessor mode
2021-01-05 22:53:04 +00:00
Sanne Wouda a18e0c1782 Add newline tokens to parse stream
- needed to determine start and end of macro directives
- the main parser doesn't need them, so strip out the newline tokens
  before parsing to avoid changing it
2021-01-05 22:23:15 +00:00
Jeremiah Orians 921cc86ce6
First generation implemention of typedef 2021-01-02 22:00:02 -05:00
Jeremiah Orians 358b6cfb96
Fix modulus behavior that is wrong.
Thank you janneke
2021-01-01 16:39:27 -05:00
Michael Schierl 91bab2ef98 Close files that were fopen:ed 2020-12-21 16:57:17 +01:00
Jeremiah Orians e7a0ecd244
Cleared out non-essential string primitives and added support for --max-string 2020-12-19 09:46:22 -05:00
Jeremiah Orians 57264eb157
Catch potential segfaulting behavior in generated binaries 2020-11-08 21:13:12 -05:00
Jeremiah Orians 71062011cd
Release 1.5.0 2020-02-01 16:21:10 -05:00
deesix 0bded017b9 aarch64: recognize the new AArch64 target architecture
Now, aarch64 is valid for --architecture on the command-line. Accordingly,
the global variable Architecture is set to the new AARCH64 constant.
Manual page updated.

Register size is configured to 8 bytes.
2020-02-01 21:23:49 +01:00
Jeremiah Orians 0709770730
Enabled forgotten cleanup scripts and add logic to catch ?alloc errors 2020-01-25 14:15:45 -05:00
Jeremiah Orians f43aa4a44c
Minor tweaks to better match amd64 assembly 2019-06-03 21:01:14 -04:00
Jeremiah Orians 27cf071ee9
Release_1.3.0 2019-04-22 19:30:08 -04:00
Jeremiah Orians 420f8b62b9
1/24 working tests for AMD64 Port 2019-04-17 20:19:17 -04:00
Jeremiah Orians d1036c60c8
First working test for ARMv7l 2019-03-09 20:22:29 -05:00
Jeremiah Orians 577f19dea9
Upgraded to 14/24 working tests 2019-02-26 18:04:49 -05:00
Jeremiah Orians b085022577
Added initial draft of knight-posix support and first knight-posix test 2019-02-23 18:33:57 -05:00
Jeremiah Orians a456bcc21d
Prepare for major change involving multi-arch support 2019-02-23 15:08:59 -05:00
Jeremiah Orians 9a2c6b4019
Harmonized License headers and added missing license headers 2018-10-17 19:27:06 -04:00
Jeremiah Orians 608d85b820
Fixed version number bug 2018-08-31 16:32:53 -04:00
Jeremiah Orians 95b1fe029f
Broke out OUT and FUNCTION to silence a single GCC warning 2018-08-18 15:23:58 -04:00
Jeremiah Orians eb8b3e4eb4
Reduced Memory usage by another 50% 2018-07-26 19:51:44 -04:00
Jeremiah Orians 7833cd5660
Reduced Memory allocation from 4KB per token string to size of string
+ fixed null padding
2018-07-26 18:27:32 -04:00
Jeremiah Orians c454008656
Adding initial support for global initializers 2018-06-26 17:03:17 -04:00
Jeremiah Orians 688b546281
Added debug support for M2-Planet output 2018-06-06 21:37:19 -04:00
Jeremiah Orians cba66b015b
Catching up on enhancements 2018-05-26 16:33:00 -04:00
Jeremiah Orians a035d955e9
Add support for anonymous unions inside of structs 2018-04-27 15:57:48 -04:00
Jeremiah Orians 3f9808a19a
Added type promotion to allow progress on mes.c 2018-04-23 21:35:27 -04:00
Jeremiah Orians 426a92ab09
Finally became self-hosting 2018-02-23 21:18:23 -05:00
Jeremiah Orians f6752b2802
Added additional functionality such as mixed structs, do while loops,
gotos and tests for the new functionality
2018-01-24 20:00:22 -05:00
Jeremiah Orians 4602adb0b1
Converted from legacy M2-Planet Input.c Output.c to M2-Planet -f input.c ... -f inputN.c -o output.M1 2018-01-20 22:56:50 -05:00
Jeremiah Orians cb866c127b
Initial prototype for struct support in M2-Planet (it is still very ugly) 2018-01-11 21:46:20 -05:00