+2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
+ Yee Keat for the patch
+ * src/SDCCast.c (decorateType): fixed bug #979599
+ * src/ds390/gen.h: removed local fReturnSizeDS390
+ * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
+ * src/ds390/gen.c (genAnd, genOr, genXor),
+ * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
+
+2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
+ add relFilesSet to $3, manipulate $2 to handle linking of object
+ files without source files in command line,
+ * device/include/pic16 (all headers): added ID location macros,
+ * src/pic16/device.c (struct PIC16_device Pics16[]): added field
+ entries for ID location bytes,
+ * (pic16_assignIdByteValue): NEW,
+ * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
+ added field dumpcalltree to pic16_options_t,
+ * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
+ is used instead of pic16_Gstack_base_addr, check if (ifx) before
+ emitting rFalseIfx label after check_carry label,
+ * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
+ pic16_emitDIRegs), NEW
+ * (pic16glue): dump .calltree file when option --calltree found,
+ * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
+ * (_pic16_genAssemblerPreamble): emit ID locations after
+ configuration registers,
+ * (pic16_linkCmd): modifications of the link command,
+ * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
+ * (pic16_pCodeInitRegisters): don't init stack registers,
+ * (pic16_findPrevInstruction): fixed bug,
+ * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
+ bug with immediate registers,
+ * (buildCallTree): traces stack push and pop,
+ * (pct2): dump also stack usage for each function,
+ * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
+ * (pic16_allocDirReg): various modifications,
+ * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
+ fixed to 1,
+
+2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * src/pic16/pcode.c: removed buggy double colon
+
+2004-07-01 Borut Razem <borut.razem AT siol.net>
+
+ * support/scripts/sdcc.nsi: added include/pic16 to setup
+
+2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * device/lib/Makefile.in: fixed bug in target objects-pic16,
+ * device/lib/pic16/Makefile: prefixed with dash (-) command under
+ target 'clean',
+ * doc/sdccman.lyx: changed version to 2.4.2 and added some port
+ specific command line arguments. Also added sample lkr script
+ for placing a variable at a specific memory bank.
+ * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
+ at a specific memory bank,
+ * (pic16_dump_isection): fixed bug which caused string literals to
+ be omitted when dumping idata section,
+ * (pic16_groupRegistersInSection): added code to handle registers
+ in specific memory banks,
+ * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
+ public, all references are renamed too,
+ * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
+ AOP_DPTR2,
+ * (pic16_storeForReturn): added case to handle when dest is WREG,
+ * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
+ * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
+ pic16_rel_udata, check to see if that register is marked as being
+ a member of a specific memory bank,
+ * (pic16_printIvalCharPtr): added code to add string literals either
+ to code or the idata sections,
+ * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
+ also accept the 'udata' pragma,
+ * src/pic16/main.h: new structure types sectName and sectSym
+ * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
+ * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
+ * (pic16_findPrevInstruction): fixed, it returned nothing,
+ * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
+ instruction combinations,
+ * (pic16_FixRegisterBanking): heavily reorganised,
+ * (pic16_AnalyzeBanking): if generating banksel directives is
+ disabled, then don't call FixRegisterBanking at all,
+ * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
+ completely removed,
+ * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
+
+2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
+ Phuah Yee Keat <yk.phuah AT nestac.com>
+
+2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * src/pic16/glue.c (pic16createInterruptVect): function now emits
+ correctly the IVT even if it is relocated to some other location
+
+2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
+ * device/include/pic16/pic18f2220.h: NEW,
+ * device/lib/pic16/libdev/pic18f2220.c: NEW,
+ * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
+ * src/pic16/device.c (struct Pics16): added info for 18f2220,
+ * src/pic16/device.h (struct pic16_options): added ivt_loc and
+ nodefaultlibs, ivt_loc is the location of the interrupt vector
+ table, and nodefaultlibs signs that default libraries should not be
+ linked in link stage,
+ * src/pic16/gen.c (genFunction): relocate interrupt vector functions
+ according to --ivt-loc argument,
+ * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
+ when pragma stack is found,
+
+2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
+ 256 (range check), 257 (do while), 258.a-f (bit banging
+ f.e. on 3-wire SPI bus)
+
+2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
+ variables used exclusively within a loop
+
+2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/mcs51/gen.c (genCpl): quick fix for bug #974835
+
+2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCClrange.c (computeClash): fixed bug #971834
+
+2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/mcs51/gen.c (genCmp): fixed bug #975903
+ * src/hc08/gen.c (operandsEqu),
+ * src/ds390/gen.c (operandsEqu),
+ * src/z80/gen.c (operandsEqu),
+ * src/pic/gen.c (operandsEqu),
+ * src/pic16/gen.c (operandsEqu),
+ * src/mcs51/gen.c (operandsEqu): fixed bug #976283
+ * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
+
+2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCcse.c (cseBBlock): fixed bug #966963
+
+2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
+ default case in switch statement,
+ * glue.c (pic16_initPointer): expr is initialised via decoarteType
+ to eliminate problem with initialisation of pointers, but problem
+ still exists,
+ * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
+ * (emitStaticSegment): removed various lines emitting debug info,
+ * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
+ added processor registers for utilizing EEPROM,
+ * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
+ configurable and set 8
+
+2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * .version: increased version number to 2.4.2,
+
+ Cumulative patch for pic16 port
+ * src/pic16/device.c: changed scheme to dump initial values for
+ variables in idata segment, all print_idata* functions were removed,
+ now the pic16_printIval* will be called,
+ * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
+ * _pic16_printPointerType, pic16_printPointerType,
+ * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
+ * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
+ NEW, similar to the respective functions in SDCCglue.c,
+ * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
+ way, emitting hex bytes,
+ * (pic16_emitDS): NEW, emits a string for pointer initialisation,
+
+2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/avr/ralloc.c (serialRegAssign),
+ * src/xa51/ralloc.c (serialRegAssign),
+ * src/pic/ralloc.c (serialRegAssign),
+ * src/pic16/ralloc.c (serialRegAssign),
+ * src/hc08/ralloc.c (serialRegAssign),
+ * src/z80/ralloc.c (serialRegAssign),
+ * src/ds390/ralloc.c (serialRegAssign),
+ * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
+
+2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
+ * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
+
+2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
+
+ Cumulative patch for pic16 port:
+ * src/pic16/device.h (typedef PIC16_device) modified fields for
+ defining microcontrollers,
+ * src/pic16/device.c: added new info for all devices in Pics16 array,
+ * src/pic16/gen.c (genPcall): fixed bug that caused the return label
+ to be optimised out by the pCode optimiser,
+ * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
+ specially, bug reported by G.M. Gallant,
+ * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
+ as force'd so that cannot be optimised out by pCode optimiser,
+ * src/pic16/pcode.c,
+ * src/pic16/pcodepeeph.c,
+ * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
+ they are disabled by default, but can be enabled explicit with
+ command argument --denable-peeps, for testing,
+ * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
+ --pomit-ivt in COMPILE_FLAGS
+
+2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
+ compilation on MSVC
+
+2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
+
+2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
+ 0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
+
+2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
+ would only assign 0x300001 register.
+
+2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
+ in COMPILE_FLAGS. Thanks to G. Gallant for report.
+
+2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * doc/sdccman.lyx: minor changes, mentioned beta vendor support
+ for ds80c400
+ * src/mcs51/peeph.def: ran unexpand -a over peeph.def
+ * src/mcs51/peeph.def: removed obsolete peephole 100.a,
+ added peephole 254 (left shift), 255 (jump table)
+
+2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * device/lib/Makefile.in: removed comment line with model-pic16,
+ * (target port-specific-objects-pic16): the libraries and objects
+ are copied to the build directory form the device/lib/pic16/bin
+ directory
+
+ Cumulative patch concerning pic16 port:
+ * library directory has been re-organized,
+ * added support for PIC18F1220,
+ * added headers and library sources for chips 18f1220,18f6520,
+ 18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
+
+ * configuration registers setting has changed, now each supported
+ device has a complete description of the registers it uses,
+ * all initialisations are moved to idata sections, these section
+ can be absolute or relocatable,
+ * fixed initialisation of codespace variables,
+ * fixed warning about PCLATU and gpsim,
+ * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
+ * (genAssign): use table reads when assigning from variables in codespace,
+ * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
+ char/int variables placed in codespace,
+ * (pic16_emitConfigRegs): NEW, emits a list with configuration
+ registers set in .asm file, no need for --pomit-config-words anymore,
+ * (pic16glue): some 8051 legacy segments are commented out
+ (to be removed completely),
+ * added support for alternative assembler and linker with --asm=
+ and --link= command line arguments,
+ * peepholes are disabled automatically in the port, no need to
+ specify on command line,
+ * port supports natively char/int/long multiplication, but converts
+ all divisions to support functions,
+ * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
+ to the file set in variable $2,
+ * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
+ strings in ASCII format and not in hex,
+ * ralloc.c (serialRegAssign): added a triplet of conditional calls
+ to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
+ allocate proper register if iCodes aren't temporary,
+
+2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * support/regression/tests/zeropad.c: added TEST_G macro for alpha
+
+2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
+ is commented out
+
+2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
+ computed address is reused
+ * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
+ multi-byte bitfields
+
+2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/z80/gen.c: (genArrayInit): must check for pointers too
+
+2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * support/regression/tests/zeropad.c: never meant to commit the
+ nestedstruct test: removed, added check for GCC version
+
+2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
+
+ * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
+ * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
+ * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
+ printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
+ bugs 928906 and 954082 half-empty initializers
+ * src/SDCCsymt.h,
+ * src/SDCCsymt.c (getAllocSize): added for above fix
+ * src/z80/gen.c (genArrayInit): fixed bug 741044
+ * support/regression/tests/zeropad.c: added tests
+
+2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * src/pic16/device.c (pic16_dump_section): corrected bug which
+ caused some symbols of the libraries to be misplaced
+
+2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * src/pic16/glue.c,
+ * src/pic16/ralloc.h,
+ * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
+ to fix conflict with pic port
+
+2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
+ externs configuration variables,
+ * src/pic16/ralloc.h,
+ * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
+ prototype in header, commented out some debug messages
+
+2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * src/pic16/glue.c,
+ * src/pic16/main.c,
+ * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
+ for gpasm COFF object generation. Thanks to D. Hawkins for
+ his patch info
+
+2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/ds390/main.c,
+ * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
+ Brock for spotting this)
+ * src/ds390/gen.c (genEndFunction),
+ * src/mcs51/gen.c (genEndFunction): always save psw if function is an
+ interrupt handler and critical. Disable push/pop optimizations when
+ peephole optimizations disabled.
+
+2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
+
+ Updated pic16 library sources and headers.
+ * device/lib/pic16/pic18f*/ ,
+ * device/include/pic16/*.h: modified to handle structured SFR
+ definitions
+
+2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
+
+ * src/port.h (PORT structure): added hook initPaths, now each
+ port can declare its own default search paths,
+ which can been seen with the --print-search-dirs option,
+ see pic16 port for example,
+ * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
+ setDataPaths): test to options.printSearchDirs is ifdef'ed out,
+ * (doPrintSearchDirs): NEW, replaces in a central manner the
+ printing of search dirs which was split in set*Paths functions,
+ * (main): added call to port->initPaths and doPrintSearchDirs,
+ * src/avr/main.c,
+ * src/ds390/main.c,
+ * src/hc08/main.c,
+ * src/izt/i186.c,
+ * src/izt/tlcs900h.c,
+ * src/mcs51/main.c,
+ * src/pic/main.c,
+ * src/pic16/main.c: modified port structures to reflect addition of
+ initPaths hook,
+
+ * src/pic16/device.c (regCompare): registers are finally sorted by name,
+ * (pic16_dump_section): for registers in same address reserve memory once,
+ * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
+ to no_banksel,
+ * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
+ result is greater in size than right or left,
+ * (pic16_genUMult8X8_8): there are some cases where the result can
+ be 16 bits size, so handle these,
+ * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
+ * (pic16_outBitC): modified to emit pcodes,
+ * (pic16_storeForReturn): using is_LitOp to see if operand is literal
+ or not,
+ * (genDivOneByte): implemented algorithm to divide 8-bits,
+ * (genCmp): uncommented goto, but issues still exist,
+ * (genAnd): fixed a bug with variables >8bits,
+ * (genPackBits): optimization added that uses BCF/BSF to change a
+ single bit,
+ * (genAssign): fixed bug when assigning floating point literals,
+ * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
+ __sdcc_gsinit_startup label,
+ * src/pic16/main.c (_pic16_init): removed search directory
+ initialisations,
+ * (_pic16_initPaths): NEW, used to initialise search directories,
+ * (_hasNativeMulFor): support functions for all except char/int
+ multiplication, and char division,
+ * (PIC16_port struct): modified entry for native mul support,
+ * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
+ no_banksel option,
+ * (buildCallTree): call to register_usage is ifdef'ed out,
+
+2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * device/include/string.h: applied Stas Sergeev's patch to make this
+ header file compatible with the preprocessor -Wundef option
+ * src/SDCCmain.c (main): abort compilation if preprocessor reports
+ failure (fixes bug #941458)
+
+2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCopt.c (killDeadCode): fixed bug #907733
+ * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
+ that the variable, not the function, should be static
+ * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
+ to be consistent with non-literal case
+
+2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCast.c (isConformingBody): fixed bug #949967
+ * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
+ convilong): fixed bug #952086
+
+2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCmem.c (allocVariables): fixed bug #955321
+
+2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/hc08/main.c (_hc08_genAssemblerEnd),
+ * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
+ dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
+ completely eliminated the use of a temporary file
+ * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
+ when more than one file linked
+ * src/SDCCloop.c (pointerAssigned): fixed bug #954163
+
+2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
+ which fixes bug #543481
+ * support/regression/tests/bug-751703.c: fixed comments left from a
+ cut and paste error
+ * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
+ * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
+ * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
+ scopes
+ * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
+ * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
+ are now changed to underscores in moduleName
+
+2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * as/mcs51/lkmem.c: better fix for bug #954173
+
+2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
+ committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
+ * device/include/c8051f000.h,
+ * device/include/c8051f120.h,
+ * device/include/c8051f300.h,
+ * device/include/c8051f310.h,
+ * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
+ PWM16) and detab'ed
+
+2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
+ and mailing lists, doc'ed --no-peep-comments, removed reference
+ to knoppix (newest version has no LyX/LaTeX), other minor changes
+ * src/SDCCglue.c (glue): save 2 bytes stack space with
+ option --main-return. The ljmp could probably be avoided too
+
+2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
+
+2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
+ * src/SDCCopt.c (isLocalWithoutDef),
+ * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
+ which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
+ (credit to Maarten Brock for patch #949363, on which this is based)
+ * support/regression/tests/bug-751703.c: some test cases of extern used
+ within inner scopes.
+
+2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
+ SPEC_STRUCT
+ * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
+ struct definitions
+ * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
+ dwWriteLabel): fix to create valid debugger symbols even when
+ the module name has non-alphanumeric symbols in it
+ * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
+ when a variable's allocation has been optimized away
+
+
+2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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
+
+2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
+ and inappropriate peephole optimization in jump tables
+
+2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * as/hc08/m08pst.c,
+ * src/SDCCglue.c: sdccopt works for the hc08 port now
+
+2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
+
+2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
+
+2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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
+
+2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCsymt.h: a missing part of my last change
+ * src/pic/ralloc.c (regTypeNum),
+ * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
+
+2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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, #930484, and #933966)
+
+2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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.
+
+2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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
+
+2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
+
+2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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)
+
+2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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
+
+2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * as/mcs51/lkihx.c: Fixed bug #899105.
+
+2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
+
+ * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
+ .dsp files from Unix to DOS.
+
+2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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
+
+2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/hc08/gen.c: output of all of the internal debugging information
+ is now controlled by the D() macro; it is disabled by default
+
+2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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
+
+2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/SDCCast.c (decorateType): fixed bug #898889,
+ cast result of a literal complement too
+ * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
+ fixed check for bitfields
+
+2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * 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
+ * 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
+
+2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/SDCCast.c (addCast): don't cast float to char
+ * device/lib/libsdcc.lib: added _memmove
+
+2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * device/lib/large/Makefile: fixed parallel execution by
+ replacing `make` by `$(MAKE)`
+
+2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
+ offsets (fixes bug #923936)
+
+2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * device/lib/small/Makefile: fixed parallel execution by
+ replacing `make` by `$(MAKE)`
+
+2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
+
+2004-03-23 Scott Dattalo <scott AT dattalo.com>
+
+ * src/pic/gen.c (genCpl): multi-byte complements were not working.
+ * src/regression/Makefile: Regression test was not running.
+
+2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * 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
+
+2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * 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
+
+2004-03-21 Scott Dattalo <scott AT dattalo.com>
+ * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
+ Bit operands were not being handled properly in the pic14 port.
+ (now src/regression/add.c passes again).
+
+2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCC.y (labeled_statement): case and default no longer require
+ a following statement (RFE #893037)
+
+2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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
+
+2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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)
+
+2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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.
+
+2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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
+
+2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
+ OSCTRIMVAL as noted in bug #916008
+
+2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * 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)
+
+2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+ * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
+ made ds390 register extensions look less like error messages
+
+2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
+
+ * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
+ reported by Adam Wozniak in Sdcc-user list
+
+2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * src/SDCCast.c (decorateType): fixed with bug and promotion in
+ arithmetic optimizations, added debug output
+
+2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * 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
+ (geniCodeMultiply): fixed logic for decision if mul is optimized to
+ left shift
+ * 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
+
+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
+
+2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
+
+ * support/regression/tests/bug-908454.c: added
+