1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-27 00:29:31 +00:00
Commit Graph

11161 Commits

Author SHA1 Message Date
Kugel Fuhr
f43cfd1ad0 Fix the check for CPU flags being used after an instruction that gets removed.
Previously only the next instruction was checked for usage of the CPU flags
but this fails for certain code.
2024-09-13 19:30:38 +02:00
Kugel Fuhr
6e18e0880a Added/improved the optimizations:
* Added a new pass that optimizes PHA/PLA sequences
* Added a new pass that optimizes AND/EOR/ORA when an operand is known
* Added a run of an existing pass at later stages to remove code that
  otherwise goes unchanged.
* Handle binary operations in OptUnusedLoads in addition to real loads.
2024-09-13 19:30:38 +02:00
Bob Andrews
7260c10062
Merge pull request #2518 from kugelfuhr/kugelfuhr/fix-2515
Fix minor preprocessor problems
2024-09-13 17:53:20 +02:00
Bob Andrews
34d8c3ef0a
Merge pull request #2517 from kugelfuhr/kugelfuhr/time-improvements
Improved/fixed the time() function
2024-09-13 17:47:14 +02:00
Bob Andrews
b5135b3ae0
Merge pull request #2502 from kugelfuhr/kugelfuhr/fix-2461
Fix issue #2461
2024-09-13 15:53:49 +02:00
Kugel Fuhr
efa2020d93 Improved/fixed the time() function:
- When the underlying clock_gettime function returned an error, the value
  returned via *timep was wrong.
- Reduced code size by 7 bytes.
- Don't suck in ldeaxi.
2024-09-12 09:14:57 +02:00
Kugel Fuhr
70ca6d4200 Fixed a standard noncompliance: In C99 and above there must be whitespace
between a name of an object like macro and its replacement list.
2024-09-11 19:21:19 +02:00
Kugel Fuhr
2f6f5f0da1 Fix problem with #line when there is no whitespace between line number and
filename.
y
2024-09-11 19:20:01 +02:00
Bob Andrews
aff8248341
add comment on function prototypes 2024-09-08 17:08:40 +02:00
Bob Andrews
31a0d5cc40
Merge pull request #2503 from colinleroy/master
Optimize stpcpy's size and speed
2024-09-08 16:17:14 +02:00
Bob Andrews
0be5f8f9e1
Merge pull request #2508 from polluks/waitvsync
[ATMOS] waitvsync
2024-09-08 16:14:51 +02:00
Bob Andrews
3a7f0e2d18
Merge pull request #2509 from polluks/extern
Remove explicit keyword
2024-09-08 16:13:55 +02:00
Bob Andrews
e6ff8d9301
Merge pull request #2510 from polluks/better_waitvsync
Faster waitvsync
2024-09-08 16:09:23 +02:00
Bob Andrews
38038fd0d3
Merge pull request #2512 from kugelfuhr/kugelfuhr/fix-2134
Warn for braces around a pointer initializer
2024-09-08 16:05:58 +02:00
Bob Andrews
1771cb6fbd
Merge pull request #2511 from coronax/fix-gettime-in-time.s
In time(), set the clock id to CLOCK_REALTIME when calling clock_gettime.
2024-09-08 16:04:27 +02:00
Kugel Fuhr
d825a40add The test needs a main() function. 2024-09-08 09:36:40 +02:00
Kugel Fuhr
3c5269dede Warn for braces around a pointer initializer. 2024-09-08 09:11:47 +02:00
coronax
838c8b48b7 Set the clock id to CLOCK_REALTIME when calling clock_gettime.
Previously, time() allocated stack space for the clock id argument, but didn't actually set a value.
2024-09-07 23:27:54 -05:00
Colin Leroy-Mira
55d3a6ea39 Optimize stpcpy's size and speed 2024-09-07 21:24:53 +02:00
Stefan
461554e616
Update waitvsync.s 2024-09-07 19:17:00 +02:00
Stefan
f5e434c6c8
Update waitvsync.s 2024-09-07 19:14:59 +02:00
Stefan
be5a9f92ec
oops 2024-09-07 18:51:20 +02:00
Stefan
b355620939
Optimise waitvsync.s 2024-09-07 18:49:53 +02:00
Stefan
44aa5dca91
Update atari.h 2024-09-07 18:12:37 +02:00
Stefan
c9fa9f0002
Update atari5200.h 2024-09-07 18:08:18 +02:00
Stefan
ab4cdafacb
Update atari7800.h 2024-09-07 18:07:35 +02:00
Stefan
f430341d5d
Update atmos.h 2024-09-07 17:23:17 +02:00
Stefan
033fd9e0dc
Update funcref.sgml 2024-09-07 17:19:21 +02:00
Stefan
38f54875d0
Add files via upload 2024-09-07 17:06:45 +02:00
Bob Andrews
4e2a3bde92
Merge pull request #2499 from kugelfuhr/kugelfuhr/disable-recursive-calls-to-main
Disallow recursive calls to main() in cc65 mode
2024-09-07 14:39:28 +02:00
Bob Andrews
7bd0a1d7f0
Merge pull request #2500 from kugelfuhr/kugelfuhr/better-help-for-W
Improve the usage output for the '-W' option
2024-09-07 14:37:30 +02:00
Kugel Fuhr
d996e20c5f Fix issues #2461. This was always wrong even in cases where it seemed to work.
If it did, it was by coincidence.
2024-09-03 20:21:48 +02:00
Kugel Fuhr
79606c4d20 Overlooked a few target tests that take the address of main(). 2024-09-02 16:55:58 +02:00
Kugel Fuhr
cd4357057f The change from #2495 didn't take into account that recursive calls to main()
are legal in C. With the changes from #2495, such calls will usually crash the
machine. But recursive calls to main() are rare and on the 6502 every byte
saved is precious. So this change limits the effect of #2495 to cc65 mode and
at the same time disallows recursive calls to main() in this mode. If
recursive calls to main() are actually required, the code must be compiled in
c89 or c99 mode.
2024-09-02 10:39:42 +02:00
Kugel Fuhr
e2014611ef Improve the usage output for the '-W' option. 2024-09-02 07:02:41 +02:00
Bob Andrews
5e5dd1d6c4
Merge pull request #2498 from kugelfuhr/kugelfuhr/fix-include-in-macros
Fix .include within .macro/.repeat
2024-09-01 23:26:33 +02:00
Bob Andrews
2680bc8dec
Merge pull request #2495 from kugelfuhr/kugelfuhr/dont-save-stuff-in-main
Generate shorter code for main() in some cases
2024-09-01 22:54:45 +02:00
Kugel Fuhr
cc0db26e20 Added some tests. 2024-09-01 20:22:29 +02:00
Kugel Fuhr
b2aceaea24 Fix behavior of .INCLUDE within a macro or .REPEAT. In the original code
.INCLUDE was executed after expansion of the macro or .REPEAT - which was
wrong and caused all sorts of unexpected behavior. Related issues/PRs
are #231, #1473, #2159 and maybe others.

