Commit graph

698 commits

Author SHA1 Message Date
cuz
c80596458c Renamed NMI segment to LOWCODE
git-svn-id: svn://svn.cc65.org/cc65/trunk@1562 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-21 21:15:19 +00:00
cuz
f205950f54 Fixed a bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@1561 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-21 21:10:10 +00:00
cuz
42463beaee Rewrote code for better readability
git-svn-id: svn://svn.cc65.org/cc65/trunk@1560 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-21 20:46:16 +00:00
cuz
0ba44bb2d4 Small but significant shift optimization
git-svn-id: svn://svn.cc65.org/cc65/trunk@1559 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-21 01:08:14 +00:00
cuz
cfbe5ec5b4 Commiting some old changes
git-svn-id: svn://svn.cc65.org/cc65/trunk@1551 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-20 17:04:29 +00:00
cuz
ead7de2b42 Ignore module.inc
git-svn-id: svn://svn.cc65.org/cc65/trunk@1550 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-20 17:03:14 +00:00
cuz
e688abde1f Moved the zero page locations for the PET machines
git-svn-id: svn://svn.cc65.org/cc65/trunk@1547 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-20 01:34:56 +00:00
cuz
8ef3447248 Fixed an error in struct compare. For one, the behaviour was not standard
compliant, because struct tags were not compare, second, this lead to an
endless loop of recursive calls for a special case of wrong C code.


git-svn-id: svn://svn.cc65.org/cc65/trunk@1523 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-15 13:19:46 +00:00
cuz
ca1386e9d4 Removed unused code
git-svn-id: svn://svn.cc65.org/cc65/trunk@1522 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-14 22:52:29 +00:00
cuz
b1cc64faaa Fixed a bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@1521 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-14 22:52:10 +00:00
cuz
57d6c2f51e New function ReplaceType
git-svn-id: svn://svn.cc65.org/cc65/trunk@1520 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-14 22:51:59 +00:00
cuz
c6abc5d9d4 Make small functions inline
git-svn-id: svn://svn.cc65.org/cc65/trunk@1519 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-14 22:51:39 +00:00
cuz
dadd136ae1 Use constants for datatype sizes
git-svn-id: svn://svn.cc65.org/cc65/trunk@1480 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-02 12:39:10 +00:00
cuz
8810e38bb7 Move the assignment parser into a separate module.
When assigning structures, copy them using the primary register when the
size is 1, 2, or 4.
When assigning structures, allow structures by value when the size is 1,
2, or 4. These structures are expected to be in the primary register. The
only case when this can happen is by return from function, so this change
makes div() work.


git-svn-id: svn://svn.cc65.org/cc65/trunk@1477 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-01 21:27:31 +00:00
cuz
5548b6fd56 Work on better type casts - not yet finished
git-svn-id: svn://svn.cc65.org/cc65/trunk@1476 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-11-01 15:16:16 +00:00
cuz
571ea849d9 Fixed a bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@1475 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-29 17:53:17 +00:00
cuz
914b2a7e37 New store optimization.
New functions RegValIsKnown and RegValIsUnknown should be used instead of
direct compares against zero, so we can change the "unknown" representation
one day.


git-svn-id: svn://svn.cc65.org/cc65/trunk@1466 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-17 21:37:01 +00:00
cuz
4da19658c2 Fixed error "variable has unknown size" for a local array where the size
was not given (introduced by last change).


git-svn-id: svn://svn.cc65.org/cc65/trunk@1465 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-17 21:14:40 +00:00
cuz
49fd7134e5 Fixed a buffer overflow (report from Christian Groessler).
git-svn-id: svn://svn.cc65.org/cc65/trunk@1464 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-14 16:23:26 +00:00
cuz
83fb2c8ab4 Allow initialization of local variables of compound type
git-svn-id: svn://svn.cc65.org/cc65/trunk@1458 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-10 21:15:24 +00:00
cuz
dcdaf8fd49 Restructured DeclareLocals()
git-svn-id: svn://svn.cc65.org/cc65/trunk@1457 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-10 20:24:16 +00:00
cuz
872c2b4453 Made a lot of short functions inline
git-svn-id: svn://svn.cc65.org/cc65/trunk@1456 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-10 20:23:41 +00:00
cuz
2e5fa9575c Add info about more functions
git-svn-id: svn://svn.cc65.org/cc65/trunk@1455 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-09 19:39:45 +00:00
cuz
13642fc6c4 Fixed a bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@1454 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-09 19:39:36 +00:00
cuz
e68b8160ed Added more size optimizations, separate module
git-svn-id: svn://svn.cc65.org/cc65/trunk@1453 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-08 20:56:00 +00:00
cuz
3c31d063f7 New optimizer pass OptShift3.
Renamed CE_IsCall to CE_IsCallTo.


