fw/sdcc
20 years ago * src/hc08/gen.c (hc08_emitDebuggerSymbol),
epetrich [Thu, 13 May 2004 22:10:41 +0000 (22:10 +0000)]
* src/hc08/gen.c (hc08_emitDebuggerSymbol),
* src/hc08/main.c,
* src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
* src/mcs51/main.c,
* src/ds390/gen.c (ds390_emitDebuggerSymbol),
* src/ds390/main.c,
* src/z80/gen.c (z80_emitDebuggerSymbol),
* src/z80/main.c,
* src/pic/gen.c (pic14_emitDebuggerSymbol),
* src/pic/main.c,
* src/pic16/gen.c (pic14_emitDebuggerSymbol),
* src/pic16/main.c,
* src/avr/gen.c (avr_emitDebuggerSymbol),
* src/avr/main.c,
* src/xa51/gen.c (xa51_emitDebuggerSymbol),
* src/xa51/main.c,
* src/SDCCdebug.c (emitDebuggerSymbol),
* src/SDCCdebug.h,
* src/port.h: added a debugger struct to the port struct. Added a
callback for defining debugger symbols

* src/SDCCast.c (createLabel),
* src/SDCC.y (labeled_statement): mark all compiler generated labels
with isitmp = 1
* src/SDCCicode.h,
* src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
iCode back to the ast for the function

* src/hc08/ralloc.c (hc08_assignRegisters),
* src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
unneeded fields from the regs struct.
* src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
pushReg() & pullReg() functions instead of emitcode()

* src/hc08/gen.c (genLabel, genhc08Code),
* src/SDCCdebug.h: Added additional debugger hooks needed for DWARF

* src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
debugger hooks

* src/hc08/gen.c (genEndFunction, genhc08Code),
* src/hc08/gen.h,
* src/mcs51/gen.c (genEndFunction, gen51Code),
* src/mcs51/gen.h,
* src/ds390/gen.c (genEndFunction, gen390Code),
* src/ds390/gen.h,
* src/z80/gen.c (genEndFunction, genZ80Code),
* src/z80/gen.h,
* src/z80/z80.h,
* src/pic/gen.c (genEndFunction, genpic14Code),
* src/pic/gen.h,
* src/pic16/gen.c (genEndFunction, genpic16Code),
* src/pic16/gen.h,
* src/avr/gen.c (genEndFunction, genAVRCode),
* src/avr/gen.h,
* src/xa51/gen.c (genEndFunction, genXA51Code),
* src/xa51/gen.h,
* src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
specific code to cdbFile.c and out of the backend code generators

* as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
* as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
starting address is now 0

* as/hc08/asm.h,
* as/hc08/m08pst.c,
* as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
assembler directive for DWARF support
* as/hc08/lkelf.c (elf): only increment address when rtflg[] set

* src/src.dsp,
* src/Makefile.in,
* src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3305 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago * src/hc08/gen.c (hc08_emitDebuggerSymbol),
epetrich [Thu, 13 May 2004 21:51:54 +0000 (21:51 +0000)]
* src/hc08/gen.c (hc08_emitDebuggerSymbol),
* src/hc08/main.c,
* src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
* src/mcs51/main.c,
* src/ds390/gen.c (ds390_emitDebuggerSymbol),
* src/ds390/main.c,
* src/z80/gen.c (z80_emitDebuggerSymbol),
* src/z80/main.c,
* src/pic/gen.c (pic14_emitDebuggerSymbol),
* src/pic/main.c,
* src/pic16/gen.c (pic14_emitDebuggerSymbol),
* src/pic16/main.c,
* src/avr/gen.c (avr_emitDebuggerSymbol),
* src/avr/main.c,
* src/xa51/gen.c (xa51_emitDebuggerSymbol),
* src/xa51/main.c,
* src/SDCCdebug.c (emitDebuggerSymbol),
* src/SDCCdebug.h,
* src/port.h: added a debugger struct to the port struct. Added a
callback for defining debugger symbols

* src/SDCCast.c (createLabel),
* src/SDCC.y (labeled_statement): mark all compiler generated labels
with isitmp = 1
* src/SDCCicode.h,
* src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
iCode back to the ast for the function

* src/hc08/ralloc.c (hc08_assignRegisters),
* src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
unneeded fields from the regs struct.
* src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
pushReg() & pullReg() functions instead of emitcode()

* src/hc08/gen.c (genLabel, genhc08Code),
* src/SDCCdebug.h: Added additional debugger hooks needed for DWARF

* src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
debugger hooks

* src/hc08/gen.c (genEndFunction, genhc08Code),
* src/hc08/gen.h,
* src/mcs51/gen.c (genEndFunction, gen51Code),
* src/mcs51/gen.h,
* src/ds390/gen.c (genEndFunction, gen390Code),
* src/ds390/gen.h,
* src/z80/gen.c (genEndFunction, genZ80Code),
* src/z80/gen.h,
* src/z80/z80.h,
* src/pic/gen.c (genEndFunction, genpic14Code),
* src/pic/gen.h,
* src/pic16/gen.c (genEndFunction, genpic16Code),
* src/pic16/gen.h,
* src/avr/gen.c (genEndFunction, genAVRCode),
* src/avr/gen.h,
* src/xa51/gen.c (genEndFunction, genXA51Code),
* src/xa51/gen.h,
* src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
specific code to cdbFile.c and out of the backend code generators

* as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
* as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
starting address is now 0

* as/hc08/asm.h,
* as/hc08/m08pst.c,
* as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
assembler directive for DWARF support
* as/hc08/lkelf.c (elf): only increment address when rtflg[] set

