1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-06-12 06:29:34 +00:00
Commit Graph

972 Commits

Author SHA1 Message Date
Karol Stasiak
1bcb6d5010 Fix sign extension when using pointers 2021-04-24 01:18:21 +02:00
Karol Stasiak
510f85960c Fix optimizations of unused labels 2021-04-24 01:18:01 +02:00
Karol Stasiak
8412075175 Fix pointer type compatibility checks 2021-04-24 01:13:59 +02:00
Karol Stasiak
e25df3d1b3 Parser optimizations again 2021-04-19 01:06:51 +02:00
Karol Stasiak
b71d058c6a Parser optimizations 2021-04-18 23:48:23 +02:00
Karol Stasiak
062483971a Fix #107 (syntax errors in stdlib, overpanicky statement preprocessor) 2021-03-20 01:23:51 +01:00
Karol Stasiak
1e4a193741 Optimization hints 2021-03-15 00:44:14 +01:00
Karol Stasiak
58b5b6ff28 Fix #106: the current working directory should be always included in the include path 2021-03-13 21:42:11 +01:00
Karol Stasiak
8aac3bc329 Allow character literals in preprocessor 2021-03-13 21:40:38 +01:00
Karol Stasiak
24eac6708b Fix escape sequences in many encodings 2021-03-13 21:40:18 +01:00
Karol Stasiak
66fc1d3984 Add several more encodings 2021-03-13 21:39:48 +01:00
Karol Stasiak
bd9ff2f66d Unfinished test 2021-02-28 19:38:25 +01:00
Karol Stasiak
a111af384e Unify assembly parameter evaluation 2021-02-27 00:08:31 +01:00
Karol Stasiak
6f2c8cd991 Show unused space in the middle of segments 2021-02-26 23:20:32 +01:00
Karol Stasiak
a0c2eaabcf Struct array fields performance improvements 2021-02-26 23:13:16 +01:00
Karol Stasiak
83393d49f1 Z80: optimization improvements 2021-02-26 23:12:43 +01:00
Karol Stasiak
84d707b932 Cosmetic improvements 2021-02-26 23:10:08 +01:00
Karol Stasiak
ffa0ffb899 Allow enabling/disabling warnings individually 2021-02-24 03:04:53 +01:00
Karol Stasiak
3155d7a571 Improve error message 2021-02-24 02:32:24 +01:00
Karol Stasiak
ba7c5b507c Optimize constant resolution 2021-02-24 02:32:13 +01:00
Karol Stasiak
196ad6542f Allow refering to labels from other functions in assembly (fixes #101) 2021-02-24 02:32:00 +01:00
Karol Stasiak
ff6106a838 Fix module name resolution (#89) 2021-02-24 02:31:20 +01:00
Karol Stasiak
9ebbbdc022 Summarize the compilation 2021-02-24 02:30:28 +01:00
Karol Stasiak
ab9cdf7ad5 Fix deduplication problems with trampolined functions 2021-02-24 02:29:47 +01:00
Karol Stasiak
4ff6120702 Warn about data not being included in the output 2021-02-24 02:28:29 +01:00
Karol Stasiak
521b73d0d3 Array fields for structs and unions (see #87) 2021-02-22 23:23:00 +01:00
Karol Stasiak
78c29c784d
Merge pull request #102 from agg23/agg23/OverflowErrors
Added position logging to overflow errors
2021-02-18 01:30:09 +01:00
Karol Stasiak
25adb05229 Fix typeof 2021-02-18 01:29:27 +01:00
Karol Stasiak
7c60a89776 Signed multiplication 2021-02-18 00:39:14 +01:00
Karol Stasiak
02031da61a Correctly optimize variables around macros 2021-02-18 00:38:51 +01:00
Karol Stasiak
d20cc677bb The typeof builtin function 2021-02-18 00:38:30 +01:00
Karol Stasiak
2beabb7bed Improvements to constant folding 2021-02-18 00:36:13 +01:00
Karol Stasiak
fb71f88343 8080: Correctly compile sbytes to BC 2021-02-18 00:35:02 +01:00
Adam Gastineau
7689afb5d6 Added position logging to overflow errors 2021-02-03 11:51:41 -08:00
Karol Stasiak
958c1c09e7 #98: Warning about a missing call to init_rw_memory 2021-02-03 09:58:39 +01:00
Karol Stasiak
919f11af2e #101: Allow using local labels in all assembly instructions and all assembly expressions 2021-02-03 09:50:44 +01:00
Karol Stasiak
9c7e946f4c Allow labels in assembly on the same line (see #101) 2021-02-03 09:49:17 +01:00
Karol Stasiak
32b98750a9 Warn about non-volatile spinlocks (see #95) 2021-02-03 09:46:09 +01:00
Karol Stasiak
c1959b356f Make all constants referring to segments match their equivalents from the platform definition (see #87) 2021-01-13 19:55:11 +01:00
Karol Stasiak
499e650752 Define and document more magic suffixes and constants (see #87) 2021-01-13 19:35:11 +01:00
Karol Stasiak
fe4f0dcfd9 6502: Optimize more jumps in place 2021-01-13 19:26:17 +01:00
Karol Stasiak
600bfce0c1 Allow new lines after = 2021-01-13 14:38:59 +01:00
Karol Stasiak
9feda54d92 Optimize word shifts by 7–12 bits 2021-01-13 14:31:20 +01:00
Karol Stasiak
91699b64c6 Less useless logging 2021-01-13 14:18:41 +01:00
Karol Stasiak
2a5933e115 6502: Fix sbyte to word promotion in some contexts 2021-01-13 14:18:28 +01:00
Adam Gastineau
30216d0be6 Removed optimization hint debug println statements 2021-01-01 14:52:37 -08:00
Karol Stasiak
90a9538936 Various optimizations 2020-12-01 18:18:56 +01:00
Karol Stasiak
7962a1d083 Point at the end of the line if the error is something missing at the end of the line 2020-12-01 03:21:04 +01:00
Karol Stasiak
52c9da36b8 Fix GraalVM NPE when getting a character name 2020-12-01 03:20:31 +01:00
Karol Stasiak
8dfad735ab Tiny formatting fix 2020-12-01 03:19:47 +01:00
Karol Stasiak
cba145d674 Better error messages for variable definitions in macros (#77) 2020-12-01 03:19:38 +01:00
Karol Stasiak
f2f53a4b28 Configurable entry point for ZX Spectrum, Z1013, TRS-80 and CoCo (#78) 2020-11-19 18:47:50 +01:00
Karol Stasiak
7e45967b0c Allow emitting addresses of labels in the output (#78) 2020-11-19 18:33:51 +01:00
Karol Stasiak
c8e32a876f Fix endaddr+N output 2020-11-19 18:21:08 +01:00
Karol Stasiak
b2d2c3e005 Don't emit labels that are not necessary; fix the __heap_start symbol. 2020-11-18 23:08:45 +01:00
Karol Stasiak
dc087ed887 Better error messages for arays without sizes 2020-11-18 23:08:09 +01:00
Karol Stasiak
97c7d0ffed Basic groundwork for optimization hint support 2020-11-18 22:37:58 +01:00
Karol Stasiak
385b2fd40b Fix function pointers (fixes #86) 2020-11-18 09:34:02 +01:00
Karol Stasiak
fc7643c416 Interrupt handler pointer types 2020-11-11 00:28:21 +01:00
Karol Stasiak
91409504fb Small inlining fix 2020-11-11 00:27:52 +01:00
Karol Stasiak
f4a3601d6e 8080: Fix word negation 2020-11-11 00:25:39 +01:00
Karol Stasiak
889a4f94be All things mentioned in segment layouts should be considered used. 2020-09-29 22:49:15 +02:00
Karol Stasiak
c7008f4414 New output elements: literal ASCII strings and space-padded program name 2020-09-29 22:48:50 +02:00
Karol Stasiak
3af4fcffa9 Z80: Add SLS as an alternate mnemonic for SLL 2020-09-27 18:46:19 +02:00
Karol Stasiak
3a9be16107 Add TRS-80 Model 1 and 3 support 2020-09-26 23:52:49 +02:00
Karol Stasiak
9f40fc5066 Add some trivial test case 2020-09-22 17:59:50 +02:00
Karol Stasiak
b87c40fc9c Migration from Nashorn to GraalJS 2020-09-22 17:59:32 +02:00
Karol Stasiak
1decf2f087 65816: Various codegen bugfixes 2020-09-22 17:59:14 +02:00
Karol Stasiak
c9f602b049 65816: Emulator bugfixes 2020-09-22 17:58:34 +02:00
Karol Stasiak
7de23ddd44 Allow the : operator in const-pure functions 2020-09-21 09:08:49 +02:00
Karol Stasiak
c0eae29a41 Minor compilation speed optimization 2020-09-21 00:15:16 +02:00
Karol Stasiak
a92f24b280 Better detection of memset loops (fixes #59) 2020-09-20 23:39:30 +02:00
Karol Stasiak
ca5fe5cdb0 6809: various optimizations 2020-09-15 17:08:38 +02:00
Karol Stasiak
947a84833a Make some command line options repeatable 2020-09-15 17:08:22 +02:00
Karol Stasiak
615a0d7dc1 Interrupt functions in assembly should not have prologue (fixes #62) 2020-09-09 01:46:34 +02:00
Karol Stasiak
75c8ac19e1 Fix warning messages 2020-09-09 01:45:53 +02:00
Karol Stasiak
5e46e8ade9 Fix alignment of substructures 2020-09-02 00:44:24 +02:00
Karol Stasiak
e09db3d132 Local labels in assembly 2020-09-01 22:00:07 +02:00
Karol Stasiak
57776f7f93 8080: Optimization improvements 2020-08-14 22:29:19 +02:00
Karol Stasiak
7427231c3d Fix constant simplification 2020-08-14 22:29:06 +02:00
Karol Stasiak
b9cd18c3c8 Improve error message for multiple operators at the same priority 2020-08-14 22:28:50 +02:00
Karol Stasiak
49816d18fe Fix volatile 2020-08-14 22:28:31 +02:00
Karol Stasiak
70256e9d46 Fix evaluation of boolean expressions on all targets (#56) 2020-08-14 22:27:23 +02:00
Karol Stasiak
fccbf7df7d Add dollar syntax for decimal operators, disallow identifiers ending in a dollar sign. 2020-08-14 02:22:13 +02:00
Karol Stasiak
0913c5037c Typecheck division of large constants 2020-08-14 01:27:13 +02:00
Karol Stasiak
b5c51e48be Rename zx80next to z80next, document the typo (fixes #55) 2020-08-13 16:53:38 +02:00
Karol Stasiak
a9aac4fca3 Allow omitting the .exe for the -r parameter 2020-08-01 22:20:11 +02:00
Karol Stasiak
d1c0ad6b22 Better type error reporting 2020-07-31 17:50:10 +02:00
Karol Stasiak
89ff89bc48 Some more defensive programming 2020-07-31 17:11:30 +02:00
Karol Stasiak
cf707cc31f Protect against confusable non-ASCII characters 2020-07-31 17:08:44 +02:00
Karol Stasiak
7c4fb50808 Hardcode some more typo hints for things from other programming languages 2020-07-31 17:07:25 +02:00
Karol Stasiak
2382f95b5c Don't repeat warnings about identical replaced characters in the lenient mode 2020-07-31 16:08:29 +02:00
Karol Stasiak
d77ecba518 CoCo: encconv support 2020-07-31 16:07:10 +02:00
Karol Stasiak
2c9a3f7cbd Add ENCODING_NOLOWER 2020-07-31 13:31:07 +02:00
Karol Stasiak
2905e99521 Support local labels in macros for all instructions 2020-07-31 13:29:48 +02:00
Karol Stasiak
bce48e8e4a Support BAT files for the -r options 2020-07-31 13:26:44 +02:00
Karol Stasiak
ed55e2f081 6809: Allow explicit absolute addressing mode 2020-07-31 13:26:08 +02:00
Karol Stasiak
33d67ec932 6809: Correctly assemble STS and STY 2020-07-31 13:25:42 +02:00
Karol Stasiak
f0b083abea 6809: Improve parameter passing for assembly subroutines 2020-07-31 01:56:03 +02:00
Karol Stasiak
d7f2b0688f Improved error reporting for constants used before definition 2020-07-31 01:53:58 +02:00