git-svn-id: svn://svn.cc65.org/cc65/trunk@1451 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-06 20:54:01 +00:00
cuz
a0496ca53d Fixed an omission in AdjustStackOffset. Use CS_IsBasicBlock in OptStackOps.
git-svn-id: svn://svn.cc65.org/cc65/trunk@1450 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-06 19:03:12 +00:00
cuz
9a62c92489 Improved implementation of OptPushPop
git-svn-id: svn://svn.cc65.org/cc65/trunk@1449 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-06 19:01:46 +00:00
cuz
1647c6783f New functions CS_ResetMarks, CS_ResetAllMarks and CS_IsBasicBlock.
git-svn-id: svn://svn.cc65.org/cc65/trunk@1448 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-06 19:01:16 +00:00
cuz
6047165325 Fixed problem with earlier change
git-svn-id: svn://svn.cc65.org/cc65/trunk@1445 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-05 22:55:42 +00:00
cuz
e9da20f961 Fix codesize setting
git-svn-id: svn://svn.cc65.org/cc65/trunk@1444 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-05 22:37:36 +00:00
cuz
7ce4196829 New/changed optimizations
git-svn-id: svn://svn.cc65.org/cc65/trunk@1443 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-05 20:32:31 +00:00
cuz
bc1085997d Minor improvement of optimizations
git-svn-id: svn://svn.cc65.org/cc65/trunk@1440 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-04 19:27:15 +00:00
cuz
89e8aae7d7 Increase the size of some buffers, so we are at the assembler level able to
handle any identifiers passed from the C level.


git-svn-id: svn://svn.cc65.org/cc65/trunk@1439 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-04 17:54:46 +00:00
cuz
29c217b4b2 Use a #define instead of numeric value
git-svn-id: svn://svn.cc65.org/cc65/trunk@1429 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-03 11:20:45 +00:00
cuz
4389b0c438 Fixed a small bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@1426 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-03 09:00:57 +00:00
cuz
f5243e514c Fixed optimizer bug in or/xor
git-svn-id: svn://svn.cc65.org/cc65/trunk@1425 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-02 22:21:42 +00:00
cuz
b4326d1930 Place all declarations that are local to a function into the local function
scope. Apart from some other advantages, this works around a bug where having
an external identifier in global scope and using an "extern" declaration for
exactly the same identifier in a function did not work, because the assembler
refused to export and import one and the same identifier. Since the import
now imports into local scope, both identifiers are distinct for the assembler
and the (valid) C code works.


git-svn-id: svn://svn.cc65.org/cc65/trunk@1424 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-02 13:00:04 +00:00
cuz
980c17daef Allow more flexible numeric flag pragma arguments
git-svn-id: svn://svn.cc65.org/cc65/trunk@1423 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-10-01 08:13:04 +00:00
cuz
65fa99f65e Fixed a bug
git-svn-id: svn://svn.cc65.org/cc65/trunk@1422 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-09-30 21:58:39 +00:00
cuz
1f20202239 Ignore also cr's on input. This allows to compile sources with DOS/Windows
line separators on unix systems.


git-svn-id: svn://svn.cc65.org/cc65/trunk@1419 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-09-30 19:32:33 +00:00
cuz
15d2c8fc83 Removed debug code
git-svn-id: svn://svn.cc65.org/cc65/trunk@1418 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-09-30 19:05:37 +00:00
cuz
d92676ef60 Add SB_GetNumber to scanstrbuf.c.
Rewrite of CharMapPragma in pragma.c
Fixed bug in scanner.c: Invalid octal constants containing the numbers 8
and 9 were accepted by the compiler.
Moved SignExtendChar from scanner.c to datatype.c.


git-svn-id: svn://svn.cc65.org/cc65/trunk@1416 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-09-30 18:46:08 +00:00
cuz
2df5db1f04 Call StrBuf destructors
git-svn-id: svn://svn.cc65.org/cc65/trunk@1415 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-09-29 21:15:02 +00:00
cuz
e880ac6059 Use the new StrBuf features
git-svn-id: svn://svn.cc65.org/cc65/trunk@1414 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-09-29 21:13:09 +00:00
cuz
ea50befaac Redoing the pragma stuff
git-svn-id: svn://svn.cc65.org/cc65/trunk@1413 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-09-29 21:09:47 +00:00
cuz
092f10862e New function SB_Skip
git-svn-id: svn://svn.cc65.org/cc65/trunk@1412 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-09-29 19:55:38 +00:00
cuz
0e4493f075 Add a user index to class StrBuf
git-svn-id: svn://svn.cc65.org/cc65/trunk@1411 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-09-29 19:49:55 +00:00
cuz
9464c7dd29 Change the .LOCAL command so that the cheap local symbol prefix is kept.
This allows to create macros with local labels that expand to cheap local
symbols when the macro is expanded.
Tip from Dagan Galarneau <dagan@msd.com>


git-svn-id: svn://svn.cc65.org/cc65/trunk@1405 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-09-25 21:35:00 +00:00
cuz
ffdc8396c5 Changed a function name
git-svn-id: svn://svn.cc65.org/cc65/trunk@1404 b7a2c559-68d2-44c3-8de9-860c34a00d81
2002-09-25 10:42:42 +00:00