* src/src.dsp,
* src/Makefile.in,
* src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3304 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
epetrich [Tue, 4 May 2004 19:10:40 +0000 (19:10 +0000)]
* src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
and inappropriate peephole optimization in jump tables

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3303 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agosdccopt works for the hc08 port now
jesusc [Fri, 30 Apr 2004 13:58:29 +0000 (13:58 +0000)]
sdccopt works for the hc08 port now

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3302 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
bernhardheld [Tue, 27 Apr 2004 20:01:20 +0000 (20:01 +0000)]
* src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3301 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agosdccconf.h is not available in WIN32
jesusc [Tue, 27 Apr 2004 11:32:03 +0000 (11:32 +0000)]
sdccconf.h is not available in WIN32

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3300 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCpeeph.c (replaceRule): support empty replacement peephole
epetrich [Sat, 24 Apr 2004 07:06:41 +0000 (07:06 +0000)]
* src/SDCCpeeph.c (replaceRule): support empty replacement peephole
rules
* src/SDCCmain.c,
* src/SDCCglobl.h,
* src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
comments from the peephole optimizer replacement rules
* src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
symbols
* src/SDCCcse.c (updateSpillLocation),
* src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
equivalents
* src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
* src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
objects far pointers

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3299 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCsymt.h: a missing part of my last change
epetrich [Fri, 23 Apr 2004 14:35:53 +0000 (14:35 +0000)]
* src/SDCCsymt.h: a missing part of my last change
* src/pic/ralloc.c (regTypeNum),
* src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3298 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCicode.h,
epetrich [Fri, 23 Apr 2004 05:42:03 +0000 (05:42 +0000)]
* src/SDCCicode.h,
* src/SDCCicode.c (aggrToPtrDclType),
* src/SDCCptropt.h,
* src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
ptrPseudoSymConvert),
* src/pic/ralloc.c (regTypeNum),
* src/pic16/ralloc.c (regTypeNum),
* src/hc08/ralloc.c (regTypeNum),
* src/ds390/ralloc.c (regTypeNum),
* src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
creating pseudo symbols (fixed bugs #777768 and #933966)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3297 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* link/z80/lkmain.c (afile),
epetrich [Thu, 22 Apr 2004 17:31:46 +0000 (17:31 +0000)]
* link/z80/lkmain.c (afile),
* as/hc08/lkmain.c (afile),
* as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
prevent a pointer problem when a filename has no directory and
no extension specified.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3296 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* link/z80/lkmain.c (afile): allow periods in directory names
epetrich [Wed, 21 Apr 2004 06:35:32 +0000 (06:35 +0000)]
* link/z80/lkmain.c (afile): allow periods in directory names
* link/z80/lkmain.c (afile),
* as/mcs51/lkmain.c (afile),
* as/hc08/lkmain.c (afile): allow linker script file to have an
extension other than ".lnk"
* link/z80/lklex.c (getfid),
* link/z80/lkmain.c (parse),
* as/mcs51/lklex.c (getfid),
* as/mcs51/lkmain.c (parse),
* as/hc08/lklex.c (getfid),
* as/hc08/lkmain.c (parse): Support comments in the linker script
file on lines by themselves and after filenames

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3295 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoAdded as/hc08/lkelf.c to as/link_hc08.dsp
jesusc [Tue, 20 Apr 2004 10:21:21 +0000 (10:21 +0000)]
Added as/hc08/lkelf.c to as/link_hc08.dsp

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3294 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/z80/peeph-z80.def: removed some peephole rules that don't
epetrich [Tue, 20 Apr 2004 05:16:13 +0000 (05:16 +0000)]
* src/z80/peeph-z80.def: removed some peephole rules that don't
work with multibyte arithmetic (fixed bug #937126)
* src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
to registers and not global variables
* src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
geniCodePreInc, geniCodePostDec, geniCodePreDec,
geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
checking for assignments not internally generated (fixed bug #931895)
* src/SDCC.y (postfix_expr): ignore typedefs when looking for a
structure member (fixed bug #930072)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3293 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCmain.c (linkEdit),
epetrich [Mon, 19 Apr 2004 05:22:04 +0000 (05:22 +0000)]
* src/SDCCmain.c (linkEdit),
* src/hc08/main.c (_hc08_parseOptions),
* as/hc08/Makefile.in,
* as/hc08/aslink.h,
* as/hc08/asm.h,
* as/hc08/m08pst.c,
* as/hc08/lkrloc.c (relr, rele),
* as/hc08/lkarea.c (lnkarea)
* as/hc08/lkmain.c (afile, parse),
* as/hc08/lkelf.c: support for ELF output
* as/hc08/lks19.c (s19),
* as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3292 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoFixed bug #899105: misplaced 'LBA' record in intel hex output
jesusc [Sat, 17 Apr 2004 19:07:02 +0000 (19:07 +0000)]
Fixed bug #899105: misplaced 'LBA' record in intel hex output

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3291 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago*.dsw and *.dsp file must have 0x0d, 0x0a line terminations to work
jesusc [Fri, 16 Apr 2004 22:57:08 +0000 (22:57 +0000)]
*.dsw and *.dsp file must have 0x0d, 0x0a line terminations to work

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3290 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
epetrich [Fri, 16 Apr 2004 05:19:09 +0000 (05:19 +0000)]
* doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
function pointers; we have been compliant for several months now.
* src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
change that was accidently commented out
* src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
bug #922319

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3289 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/hc08/gen.c: output of all of the internal debugging information
epetrich [Thu, 15 Apr 2004 14:24:49 +0000 (14:24 +0000)]
* src/hc08/gen.c: output of all of the internal debugging information
is now controlled by the D() macro; it is disabled by default

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3288 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
epetrich [Tue, 13 Apr 2004 04:06:32 +0000 (04:06 +0000)]
* src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
harder to keep the same registers during a CAST iCode
* src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
long via int can be done in a single cast, if the signedness is
correct.
* support/regression/tests/bug-927659.c: fixed to avoid conflict with
putchar() in tinibios.c in ds390's library

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3287 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931, fixed check for bitfields
bernhardheld [Mon, 12 Apr 2004 21:00:36 +0000 (21:00 +0000)]
* src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931, fixed check for bitfields

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3286 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (decorateType): fixed bug #898889, cast result of a literal complemen...
bernhardheld [Sun, 11 Apr 2004 23:01:36 +0000 (23:01 +0000)]
* src/SDCCast.c (decorateType): fixed bug #898889, cast result of a literal complement too

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3285 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (decorateType): don't decorate/process parms twice,
bernhardheld [Sun, 11 Apr 2004 21:42:02 +0000 (21:42 +0000)]
* src/SDCCast.c (decorateType): don't decorate/process parms twice,
(processParms): fixed bug #927659: don't copy parms, this will clear decorated flag
* support/regression/tests/bug-927659.c: added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3284 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCicode.c (geniCodeLogic): made it static,
bernhardheld [Sat, 10 Apr 2004 22:07:02 +0000 (22:07 +0000)]
* src/SDCCicode.c (geniCodeLogic): made it static,
(geniCodeLogicAndOr): added in order to fix bug #905492,
(ast2iCode): fixed bug #905492
* support/regression/tests/bug-905492.c: added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3283 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/lib/libsdcc.lib: added _memmove
bernhardheld [Mon, 29 Mar 2004 14:33:23 +0000 (14:33 +0000)]
* device/lib/libsdcc.lib: added _memmove

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3282 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (addCast): don't cast float to char
bernhardheld [Mon, 29 Mar 2004 06:55:43 +0000 (06:55 +0000)]
* src/SDCCast.c (addCast): don't cast float to char

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3281 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/lib/large/Makefile: fixed parallel execution by replacing `make` by `$(MAKE)`
bernhardheld [Sun, 28 Mar 2004 19:32:58 +0000 (19:32 +0000)]
* device/lib/large/Makefile: fixed parallel execution by replacing `make` by `$(MAKE)`

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3280 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
epetrich [Sun, 28 Mar 2004 01:44:31 +0000 (01:44 +0000)]
* src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
offsets (fixes bug #923936)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3279 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agodevice/lib/build/small/Makefile: fixed parallel execution by replacing `make` by...
bernhardheld [Fri, 26 Mar 2004 12:00:26 +0000 (12:00 +0000)]
device/lib/build/small/Makefile: fixed parallel execution by replacing `make` by `$(MAKE)`

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3278 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
bernhardheld [Tue, 23 Mar 2004 15:12:00 +0000 (15:12 +0000)]
* device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3277 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agomulti-byte complements were failing
sdattalo [Tue, 23 Mar 2004 14:49:51 +0000 (14:49 +0000)]
multi-byte complements were failing

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3276 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for compl...
bernhardheld [Tue, 23 Mar 2004 13:05:10 +0000 (13:05 +0000)]
* src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for complement if possible
* src/SDCCval.c (valComplement),
* src/SDCCicode.c (operandOperation): fixed complement of literal
* support/regression/tests/onebyte.c (testComplement): added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3275 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (processParms): fixed bug #920866; decorateType() can return an optim...
bernhardheld [Mon, 22 Mar 2004 20:29:18 +0000 (20:29 +0000)]
* src/SDCCast.c (processParms): fixed bug #920866; decorateType() can return an optimized tree; actually replace actParm with the new tree
* src/SDCCast.h: added some parantheses to remove side effects
* support/regression/tests/bug-920866.c

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3274 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoBit operands were not being handled properly in the pic14 port.
sdattalo [Mon, 22 Mar 2004 04:30:08 +0000 (04:30 +0000)]
Bit operands were not being handled properly in the pic14 port.
(now src/regression/add.c passes again).

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3273 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCC.y (labeled_statement): case and default no longer require
epetrich [Sat, 20 Mar 2004 06:26:38 +0000 (06:26 +0000)]
* src/SDCC.y (labeled_statement): case and default no longer require
a following statement (RFE #893037)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3272 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
epetrich [Fri, 19 Mar 2004 07:37:37 +0000 (07:37 +0000)]
* src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
use MOVA macro to avoid "mov a,acc" when peephole optimizer is
disabled (fixes bug #916294)
* sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
"mov a,acc"; patch provided by Lenny Story
* device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3270 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
epetrich [Fri, 19 Mar 2004 06:26:43 +0000 (06:26 +0000)]
* src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
functions
* src/ds390/gen.c (genFunction, genEndFunction),
* src/ds390/ralloc.c (ds390_assignRegisters),
* src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
* src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
pushed if there are parameters passed on the stack. Also, a cleaner
way to decide if r0/r1 should be pushed/popped. (Together they fix
bug #918693)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3269 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/sdccman.lyx,
epetrich [Thu, 18 Mar 2004 15:19:30 +0000 (15:19 +0000)]
* doc/sdccman.lyx,
* device/lib/mcs51/crtpagesfr.asm,
* device/lib/mcs51/crtxinit.asm,
* device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
to avoid confusion with Si Lab's SFRPAGE register.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3268 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCglue.c (emitMaps): allow public sfr variables
epetrich [Wed, 17 Mar 2004 23:33:26 +0000 (23:33 +0000)]
* src/SDCCglue.c (emitMaps): allow public sfr variables
* src/SDCCglue.c (initialComments): include compiler build date
with compiler version and put the timestamp of the generated
assembly file on a serperate line to be less confusing.
* src/port.h: added genInitStartup hook
* src/avr/main.c,
* src/ds390/main.c,
* src/hc08/main.c,
* src/pic/main.c,
* src/pic16/main.c,
* src/xa51/main.c,
* src/z80/main.c: genInitStartup initialize as NULL (default to
historical behaviour)
* src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
* src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
_mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
library instead of hard coding it into the compiler.
* support/regression/ports/mcs51-stack-auto/spec.mk,
* src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
* device/lib/mcs51/Makefile,
* device/lib/small/Makefile,
* device/lib/large/Makefile,
* device/lib/mcs51/crtpagesfr.asm,
* device/lib/mcs51/crtstart.asm,
* device/lib/mcs51/crtxclear.asm,
* device/lib/mcs51/crtxinit.asm,
* device/lib/mcs51/crtclear.asm,
* device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
and into user configurable files.
* device/lib/clean.mk: clean mcs51 directory too
* support/regression/tests/longlit.c: added static to T1 declaration
* doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
accesses in the initialization code

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3267 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/include/mc68hc908qy.h: corrected declarations of FLBPR and
epetrich [Sun, 14 Mar 2004 15:48:03 +0000 (15:48 +0000)]
* device/include/mc68hc908qy.h: corrected declarations of FLBPR and
OSCTRIMVAL as noted in bug #916008

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3266 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCloop.c (basicInduction): fixed bug with loop induction
epetrich [Sun, 14 Mar 2004 08:01:28 +0000 (08:01 +0000)]
* src/SDCCloop.c (basicInduction): fixed bug with loop induction
in loops with multiple exits (reported as incorrect registers
used by Martin Helmling in Sdcc-user list)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3265 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agosrc/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
frief [Fri, 12 Mar 2004 10:36:31 +0000 (10:36 +0000)]
src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
made ds390 register extensions look less like error messages

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3264 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago(_ds390_genAssemblerPreamble): cosmetic change, made ds390 register extensions look...
frief [Fri, 12 Mar 2004 10:34:17 +0000 (10:34 +0000)]
(_ds390_genAssemblerPreamble): cosmetic change, made ds390 register extensions look less like error messages, related to thread "Registers Unknown to Assembler Error" on sdcc-user 2004-03-11

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3263 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
epetrich [Fri, 12 Mar 2004 06:05:29 +0000 (06:05 +0000)]
* src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
reported by Adam Wozniak in Sdcc-user list

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3262 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (decorateType): fixed with bug and promotion in arithmetic optimizati...
bernhardheld [Wed, 10 Mar 2004 20:45:26 +0000 (20:45 +0000)]
* src/SDCCast.c (decorateType): fixed with bug and promotion in arithmetic optimizations, added debug output

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3261 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCicode.c (geniCodeMultiply): fixed logic for decision if mul is optimized...
bernhardheld [Tue, 9 Mar 2004 21:56:25 +0000 (21:56 +0000)]
* src/SDCCicode.c (geniCodeMultiply): fixed logic for decision if mul is optimized to left shift

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3260 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/lib/time.c (mktime): fixed bug reported by Bert Thomas
bernhardheld [Tue, 9 Mar 2004 21:36:07 +0000 (21:36 +0000)]
* device/lib/time.c (mktime): fixed bug reported by Bert Thomas
* sdcc.spec: updated and split sdcc into 3 rpms
* src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is needed for literals of LEFT_OP and '+'
* src/SDCCicode.c (geniCodeLogic): I must have been braindead when I introduced RESULT_TYPE_NOPROM
* src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER; limited promotion to int only for '*'
* src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3259 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agobit isn't available on serveral ports
bernhardheld [Tue, 9 Mar 2004 10:48:33 +0000 (10:48 +0000)]
bit isn't available on serveral ports

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3258 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoOoops
bernhardheld [Tue, 9 Mar 2004 08:44:47 +0000 (08:44 +0000)]
Ooops

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3257 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/lib/time.c (mktime): fixed bug reported by Bert Thomas
bernhardheld [Tue, 9 Mar 2004 08:26:36 +0000 (08:26 +0000)]
* device/lib/time.c (mktime): fixed bug reported by Bert Thomas

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3256 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
hjdorn [Tue, 9 Mar 2004 02:52:43 +0000 (02:52 +0000)]
2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>

* src/pic16/gen.c (genSkip),
(genc16bit2lit), (gencjneshort): commented out
(is_LitOp): new helper function, checks operand type
(genCmpEq): rewritten

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3255 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago * support/regression/tests/bug-908454.c: added
bernhardheld [Mon, 8 Mar 2004 20:26:20 +0000 (20:26 +0000)]
 * support/regression/tests/bug-908454.c: added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3254 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
bernhardheld [Sun, 7 Mar 2004 21:38:02 +0000 (21:38 +0000)]
* src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
* src/SDCCicode.c (usualBinaryConversions): op needs int type
(geniCodeCast): cosmetic, don't preserve bit storage class
(geniCodeLeftShift): added promotion
(geniCodeLogic): fixed regression
* src/SDCCsymt.c (computeTypeOr): accept bits too
(compareType): 2nd part of fix for bug #908454, needed for bitfields

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3253 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* support/Util/findme.c: alloca() replaced with malloc()/free() pair
borutr [Sun, 7 Mar 2004 19:41:59 +0000 (19:41 +0000)]
* support/Util/findme.c: alloca() replaced with malloc()/free() pair

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3252 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago]
vrokas [Sat, 6 Mar 2004 12:39:10 +0000 (12:39 +0000)]
]
* src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
version of pic16_genPackRegisters which does not check if ic is a
CAST operator,
* src/pic16/gen.c (ifxForOp): disabled new and untested code in
function cause string1.c regression test fails

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3251 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* sim/ucsim/configure.in,
bernhardheld [Sat, 6 Mar 2004 11:44:05 +0000 (11:44 +0000)]
* sim/ucsim/configure.in,
* sim/ucsim/configure,
* sim/ucsim/Makefile.in: use docdir
* src/SDCC.y: fixed sbit atrributes
* src/SDCCast.c (getResultTypeFromType): added support for bitfields
* src/SDCCast.c (decorateType): |^& need special promotion handling
* src/SDCCast.h,
* src/SDCCsymt.h: moved definition of RESULT_TYPE
* src/SDCCsymt.h (computeType),
* src/SDCCicode.c: computeType() needs op
* src/SDCCsymt.c (checkTypeSanity),
* doc/sddman.lyx: "plain" bitfields are unsigned
* src/SDCCsymt.c (computeTypeOr): added
* src/SDCCsymt.c (computeType): added support for bitfields, fixed |^& ops
* src/SDCCval.c (val*): computeType() needs op
* src/SDCCval.c (valCastLiteral): fixed casting of bitfields
* support/regression/tests/onebyte.c: added tests for |^&

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3250 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/pic16/gen.c: (genpic16Code) use copy of printILine's output for writing icode...
hjdorn [Sat, 6 Mar 2004 00:59:39 +0000 (00:59 +0000)]
* src/pic16/gen.c: (genpic16Code) use copy of printILine's output for writing icode into asm output.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3249 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago * src/pic16/device.c: added some debug lines enabled
vrokas [Fri, 5 Mar 2004 15:49:01 +0000 (15:49 +0000)]
* src/pic16/device.c: added some debug lines enabled
with macro DEBUG_CHECK,
* src/pic16/genarith.c: more debug in genPlus,
* (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
* (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
* src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
* (aopForSym): onStack symbols are re-placed in data memspace,
and onStack flag is cleared,
* (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
copy temporary pcodeop,
* (genPcall): added warning for not updating PCLATU,
* (genFunction): removed test with IFFUNC_CALLEESAVES, its
always true for pic16 port,
* (genMultOneWord): NEW, supports integer multiplication,
* (genMult): modified to call genMultOneWord,
* (ifxForOp): added warning when return NULL,
* src/pic16/glue.c (pic16emitRegularMap): symbol implicit
flag is set before call to operandFromSymbol for implicit
added structures,
* src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
options.intlong_rent are set by default,
* (_hasNativeMulFor): modified to allow port generation of integer
multiplication,
* src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
set regtype to REG_SFR for all registers, restricting seting the
accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3248 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agosrc/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied more than 500 times...
frief [Fri, 5 Mar 2004 11:44:23 +0000 (11:44 +0000)]
src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied more than 500 times in the regression tests

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3247 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoadded 251.b and 253.x. 253.x are applied more than 500 times in the regression tests
frief [Fri, 5 Mar 2004 11:42:32 +0000 (11:42 +0000)]
added 251.b and 253.x. 253.x are applied more than 500 times in the regression tests

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3246 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* support/Util/SDCCerr.h,
epetrich [Fri, 5 Mar 2004 07:15:07 +0000 (07:15 +0000)]
* support/Util/SDCCerr.h,
* support/Util/SDCCerr.c,
* src/SDCC.y (struct_or_union_specifier, enum_specifier,
enumerator_list),
* src/SDCCsymt.c (addSymChain): show location of oriignal definition
for symbol conflicts.
* support/valdiags/tests/enum.c,
* support/valdiags/tests/tentdecl.c,
* support/valdiags/tests/struct.c: expect possible error messages
referring to original symbol definitions.
* src/SDCC.y (struct_or_union_specifier, struct_declarator),
* src/SDCCsymt.h,
* src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3245 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
hjdorn [Wed, 3 Mar 2004 23:22:31 +0000 (23:22 +0000)]
2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>

* src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3244 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/pic16/ralloc.c (newReg): fixed bug #908929
vrokas [Wed, 3 Mar 2004 11:32:17 +0000 (11:32 +0000)]
* src/pic16/ralloc.c (newReg): fixed bug #908929

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3243 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/ds390/gen.c: added missing #include "main.h"
epetrich [Tue, 2 Mar 2004 14:16:05 +0000 (14:16 +0000)]
* src/ds390/gen.c: added missing #include "main.h"

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3242 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
vrokas [Tue, 2 Mar 2004 13:50:29 +0000 (13:50 +0000)]
* src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
checking if symbol is already in set,
* src/pic16/device.h: prototype for checkAddSym,
* src/pic16/gen.c: (_G): added entry interruptvector,
* (assignResultValue): removed some commented out lines,
* (genFunction): check for ISR via sym->type, absolute section for
interrupt code is created via a new pBlock, the goto instruction is
placed now correctly at the interrupt vector position, changed all
references from ivec to _G.interruptvector,
* WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
is the interrupt is a high priority one, same for return from ISR,
* src/pic16/glue.c: changed all calls of addSetHead for publics and
externs to calls of checkAddSym,
* src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
pic16_pcode_verbose flag is set,
* src/pic16/pcode.h: extern to pic16_pcode_verbose,
* src/pic16/pcoderegs.c: message about how many registers are saved
will only be emitted if pic16_pcode_verbose flag is set,

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3241 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/ds390/ralloc.h,
epetrich [Tue, 2 Mar 2004 04:52:37 +0000 (04:52 +0000)]
* src/ds390/ralloc.h,
* src/ds390/ralloc.c (ds390_regWithIdx),
* src/ds390/gen.c (emitcode),
* src/ds390/main.h,
* src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
ds390operandCompare, getRegsRead, getRegsWritten,
initializeAsmLineNode): customized instruction size calculation for
ds390, started basis for some register optimizations
* src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
corresponding assembly output
* src/ds390/gen.c (genFunction, genEndFunction): added case to handle
missing push/pop of r0/r1. Optimized push/pops

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3240 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/mcs51/main.c (instructionSize): fixed ACALL size
epetrich [Mon, 1 Mar 2004 06:00:16 +0000 (06:00 +0000)]
* src/mcs51/main.c (instructionSize): fixed ACALL size
* src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3239 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
vrokas [Mon, 1 Mar 2004 02:04:17 +0000 (02:04 +0000)]
* src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
the sorting of rlist with NULL elements
* (print_idataType, print_idata): NEW to create idata sections
* src/pic16/device.h: idataSymSet new variable
* src/pic16/gen.c (genFunction): fixed some bugs in string
comparing, improved the aboslute section creation for ISRs,
added FSR0L/FSR0H in registers that are saved in an ISR,
* (genInline): fixed the processing of inline snippets,
now they undergo no process by the peephole optimizer
* src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
are placed in idataSymSet,
* (pic16emitStaticSeg): extern symbols are added in externs,
* src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
switching when aboslute variables are placed in access bank memory
* (pic16_writeUsedRegs): added call to pic16_dump_idata,
* (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
commented out with #if,
* (pic16_packRegisters): reintroduce the check for CAST because some
symbols are not correctly handled,
* src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
pCodeInstruction instead of pCode,
* src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
pCodeAsmDir definition,
* (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
directive, then the argument directive is emitted without the leading
tab, hack for inline labels which must be in the first column,
* (compareLabel,pic16_findNextInstruction),
* (pic16_findPrevInstruction): added case for PO_ASMDIR,
* (insertBankSwitch): modified for the new pCodeAsmDir,

* src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
instance,
* (pushSide): commented out with #if,
* (assignResultValue): fixed some typos in saving
registers,
* (genPcall): FIXED and sync'ed with genCall,
* (genDataPointerGet,genDataPointerSet): using offset not leoffset
* (genNearPointerGet): fixed to handle some more cases,
implementation scheme via table reads,
* (genConstPointerGet): modified to access code memory correct,
* (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
and improved to handle some cases
* glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
instead of "RETLW" for init data
* src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
not IN_DIRSPACE, work around to reduce bank switching when aboslute
variables are placed in access bank memory (<0x80 and >=0xf80),
* src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
TBLWT_POSTDEC,TBLWT_PREINC
* Fixed initialisation of BSR, set "alias" for SSAVE to "0"
* (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
directives
* (pic16_pCodeConstString): use "DB" instead of "RETLW"
* src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
* src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3238 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agosrc/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
borutr [Sun, 29 Feb 2004 20:08:39 +0000 (20:08 +0000)]
src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
support/Util/findme.h, support/Util/system.h: enhance binary relative
search for lib and include by using findProgramPath()

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3237 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCpeeph.h,
epetrich [Sun, 29 Feb 2004 02:13:04 +0000 (02:13 +0000)]
* src/SDCCpeeph.h,
* src/SDCCpeeph.c (pcDistance),
* src/port.h,
* src/mcs51/ralloc.h,
* src/mcs51/ralloc.c (mcs51_regWithIdx),
* src/mcs51/main.h,
* src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
size calculation port specific, started basis for some register
optimizations
* src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
missing push/pop of r0/r1. Optimized push/pops
* src/mcs51/ralloc.c (packregisters): fixed bug #727095
* device/lib/_modsint.c (_modsint),
* device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
and stack version so regression tests pass

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3236 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in valCompare...
bernhardheld [Thu, 26 Feb 2004 20:51:08 +0000 (20:51 +0000)]
* src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in valCompare(); regression tested in muldiv.c
* support/regression/tests/muldiv.c: mod sign follows dividend only

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3235 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/Makefile.in (dep): include SLIBOBJS in dependency check
bernhardheld [Thu, 26 Feb 2004 20:04:51 +0000 (20:04 +0000)]
* src/Makefile.in (dep): include SLIBOBJS in dependency check
* src/SDCCast.c (decorateType): catch another small optimization with '?' operator
* src/SDCCsymt.c (computeType): added comments and cosmetic changes
* src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift): modified to finally use computeType() all over SDCC, see Feature Request #877103
* src/SDCCval.h: cosmetic

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3234 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoMerge back from sdcc-240
michaelh [Thu, 26 Feb 2004 06:44:17 +0000 (06:44 +0000)]
Merge back from sdcc-240

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3233 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/INSTALL.txt: fixed install instructions for win32
bernhardheld [Mon, 23 Feb 2004 20:54:44 +0000 (20:54 +0000)]
* doc/INSTALL.txt: fixed install instructions for win32

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3230 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoThis should not have been commited
bernhardheld [Mon, 23 Feb 2004 09:40:44 +0000 (09:40 +0000)]
This should not have been commited

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3229 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agosrc/SDCCast.c (decorateType): fixed bug #902362
bernhardheld [Mon, 23 Feb 2004 07:57:04 +0000 (07:57 +0000)]
src/SDCCast.c (decorateType): fixed bug #902362

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3228 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoFixed the sz80 location (again)
michaelh [Sun, 22 Feb 2004 02:33:02 +0000 (02:33 +0000)]
Fixed the sz80 location (again)

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3216 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/README.txt,
bernhardheld [Sat, 21 Feb 2004 20:52:44 +0000 (20:52 +0000)]
* doc/README.txt,
* doc/INSTALL.txt: updated for release
* doc/sdccman.lyx: added warning for --xstack being buggy

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3215 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/include/Makefile.in (install): fixed by replacing spaces by tabs
bernhardheld [Sat, 21 Feb 2004 19:48:05 +0000 (19:48 +0000)]
* device/include/Makefile.in (install): fixed by replacing spaces by tabs

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3214 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agocomments added
borutr [Fri, 20 Feb 2004 16:27:46 +0000 (16:27 +0000)]
comments added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3213 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/pic16/ralloc.c (packRegsForAccUse): disabled functions with #if to eliminate...
sdcc-builder [Fri, 20 Feb 2004 12:32:27 +0000 (12:32 +0000)]
* src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if to eliminate build warnings.
* src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3212 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
vrokas [Fri, 20 Feb 2004 00:48:07 +0000 (00:48 +0000)]
* doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
removed -penable-stack, added comment for stack pragma, added
warning for not initializing the stack/frame registers, removed
comment at interrupts section

Stack is made permanent, there is no ability to disable stack usage.
* src/pic16/device.h,
* src/pic16/device.c: removed all references to USE_STACK macro,
* src/pic16/device.c (pic16_dump_section): when no elements in
rlist, free rlist before return,
* (pic16_dump_int_registers): NEW, internal registers are a new set
of general purpose registers reused by each function,
* (checkAddReg): returns 1 if registers is added to set,
* (pic16_groupRegistersInSection): when a registers is of type
PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
* src/pic16/device.h: memRange and Assigned Memory are deleted,
SRCASECMP macro is moved here from device.c
* src/pic16/genarith.c (pic16_pCodeOpType): added cases for
PO_PCLATU, PO_PRODL, PO_PRODH,
* (pic16_pCodeOpType, genMinus,
changed compares to "a" register, with AOP_ACC,
* (pic16_genPlus): fixed some bugs and indented properly,
* (pic16_addSign): changed size to size+offset in the MOVWF
instruction,
* (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
multiply 8-bit operand by literal, result is 8-bit,
* (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
multiply 2 8-bit operand, result is 8-bit,
* (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
genUMult8X*_16,
* src/pic16/gen.c: changed accUse to contain WREG only,
* (pic16_emitcomment): renamed to pic16_emitpcomment,
* (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
true, do not use immediate addressing any more unless sym is a
pointer in codespace,
* (aopForRemat): do not use immediate addressing when symbol not in
codespace and when symbol's address is requested,
* (aopOp): for-loop in if(sym->accUse) is modified for the new
accUse size (= 1),
* (aopGet): added case for AOP_ACC and don't return "accumulator
bug" but WREG instead,
* (popGetTempReg): pushes contents of temporary register in stack,
* (popReleaseTempReg): pops contents of temporary register from
stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
* (pic16_popGet): separated case AOP_ACC to return register WREG
from processor registers, AOP_PCODE not checks if pcop is PO_DIR
or PO_IMMEDIATE and initializes their instance/offset appropriately,
* The whole issue with aopForSym,aopForRemat,popGet) is to minimize
the use of immediate pointers to certain cases only.

* (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
* (pic16_loadFromReturn, pic16_storeForReturn: NEW,
* (assignResultValue, genCall, genRet): modified to use the new
function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
genPcall is still broken,
* (genFunction): added code to create 'A' type pBlocks when
interrupt functions are generated, code not extensively tested yet,
ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
* (genEndFunction): modified so ISRs pop stored registers from stack,
* (genMultOneByte): cleanup,
* (AccRsh): added flag andmask, to and result with appropriate mask,
* (genUnpackBits,genPackBits): fixed and can handle bit fields,
* (genDataPointerGet): fixed and reenabled its use,
* (genNearDataPointerGet): bugs fixed,
* (genDataPointerSet): bugs fixed,
* src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
pic16_DumpSymbol, pic16_DumpOp,
* src/pic16/genutils.h: function prototypes for the above functions,
* src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
pointers,
* (pic16emitRegularMap): many many many improvements, but needs a
major cleanup,
* src/pic16/main.c: enable_stack in pic16_options is removed,
* (_pic16_parseOptions): removed command line options -penable-stack,
* (_process_pragma): emit stack symbol only when stack pragma is
processed,
* src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
redirected to FSR0L/FSR0H pair,
* (pic16_get_op, pic16_get_op2): modifications and improvements,
* (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
for immediates,
* (insertBankSwitch): modified to handle cases like: (alfa + 1)
* (dumpPicOptype): NEW,
* src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
* src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
with movff instruction,
* src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
added pic16_int_regs, some packRegsFor* functions are commented out,
because produce errors,
* src/pic16/NOTES: minor modifications

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3210 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoFixed bug #895763. Thanks to o_gloom.
jesusc [Wed, 18 Feb 2004 22:03:49 +0000 (22:03 +0000)]
Fixed bug #895763.  Thanks to o_gloom.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3208 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoFor release version disable anoying warnings. Debug version still has them.
jesusc [Wed, 18 Feb 2004 20:05:16 +0000 (20:05 +0000)]
For release version disable anoying warnings.  Debug version still has them.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3207 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoAdded options --stack-size and --pack-iram
jesusc [Wed, 18 Feb 2004 17:57:54 +0000 (17:57 +0000)]
Added options --stack-size and --pack-iram

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3206 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agodevice/include/c8051f320.h: added. Contributed by Maarten Brock.
bernhardheld [Tue, 17 Feb 2004 20:11:13 +0000 (20:11 +0000)]
device/include/c8051f320.h: added. Contributed by Maarten Brock.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3205 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/sdccman.lyx: added details about the HC08 storage classes and
epetrich [Tue, 17 Feb 2004 18:50:09 +0000 (18:50 +0000)]
* doc/sdccman.lyx: added details about the HC08 storage classes and
interrupts, fixed the register usage info for z80 & gbz80

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3204 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/sdccman.lyx: added more pic16 port documentation
vrokas [Mon, 16 Feb 2004 23:11:45 +0000 (23:11 +0000)]
* doc/sdccman.lyx: added more pic16 port documentation
* device/include/pic16: added header pic18fregs.h

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3203 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* doc/sdccman.lyx: added more pic16 port documentation
vrokas [Mon, 16 Feb 2004 22:18:01 +0000 (22:18 +0000)]
* doc/sdccman.lyx: added more pic16 port documentation

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3202 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agodoc/sdccman.lyx: added Vangelis' contribution
bernhardheld [Mon, 16 Feb 2004 21:16:36 +0000 (21:16 +0000)]
doc/sdccman.lyx: added Vangelis' contribution

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3201 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCClrange.c (rlivePoint): live range of SEND operand should
epetrich [Mon, 16 Feb 2004 06:30:36 +0000 (06:30 +0000)]
* src/SDCClrange.c (rlivePoint): live range of SEND operand should
extend to the next CALL or PCALL, not just to the next CALL.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3200 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
vrokas [Mon, 16 Feb 2004 02:22:49 +0000 (02:22 +0000)]
* src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3199 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
epetrich [Sun, 15 Feb 2004 07:38:30 +0000 (07:38 +0000)]
* src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
bug #895752 and a better fix for bug #716790

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3198 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCsymt.c (processFuncArgs): fixed bug #896796
epetrich [Sun, 15 Feb 2004 01:25:14 +0000 (01:25 +0000)]
* src/SDCCsymt.c (processFuncArgs): fixed bug #896796

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3197 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agodoc/sdccman.lyx: minor changes, minor changed
frief [Sat, 14 Feb 2004 09:25:39 +0000 (09:25 +0000)]
doc/sdccman.lyx: minor changes, minor changed

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3196 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoMinor changes, minor changed: 2.4.0
frief [Sat, 14 Feb 2004 09:22:14 +0000 (09:22 +0000)]
Minor changes, minor changed: 2.4.0

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3195 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports which can't...
bernhardheld [Fri, 13 Feb 2004 21:47:42 +0000 (21:47 +0000)]
* src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports which can't handle SDCC_NEWONEBYTEOPS,
(geniCodeMultiply): removed conversion from mult to shift for pic14 and pic16

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3194 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* src/hc08/gen.h,
epetrich [Thu, 12 Feb 2004 07:37:22 +0000 (07:37 +0000)]
* src/hc08/gen.h,
* src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
rmwWithAop): Ported my 2004-10-02 fix for bug #663539 to the hc08,
thus fixing bug #895406

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3193 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* device/lib/_modsint.c,
bernhardheld [Wed, 11 Feb 2004 21:30:33 +0000 (21:30 +0000)]
* device/lib/_modsint.c,
* device/lib/_modslong.c: sign follows divisor only
* src/hc08/gen.c (genMultOneByte): if result size is 1, signs or signedness can be ignored
* src/SDCCast.c (addCast): cosmetic - added lineno to CAST
* src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *, added optimization for IFX,
(decorateType): Mult/Div/ModOneByte ops can handle all kind of signed arguments;
reenabled optimization for IFX, which was removed on 2004-01-11
* src/SDCCast.h: added return type IFX
* src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed arguments with 8 or 16 bit results; pic14 and pic16 ports use old promotion behaviour;
env. var. SDCC_NEWONEBYTEOPS selects the new, SDCC_OLDONEBYTEOPS selects the old behaviour
* src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
changed again and commented promotion rule (it's still not perfect)
* src/SDCCval.c (valDiv): promotion no longer necessary
* src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
* src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte): rewritten
* support/regression/tests/onebyte.c: added

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3192 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years ago* gen.c (genInline): reverted to old code for assemnling inline
vrokas [Wed, 11 Feb 2004 18:30:45 +0000 (18:30 +0000)]
* gen.c (genInline): reverted to old code for assemnling inline
code because of bug reported James Chadd

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3191 4a8a32a2-be11-0410-ad9d-d568d2c75423

20 years agoVersion 1.18 was a copy of ralloc.h(1.7). So this version is the same as version...
jesusc [Wed, 11 Feb 2004 04:17:02 +0000 (04:17 +0000)]
Version 1.18 was a copy of ralloc.h(1.7).  So this version is the same as version 1.17.

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3189 4a8a32a2-be11-0410-ad9d-d568d2c75423