Karol Stasiak
|
43686e0c33
|
6502: optimize signed comparisons against certain constants
|
2019-05-29 14:08:42 +02:00 |
|
Karol Stasiak
|
138dcfa19f
|
8080: implement signed byte comparisons for CPU's without the overflow flag
|
2019-05-29 14:07:57 +02:00 |
|
Karol Stasiak
|
0410cbea34
|
Preliminary GraalVM native-image support
|
2019-05-11 13:50:22 +02:00 |
|
Karol Stasiak
|
3d6e226f55
|
Update copyright dates
|
2019-05-11 01:15:51 +02:00 |
|
Karol Stasiak
|
62984fce9b
|
8080: optimize handling 2-byte parameters
|
2019-05-02 13:33:45 +02:00 |
|
Karol Stasiak
|
4eba80b735
|
Fix name clashes when passing parameters to functions
|
2019-05-02 13:24:21 +02:00 |
|
Karol Stasiak
|
1862fed70f
|
The @struct array format; fix the @long format
|
2019-04-30 01:30:22 +02:00 |
|
Karol Stasiak
|
d9f88cdfad
|
Const arrays
|
2019-04-30 00:41:42 +02:00 |
|
Karol Stasiak
|
00d190c3d8
|
8080: Optimization improvements
|
2019-04-18 16:24:57 +02:00 |
|
Karol Stasiak
|
546c4d0f44
|
Unified syntax for indexing
|
2019-04-18 16:24:46 +02:00 |
|
Karol Stasiak
|
85841c6395
|
Few more minor optimizations
|
2019-04-18 02:03:00 +02:00 |
|
Karol Stasiak
|
af84a214bb
|
Z80: Optimization improvements
|
2019-04-17 23:11:35 +02:00 |
|
Karol Stasiak
|
4504556d3c
|
Fix stack overflow
|
2019-04-17 23:04:46 +02:00 |
|
Karol Stasiak
|
e771b37db2
|
Remove diagnostic message
|
2019-04-17 19:17:55 +02:00 |
|
Karol Stasiak
|
0a36d83164
|
nullptr
|
2019-04-16 16:59:16 +02:00 |
|
Karol Stasiak
|
9ea04db566
|
Use the return variable directly if applicable
|
2019-04-16 16:34:17 +02:00 |
|
Karol Stasiak
|
668982cd5c
|
LR35902: Use autoincrement operations
|
2019-04-16 12:10:31 +02:00 |
|
Karol Stasiak
|
629691dfb3
|
Fix stack variables on 8080 and LR35902
|
2019-04-16 12:09:14 +02:00 |
|
Karol Stasiak
|
d0f64f2cee
|
Short syntax for small functions
|
2019-04-15 19:56:14 +02:00 |
|
Karol Stasiak
|
029e84b0f0
|
Unions, typed pointers, indirect field access via pointers
|
2019-04-15 19:45:26 +02:00 |
|
Karol Stasiak
|
2d0aa9724b
|
Quick fix
|
2019-04-15 19:43:44 +02:00 |
|
Karol Stasiak
|
1ba4b57c1c
|
Array elements can now be types other than byte
|
2019-04-15 01:57:18 +02:00 |
|
Karol Stasiak
|
d3e62c0065
|
Preliminary struct support
|
2019-04-15 01:30:47 +02:00 |
|
Karol Stasiak
|
4cd1db0e0f
|
Allow putting pointer variables anywhere
|
2019-04-15 00:27:34 +02:00 |
|
Karol Stasiak
|
194f79f907
|
65816: Various fixes regarding (d,S),Y addressing mode
|
2019-04-15 00:21:25 +02:00 |
|
Karol Stasiak
|
69ccd993b2
|
6502: Functions shouldn't use index registers if not necessary
|
2019-03-18 21:54:26 +01:00 |
|
Karol Stasiak
|
c829c5eb37
|
Z80: Optimize 16-bit loads after 8-bit stores
|
2019-03-18 20:12:33 +01:00 |
|
Karol Stasiak
|
6f00cacc6d
|
6502: Optimize 16-bit multiplication by a constant
|
2019-03-18 20:01:40 +01:00 |
|
Karol Stasiak
|
b8547ed154
|
Aliases should access subfields
|
2019-03-18 15:14:13 +01:00 |
|
Karol Stasiak
|
6979cbfe39
|
Generate checksums for Game Boy
|
2019-01-11 15:17:48 +01:00 |
|
Karol Stasiak
|
8211b3cf49
|
8080: better compiler error messages
|
2019-01-11 15:17:01 +01:00 |
|
Karol Stasiak
|
f71b6a0b04
|
8080: parse "DEC BC" correctly
|
2019-01-11 15:16:28 +01:00 |
|
Karol Stasiak
|
56c806ffa3
|
Optimize the optimizer by trying less likely patterns first
|
2019-01-08 23:47:02 +01:00 |
|
Karol Stasiak
|
f23e71afa2
|
6502: Few more optimizations
|
2019-01-08 23:46:31 +01:00 |
|
Karol Stasiak
|
42ecc574f3
|
6502: Fix local variable read optimization
|
2019-01-08 23:46:08 +01:00 |
|
Karol Stasiak
|
7d596f3ed6
|
Minor improvements
|
2019-01-05 01:04:08 +01:00 |
|
Karol Stasiak
|
19c0668002
|
6502: Better passing of register parameters
|
2019-01-04 12:59:43 +01:00 |
|
Karol Stasiak
|
25ca2cd6b8
|
6502: detect zeropage pointers more aggressively
|
2019-01-04 11:55:35 +01:00 |
|
Karol Stasiak
|
bf0da19ab9
|
Track source position of else if
|
2019-01-04 11:54:46 +01:00 |
|
Karol Stasiak
|
b1374bb914
|
6502: Optimization fixes
|
2019-01-04 11:53:25 +01:00 |
|
Karol Stasiak
|
b400c884e0
|
Add memory barriers
|
2018-12-31 13:20:32 +01:00 |
|
Karol Stasiak
|
fb42e77e6e
|
6502: Two fixes:
– fix writing constants to volatile variables
– fix optimizing variables to registers yet again
|
2018-12-31 13:19:13 +01:00 |
|
Karol Stasiak
|
fc56c11b31
|
Hint typoed identifiers
|
2018-12-30 18:55:03 +01:00 |
|
Karol Stasiak
|
b068663729
|
PET: Add oldpet and origpet encodings
|
2018-12-30 18:54:45 +01:00 |
|
Karol Stasiak
|
6c8ee34a2e
|
Z80: Fix jump following
|
2018-12-30 18:53:26 +01:00 |
|
Karol Stasiak
|
7a1abfba24
|
Optimization improvements
|
2018-12-30 00:52:40 +01:00 |
|
Karol Stasiak
|
d7b2181ef5
|
If a variable is used wholly within a loop body and initialized conditionally, do not remove the last store to it
|
2018-12-29 20:07:43 +01:00 |
|
Karol Stasiak
|
cbe709a9cf
|
6502: fix optimizations using index registers
|
2018-12-29 20:01:17 +01:00 |
|
Karol Stasiak
|
fca2700787
|
Z80: fix assembly output
|
2018-12-29 20:00:40 +01:00 |
|
Karol Stasiak
|
b0e20ade0f
|
Export compiler version as preprocessor parameter
|
2018-12-29 20:00:06 +01:00 |
|
Karol Stasiak
|
80e4b6d173
|
Fix #use and #pragma
|
2018-12-29 19:59:17 +01:00 |
|
Karol Stasiak
|
0dc16e9af2
|
8080: Don't change BC/DE when not allowed to
|
2018-12-28 11:38:52 +01:00 |
|
Karol Stasiak
|
588d52ca80
|
Better handling of memory alignment
|
2018-12-28 11:26:55 +01:00 |
|
Karol Stasiak
|
1c55304bad
|
8080: Exchange BC/DE registers pairs
|
2018-12-28 11:25:12 +01:00 |
|
Karol Stasiak
|
e66e938469
|
6502: Fix variable inlining
|
2018-12-28 01:17:23 +01:00 |
|
Karol Stasiak
|
95e37d63f1
|
Remove debugging
|
2018-12-27 22:02:13 +01:00 |
|
Karol Stasiak
|
f848bf898c
|
6502: inline variables to registers swapping addressing modes
|
2018-12-27 20:49:54 +01:00 |
|
Karol Stasiak
|
46bf726818
|
Optimize for loops
|
2018-12-27 20:47:18 +01:00 |
|
Karol Stasiak
|
985663083a
|
6502: Fix some optimizations
|
2018-12-27 20:46:58 +01:00 |
|
Karol Stasiak
|
59afc24db6
|
Fix memset
|
2018-12-27 14:19:04 +01:00 |
|
Karol Stasiak
|
0ded460840
|
8080: Test subroutine extraction
|
2018-12-27 14:18:30 +01:00 |
|
Karol Stasiak
|
9ff254c72d
|
Allow hi() and lo() in inline assembly
|
2018-12-27 14:17:48 +01:00 |
|
Karol Stasiak
|
4d64bbafac
|
6502: always fold constants
|
2018-12-27 14:16:34 +01:00 |
|
Karol Stasiak
|
8cc612976e
|
Fix nonet subtraction warning message
|
2018-12-27 14:05:38 +01:00 |
|
Karol Stasiak
|
f12463aef0
|
Optimization refactoring:
– -Of should imply -finline
– certain optimizations should be controllable
– unused global symbols should be removed even if we're not optimizing
|
2018-12-27 01:18:29 +01:00 |
|
Karol Stasiak
|
b77f9dd5f8
|
Fix deduplication
|
2018-12-26 15:28:57 +01:00 |
|
Karol Stasiak
|
0bb662183c
|
Faster comparisons to 0 and $FFFF
|
2018-12-26 02:05:41 +01:00 |
|
Karol Stasiak
|
9669e4d87d
|
Cache AST typing
|
2018-12-26 01:26:12 +01:00 |
|
Karol Stasiak
|
bf5639761b
|
Optimize constant comparisons
|
2018-12-26 01:01:43 +01:00 |
|
Karol Stasiak
|
438d8dbe6e
|
Detection of the default include path.
|
2018-12-24 02:38:28 +01:00 |
|
Karol Stasiak
|
aebae97cc8
|
Source file name in preprocessor errors
|
2018-12-24 01:20:41 +01:00 |
|
Karol Stasiak
|
acaaa5bdfe
|
Implicit ranges in for loops are dumb, remove
|
2018-12-22 01:30:54 +01:00 |
|
Karol Stasiak
|
84c3406dc7
|
Fix for over enum
|
2018-12-22 01:30:39 +01:00 |
|
Karol Stasiak
|
02e91070aa
|
Accept bytes as LHS for >>>>
|
2018-12-21 22:36:53 +01:00 |
|
Karol Stasiak
|
d62901fb51
|
6502: Allow more complex expressions
|
2018-12-21 22:36:29 +01:00 |
|
Karol Stasiak
|
76dd4929a6
|
6502: Track which pointers need to be on zeropage
|
2018-12-21 22:36:05 +01:00 |
|
Karol Stasiak
|
36a0065b96
|
Forbid redefining builtins
|
2018-12-21 22:35:16 +01:00 |
|
Karol Stasiak
|
e43fb39781
|
Optimize some stdlib calls
|
2018-12-21 22:33:27 +01:00 |
|
Karol Stasiak
|
673727b973
|
Allow empty strings
|
2018-12-21 22:32:34 +01:00 |
|
Karol Stasiak
|
98585fcc38
|
8080: better handling of separate byte pairs
|
2018-12-19 22:29:49 +01:00 |
|
Karol Stasiak
|
8582f0974d
|
Text codec improvements
|
2018-12-19 22:27:15 +01:00 |
|
Karol Stasiak
|
60666a6467
|
8080: Inline assembly fixes
|
2018-12-19 22:26:57 +01:00 |
|
Karol Stasiak
|
05884f2c7b
|
Standard library improvements
|
2018-12-19 19:01:53 +01:00 |
|
Karol Stasiak
|
30d18fba01
|
6502: another optimization for comparisons
|
2018-12-19 18:14:40 +01:00 |
|
Karol Stasiak
|
1e9be50ccb
|
Improve error reporting
|
2018-12-19 18:14:11 +01:00 |
|
Karol Stasiak
|
960cee5124
|
Foreach statement; emitting subprocedures
|
2018-12-19 18:13:38 +01:00 |
|
Karol Stasiak
|
fc10746522
|
Alias improvements:
– aliases can now override other objects
– take aliases into account when ordering functions for optimizations and inlining
|
2018-12-19 17:33:51 +01:00 |
|
Karol Stasiak
|
49ee0fd3a2
|
MInor test suite improvements
|
2018-12-19 17:28:15 +01:00 |
|
Karol Stasiak
|
0b90addc9a
|
Remove debugging code
|
2018-12-19 01:30:20 +01:00 |
|
Karol Stasiak
|
1de6f8b75c
|
Do not emit unused runtime objects
|
2018-12-19 01:16:04 +01:00 |
|
Karol Stasiak
|
cfac41bc3b
|
Perhaps true should be 1?
|
2018-12-19 01:14:53 +01:00 |
|
Karol Stasiak
|
39a9cde375
|
Enums cant have more than 256 items
|
2018-12-19 01:14:02 +01:00 |
|
Karol Stasiak
|
1b8a7c9bb3
|
8080: Don't stash known constants on stack
|
2018-12-19 01:13:37 +01:00 |
|
Karol Stasiak
|
735d6c4169
|
6502: Use colons in assembly labels
|
2018-12-19 01:12:55 +01:00 |
|
Karol Stasiak
|
453011fb6b
|
6502: Smarter inlining of variables into A
|
2018-12-19 01:12:14 +01:00 |
|
Karol Stasiak
|
bcd17f1a78
|
6502: more bit-twiddling optimizations
|
2018-12-19 01:11:40 +01:00 |
|
Karol Stasiak
|
08f9426ccb
|
Multiplication fixes and improvements
|
2018-12-19 01:10:39 +01:00 |
|
Karol Stasiak
|
2454f223c8
|
Return dispatch over enums
|
2018-12-19 01:04:56 +01:00 |
|
Karol Stasiak
|
cfb099568e
|
Z80: track the IY stack frame
|
2018-12-19 00:59:28 +01:00 |
|
Karol Stasiak
|
7616c246ee
|
Fix Apple 2 text codec
|
2018-12-17 17:15:34 +01:00 |
|
Karol Stasiak
|
dfd9dd4c6a
|
Don't remove things referred to only by aliases
|
2018-12-17 17:03:01 +01:00 |
|
Karol Stasiak
|
235700c44c
|
Multiline value support in platform definition files
|
2018-12-17 10:41:28 +01:00 |
|
Karol Stasiak
|
8fcf628c8f
|
Better tracking of the original source
|
2018-12-17 00:35:32 +01:00 |
|
Karol Stasiak
|
4fb786522d
|
Fixed not compiling code
|
2018-12-16 22:59:58 +01:00 |
|
Karol Stasiak
|
acf9db80d3
|
Reenable mistakenly disabled tests
|
2018-12-16 22:56:02 +01:00 |
|
Karol Stasiak
|
eb29e78f56
|
More warnings
|
2018-12-16 21:07:27 +01:00 |
|
Karol Stasiak
|
78afe3d5f5
|
Preliminary support for volatile variables
|
2018-12-16 21:07:04 +01:00 |
|
Karol Stasiak
|
5a99dc7293
|
65816: various improvements
|
2018-12-16 19:34:33 +01:00 |
|
Karol Stasiak
|
cd8697552c
|
Add sizeof operator
|
2018-12-16 15:43:17 +01:00 |
|
Karol Stasiak
|
badd7ef1d8
|
Compiler performance improvements
|
2018-12-16 14:38:57 +01:00 |
|
Karol Stasiak
|
0e5d79f222
|
6502 Minor comparison optimisation
|
2018-12-15 00:01:34 +01:00 |
|
Karol Stasiak
|
4f8e4838e8
|
6502: Fix comparison optimization
|
2018-12-15 00:01:12 +01:00 |
|
Karol Stasiak
|
f32d72b51f
|
Multiplication u16×u8
|
2018-12-14 22:50:20 +01:00 |
|
Karol Stasiak
|
a73e1eae1e
|
Preprocesor should use current options
|
2018-12-14 22:49:26 +01:00 |
|
Karol Stasiak
|
65f5c552b4
|
6502: optimization improvements
|
2018-12-14 22:09:22 +01:00 |
|
Karol Stasiak
|
c28b71add5
|
6502: Stack-related things:
– software variable stack
– fixes for handling stack variables
|
2018-12-14 22:01:52 +01:00 |
|
Karol Stasiak
|
db1ce07ed6
|
8080: Fix comparisons
|
2018-12-14 21:07:14 +01:00 |
|
Karol Stasiak
|
eb6b7d7769
|
Fix and improve nonet operations
|
2018-12-14 15:43:12 +01:00 |
|
Karol Stasiak
|
406d69c74a
|
Add original line numbers to generated assembly
|
2018-12-14 15:42:31 +01:00 |
|
Karol Stasiak
|
a985c4f753
|
More various optimization fixes and improvements
|
2018-12-14 00:10:30 +01:00 |
|
Karol Stasiak
|
dbe8e39e4a
|
various optimization fixes and improvements
|
2018-12-13 23:18:56 +01:00 |
|
Karol Stasiak
|
c1ce4a9283
|
8080: fixed shifting by 0
|
2018-12-13 23:12:46 +01:00 |
|
Karol Stasiak
|
bdd41350a7
|
6502: Optimize constant comparisons
|
2018-10-12 00:13:49 +02:00 |
|
Karol Stasiak
|
ab267c88ac
|
Assume tabs are 4 spaces
|
2018-10-12 00:01:48 +02:00 |
|
Karol Stasiak
|
6b33cc49a8
|
Fix bad code deduplication
|
2018-10-12 00:01:19 +02:00 |
|
Karol Stasiak
|
30c979cc39
|
Fix badly handled stack overflow
|
2018-10-12 00:00:41 +02:00 |
|
Karol Stasiak
|
df71435c78
|
Fix for...downto loops
|
2018-10-11 23:59:50 +02:00 |
|
Karol Stasiak
|
6b43f73f57
|
Don't deduplicate non-elidable code
|
2018-10-04 23:23:04 +02:00 |
|
Karol Stasiak
|
ed38b00031
|
8080: Faster strlen; more multiplication optimizations
|
2018-10-04 23:22:26 +02:00 |
|
Karol Stasiak
|
fe1bf68295
|
Add align keyword
|
2018-10-04 21:34:53 +02:00 |
|
Karol Stasiak
|
3736b5ae56
|
6502: Use zeropage addressing mode when accessing fixed zeropage locations
|
2018-09-29 01:16:22 +02:00 |
|
Karol Stasiak
|
cbe6d03e60
|
8080: Optimized multiplication
|
2018-09-28 23:45:26 +02:00 |
|
Karol Stasiak
|
f37696df5a
|
Added #infoeval preprocessor directive
|
2018-09-28 22:49:28 +02:00 |
|
Karol Stasiak
|
c9c3ebc8a4
|
6502: Fix shifting
|
2018-09-28 22:39:16 +02:00 |
|
Karol Stasiak
|
b41f9bebc1
|
6502: Shifting improvements and fixes
|
2018-08-16 22:03:27 +02:00 |
|
Karol Stasiak
|
74dbca1f53
|
Fix typo in test
|
2018-08-16 22:01:45 +02:00 |
|
Karol Stasiak
|
462041e8f4
|
Don't align the main function
|
2018-08-09 12:42:29 +02:00 |
|
Karol Stasiak
|
376c3283b8
|
Improvements to trigonometric functions
|
2018-08-08 23:52:47 +02:00 |
|
Karol Stasiak
|
466f6e4fea
|
Z80: Various optimizations, mostly from z80heaven
|
2018-08-08 23:52:32 +02:00 |
|
Karol Stasiak
|
34b7107d27
|
Allow casting to wider types
|
2018-08-08 23:14:09 +02:00 |
|
Karol Stasiak
|
9581891d66
|
Following jumps. Generating conditional returns/calls.
|
2018-08-08 23:12:20 +02:00 |
|
Karol Stasiak
|
2d0f3a5a12
|
Fix tests
|
2018-08-08 18:48:11 +02:00 |
|
Karol Stasiak
|
0cb91c0f68
|
Z80: Better inlining of variables into register pairs
|
2018-08-08 17:52:08 +02:00 |
|
Karol Stasiak
|
019547aae8
|
Z80: Faster array indexing
|
2018-08-08 17:50:27 +02:00 |
|
Karol Stasiak
|
8b09941cef
|
Z80: Jump shortening
|
2018-08-08 13:45:38 +02:00 |
|
Karol Stasiak
|
5c65af17d4
|
Z80: More optimizations
|
2018-08-08 13:45:26 +02:00 |
|
Karol Stasiak
|
fc3ace20c4
|
Fix subbyte constants in Intel syntax
|
2018-08-08 13:45:02 +02:00 |
|
Karol Stasiak
|
2b279ac5e8
|
Give the preprocessor access to compilation options
|
2018-08-08 13:44:30 +02:00 |
|
Karol Stasiak
|
2af8304512
|
Deduplicate more complex code. Better deduplication.
|
2018-08-08 01:53:47 +02:00 |
|
Karol Stasiak
|
b01c440cf0
|
6502: Improve memset
|
2018-08-08 01:38:49 +02:00 |
|