Note: After this change error messages for nested macro/.include statements
may be wrong. This is an unrelated bug that was always there and got exposed
by this fix. The bug needs to be addressed in a separate PR.
2024-09-01 19:58:07 +02:00
Bob Andrews
7a578be724
Merge pull request #2491 from kugelfuhr/kugelfuhr/fix-2431
Fix issue #2431
2024-09-01 19:35:32 +02:00
Bob Andrews
a712fbb8f9
Merge pull request #2493 from kugelfuhr/kugelfuhr/fix-1663
Fix issue #1663.
2024-09-01 18:07:14 +02:00
Bob Andrews
601deab3a2
Merge pull request #2492 from kugelfuhr/kugelfuhr/alternative-pragma-names
Allow alternative names for pragmas that contain underlines instead of dashes
2024-09-01 17:57:38 +02:00
Bob Andrews
4b38974918
Merge pull request #2496 from kugelfuhr/kugelfuhr/fix-2458
Fix macro preprocessing for #include
2024-09-01 17:54:36 +02:00
Bob Andrews
8c1047529f
Merge pull request #2497 from kugelfuhr/kugelfuhr/fix-2044
Fix issue #2044
2024-09-01 17:48:45 +02:00
Kugel Fuhr
b4aef6eac4 Fix macro preprocessing for #include. Arguments enclosed in "" or <> must not
be preprocessed. See ISO/IEC 9899 1990 (E) section 6.8.2.
2024-09-01 13:16:35 +02:00
Kugel Fuhr
b5cc68d6e2 Do not save any register variables when entering main(). Do not restore the C
stack when leaving main(). Both are unnecessary and just bloat the executable.
2024-09-01 12:41:25 +02:00
Kugel Fuhr
4b68d19993 Fix issue #1663. 2024-09-01 10:42:18 +02:00
Kugel Fuhr
35c3fe5d0a Fix issue #2044. While doing so, cleanup copy&pasted code. 2024-09-01 10:29:59 +02:00
Kugel Fuhr
ef17250c64 Fixed a compiler warning. 2024-09-01 10:26:45 +02:00
Kugel Fuhr
e40058257e Added a test for the available #pragmas. 2024-09-01 10:23:29 +02:00