epetrich [Thu, 18 Dec 2003 21:23:36 +0000 (21:23 +0000)]
* src/SDCCast.c (createIvalCharPtr),
* src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
bug #753752)
* support/regression/tests/nullstring.c: tests for these two bugs
epetrich [Tue, 16 Dec 2003 19:46:43 +0000 (19:46 +0000)]
* src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
implicit casts via union; they don't work on big endian systems
(possible fix for bug #861138)
frief [Sat, 13 Dec 2003 23:31:56 +0000 (23:31 +0000)]
* src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears xdata and data memory on startup. Set the environment variable SDCC_NOGENRAMCLEAR to disable this.
frief [Sat, 13 Dec 2003 23:09:08 +0000 (23:09 +0000)]
* src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears xdata and data memory on startup. Set the environment variable SDCC_NOGENRAMCLEAR to disable this.
frief [Sat, 13 Dec 2003 13:19:38 +0000 (13:19 +0000)]
src/mcs51/peephole.def, src/ds390/peephole.def: using the atomic test and clear instruction jbc (allows non-interrupt and interrupt code to safely compete for a resource without the non-interrupt code having to disable interrupts)
frief [Sat, 13 Dec 2003 13:17:53 +0000 (13:17 +0000)]
using the atomic test and clear instruction jbc. Allows non-interrupt and interrupt code to safely compete for a resource
without the non-interrupt code having to disable interrupts. Moved peephole 251 to the end and renumbered two to get
ascending numbers.
frief [Sat, 13 Dec 2003 13:16:08 +0000 (13:16 +0000)]
using the atomic test and clear instruction jbc. Allows non-interrupt and interrupt code to safely compete for a resource without the non-interrupt code having to disable interrupts.
epetrich [Sat, 13 Dec 2003 06:56:07 +0000 (06:56 +0000)]
* src/SDCCicode.c (geniCodeAdd),
* src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
with valFromType if type might be a pointer and host is big endian).
* src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
types, not just integer types.
* src/SDCCsymt.c (addSymChain): clarified error message when symbol is
multiply defined with mismatching "at" address.
epetrich [Tue, 9 Dec 2003 07:17:29 +0000 (07:17 +0000)]
* src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
instead of deleting the iCode when an operand is volatile
* src/z80/gen.c (genDummyRead),
* src/mcs51/gen.c (genDummyRead),
* src/ds390/gen.c (genDummyRead),
* src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
not just IC_RIGHT
* src/SDCCicode.c (geniCodeCall): fixed bug #851607
* src/SDCC.y: fixed bug #850420
frief [Fri, 5 Dec 2003 18:15:33 +0000 (18:15 +0000)]
Peter Townson's z80 in/out, more to bit/sbit/idata, link to indent, 'at' and initialization, #pragma preproc_asm, some ds390 options, array in code space, 2.3.6
epetrich [Fri, 5 Dec 2003 06:37:18 +0000 (06:37 +0000)]
Applied z80 i/o port patch from Peter Townson and fixed some operators
to better handle operands in A register.
* device/include/z180.h
* src/SDCC.y
* src/SDCCglue.c
* src/z80/gen.c
* src/z80/gen.h
* src/z80/main.c
* src/z80/peeph-z80.def
* src/z80/peeph.def
* src/z80/z80.h
epetrich [Mon, 1 Dec 2003 07:37:58 +0000 (07:37 +0000)]
* sim/ucsim/hc08.src/inst.cc,
* sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
carries from x to h
* src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
* src/hc08/gen.c (XAccRsh): fixed problem with right shift
* device/include/stdarg.h: fixed varargs for hc08
* device/lib/Makefile.in,
* device/lib/hc08/Makefile,
* device/lib/hc08/_mulint.c,
* device/lib/hc08/_mullong.c: fixed some endian problems
epetrich [Wed, 26 Nov 2003 18:19:53 +0000 (18:19 +0000)]
* src/SDCCast.c (decorateType): disabled a transformation I added in
revision 1.188 (access to fields of a structure at an absolute address);
it breaks with bitfields, extern declarations, and gcse analysis.
* src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
could be assigned through a pointer, so don't complain.
* src/SDCCast.c (astErrors),
* src/SDCCast.h,
* src/SDCCglue.c (emitRegularMap): fixed bug #847813
epetrich [Wed, 19 Nov 2003 17:23:35 +0000 (17:23 +0000)]
* src/SDCCcse.c (algebraicOpts): fixed bug #773153
* src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_GET op
* src/SDCCopt.c (eBBlockFromiCode),
* src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
the creation of the key hash table from the sequencing so it can be used
earlier (for some GCSE bug fixes still pending)
epetrich [Sat, 15 Nov 2003 08:38:38 +0000 (08:38 +0000)]
* src/SDCCcse.c (cseBBlock): fixed bug #527779
* src/SDCCcse.c (deleteGetPointers): rewrote so that the set
ordering is immaterial.
* src/SDCCdflow.c (mergeInExprs): fixed bug #587536
epetrich [Fri, 14 Nov 2003 08:33:10 +0000 (08:33 +0000)]
* src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
* src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
(SIGSEV) of bug #840381
* src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
unlink new file before rename if new and old filenames are the same)
frief [Thu, 13 Nov 2003 21:17:25 +0000 (21:17 +0000)]
src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing uninitialized variables) for the mcs51. Set environment variable SDCC_GENRAMCLEAR to test.
xdata initialization slightly shorter
frief [Thu, 13 Nov 2003 21:15:36 +0000 (21:15 +0000)]
started fixing bug #737001 (SDCC not clearing uninitialized variables) for the mcs51. Set environment variable SDCC_GENRAMCLEAR to test.
xdata initialization slightly shorter
epetrich [Sun, 9 Nov 2003 01:51:10 +0000 (01:51 +0000)]
* support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
the reentrant attribute.
* src/hc08/gen.c (genPackBits): added missing stack readjustment
* sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
simulation
* src/SDCCast.c (decorateType): fixed bug with storage class not being
updated during pointer dereference; f.e. ~(((char *)1)*) was being
erroneously reduced to a literal.
* src/hc08/ralloc.c (packRegisters, rematStr),
* src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
some cases
frief [Fri, 7 Nov 2003 17:31:22 +0000 (17:31 +0000)]
* doc/Makefile:sdccman.pdf should build with correct references (more info in commit msg)
* doc/clean.mk: also remove *.out files
* doc/sdccman.lyx: some additions, larger top/bottom margins
frief [Fri, 7 Nov 2003 17:25:28 +0000 (17:25 +0000)]
- removed dependency from l2hidx.ist (not in the directory and adds an unwanted section)
- always use dvipdf to generate the pdf file (pdflatex creates docs for acrobat reader >= 5.0)
- two runs of latex before and after makeindex (needed for correct pagenumbers in index)
epetrich [Fri, 7 Nov 2003 07:01:10 +0000 (07:01 +0000)]
* src/SDCC.y: fixed bug #837365
* support/regression/tests/bitopcse.c
* src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
a symbol (might be valop instead)
* device/lib/Makefile.in: added errno.c to HC08SOURCES
* device/lib/clean.mk: added hc08 to the cleaning list
borutr [Fri, 7 Nov 2003 06:25:14 +0000 (06:25 +0000)]
* support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
malloc is declared in standard stdlib.h
epetrich [Tue, 4 Nov 2003 14:19:03 +0000 (14:19 +0000)]
* src/SDCCcse.c (ifxOptimize),
* src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
deleting the IFX iCode.
* src/hc08/ralloc.c: reduced unneeded slocs
* src/hc08/gen.c: fixed bug in asmopToBoolean
epetrich [Tue, 4 Nov 2003 06:46:48 +0000 (06:46 +0000)]
* src/SDCCcse.c (ifxOptimize),
* src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
deleting the IFX iCode.
* src/hc08/ralloc.c: reduced unneeded slocs
* src/hc08/gen.c: fixed bug in asmopToBoolean
borutr [Fri, 31 Oct 2003 17:59:42 +0000 (17:59 +0000)]
* support\cpp2\cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
when outputting comment blocks (when executed with -C option) and
_asm (SDCPP specific) blocks
borutr [Fri, 31 Oct 2003 12:30:40 +0000 (12:30 +0000)]
* support\cpp2\cpplex.c: fixed for SDCPP:
comments(when executed with -C option) and _asm blocks
were included even if they where in skipped #if block.
Applied solution from GCC cpp 3.3.2
borutr [Fri, 31 Oct 2003 10:33:48 +0000 (10:33 +0000)]
* src/SDCC.lex: sdcc now understands both formats:
'# <line_number> <file_name>' and
'#line <line_number> <file_name>'
* support/cpp2/cppmain.c: sdcpp now generates the standard
'# <line_number> <file_name>' instead of former
'#line <line_number> <file_name>'
epetrich [Thu, 30 Oct 2003 05:42:53 +0000 (05:42 +0000)]
Fixed a number of problems revealed by bug #827883.
* src/SDCCloop.c (loopInvariants): Spill location of the
result operand should be recomputed if extracted from
a loop. Also, don't extract assignments of an iTemp
from a literal.
* src/SDCCast.c (isConformingBody): loop reversal should
not occur if the control variable is involved with a
relational operator.
kflittner [Tue, 28 Oct 2003 15:04:17 +0000 (15:04 +0000)]
Replaced the liverange code.
* src/SDCClrange.c: added new LR code
* src/SDCCloop.c,
* src/SDCCBBlock.h: removed remainig parts from old LR code
* src/ds390/ralloc.c,
* src/ds390/gen.c: minor fixes to make it work with new code