+2004-01-06 Vangelis Rokas <vrokas@otenet.gr>
+
+ PIC16 port related changes:
+ * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
+ added variable stackPos,
+
+ * gen.c: genCall, assignResultValue: added support for
+ pushing/retrieving function parameters to/from stack,
+ genFunction,genEndFunction: setup stack frame for the
+ generated function,
+ genAddrOf: will be changed according to bug 863624
+
+ * added files genutils.c and genutils.h which contain gen*
+ debugged and optimised functions extracted from gen.c
+
+ * glue.c: added variable 'externs' which holds extern symbols,
+ pic16emitRegularMap: is modified to properly handle relocatable
+ symbols under the new scheme,
+ pic16createInterruptVect: is modified
+ pic16printPublics: is modified to emit 'global' assembler directives,
+ added pic16_printExterns to print extern symbols,
+ pic16glue: initializes stack/frame pointer in the beginning of
+ the assembly output. Temporary hack, will be corrected later,
+ because gplink yet does not support stack and SDCC does not
+ yet support a type of crt0.o object to create the final binary.
+
+ * Removed many lines that contain 8051 legacy code.
+ * The code is finally placed under a 'code' directive.
+ * Added port specific options.
+
+ * _process_pragma: simplified since now we do not need *special*
+ include file to define SFR registers. But a separate header
+ will be needed. This will be developed later.
+ * _pic16_parseOptions: added, parses port specific options:
+ --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
+ --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
+ --preplace-udata-with=
+
+ * _pic16_setDefaultOptions: modified to initialize section names,
+ but hack is temporarly out of order since it needs improvement.
+ * _pic16_genAssemblerPreamble: configuration words are emitted by
+ their address instead of their name. This part is incomplete and
+ supports only the 18Fxx2 devices. Other devices will emit an error
+ during assembly since they do not contain the same set of config
+ registers
+ * _pic16_genIVT: is modified,
+
+ * pcode.c: added definitions for some hardware registers that are needed
+ for stack support
+ * added flag is2LitOp and variable pci_magic in pCodeInstruction.
+ All PCI entries are updated. Now LFSR is supported.
+ * Removed pic16_pciTRIS is mentioned by mdubuc in source
+ * added pic16_newpCodeOpLit2 to support instructions with
+ two literal arguments
+ * pic16_pCode2str: corrected code that emits assembler instructions
+ with two literal operands and those that have an access bit modifier
+ * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
+ this fixes a bug which caused some labels to be lost, when an
+ assembler directive was added, i.e. banksel,
+ * pic16_FixRegisterBanking: improved logic that causes the insertion
+ of bank switching,
+ * InlineFunction: functions that are called once, are not any more
+ inlined. This can be a port option in the future,
+
+ * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
+
+ * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
+ hold the corresponding uninitialized symbols,
+ * pic16_allocProcessorRegister: registers have explicit marked the
+ accessBank field,
+ * pic16_allocInternalRegister: registers are explicit marked as
+ not used,
+ * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
+ processing list, so bit registers were lost,
+ *
+
+ * ralloc.h: added field 'accessBank' and original symbol operand
+ in register definition,
+ * removed the field isMapped from register definition,
+
+ ** Several functions have been removed from various sources:
+ BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
+ pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
+ isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
+ pic16_assignRelocatableRegisters
+
+ ** others have been introduced:
+ pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
+ pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
+
+2004-01-05 Vangelis Rokas <vrokas@otenet.gr>
+
+ * support/scripts/inc2h.pl: changed definition of BIT_AT
+ to emit 'sbit at' instead of 'bit at'. This was a request.
+
+ PIC16 port related preliminary changes:
+ * gen.c: prefixed function popRegFromString with
+ pic16_ and all references to it corrected
+ * pcode.c: all pic16_pc_* hardware registers prefixed
+ with underscore (_),
+ pic16_popCopyGPR2Bit(): function sets register wasUsed=1
+ * ralloc.c: newReg(): when register is REG_SFR then
+ set address to rIdx,
+ pic16_allocProcessorRegister(): marks register wasUsed=0
+ pic16_writeUsedRegs(): added a call to assign processor
+ registers via pic16_assignFixedRegisters
+
+2004-01-04 Jesus Calvino-Fraga <jesusc@ece.ubc.ca>
+
+ * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
+ as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
+ variables in unused register banks. Also the SSEG is placed
+ wherever there is enough space for it, and IDATA can be anywhere
+ in internal RAM. For now compile using -Wl-Y[stack_size].
+ The mem file is different for this option as well, since it
+ makes no sense of talking about DSEG lenght.
+
+2004-01-02 Vangelis Rokas <vrokas@otenet.gr>
+
+ * src/SDCClrange.c: fixed bug 869095 that caused segfault
+ in certain cases, e.g. when ROM assignment, patch provided
+ from Albert den Haan.
+
+2004-01-01 Bernhard Held <bernhard@bernhardheld.de>
+
+ Many signedness and type propagation fixes:
+ * src/SDCCicode.c: made geniCodeCast() static
+ replaced SPEC_ by IS_ (cosmetic)
+ (operandOperation): fixed div and mod operation
+ (usualBinaryConversions): added support for promotion of char
+ (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
+ (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
+ (geniCodeAdd): an array index will stay unsigned, even if promoted
+ from char to int
+ (geniCodeArray): ditto
+ * src/SDCCicode.h: made geniCodeCast() static: removed prototype
+ * src/SDCCsymt.c (computeType): added more support for char;
+ promotion of char is selectable by promoteCharToInt, fixed signedness
+ for all cases
+ (powof2): replaced (unsigned long) by (TYPE_UDWORD)
+ * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
+ * src/SDCCval (val*): replaced signedness calculation by
+ computeType()
+ rearranged if-branches (cosmetic)
+ (valShift): added warning W_SHIFT_CHANGED
+ (valCompare): fixed problem with different types
+ * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
+ * support/regression/tests/literalop.c: added many cases
+ * support/regression/tests/ast_constant_folding.c: changed finally to
+ 'unsigned int'
+ * .version: new year, new version: 2.3.7
+ * src/SDCCmain.c (main): applied patch #866468
+ * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
+ provided by Scott Bronson
+ * doc/sdccman.lyx: updated documentation for sdcdb
+ updated and added chapter tips
+
+2004-01-01 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCsymt.h: missing from yesterday's commits
+
+2003-12-31 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCC.y (struct_or_union_specifier),
+ * support/Util/SDCCerr.c,
+ * support/Util/SDCCerr.h: verify that struct & union tags are used
+ as declared.
+
+2003-12-29 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCglobl.h: missing from yesterday's commits
+
+2003-12-28 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
+ sft_attributes, struct_declaration, parameter_declaration,
+ type_name, start_block, declaration_list),
+ * src/SDCC.lex (check_type): support redefinition of typedef names
+
+2003-12-22 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+ * src/mcs51/gen.c (genPlus): added special handling for 256 byte
+ aligned xdata arrays. Erik helped me with the if clause.
+
+2003-12-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
+ warning
+
+2003-12-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCast.h,
+ * src/SDCCast.c (newAst_),
+ * src/SDCCicode.h,
+ * src/SDCCicode.c (ast2iCode, newiCode),
+ * src/SDCCglobl.h,
+ * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
+ expr, statement, expression_statement, selection_statement,
+ iteration_statement, expr_opt, jump_statement): foundation for tracking
+ sequence points
+ * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
+ point code too)
+
+2003-12-19 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * support/Util/SDCCerr.c,
+ * src/SDCCast.h,
+ * src/SDCCast.c (createCase, createDefault, decorateType),
+ * src/SDCClabel.c (labelUnreach),
+ * src/SDCC.y (labeled_statement, jump_statement): More improvements
+ to error messages.
+ * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
+ (with thanks to Stas Sergeev)
+ * device/include/time.h,
+ * device/lib/time.c (CheckTime): suppress unreachable code warning
+
2003-12-18 Erik Petrich <epetrich@ivorytower.norman.ok.us>
* src/SDCCast.c (createIvalCharPtr),
2003-12-13 Frieder Ferlemann <Frieder.Ferlemann@web.de>
- * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
- xdata and data memory on startup. Set the environment variable
+ * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
+ xdata and data memory on startup. Set the environment variable
SDCC_NOGENRAMCLEAR to disable this.
* src/mcs51/peephole.def,
* src/ds390/peephole.def: using the atomic test and clear instruction jbc