mirror of
https://github.com/cc65/cc65.git
synced 2024-11-19 21:32:19 +00:00
cc65 - a freeware C compiler for 6502 based systems
060417b0dc
When there is an integral constant like `3` in an expression, it has type `int` according to the C spec, even though it can be represented as an `unsigned char`. Change codegen (`hie_internal` and `typeadjust`) to treat it as `unsigned char` instead of `int` so that faster, unsigned operations can be used. For the test case in #1298, reduces the cycles per iteration from 4311 to 1884. This is a great improvement, but still much worse than the 1053 cycles/iter from `c4698df~`, so more work remains to be done. Further partial fix for #1298 and #1308. |
||
---|---|---|
asminc | ||
cfg | ||
doc | ||
include | ||
libsrc | ||
samples | ||
src | ||
targettest | ||
test | ||
util | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
LICENSE | ||
Makefile | ||
Makefile.travis | ||
README.md |
cc65 is a complete cross development package for 65(C)02 systems, including a powerful macro assembler, a C compiler, linker, librarian and several other tools.
cc65 has C and runtime library support for many of the old 6502 machines, including
- the following Commodore machines:
- VIC20
- C16/C116 and Plus/4
- C64
- C128
- CBM 510 (aka P500)
- the 600/700 family
- newer PET machines (not 2001).
- the Apple ][+ and successors.
- the Atari 8-bit machines.
- the Atari 2600 console.
- the Atari 5200 console.
- GEOS for the C64, C128 and Apple //e.
- the Bit Corporation Gamate console.
- the NEC PC-Engine (aka TurboGrafx-16) console.
- the Nintendo Entertainment System (NES) console.
- the Watara Supervision console.
- the VTech Creativision console.
- the Oric Atmos.
- the Oric Telestrat.
- the Lynx console.
- the Ohio Scientific Challenger 1P.
The libraries are fairly portable, so creating a version for other 6502s shouldn't be too much work.