00cf8c4a88b33e0c8774c1ff4bbeffe32b0b7703
[fw/sdcc] / ChangeLog
1 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * src/SDCCsymt.c: undid changes that were not meant to be committed
4
5 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6
7         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
8
9 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
10
11         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
12           copied and wrong bit got inverted
13
14 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
15
16         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
17         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
18         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
19         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
20         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
21         assignments to bitfields at known addresses
22         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
23         reads from bitfields at known addresses
24         * src/hc08/ralloc.c (packRegisters),
25         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
26         genhc08Code): optimize pointer get values used as conditionals
27         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
28         and branch
29
30 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
31
32         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
33         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
34         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
35         as conditionals
36
37 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
38
39         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
40
41 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
42
43         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
44         related problems
45
46 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
47
48         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
49
50 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
51
52         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
53         mcs51 port
54
55 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
56
57         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
58
59 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
60
61         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
62         cases use more compact code.
63
64 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
65
66         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
67
68 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
69
70         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
71
72 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
73
74         * src/SDCCsymt.h,
75         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
76         parameter of changePointer() from symbol* to sym_link*
77         * src/SDCCast.c (decorateType): call changePointer() for CAST op
78         * src/SDCCsymt.c (compareType): void* type is castable to other
79         pointers, but not necesarily an exact match.
80         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
81         is no longer blindly treated as an exact match.
82         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
83
84 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
85
86         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
87
88 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
89
90         * src/pic/gen.c,
91         * src/pic/pcode.c,
92         * src/pic/ralloc.h,
93         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
94
95 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
96
97         * src/pic/device.c,
98         * src/pic/device.h,
99         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
100
101 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
102
103         * src/mcs51/gen.c (emitcode): fixed bug #992819
104
105 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
106
107         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
108           there's no need to make it worse
109
110 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
111
112         * src/mcs51/ralloc.c (deassignLR),
113         * src/ds390/ralloc.c (deassignLR),
114         * src/hc08/ralloc.c (deassignLR),
115         * src/z80/ralloc.c (deassignLR),
116         * src/pic/ralloc.c (deassignLR),
117         * src/pic16/ralloc.c (deassignLR),
118         * src/avr/ralloc.c (deassignLR),
119         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
120         rlivePoint): fixed another part of bug #971834
121
122 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
123
124         * src/z80/main.c: enabled "critical" keyword
125         * src/z80/mappings.i,
126         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
127         functions (fixes bug #979646)
128         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
129
130 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
131
132         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
133           such as c:\mydir.
134
135 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
136
137         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
138           doesn't disable too much optimizations
139
140 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
141
142         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
143
144 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
145
146         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
147
148 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
149
150         * src/pic/gen.c tidied up tabs
151         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
152         * src/pic/main.c tidied up tabs
153         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
154         * src/pic/pcoderegs.c tidied up tabs
155         * src/pic/ralloc.c tidied up tabs
156
157 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
158
159         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
160         to S_FIXED for pic16 port and when symbol is not in level 0,
161         allocate for S_REGISTER storage class and pic16 port, too,
162         * src/pic16/device.h: prototype for checkSym,
163         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
164         * (pic16_assignConfigWordValue): test the value and the mask to
165         validate that the value is suitable for the configuration word,
166         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
167         collect extern declared symbols, don't emit symbol twice, check
168         first if symbol is in publics set first,
169         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
170         * added command line '--fstack' which enables an experimental
171         feature for stack access, too buggy to be used yet...
172         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
173         * (pic16_allocDirReg): when register has storage class S_REGISTER
174         allocate in pic16_dynAccessRegs,
175         * device/include/pic16/pic18f????.h: modified configuration word
176         naming convention, words started as CONFIG0H but should be CONFIG1H
177
178 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
179
180         * device/include/mcs51reg.h: fixed bug 970993
181
182 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
183
184         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
185         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
186         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
187         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
188         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
189         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
190           error/warning numbers,
191           added function setWarningDisabled()
192         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
193         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
194           _memcmp.c _memmove.c calloc.c realloc.c free.c
195         * support/regression/tests/malloc.c: added tests for new functionality
196         * support/regression/tests/zeropad.c: added tests for truncated initializers
197           and initialized char arrays starting with '\x0'
198         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
199
200 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
201
202         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
203
204 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
205
206         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
207         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
208         peephole 177.e. Thanks to anonymous
209
210 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
211
212         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
213         function isn't used in the source but referenced as a
214         variable initializer then declare it as extern in .asm file
215
216 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
217
218         * .version: increased version number to 2.4.3
219
220         Adding version extension according to ChangeLog CVS revision
221         * src/Makefile.in (target all): added dependency 'version.h'
222         * (rule version.h): added rule to create version.h from ChangeLog,
223         * (rule dep): added dependency version.h,
224         * src/version.awk: AWK script to create version.h
225         * src/SDCCdwarf2.c (dwWriteModule),
226         * src/SDCCglue.c (initialComments),
227         * src/SDCCmain.c (printVersionInfo): modified to write after
228         version string the version extension number,
229         * src/SDCCutil.c: included "version.h"
230         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
231         number,
232         * src/SDCCutil.h: added prototype for getBuildNumber
233
234         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
235         includeDirsSet, too,
236         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
237         const char [] is found in function prototype...
238
239         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
240         moving to WREG with source is already in WREG,
241         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
242         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
243         * (aopForSym): stack'ed symbols are partially supported, added
244         if-clause to support symbols in FARSPACE,
245         * (sameRegs): added test for AOP_ACC to see if registers are same,
246         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
247         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
248         * (pic16_popRegFromString): will not allocate a new register if it
249         doesn't find one by name, bug may have introduced...
250         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
251         * (genIpush): revived to use pic16 port's stack,
252         * (genAddrOf): added incomplete case for stack'ed operand,
253         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
254         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
255         can handle multibyte operands,
256         * src/pic16/glue.c (pic16_printIval*): some debug info added,
257         * (pic16initialComments): added message for MPLAB compatibility
258         mode enabled,
259         * src/pic16/main.h: prototype for pic16_mplab_comp,
260         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
261         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
262         * (_pic16_linkEdit): NEW, handles link stage, transferred here
263         because of increased complexity of procedure,
264         * (_process_pragma): stack pragma changed to format 'stack pos len',
265         emit symbol '_stack_end' to conform with gplink,
266         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
267         to search for register,
268         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
269         PO_GPR_REGISTER,
270         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
271         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
272         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
273         case for PO_GPR_REGISTER,
274         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
275         dies, the new era is ahead !...
276         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
277         pic16_dynInternalRegs,
278         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
279         * (pic16_allocDirReg): minor optimizations and bug fixes,
280         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
281
282         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
283         load stack and frame pointer with address of 'stack_end' symbol
284
285 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
286
287         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
288         without source code but only variable initializers
289
290 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
291
292         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
293         external are not declared as extern to reduce overhead while linking
294
295 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
296
297         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
298
299 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
300
301         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
302           Yee Keat for the patch
303         * src/SDCCast.c (decorateType): fixed bug #979599
304         * src/ds390/gen.h: removed local fReturnSizeDS390
305         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
306         * src/ds390/gen.c (genAnd, genOr, genXor),
307         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
308
309 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
310
311         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
312         add relFilesSet to $3, manipulate $2 to handle linking of object
313         files without source files in command line,
314         * device/include/pic16 (all headers): added ID location macros,
315         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
316         entries for ID location bytes,
317         * (pic16_assignIdByteValue): NEW,
318         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
319         added field dumpcalltree to pic16_options_t,
320         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
321         is used instead of pic16_Gstack_base_addr, check if (ifx) before
322         emitting rFalseIfx label after check_carry label,
323         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
324         pic16_emitDIRegs), NEW
325         * (pic16glue): dump .calltree file when option --calltree found,
326         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
327         * (_pic16_genAssemblerPreamble): emit ID locations after
328         configuration registers,
329         * (pic16_linkCmd): modifications of the link command,
330         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
331         * (pic16_pCodeInitRegisters): don't init stack registers,
332         * (pic16_findPrevInstruction): fixed bug,
333         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
334         bug with immediate registers,
335         * (buildCallTree): traces stack push and pop,
336         * (pct2): dump also stack usage for each function,
337         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
338         * (pic16_allocDirReg): various modifications,
339         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
340         fixed to 1,
341
342 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
343
344         * src/pic16/pcode.c: removed buggy double colon
345
346 2004-07-01 Borut Razem <borut.razem AT siol.net>
347
348         * support/scripts/sdcc.nsi: added include/pic16 to setup
349
350 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
351
352         * device/lib/Makefile.in: fixed bug in target objects-pic16,
353         * device/lib/pic16/Makefile: prefixed with dash (-) command under
354         target 'clean',
355         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
356         specific command line arguments. Also added sample lkr script
357         for placing a variable at a specific memory bank.
358         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
359         at a specific memory bank,
360         * (pic16_dump_isection): fixed bug which caused string literals to
361         be omitted when dumping idata section,
362         * (pic16_groupRegistersInSection): added code to handle registers
363         in specific memory banks,
364         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
365         public, all references are renamed too,
366         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
367         AOP_DPTR2,
368         * (pic16_storeForReturn): added case to handle when dest is WREG,
369         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
370         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
371         pic16_rel_udata, check to see if that register is marked as being
372         a member of a specific memory bank,
373         * (pic16_printIvalCharPtr): added code to add string literals either
374         to code or the idata sections,
375         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
376         also accept the 'udata' pragma,
377         * src/pic16/main.h: new structure types sectName and sectSym
378         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
379         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
380         * (pic16_findPrevInstruction): fixed, it returned nothing,
381         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
382         instruction combinations,
383         * (pic16_FixRegisterBanking): heavily reorganised,
384         * (pic16_AnalyzeBanking): if generating banksel directives is
385         disabled, then don't call FixRegisterBanking at all,
386         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
387         completely removed,
388         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
389
390 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
391
392         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
393         Phuah Yee Keat <yk.phuah AT nestac.com>
394
395 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
396
397         * src/pic16/glue.c (pic16createInterruptVect): function now emits
398         correctly the IVT even if it is relocated to some other location
399
400 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
401
402         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
403         * device/include/pic16/pic18f2220.h: NEW,
404         * device/lib/pic16/libdev/pic18f2220.c: NEW,
405         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
406         * src/pic16/device.c (struct Pics16): added info for 18f2220,
407         * src/pic16/device.h (struct pic16_options): added ivt_loc and
408         nodefaultlibs, ivt_loc is the location of the interrupt vector
409         table, and nodefaultlibs signs that default libraries should not be
410         linked in link stage,
411         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
412         according to --ivt-loc argument,
413         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
414         when pragma stack is found,
415
416 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
417
418         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
419         256 (range check), 257 (do while), 258.a-f (bit banging
420         f.e. on 3-wire SPI bus)
421
422 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
423
424         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
425         variables used exclusively within a loop
426
427 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
428
429         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
430
431 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
432
433         * src/SDCClrange.c (computeClash): fixed bug #971834
434
435 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
436
437         * src/mcs51/gen.c (genCmp): fixed bug #975903
438         * src/hc08/gen.c (operandsEqu),
439         * src/ds390/gen.c (operandsEqu),
440         * src/z80/gen.c (operandsEqu),
441         * src/pic/gen.c (operandsEqu),
442         * src/pic16/gen.c (operandsEqu),
443         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
444         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
445
446 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
447
448         * src/SDCCcse.c (cseBBlock): fixed bug #966963
449
450 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
451
452         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
453         default case in switch statement,
454         * glue.c (pic16_initPointer): expr is initialised via decoarteType
455         to eliminate problem with initialisation of pointers, but problem
456         still exists,
457         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
458         * (emitStaticSegment): removed various lines emitting debug info,
459         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
460         added processor registers for utilizing EEPROM,
461         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
462         configurable and set 8
463
464 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
465
466         * .version: increased version number to 2.4.2,
467
468         Cumulative patch for pic16 port
469         * src/pic16/device.c: changed scheme to dump initial values for
470         variables in idata segment, all print_idata* functions were removed,
471         now the pic16_printIval* will be called,
472         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
473         * _pic16_printPointerType, pic16_printPointerType,
474         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
475         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
476         NEW, similar to the respective functions in SDCCglue.c,
477         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
478         way, emitting hex bytes,
479         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
480
481 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
482
483         * src/avr/ralloc.c (serialRegAssign),
484         * src/xa51/ralloc.c (serialRegAssign),
485         * src/pic/ralloc.c (serialRegAssign),
486         * src/pic16/ralloc.c (serialRegAssign),
487         * src/hc08/ralloc.c (serialRegAssign),
488         * src/z80/ralloc.c (serialRegAssign),
489         * src/ds390/ralloc.c (serialRegAssign),
490         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
491
492 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
493
494         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
495         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
496
497 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
498
499         Cumulative patch for pic16 port:
500         * src/pic16/device.h (typedef PIC16_device) modified fields for
501         defining microcontrollers,
502         * src/pic16/device.c: added new info for all devices in Pics16 array,
503         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
504         to be optimised out by the pCode optimiser,
505         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
506         specially, bug reported by G.M. Gallant,
507         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
508         as force'd so that cannot be optimised out by pCode optimiser,
509         * src/pic16/pcode.c,
510         * src/pic16/pcodepeeph.c,
511         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
512         they are disabled by default, but can be enabled explicit with
513         command argument --denable-peeps, for testing,
514         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
515         --pomit-ivt in COMPILE_FLAGS
516
517 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
518
519         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
520           compilation on MSVC
521
522 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
523
524         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
525
526 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
527
528         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
529         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
530
531 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
532
533         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
534         would only assign 0x300001 register.
535
536 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
537
538         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
539         in COMPILE_FLAGS. Thanks to G. Gallant for report.
540
541 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
542
543         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
544         for ds80c400
545         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
546         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
547         added peephole 254 (left shift), 255 (jump table)
548
549 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
550
551         * device/lib/Makefile.in: removed comment line with model-pic16,
552         * (target port-specific-objects-pic16): the libraries and objects
553         are copied to the build directory form the device/lib/pic16/bin
554         directory
555
556         Cumulative patch concerning pic16 port:
557         * library directory has been re-organized,
558         * added support for PIC18F1220,
559         * added headers and library sources for chips 18f1220,18f6520,
560         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
561
562         * configuration registers setting has changed, now each supported
563         device has a complete description of the registers it uses,
564         * all initialisations are moved to idata sections, these section
565         can be absolute or relocatable,
566         * fixed initialisation of codespace variables,
567         * fixed warning about PCLATU and gpsim,
568         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
569         * (genAssign): use table reads when assigning from variables in codespace,
570         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
571         char/int variables placed in codespace,
572         * (pic16_emitConfigRegs): NEW, emits a list with configuration
573         registers set in .asm file, no need for --pomit-config-words anymore,
574         * (pic16glue): some 8051 legacy segments are commented out
575         (to be removed completely),
576         * added support for alternative assembler and linker with --asm=
577         and --link= command line arguments,
578         * peepholes are disabled automatically in the port, no need to
579         specify on command line,
580         * port supports natively char/int/long multiplication, but converts
581         all divisions to support functions,
582         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
583         to the file set in variable $2,
584         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
585         strings in ASCII format and not in hex,
586         * ralloc.c (serialRegAssign): added a triplet of conditional calls
587         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
588         allocate proper register if iCodes aren't temporary,
589
590 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
591
592         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
593
594 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
595
596         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
597         is commented out
598
599 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
600
601         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
602         computed address is reused
603         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
604         multi-byte bitfields
605
606 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
607
608         * src/z80/gen.c: (genArrayInit): must check for pointers too
609
610 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
611
612         * support/regression/tests/zeropad.c: never meant to commit the
613           nestedstruct test: removed, added check for GCC version
614
615 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
616
617         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
618         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
619         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
620           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
621           bugs 928906 and 954082 half-empty initializers
622         * src/SDCCsymt.h,
623         * src/SDCCsymt.c (getAllocSize): added for above fix
624         * src/z80/gen.c (genArrayInit): fixed bug 741044
625         * support/regression/tests/zeropad.c: added tests
626
627 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
628
629         * src/pic16/device.c (pic16_dump_section): corrected bug which
630         caused some symbols of the libraries to be misplaced
631
632 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
633
634         * src/pic16/glue.c,
635         * src/pic16/ralloc.h,
636         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
637         to fix conflict with pic port
638
639 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
640
641         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
642         externs configuration variables,
643         * src/pic16/ralloc.h,
644         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
645         prototype in header, commented out some debug messages
646
647 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
648
649         * src/pic16/glue.c,
650         * src/pic16/main.c,
651         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
652         for gpasm COFF object generation. Thanks to D. Hawkins for
653         his patch info
654
655 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
656
657         * src/ds390/main.c,
658         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
659         Brock for spotting this)
660         * src/ds390/gen.c (genEndFunction),
661         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
662         interrupt handler and critical. Disable push/pop optimizations when
663         peephole optimizations disabled.
664
665 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
666
667         Updated pic16 library sources and headers.
668         * device/lib/pic16/pic18f*/ ,
669         * device/include/pic16/*.h: modified to handle structured SFR
670         definitions
671
672 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
673
674         * src/port.h (PORT structure): added hook initPaths, now each
675         port can declare its own default search paths,
676         which can been seen with the --print-search-dirs option,
677         see pic16 port for example,
678         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
679         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
680         * (doPrintSearchDirs): NEW, replaces in a central manner the
681         printing of search dirs which was split in set*Paths functions,
682         * (main): added call to port->initPaths and doPrintSearchDirs,
683         * src/avr/main.c,
684         * src/ds390/main.c,
685         * src/hc08/main.c,
686         * src/izt/i186.c,
687         * src/izt/tlcs900h.c,
688         * src/mcs51/main.c,
689         * src/pic/main.c,
690         * src/pic16/main.c: modified port structures to reflect addition of
691         initPaths hook,
692
693         * src/pic16/device.c (regCompare): registers are finally sorted by name,
694         * (pic16_dump_section): for registers in same address reserve memory once,
695         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
696         to no_banksel,
697         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
698         result is greater in size than right or left,
699         * (pic16_genUMult8X8_8): there are some cases where the result can
700         be 16 bits size, so handle these,
701         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
702         * (pic16_outBitC): modified to emit pcodes,
703         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
704         or not,
705         * (genDivOneByte): implemented algorithm to divide 8-bits,
706         * (genCmp): uncommented goto, but issues still exist,
707         * (genAnd): fixed a bug with variables >8bits,
708         * (genPackBits): optimization added that uses BCF/BSF to change a
709         single bit,
710         * (genAssign): fixed bug when assigning floating point literals,
711         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
712         __sdcc_gsinit_startup label,
713         * src/pic16/main.c (_pic16_init): removed search directory
714         initialisations,
715         * (_pic16_initPaths): NEW, used to initialise search directories,
716         * (_hasNativeMulFor): support functions for all except char/int
717         multiplication, and char division,
718         * (PIC16_port struct): modified entry for native mul support,
719         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
720         no_banksel option,
721         * (buildCallTree): call to register_usage is ifdef'ed out,
722
723 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
724
725         * device/include/string.h: applied Stas Sergeev's patch to make this
726         header file compatible with the preprocessor -Wundef option
727         * src/SDCCmain.c (main): abort compilation if preprocessor reports
728         failure (fixes bug #941458)
729
730 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
731
732         * src/SDCCopt.c (killDeadCode): fixed bug #907733
733         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
734         that the variable, not the function, should be static
735         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
736         to be consistent with non-literal case
737
738 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
739
740         * src/SDCCast.c (isConformingBody): fixed bug #949967
741         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
742         convilong): fixed bug #952086
743
744 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
745
746         * src/SDCCmem.c (allocVariables): fixed bug #955321
747
748 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
749
750         * src/hc08/main.c (_hc08_genAssemblerEnd),
751         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
752         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
753         completely eliminated the use of a temporary file
754         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
755         when more than one file linked
756         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
757
758 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
759
760         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
761         which fixes bug #543481
762         * support/regression/tests/bug-751703.c: fixed comments left from a
763         cut and paste error
764         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
765         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
766         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
767         scopes
768         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
769         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
770         are now changed to underscores in moduleName
771
772 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
773
774         * as/mcs51/lkmem.c: better fix for bug #954173
775
776 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
777         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
778
779         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
780         * device/include/c8051f000.h,
781         * device/include/c8051f120.h,
782         * device/include/c8051f300.h,
783         * device/include/c8051f310.h,
784         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
785         PWM16) and detab'ed
786
787 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
788
789         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
790         and mailing lists, doc'ed --no-peep-comments, removed reference
791         to knoppix (newest version has no LyX/LaTeX), other minor changes
792         * src/SDCCglue.c (glue): save 2 bytes stack space with
793         option --main-return. The ljmp could probably be avoided too
794
795 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
796
797         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
798
799 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
800
801         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
802         * src/SDCCopt.c (isLocalWithoutDef),
803         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
804         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
805         (credit to Maarten Brock for patch #949363, on which this is based)
806         * support/regression/tests/bug-751703.c: some test cases of extern used
807         within inner scopes.
808
809 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
810
811         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
812         SPEC_STRUCT
813         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
814         struct definitions
815         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
816         dwWriteLabel): fix to create valid debugger symbols even when
817         the module name has non-alphanumeric symbols in it
818         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
819         when a variable's allocation has been optimized away
820
821
822 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
823
824         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
825         * src/hc08/main.c,
826         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
827         * src/mcs51/main.c,
828         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
829         * src/ds390/main.c,
830         * src/z80/gen.c (z80_emitDebuggerSymbol),
831         * src/z80/main.c,
832         * src/pic/gen.c (pic14_emitDebuggerSymbol),
833         * src/pic/main.c,
834         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
835         * src/pic16/main.c,
836         * src/avr/gen.c (avr_emitDebuggerSymbol),
837         * src/avr/main.c,
838         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
839         * src/xa51/main.c,
840         * src/SDCCdebug.c (emitDebuggerSymbol),
841         * src/SDCCdebug.h,
842         * src/port.h: added a debugger struct to the port struct. Added a
843         callback for defining debugger symbols
844
845         * src/SDCCast.c (createLabel),
846         * src/SDCC.y (labeled_statement): mark all compiler generated labels
847         with isitmp = 1
848         * src/SDCCicode.h,
849         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
850         iCode back to the ast for the function
851
852         * src/hc08/ralloc.c (hc08_assignRegisters),
853         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
854         unneeded fields from the regs struct.
855         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
856         pushReg() & pullReg() functions instead of emitcode()
857
858         * src/hc08/gen.c (genLabel, genhc08Code),
859         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
860
861         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
862         debugger hooks
863
864         * src/hc08/gen.c (genEndFunction, genhc08Code),
865         * src/hc08/gen.h,
866         * src/mcs51/gen.c (genEndFunction, gen51Code),
867         * src/mcs51/gen.h,
868         * src/ds390/gen.c (genEndFunction, gen390Code),
869         * src/ds390/gen.h,
870         * src/z80/gen.c (genEndFunction, genZ80Code),
871         * src/z80/gen.h,
872         * src/z80/z80.h,
873         * src/pic/gen.c (genEndFunction, genpic14Code),
874         * src/pic/gen.h,
875         * src/pic16/gen.c (genEndFunction, genpic16Code),
876         * src/pic16/gen.h,
877         * src/avr/gen.c (genEndFunction, genAVRCode),
878         * src/avr/gen.h,
879         * src/xa51/gen.c (genEndFunction, genXA51Code),
880         * src/xa51/gen.h,
881         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
882         specific code to cdbFile.c and out of the backend code generators
883
884         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
885         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
886         starting address is now 0
887
888         * as/hc08/asm.h,
889         * as/hc08/m08pst.c,
890         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
891         assembler directive for DWARF support
892         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
893
894         * src/src.dsp,
895         * src/Makefile.in,
896         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
897
898 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
899
900         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
901         and inappropriate peephole optimization in jump tables
902
903 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
904
905         * as/hc08/m08pst.c,
906         * src/SDCCglue.c: sdccopt works for the hc08 port now
907
908 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
909
910         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
911
912 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
913
914         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
915
916 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
917
918         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
919         rules
920         * src/SDCCmain.c,
921         * src/SDCCglobl.h,
922         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
923         comments from the peephole optimizer replacement rules
924         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
925         symbols
926         * src/SDCCcse.c (updateSpillLocation),
927         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
928         equivalents
929         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
930         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
931         objects far pointers
932
933 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
934
935         * src/SDCCsymt.h: a missing part of my last change
936         * src/pic/ralloc.c (regTypeNum),
937         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
938
939 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
940
941         * src/SDCCicode.h,
942         * src/SDCCicode.c (aggrToPtrDclType),
943         * src/SDCCptropt.h,
944         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
945         ptrPseudoSymConvert),
946         * src/pic/ralloc.c (regTypeNum),
947         * src/pic16/ralloc.c (regTypeNum),
948         * src/hc08/ralloc.c (regTypeNum),
949         * src/ds390/ralloc.c (regTypeNum),
950         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
951         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
952
953 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
954
955         * link/z80/lkmain.c (afile),
956         * as/hc08/lkmain.c (afile),
957         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
958         prevent a pointer problem when a filename has no directory and
959         no extension specified.
960
961 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
962
963         * link/z80/lkmain.c (afile): allow periods in directory names
964         * link/z80/lkmain.c (afile),
965         * as/mcs51/lkmain.c (afile),
966         * as/hc08/lkmain.c (afile): allow linker script file to have an
967         extension other than ".lnk"
968         * link/z80/lklex.c (getfid),
969         * link/z80/lkmain.c (parse),
970         * as/mcs51/lklex.c (getfid),
971         * as/mcs51/lkmain.c (parse),
972         * as/hc08/lklex.c (getfid),
973         * as/hc08/lkmain.c (parse): Support comments in the linker script
974         file on lines by themselves and after filenames
975
976 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
977
978         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
979
980 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
981
982         * src/z80/peeph-z80.def: removed some peephole rules that don't
983         work with multibyte arithmetic (fixed bug #937126)
984         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
985         to registers and not global variables
986         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
987         geniCodePreInc, geniCodePostDec, geniCodePreDec,
988         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
989         checking for assignments not internally generated (fixed bug #931895)
990         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
991         structure member (fixed bug #930072)
992
993 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
994
995         * src/SDCCmain.c (linkEdit),
996         * src/hc08/main.c (_hc08_parseOptions),
997         * as/hc08/Makefile.in,
998         * as/hc08/aslink.h,
999         * as/hc08/asm.h,
1000         * as/hc08/m08pst.c,
1001         * as/hc08/lkrloc.c (relr, rele),
1002         * as/hc08/lkarea.c (lnkarea)
1003         * as/hc08/lkmain.c (afile, parse),
1004         * as/hc08/lkelf.c: support for ELF output
1005         * as/hc08/lks19.c (s19),
1006         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
1007
1008 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1009
1010         * as/mcs51/lkihx.c: Fixed bug #899105.
1011
1012 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1013
1014         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
1015         .dsp files from Unix to DOS.
1016
1017 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1018
1019         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
1020         function pointers; we have been compliant for several months now.
1021         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
1022         change that was accidently commented out
1023         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
1024         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
1025         bug #922319
1026
1027 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1028
1029         * src/hc08/gen.c: output of all of the internal debugging information
1030         is now controlled by the D() macro; it is disabled by default
1031
1032 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1033
1034         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
1035         harder to keep the same registers during a CAST iCode
1036         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
1037         long via int can be done in a single cast, if the signedness is
1038         correct.
1039         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
1040         putchar() in tinibios.c in ds390's library
1041
1042 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
1043
1044         * src/SDCCast.c (decorateType): fixed bug #898889,
1045         cast result of a literal complement too
1046         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
1047         fixed check for bitfields
1048
1049 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
1050
1051         * src/SDCCicode.c (geniCodeLogic): made it static,
1052         (geniCodeLogicAndOr): added in order to fix bug #905492,
1053         (ast2iCode): fixed bug #905492
1054         * support/regression/tests/bug-905492.c: added
1055         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
1056         (processParms): fixed bug #927659: don't copy parms, this will clear
1057         decorated flag
1058         * support/regression/tests/bug-927659.c: added
1059
1060 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
1061
1062         * src/SDCCast.c (addCast): don't cast float to char
1063         * device/lib/libsdcc.lib: added _memmove
1064
1065 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
1066
1067         * device/lib/large/Makefile: fixed parallel execution by
1068         replacing `make` by `$(MAKE)`
1069
1070 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1071
1072         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
1073         offsets (fixes bug #923936)
1074
1075 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
1076
1077         * device/lib/small/Makefile: fixed parallel execution by
1078         replacing `make` by `$(MAKE)`
1079
1080 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
1081
1082         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
1083
1084 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
1085
1086         * src/pic/gen.c (genCpl): multi-byte complements were not working.
1087         * src/regression/Makefile: Regression test was not running.
1088
1089 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
1090
1091         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
1092         complement if possible
1093         * src/SDCCval.c (valComplement),
1094         * src/SDCCicode.c (operandOperation): fixed complement of literal
1095         * support/regression/tests/onebyte.c (testComplement): added
1096
1097 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
1098
1099         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
1100         return an optimized tree; actually replace actParm with the new tree
1101         * src/SDCCast.h: added some parantheses to remove side effects
1102         * support/regression/tests/bug-920866.c
1103
1104 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
1105         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
1106         Bit operands were not being handled properly in the pic14 port.
1107         (now src/regression/add.c passes again).
1108
1109 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1110
1111         * src/SDCC.y (labeled_statement): case and default no longer require
1112         a following statement (RFE #893037)
1113
1114 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1115
1116         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
1117         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
1118         disabled (fixes bug #916294)
1119         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
1120         "mov a,acc"; patch provided by Lenny Story
1121         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
1122
1123 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1124
1125         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
1126         functions
1127         * src/ds390/gen.c (genFunction, genEndFunction),
1128         * src/ds390/ralloc.c (ds390_assignRegisters),
1129         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
1130         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
1131         pushed if there are parameters passed on the stack. Also, a cleaner
1132         way to decide if r0/r1 should be pushed/popped. (Together they fix
1133         bug #918693)
1134
1135 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1136
1137         * doc/sdccman.lyx,
1138         * device/lib/mcs51/crtpagesfr.asm,
1139         * device/lib/mcs51/crtxinit.asm,
1140         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
1141         to avoid confusion with Si Lab's SFRPAGE register.
1142
1143 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1144
1145         * src/SDCCglue.c (emitMaps): allow public sfr variables
1146         * src/SDCCglue.c (initialComments): include compiler build date
1147         with compiler version and put the timestamp of the generated
1148         assembly file on a serperate line to be less confusing.
1149         * src/port.h: added genInitStartup hook
1150         * src/avr/main.c,
1151         * src/ds390/main.c,
1152         * src/hc08/main.c,
1153         * src/pic/main.c,
1154         * src/pic16/main.c,
1155         * src/xa51/main.c,
1156         * src/z80/main.c: genInitStartup initialize as NULL (default to
1157         historical behaviour)
1158         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
1159         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
1160         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
1161         library instead of hard coding it into the compiler.
1162         * support/regression/ports/mcs51-stack-auto/spec.mk,
1163         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
1164         * device/lib/mcs51/Makefile,
1165         * device/lib/small/Makefile,
1166         * device/lib/large/Makefile,
1167         * device/lib/mcs51/crtpagesfr.asm,
1168         * device/lib/mcs51/crtstart.asm,
1169         * device/lib/mcs51/crtxclear.asm,
1170         * device/lib/mcs51/crtxinit.asm,
1171         * device/lib/mcs51/crtclear.asm,
1172         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
1173         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
1174         and into user configurable files.
1175         * device/lib/clean.mk: clean mcs51 directory too
1176         * support/regression/tests/longlit.c: added static to T1 declaration
1177         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
1178         accesses in the initialization code
1179
1180 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1181
1182         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
1183         OSCTRIMVAL as noted in bug #916008
1184
1185 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1186
1187         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
1188         in loops with multiple exits (reported as incorrect registers
1189         used by Martin Helmling in Sdcc-user list)
1190
1191 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1192
1193         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
1194         made ds390 register extensions look less like error messages
1195
1196 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1197
1198         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
1199         reported by Adam Wozniak in Sdcc-user list
1200
1201 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
1202
1203         * src/SDCCast.c (decorateType): fixed with bug and promotion in
1204         arithmetic optimizations, added debug output
1205
1206 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
1207
1208         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
1209         * sdcc.spec: updated and split sdcc into 3 rpms
1210         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
1211         needed for literals of LEFT_OP and '+'
1212         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
1213         introduced RESULT_TYPE_NOPROM
1214         (geniCodeMultiply): fixed logic for decision if mul is optimized to
1215         left shift
1216         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
1217         limited promotion to int only for '*'
1218         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
1219
1220 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
1221
1222         * src/pic16/gen.c (genSkip),
1223         (genc16bit2lit), (gencjneshort): commented out
1224         (is_LitOp): new helper function, checks operand type
1225         (genCmpEq): rewritten
1226
1227 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
1228
1229         * support/regression/tests/bug-908454.c: added
1230
1231 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
1232
1233         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
1234         * src/SDCCicode.c (usualBinaryConversions): op needs int type
1235         (geniCodeCast): cosmetic, don't preserve bit storage class
1236         (geniCodeLeftShift): added promotion
1237         (geniCodeLogic): fixed regression
1238         * src/SDCCsymt.c (computeTypeOr): accept bits too
1239         (compareType): 2nd part of fix for bug #908454, needed for bitfields
1240
1241 2004-03-07  Borut Razem <borut.razem AT siol.net>
1242
1243         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
1244
1245 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
1246
1247         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
1248         version of pic16_genPackRegisters which does not check if ic is a
1249         CAST operator,
1250         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
1251         function cause string1.c regression test fails
1252
1253 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
1254
1255         * sim/ucsim/configure.in,
1256         * sim/ucsim/configure,
1257         * sim/ucsim/doc/Makefile.in: use docdir
1258         * src/SDCC.y: fixed sbit atrributes
1259         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
1260         * src/SDCCast.c (decorateType): |^& need special promotion handling
1261         * src/SDCCast.h,
1262         * src/SDCCsymt.h: moved definition of RESULT_TYPE
1263         * src/SDCCsymt.h (computeType),
1264         * src/SDCCicode.c: computeType() needs op
1265         * src/SDCCsymt.c (checkTypeSanity),
1266         * doc/sddman.lyx: "plain" bitfields are unsigned
1267         * src/SDCCsymt.c (computeTypeOr): added
1268         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
1269         |^& ops
1270         * src/SDCCval.c (val*): computeType() needs op
1271         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
1272         * support/regression/tests/onebyte.c: added tests for |^&
1273
1274 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
1275
1276         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
1277         for writing icode into asm output.
1278
1279 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
1280
1281         * src/pic16/device.c: added some debug lines enabled
1282         with macro DEBUG_CHECK,
1283         * src/pic16/genarith.c: more debug in genPlus,
1284         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
1285         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
1286         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
1287         * (aopForSym): onStack symbols are re-placed in data memspace,
1288         and onStack flag is cleared,
1289         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
1290         copy temporary pcodeop,
1291         * (genPcall): added warning for not updating PCLATU,
1292         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
1293         always true for pic16 port,
1294         * (genMultOneWord): NEW, supports integer multiplication,
1295         * (genMult): modified to call genMultOneWord,
1296         * (ifxForOp): added warning when return NULL,
1297         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
1298         flag is set before call to operandFromSymbol for implicit
1299         added structures,
1300         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
1301         options.intlong_rent are set by default,
1302         * (_hasNativeMulFor): modified to allow port generation of integer
1303         multiplication,
1304         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
1305         set regtype to REG_SFR for all registers, restricting seting the
1306         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
1307
1308 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1309
1310         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
1311         more than 500 times in the regression tests
1312
1313 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1314
1315         * support/Util/SDCCerr.h,
1316         * support/Util/SDCCerr.c,
1317         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
1318         enumerator_list),
1319         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
1320         for symbol conflicts.
1321         * support/valdiags/tests/enum.c,
1322         * support/valdiags/tests/tentdecl.c,
1323         * support/valdiags/tests/struct.c: expect possible error messages
1324         referring to original symbol definitions.
1325         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
1326         * src/SDCCsymt.h,
1327         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
1328
1329 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
1330
1331         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
1332
1333 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
1334
1335         * src/pic16/ralloc.c (newReg): fixed bug #908929
1336
1337 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1338
1339         * src/ds390/gen.c: added missing #include "main.h"
1340
1341 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
1342
1343         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
1344         checking if symbol is already in set,
1345         * src/pic16/device.h: prototype for checkAddSym,
1346         * src/pic16/gen.c: (_G): added entry interruptvector,
1347         * (assignResultValue): removed some commented out lines,
1348         * (genFunction): check for ISR via sym->type, absolute section for
1349         interrupt code is created via a new pBlock, the goto instruction is
1350         placed now correctly at the interrupt vector position, changed all
1351         references from ivec to _G.interruptvector,
1352         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
1353         is the interrupt is a high priority one, same for return from ISR,
1354         * src/pic16/glue.c: changed all calls of addSetHead for publics and
1355         externs to calls of checkAddSym,
1356         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
1357         pic16_pcode_verbose flag is set,
1358         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
1359         * src/pic16/pcoderegs.c: message about how many registers are saved
1360         will only be emitted if pic16_pcode_verbose flag is set,
1361
1362 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1363
1364         * src/ds390/ralloc.h,
1365         * src/ds390/ralloc.c (ds390_regWithIdx),
1366         * src/ds390/gen.c (emitcode),
1367         * src/ds390/main.h,
1368         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
1369         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
1370         ds390operandCompare, getRegsRead, getRegsWritten,
1371         initializeAsmLineNode): customized instruction size calculation for
1372         ds390, started basis for some register optimizations
1373         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
1374         corresponding assembly output
1375         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
1376         missing push/pop of r0/r1. Optimized push/pops
1377
1378 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1379
1380         * src/mcs51/main.c (instructionSize): fixed ACALL size
1381         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
1382
1383 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
1384
1385         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
1386         the sorting of rlist with NULL elements
1387         * (print_idataType, print_idata): NEW to create idata sections
1388         * src/pic16/device.h: idataSymSet new variable
1389         * src/pic16/gen.c (genFunction): fixed some bugs in string
1390         comparing, improved the absolute section creation for ISRs,
1391         added FSR0L/FSR0H in registers that are saved in an ISR,
1392         * (genInline): fixed the processing of inline snippets,
1393         now they undergo no process by the peephole optimizer
1394         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
1395         are placed in idataSymSet,
1396         * (pic16emitStaticSeg): extern symbols are added in externs,
1397         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
1398         switching when aboslute variables are placed in access bank memory
1399         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
1400         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
1401         commented out with #if,
1402         * (pic16_packRegisters): reintroduce the check for CAST because some
1403         symbols are not correctly handled,
1404         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
1405         pCodeInstruction instead of pCode,
1406         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
1407         pCodeAsmDir definition,
1408         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
1409         directive, then the argument directive is emitted without the leading
1410         tab, hack for inline labels which must be in the first column,
1411         * (compareLabel,pic16_findNextInstruction),
1412         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
1413         * (insertBankSwitch): modified for the new pCodeAsmDir,
1414
1415 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
1416         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
1417
1418         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
1419         instance,
1420         * (pushSide): commented out with #if,
1421         * (assignResultValue): fixed some typos in saving
1422         registers,
1423         * (genPcall): FIXED and sync'ed with genCall,
1424         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
1425         * (genNearPointerGet): fixed to handle some more cases,
1426         implementation scheme via table reads,
1427         * (genConstPointerGet): modified to access code memory correct,
1428         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
1429         and improved to handle some cases
1430         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
1431         instead of "RETLW" for init data
1432         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
1433         not IN_DIRSPACE, work around to reduce bank switching when aboslute
1434         variables are placed in access bank memory (<0x80 and >=0xf80),
1435         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
1436         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
1437         TBLWT_POSTDEC,TBLWT_PREINC
1438         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
1439         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
1440         directives
1441         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
1442         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
1443         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
1444         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
1445
1446 2004-02-29  Borut Razem <borut.razem AT siol.net>
1447
1448         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
1449         support/Util/findme.h, support/Util/system.h: enhance binary relative
1450         search for lib and include by using findProgramPath()
1451
1452 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1453
1454         * src/SDCCpeeph.h,
1455         * src/SDCCpeeph.c (pcDistance),
1456         * src/port.h,
1457         * src/mcs51/ralloc.h,
1458         * src/mcs51/ralloc.c (mcs51_regWithIdx),
1459         * src/mcs51/main.h,
1460         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
1461         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
1462         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
1463         size calculation port specific, started basis for some register
1464         optimizations
1465         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
1466         missing push/pop of r0/r1. Optimized push/pops
1467         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
1468         * device/lib/_modsint.c (_modsint),
1469         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
1470         and stack version so regression tests pass
1471
1472 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
1473
1474         * src/Makefile.in (dep): include SLIBOBJS in dependency check
1475         * src/SDCCast.c (decorateType): catch another small optimization
1476         with '?' operator
1477         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
1478         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
1479         modified to finally use computeType() all over SDCC,
1480         see Feature Request #877103
1481         * src/SDCCval.h: cosmetic
1482         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
1483         valCompare(); regression tested in muldiv.c
1484         * support/regression/tests/muldiv.c (testMod): mod sign follows
1485         dividend only
1486
1487 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
1488
1489         * src/SDCCast.c (decorateType): fixed bug #902362
1490         * doc/INSTALL.txt: fixed install instructions for win32
1491
1492 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
1493
1494         * device/include/Makefile.in (install): fixed by replacing spaces
1495         by tabs
1496         * doc/README.txt,
1497         * doc/INSTALL.txt: updated for release
1498         * doc/sdccman.lyx: added warning for --xstack being buggy
1499
1500 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
1501
1502         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
1503         to eliminate build warnings.
1504         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
1505
1506 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
1507            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
1508
1509         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
1510         removed -penable-stack, added comment for stack pragma, added
1511         warning for not initializing the stack/frame registers, removed
1512         comment at interrupts section
1513
1514         Stack is made permanent, there is no ability to disable stack usage.
1515         * src/pic16/device.h,
1516         * src/pic16/device.c: removed all references to USE_STACK macro,
1517         * src/pic16/device.c (pic16_dump_section): when no elements in
1518         rlist, free rlist before return,
1519         * (pic16_dump_int_registers): NEW, internal registers are a new set
1520         of general purpose registers reused by each function,
1521         * (checkAddReg): returns 1 if registers is added to set,
1522         * (pic16_groupRegistersInSection): when a registers is of type
1523         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
1524         * src/pic16/device.h: memRange and Assigned Memory are deleted,
1525         SRCASECMP macro is moved here from device.c
1526         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
1527         PO_PCLATU, PO_PRODL, PO_PRODH,
1528         * (pic16_pCodeOpType, genMinus,
1529         changed compares to "a" register, with AOP_ACC,
1530         * (pic16_genPlus): fixed some bugs and indented properly,
1531         * (pic16_addSign): changed size to size+offset in the MOVWF
1532         instruction,
1533         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
1534         multiply 8-bit operand by literal, result is 8-bit,
1535         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
1536         multiply 2 8-bit operand, result is 8-bit,
1537         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
1538         genUMult8X*_16,
1539         * src/pic16/gen.c: changed accUse to contain WREG only,
1540         * (pic16_emitcomment): renamed to pic16_emitpcomment,
1541         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
1542         true, do not use immediate addressing any more unless sym is a
1543         pointer in codespace,
1544         * (aopForRemat): do not use immediate addressing when symbol not in
1545         codespace and when symbol's address is requested,
1546         * (aopOp): for-loop in if(sym->accUse) is modified for the new
1547         accUse size (= 1),
1548         * (aopGet): added case for AOP_ACC and don't return "accumulator
1549         bug" but WREG instead,
1550         * (popGetTempReg): pushes contents of temporary register in stack,
1551         * (popReleaseTempReg): pops contents of temporary register from
1552         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
1553         * (pic16_popGet): separated case AOP_ACC to return register WREG
1554         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
1555         or PO_IMMEDIATE and initializes their instance/offset appropriately,
1556         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
1557         the use of immediate pointers to certain cases only.
1558
1559         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
1560         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
1561         * (assignResultValue, genCall, genRet): modified to use the new
1562         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
1563         genPcall is still broken,
1564         * (genFunction): added code to create 'A' type pBlocks when
1565         interrupt functions are generated, code not extensively tested yet,
1566         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
1567         * (genEndFunction): modified so ISRs pop stored registers from stack,
1568         * (genMultOneByte): cleanup,
1569         * (AccRsh): added flag andmask, to and result with appropriate mask,
1570         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
1571         * (genDataPointerGet): fixed and reenabled its use,
1572         * (genNearDataPointerGet): bugs fixed,
1573         * (genDataPointerSet): bugs fixed,
1574         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
1575         pic16_DumpSymbol, pic16_DumpOp,
1576         * src/pic16/genutils.h: function prototypes for the above functions,
1577         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
1578         pointers,
1579         * (pic16emitRegularMap): many many many improvements, but needs a
1580         major cleanup,
1581         * src/pic16/main.c: enable_stack in pic16_options is removed,
1582         * (_pic16_parseOptions): removed command line options -penable-stack,
1583         * (_process_pragma): emit stack symbol only when stack pragma is
1584         processed,
1585         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
1586         redirected to FSR0L/FSR0H pair,
1587         * (pic16_get_op, pic16_get_op2): modifications and improvements,
1588         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
1589         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
1590         for immediates,
1591         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
1592         * (dumpPicOptype): NEW,
1593         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
1594         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
1595         with movff instruction,
1596         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
1597         added pic16_int_regs, some packRegsFor* functions are commented out,
1598         because produce errors,
1599         * src/pic16/NOTES: minor modifications
1600
1601 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1602
1603         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
1604         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
1605         --pack-iram.
1606         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
1607         * as/mcs51/lkaomf51.c: fixed bug #895763
1608
1609 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
1610
1611         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
1612
1613 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1614
1615         * doc/sdccman.lyx: added details about the HC08 storage classes and
1616         interrupts, fixed the register usage info for z80 & gbz80
1617
1618 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
1619
1620         * doc/sdccman.lyx: added more pic16 port documentation
1621         * device/include/pic16/: added header pic18fregs.h
1622
1623 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
1624
1625         * doc/sdccman.lyx: added Vangelis' contribution
1626
1627 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1628
1629         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
1630         extend to the next CALL or PCALL, not just to the next CALL.
1631
1632 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
1633
1634         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
1635
1636 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1637
1638         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
1639         bug #895752 and a better fix for bug #716790
1640
1641 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1642
1643         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
1644
1645 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1646
1647         * doc/sdccman.lyx: minor changes, minor changed
1648
1649 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
1650
1651         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
1652         which can't handle SDCC_NEWONEBYTEOPS,
1653         (geniCodeMultiply): removed conversion from mult to shift for pic14
1654         and pic16
1655
1656 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1657
1658         * src/hc08/gen.h,
1659         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
1660         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
1661         thus fixing bug #895406
1662
1663 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
1664
1665         * device/lib/_modsint.c,
1666         * device/lib/_modslong.c: sign follows divisor only
1667         * src/hc08/gen.c (genMultOneByte): if result size is 1,
1668         signs or signedness can be ignored
1669         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
1670         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
1671         added optimization for IFX,
1672         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
1673         arguments;
1674         reenabled optimization for IFX, which was removed on 2004-01-11
1675         * src/SDCCast.h: added return type IFX
1676         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
1677         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
1678         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
1679         SDCC_OLDONEBYTEOPS selects the old behaviour
1680         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
1681         changed again and commented promotion rule
1682         * src/SDCCval.c (valDiv): promotion no longer necessary
1683         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
1684         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
1685         rewritten
1686         * support/regression/tests/onebyte.c: added
1687
1688 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
1689
1690         * gen.c (genInline): reverted to old code for assemnling inline
1691         code because of bug reported James Chadd
1692
1693 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
1694
1695         * ralloc.h: missing declarations from previous patch,
1696         seems that patch for ralloc.h was never applied, fixed
1697
1698 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
1699            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
1700
1701         * pcode.c,
1702         * pcode.h,
1703         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
1704         indirect addressing. Marked FSR0 as deprecated
1705         * gen.c (pointerCode): commented out, not needed now
1706         (pic16_popGet2p): new MOVFF helper function
1707         (genGenPointerGet),
1708         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
1709         (shiftRLong): removed duplicate debugging info
1710
1711 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1712
1713         * src/ds390/gen.c (genNearPointerGet),
1714         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
1715         optimization with bits, but not bitfields.
1716         * src/ds390/ralloc.c (packRegisters),
1717         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
1718
1719 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
1720
1721         * src/SDCCcse.c (algebraicOpts): copy operands before modification
1722
1723 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1724
1725         * src/SDCCsymt.h,
1726         * src/SDCCicode.c (operandFromSymbol),
1727         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
1728         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
1729         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
1730         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
1731         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
1732         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
1733         bug #892038
1734         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
1735         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
1736         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
1737         * src/SDCCsymt.c (newSymbol),
1738         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
1739         enumerator_list),
1740         * src/SDCCval.h,
1741         * src/SDCCval.c (newiList): fixed bug #885705
1742
1743 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1744
1745         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
1746         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
1747
1748 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1749
1750         * device/include/c8051f120.h,
1751         * device/include/c8051f300.h,
1752         * device/include/c8051f310.h: added/updated header files for Silicon
1753         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
1754         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
1755         in new section Submitting patches
1756
1757 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1758
1759         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
1760         genFarPointerGet, genCodePointerGet, genGenPointerGet,
1761         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
1762         genGenPointerSet),
1763         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
1764         genFarPointerGet, genCodePointerGet, genGenPointerGet,
1765         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
1766         genGenPointerSet),
1767         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
1768         genFarPointerGet, genCodePointerGet, genGenPointerGet,
1769         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
1770         genGenPointerSet),
1771         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
1772         genFarPointerGet, genCodePointerGet, genGenPointerGet,
1773         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
1774         genGenPointerSet): fixed bug #892400
1775         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
1776         to eliminate build warnings.
1777         * src/SDCCast.c (processParms),
1778         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
1779         fixed bug 751859
1780         * support/valdiag/valdiag.py: added GCC to the list of defines active
1781         when compiling with gcc
1782
1783 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1784
1785         * support/Util/SDCCerr.h,
1786         * support/Util/SDCCerr.c,
1787         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
1788         with an incomplete type (fixed bug #883734)
1789         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
1790
1791 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1792
1793         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
1794
1795 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1796
1797         * src/SDCCast.c (decorateType),
1798         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
1799         function pointer implementation
1800         * support/regression/tests/funptrs.c: added tests to verify both forms
1801         of function pointers work correctly. Added tests to verify parameters
1802         are passed in the correct order.
1803
1804 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
1805
1806         * device.c (regCompare): registers are sorted by ascending
1807         address and increasing size,
1808         * main.c (_pic16_finaliseOptions): removed the declaration
1809         of compiler macro MCU. Now a macro of the format pic18fxxxx
1810         will be defined from the command line
1811
1812 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
1813             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
1814
1815         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
1816         PCOP_RLCF was overwritten!
1817         * gen.c (genSkip): commented out calls to pic16_emitcode,
1818         * (genCmpEQ): fixed "long" compares, only high word did get compared,
1819         * (genlshTwo),
1820         * (genRRC): added debugging info,
1821         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
1822         overwritten while shifting,
1823         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
1824         overwritten while shifting,
1825         * (AccLsh),
1826         * (AccRsh),
1827         * (shiftLLeftOrResult),
1828         * (shiftRLeftOrResult),
1829         * (shiftRLong),
1830         * (shiftLLong): Implemented with pic16_emitpcode
1831         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
1832         * (genLeftShift): Fixed bug, operand for shift by variable always
1833         was "and"ed with 0x0f,
1834         * (genLeftShiftLiteral),
1835         * (genrshTwo),
1836         * (genRightShiftLiteral): added debugging info,
1837         * (genrshFour): added comment,
1838         * (genRightShift): determined signedness from operand "left"
1839         instead of "result"
1840
1841 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1842
1843         * src/SDCCicode.c (geniCodeParms),
1844         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
1845         function pointers, fixed function pointer bugs #861242 and #861896
1846
1847 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1848
1849         * device/include/c8051f000.h,
1850         * device/include/c8051f120.h,
1851         * device/include/c8051f300.h: added header files for Silicon
1852         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
1853
1854 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
1855
1856         * src/SDCCast.c (processParams): added new type flow and restructured
1857         (gatherAutoInit): added new type flow
1858         (addCast): cosmetic changes
1859         (getLeftResultType): added new type flow for array indices, patch
1860         provided by Stas, see FR #877103
1861         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
1862         array index patch by Stas
1863         * src/SDCCast.h: added prototype getResultTypeFromType()
1864         * src/SDCCval.h,
1865         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
1866         * src/pic/glue.c (pic14emitStaticSeg),
1867         * src/pic16/glue.c (pic16emitStaticSeg),
1868         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
1869         for initialization of symbols
1870         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
1871         * support/Util/SDCCerr.h:
1872         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
1873         * .version: bumped version number to 2.3.8
1874         * device/include/Makefile.in (install),
1875         * doc/Makefile (install): changed to 'rm `find ...`' construct to
1876         avoid warnings
1877
1878 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
1879
1880         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
1881         Slade Rich fixed an optimization bug
1882         * src/pic/pcodepeep.c,
1883         * src/pic/pcoderegs.c
1884         * doc/Makefile (install): added test for directory
1885
1886 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1887
1888         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
1889         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
1890         * src/pic/ralloc.c (getRegPtr, getRegGpr),
1891         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
1892         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
1893         * as/mcs51/asexpr.c (term),
1894         * as/hc08/asexpr.c (term): fixed bug #887146
1895
1896 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1897
1898         * src/z80/gen.c (genMult): handle single byte result product
1899         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
1900         DUMMY_READ_VOLATILE (fixed bug #886367)
1901
1902 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
1903
1904         * support/regression/tests/libmullong.c: fixed logic, on little endian
1905         hosts we ended without a mullong_wrapper()
1906
1907 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1908
1909         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
1910         virus/worm forged address usage.
1911
1912 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
1913
1914         Fixed promotion, it should be done on AST level:
1915         * src/SDCCast.c (addCast): added promotion to int
1916         (decorateType): updated call to upCast()
1917         * src/SDCCicode.c (geniCodeLeftShift): removed call to
1918         usualUnaryConversions()
1919
1920 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
1921
1922         * support/regression/tests/literalop.c (mulWrapper): Added a
1923         wrapper to remove integer overflow warnings.
1924
1925         * support/regression/tests/float_trans.c: Made work on host.
1926
1927         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
1928         location of sz80.
1929
1930         * support/regression/generate-cases.py (main): Changed from inline
1931         to a main method.
1932
1933         * doc/Makefile (install): Changed to depth first to get rid of
1934         missing directory install warning.
1935
1936         * as/Makefile (install-doc): Made work on Mac.
1937
1938 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
1939
1940         * src/SDCCast.c: added an additional type flow in decorateType() of
1941         opposite direction, see feature request #860006; it's enabled at runtime
1942         by setting the environment variable SDCC_NEWTYPEFLOW
1943         * src/SDCCast.h: changed prototype of decorateType()
1944         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
1945         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
1946         'char' to 'int' can be omitted, if both operands are 'unsigned char';
1947         see feature request #877103
1948         * src/SDCCval.c: updated call of decorateType()
1949         (valBitwise): fixed bug #882876
1950         (valMinus): added promotion
1951         (valLogicAndOr): result is unsigned
1952         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
1953         * src/SDCCsymt.c (computeType),
1954         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
1955         must not cause an unsigned operation
1956         * src/pic/glue (pic14emitRegularMap),
1957         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
1958
1959 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
1960
1961         * src/pic/pcode.c (PCodeID): commented out left over debug code
1962
1963 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
1964
1965         * support/valdiag/tests/overflow.c: added shift tests
1966         * src/pic/device.c,
1967         * src/pic/gen.c,
1968         * src/pic/gen.h,
1969         * src/pic/glue.c,
1970         * src/pic/main.c,
1971         * src/pic/pcode.c,
1972         * src/pic/pcode.h,
1973         * src/pic/pcodepeep.c,
1974         * src/pic/pcoderegs.c,
1975         * src/pic/ralloc.c,
1976         * src/pic/ralloc.h: applied patch from Slade Rich;
1977         added support for multiple code pages and multiple RAM banks on the
1978         PIC 14 port. The ASM files now no longer simply assume all the
1979         code / RAM are in the same page / bank. This means the linker can
1980         safely allocate code/RAM of separate ASM files to different pages/banks.
1981         * doc/sdccman.lyx: added Slade's tips
1982         * src/mcs51/peeph.def: fixed bug #880768
1983
1984 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1985
1986         * src/hc08/ralloc.c (rematStr): fixed bug #879282
1987         * src/SDCCast.c (decorateType): fixed bug #880197
1988
1989 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
1990
1991         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
1992         getopt.h.
1993
1994         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
1995         strtof is not part of C89 and isn't included with Mac OS X.
1996
1997 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1998
1999         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
2000         shiftL2Left2Result): fixed bug #879326
2001         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
2002         (genMultOneByte): fixed bug in signed vs unsigned multiplication
2003         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
2004         address fetch for clr instruction
2005         * device/lib/hc08/_mulint.c: created optimized assembly version
2006         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
2007
2008 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
2009
2010         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
2011         proposed in FR #877103
2012
2013 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
2014
2015         * src/SDCCval.c (cheapestVal): added missing checks
2016         * src/SDCCicode.c (usualBinaryConversions): fixed condition
2017         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
2018
2019 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
2020
2021         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
2022         equal operands
2023
2024 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
2025
2026         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
2027         loaded with the linker search paths (-L arguments) and the libraries
2028         to be linked with the current source (-l arguments). Changes
2029         currently will affect only the pic16 port.
2030         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
2031         include path the port specific paths and port specific libraries,
2032         * gplink command now contains the $3 argument,
2033         * src/pic16/device.h,
2034         * src/pic16/device.c,: structure PIC_device is made public and
2035         renamed to PIC16_device, the same for variable Pics which is renamed
2036         to Pics16. Updated all references to them.
2037         * src/pic16/glue.c (pic16glue): corrected bug with code
2038         initialization which bypassed the variable initializations block.
2039
2040         * device/lib/pic16/Makefile.rules: removed --penable-stack from
2041         COMPILE_FLAGS and added the --nostdinc option
2042
2043 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2044
2045         * device/include/mc68hc908jb8.h: Register defs for another member
2046         of the hc08 family. Contributed by Bjorn Bringert - thanks!
2047
2048 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
2049
2050         Documenting changes from previous commits.
2051         * configure.in (version 1.56),
2052         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
2053         when generating output files to configure the pic16 library,
2054         but now I've commented it out, since gputils aren't installed in the
2055         SF compile farm, so library won't compile
2056
2057         * device/lib/Makefile.in (version 1.56): initially I've added in
2058         target 'all' the prerequestive 'model-pic16' so it compiled the
2059         pic16 library, but now I've commented it out for the same reasons
2060         above,
2061         * added targets 'model-pic16' and 'objects-pic16' to compile the
2062         library
2063         * added target 'port-specific-objects-pic16' to handle the
2064         generated libraries and copy them into the build/ directory
2065         * added target 'clean-intermediate-pic16' to clean intermediate
2066         files into pic16 directory
2067         * in target 'installdirs' added line to create directory pic16 in
2068         the installation path
2069
2070         * device/include/Makefile.in (version 1.11): in target 'install'
2071         added lines to copy all header files to installation path,
2072         * in target 'installdirs' added line create directory for pic16
2073         headers in the installation path
2074
2075 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
2076
2077         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
2078          a function call
2079
2080 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
2081
2082         * configure,
2083         * device/lib/configure.in,
2084         * device/lib/configure: fixed for autoconf 2.57
2085
2086 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2087
2088         * src/z80/main.c (_parseOptions): fixed the portmode= command line
2089         option so that it actually works. Made it specific to the z80, since
2090         the gbz80 doesn't have these kinds of I/O ports.
2091
2092 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2093
2094         * device/include/z180.h,
2095         * device/lib/_memcpy.c,
2096         * device/lib/_memmove.c,
2097         * device/lib/_mulint.c,
2098         * device/lib/ser_ir.c,
2099         * device/lib/ser_ir_cts_rts.c,
2100         * device/lib/_strcmp.c,
2101         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
2102         * src/z80/main.c (_process_pragma): add support for pragmas bank and
2103         portmode; added deprecation warning for bank= and protmode= forms.
2104         Also, guard against buffer overflow.
2105         * src/z80/gen.c (aopGet): generate better code for sfr banked read
2106
2107 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2108
2109         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
2110         changed interrupt vector table generation to only emit declared vectors.
2111         * device/include/Makefile.in: added missing backslash
2112         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
2113
2114 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
2115
2116         Mainly changes to support compilation of the device libraries
2117         * src/pic16/device.c: stack is allocated via symbol and not
2118         via literal number. The symbol is placed in the corresponding
2119         position of the data ram
2120         * (pic16_dump_section): relocatable and absolute uninitialized
2121         data are now emitted in sorted order to reduce section naming,
2122         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
2123         weren't marked as being in the access bank,
2124
2125 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
2126
2127         Added portion of GNU PIC Library under the directory
2128         device/include/pic16 and device/lib/pic16. These files
2129         contain the declarations of SFRs for the PIC18Fxx2 devices.
2130         The directory is initialized via configure from toplevel.
2131
2132 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
2133
2134         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
2135         the spilllocations to be compared correctly
2136
2137 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
2138
2139         * src/SDCCast.c (decorateType): fixed bug introduced today
2140
2141 2004-01-12  Borut Razem <borut.razem AT siol.net>
2142
2143         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
2144         doc/sdccman.lyx: upper case pragmas are deprecated
2145
2146 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
2147
2148         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
2149         in simpler and even better code
2150
2151 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
2152
2153         * src/SDCCicode.c (operandOperation): fixed bug #874819
2154         * src/SDCCast.c (decorateType): fixed
2155         char foo (unsigned long ul) { return ul > 0; }
2156
2157 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2158
2159         * doc/sdccman.lyx: Moved and added some sections, small changes
2160         all over. Telling LaTeX to be less strict with word spacing
2161         to better keep the right margin. Changed some notes about
2162         maintainance of the ports in section 3.2.1 - is it OK like this?
2163
2164 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
2165
2166         SDCC source changes:
2167         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
2168         convilong): modified to inform the pic16 port that builtin functions
2169         are external
2170
2171         PIC16 PORT specific changes:
2172         * src/pic16/device.c pic16_dump_equates() added,
2173         processor registers declared internally by the port are emitted in
2174         the translation as equates,
2175         * src/pic16/gen.c: inline code is passed unprocessed to the
2176         translation,
2177         * (pic16_popGetLit2): fnuction modified to take second operand as
2178         pCodeOp pointer and not as literal,
2179         * (popRegFromIdx): prefixed with pic16_,
2180         * (pic16_popCombine2): modified to receive already allocated pCode
2181         operands,
2182         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
2183         * (genFunction): initializes local stack frame and pushes on stack
2184         all the registers used by this function,
2185         * (genEndFunction): restores all registers from stack and restores
2186         stack frame,
2187         * src/pic16/glue.c (pic16emitRegularMap): various changes and
2188         improvements,
2189         * (pic16glue): changed the program startup sequence,
2190         * added new dbName code 'A' for functions placed in absolute section
2191         * src/pic16/main.c: added function attribute _naked,
2192         * added pragma 'code' to place a fnuction at an absolute address,
2193         * added command line arguments --debug-ralloc and --pcode-verbose,
2194         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
2195         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
2196         * (pic16_newpCodeOpLit2): modified to take the second operand as
2197         pCodeOp pointer,
2198         * (pic16_printpBlock): modified to emit each function in a separate
2199         section,
2200         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
2201         UPPER for immediate operands,
2202         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
2203         instruction,
2204         * src/pic16/peeph.def: all peepholes with movff are commented out,
2205         because there is a problem in the pcode peep optimizer,
2206         * src/pic16/ralloc.c: the register allocator can now reuse local
2207         function symbols for another function. This saves register usage.
2208         * src/pic16/ralloc.h: added flag isLocal in structure regs,
2209
2210         Added file src/pic16/NOTES with information about program writing on
2211         the current port version.
2212
2213 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2214
2215         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
2216         and peephole 252 (array access)
2217
2218 2004-01-09  Borut Razem <borut.razem AT siol.net>
2219
2220         * src/SDCCmain.c : fixed #872250: -l command line defined library
2221           files are scanned before standard library files
2222
2223 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2224
2225         * src/SDCCast.c (decorateType): fixed bug #874046
2226
2227 2004-01-09  Borut Razem <borut.razem AT siol.net>
2228
2229         * support/scripts/sdcc.nsi: remove previous installation
2230
2231 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2232
2233         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
2234         bytes for last interrupt vector (mcs51)
2235         * sdcc.spec: fixed typo
2236
2237 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2238
2239         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
2240         gen51Code): more efficient parameter receive for --model-large
2241         ("bug" #845294)
2242
2243 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2244
2245         * src/ds390/main.c,
2246         * src/z80/main.c: added missed needLinkerScript flags (more than
2247         one port structure defined in these file)
2248         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
2249         bug #795325
2250
2251 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
2252
2253         * src/SDCCmain.c: removed various references to DEFAULT_PORT
2254         * src/port.h: added flag needLinkerScript in port->linker
2255         structure to inform whether to create a .lnk file or not,
2256         * src/avr/main.c,
2257         * src/ds390/main.c,
2258         * src/hc08/main.c,
2259         * src/mcs51/main.c,
2260         * src/pic/main.c,
2261         * src/pic16/main.c,
2262         * src/xa51/main.c,
2263         * src/z80/main.c: changed appropriately to configure
2264         needLinkerScript flag
2265         * src/pic/gen.c,
2266         * src/pic16/gen.c (genAddrOf): fixed bug #863624
2267         * src/pic/glue.c: added variable udata_section_name to
2268         override default uninitialized data segment definition for
2269         devices only with SHAREBANK memory (reported from Erik Epetrich)
2270         * (pic14emitOverlay): modified to emit a commented overlay segment
2271         directive when no overlay data exist
2272         * (picglue): modified to emit uninitialized data segment
2273         according to udata_section_name
2274         * src/pic/main.c (_pic14_parseOptions): added command line
2275         options --udata-section-name=[name] to override default
2276         udata definition name
2277         * modified _linkCmd and _asmCmd to include compiler passed
2278         arguments via -W option
2279         * src/pic16/main.c: added $l in _asmCmd, changed extension for
2280         object file from '.rel' to '.o' in port->linker structure,
2281         changed size of fptr from 2 to 3 in port structure
2282
2283 2004-01-07  Borut Razem <borut.razem AT siol.net>
2284
2285         * support/scripts/sdcc.nsi: update PATH
2286         * support/scripts/sdcc.ico: craeted
2287
2288 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
2289
2290         * device/include/Makefile.in: fix install
2291         * doc/Makefile: fix install
2292
2293 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2294
2295         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
2296         in bug #860505
2297         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
2298         how the function variable allocation summary is displayed; also
2299         include information about variables allocated to the overlay
2300         segment
2301
2302 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2303
2304         * as/mcs51/lkmain.c: Help about -Y option
2305         * as/mcs51/lkarea.c: Fixed gcc warnings
2306
2307 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
2308
2309         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
2310         fixed warning
2311         * support/valdiag/tests/overflow.c: added
2312         * src/SDCCast.c (decorateType),
2313         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
2314         LEFT_OP (left shift)
2315
2316 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2317
2318         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
2319         (default behaviour).
2320
2321 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2322
2323         A python script to validate compiler diagnostic messages. It can be
2324         used to verify that sdcc complains about bad c source code and
2325         gives a good location of the error.
2326         * support/valdiag/Makefile,
2327         * support/valdiag/valdiag.py,
2328         * support/valdiag/tests/*
2329
2330 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2331
2332         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
2333         * src/SDCCsymt.c (newEnumType),
2334         * src/SDCCsymt.h
2335         * support/Util/SDCCerr.c,
2336         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
2337         enum related bugs.
2338         * support/regression/tests/enum.c: added test for enum values that
2339         require at least 2 bytes of storage.
2340
2341 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
2342
2343         * src/common.h: added ifndef/define/endif macros
2344         around the header file.
2345         Bug reported from Jesus Calvino-Fraga
2346
2347 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
2348
2349         * sdcc.spec: updated
2350         * device/include/Makefile.in: don't install CVS directories
2351         * device/lib/Makefile.in: added removal of CVS directories after install
2352         * doc/Makefile: fixed install, added local_icons
2353         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
2354         * src/mcs51/gen.c (genRightShift): fixed bug #870788
2355         * src/ds390/gen.c (genRightShift): fixed bug #870788
2356         * src/SDCCast.c (decorateType): fixed bug #870781
2357
2358 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
2359
2360         PIC16 port related changes:
2361         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
2362         added variable stackPos,
2363
2364         * gen.c: genCall, assignResultValue: added support for
2365         pushing/retrieving function parameters to/from stack,
2366         genFunction,genEndFunction: setup stack frame for the
2367         generated function,
2368         genAddrOf: will be changed according to bug 863624
2369
2370         * added files genutils.c and genutils.h which contain gen*
2371         debugged and optimised functions extracted from gen.c
2372
2373         * glue.c: added variable 'externs' which holds extern symbols,
2374         pic16emitRegularMap: is modified to properly handle relocatable
2375          symbols under the new scheme,
2376         pic16createInterruptVect: is modified
2377         pic16printPublics: is modified to emit 'global' assembler directives,
2378         added pic16_printExterns to print extern symbols,
2379         pic16glue: initializes stack/frame pointer in the beginning of
2380         the assembly output. Temporary hack, will be corrected later,
2381         because gplink yet does not support stack and SDCC does not
2382         yet support a type of crt0.o object to create the final binary.
2383
2384         * Removed many lines that contain 8051 legacy code.
2385         * The code is finally placed under a 'code' directive.
2386         * Added port specific options.
2387
2388         * _process_pragma: simplified since now we do not need *special*
2389         include file to define SFR registers. But a separate header
2390         will be needed. This will be developed later.
2391         * _pic16_parseOptions: added, parses port specific options:
2392         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
2393         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
2394         --preplace-udata-with=
2395
2396         * _pic16_setDefaultOptions: modified to initialize section names,
2397         but hack is temporarly out of order since it needs improvement.
2398         * _pic16_genAssemblerPreamble: configuration words are emitted by
2399         their address instead of their name. This part is incomplete and
2400         supports only the 18Fxx2 devices. Other devices will emit an error
2401         during assembly since they do not contain the same set of config
2402         registers
2403         * _pic16_genIVT: is modified,
2404
2405         * pcode.c: added definitions for some hardware registers that are needed
2406         for stack support
2407         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
2408         All PCI entries are updated. Now LFSR is supported.
2409         * Removed pic16_pciTRIS is mentioned by mdubuc in source
2410         * added pic16_newpCodeOpLit2 to support instructions with
2411         two literal arguments
2412         * pic16_pCode2str: corrected code that emits assembler instructions
2413         with two literal operands and those that have an access bit modifier
2414         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
2415         this fixes a bug which caused some labels to be lost, when an
2416         assembler directive was added, i.e. banksel,
2417         * pic16_FixRegisterBanking: improved logic that causes the insertion
2418         of bank switching,
2419         * InlineFunction: functions that are called once, are not any more
2420         inlined. This can be a port option in the future,
2421
2422         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
2423
2424         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
2425         hold the corresponding uninitialized symbols,
2426         * pic16_allocProcessorRegister: registers have explicit marked the
2427         accessBank field,
2428         * pic16_allocInternalRegister: registers are explicit marked as
2429         not used,
2430         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
2431         processing list, so bit registers were lost,
2432         *
2433
2434         * ralloc.h: added field 'accessBank' and original symbol operand
2435         in register definition,
2436         * removed the field isMapped from register definition,
2437
2438         ** Several functions have been removed from various sources:
2439         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
2440         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
2441         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
2442         pic16_assignRelocatableRegisters
2443
2444         ** others have been introduced:
2445         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
2446         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
2447
2448 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
2449
2450         * support/scripts/inc2h.pl: changed definition of BIT_AT
2451         to emit 'sbit at' instead of 'bit at'. This was a request.
2452
2453         PIC16 port related preliminary changes:
2454         * gen.c: prefixed function popRegFromString with
2455         pic16_ and all references to it corrected
2456         * pcode.c: all pic16_pc_* hardware registers prefixed
2457         with underscore (_),
2458         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
2459         * ralloc.c: newReg(): when register is REG_SFR then
2460         set address to rIdx,
2461         pic16_allocProcessorRegister(): marks register wasUsed=0
2462         pic16_writeUsedRegs(): added a call to assign processor
2463         registers via pic16_assignFixedRegisters
2464
2465 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2466
2467         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
2468         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
2469         variables in unused register banks.  Also the SSEG is placed
2470         wherever there is enough space for it, and IDATA can be anywhere
2471         in internal RAM.  For now compile using -Wl-Y[stack_size].
2472         The mem file is different for this option as well, since it
2473         makes no sense of talking about DSEG lenght.
2474
2475 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
2476
2477         * src/SDCClrange.c: fixed bug 869095 that caused segfault
2478         in certain cases, e.g. when ROM assignment, patch provided
2479         from Albert den Haan.
2480
2481 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
2482
2483         Many signedness and type propagation fixes:
2484         * src/SDCCicode.c: made geniCodeCast() static
2485         replaced SPEC_ by IS_ (cosmetic)
2486         (operandOperation): fixed div and mod operation
2487         (usualBinaryConversions): added support for promotion of char
2488         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
2489         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
2490         (geniCodeAdd): an array index will stay unsigned, even if promoted
2491         from char to int
2492         (geniCodeArray): ditto
2493         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
2494         * src/SDCCsymt.c (computeType): added more support for char;
2495         promotion of char is selectable by promoteCharToInt, fixed signedness
2496         for all cases
2497         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
2498         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
2499         * src/SDCCval (val*): replaced signedness calculation by
2500         computeType()
2501         rearranged if-branches (cosmetic)
2502         (valShift): added warning W_SHIFT_CHANGED
2503         (valCompare): fixed problem with different types
2504         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
2505         * support/regression/tests/literalop.c: added many cases
2506         * support/regression/tests/ast_constant_folding.c: changed finally to
2507         'unsigned int'
2508         * .version: new year, new version: 2.3.7
2509         * src/SDCCmain.c (main): applied patch #866468
2510         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
2511         provided by Scott Bronson
2512         * doc/sdccman.lyx: updated documentation for sdcdb
2513         updated and added chapter tips
2514
2515 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2516
2517         * src/SDCCsymt.h: missing from yesterday's commits
2518
2519 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2520
2521         * src/SDCC.y (struct_or_union_specifier),
2522         * support/Util/SDCCerr.c,
2523         * support/Util/SDCCerr.h: verify that struct & union tags are used
2524         as declared.
2525
2526 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2527
2528         * src/SDCCglobl.h: missing from yesterday's commits
2529
2530 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2531
2532         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
2533         sft_attributes, struct_declaration, parameter_declaration,
2534         type_name, start_block, declaration_list),
2535         * src/SDCC.lex (check_type): support redefinition of typedef names
2536
2537 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2538
2539         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
2540         aligned xdata arrays. Erik helped me with the if clause.
2541
2542 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2543
2544         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
2545         warning
2546
2547 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2548
2549         * src/SDCCast.h,
2550         * src/SDCCast.c (newAst_),
2551         * src/SDCCicode.h,
2552         * src/SDCCicode.c (ast2iCode, newiCode),
2553         * src/SDCCglobl.h,
2554         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
2555         expr, statement, expression_statement, selection_statement,
2556         iteration_statement, expr_opt, jump_statement): foundation for tracking
2557         sequence points
2558         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
2559         point code too)
2560
2561 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2562
2563         * support/Util/SDCCerr.c,
2564         * src/SDCCast.h,
2565         * src/SDCCast.c (createCase, createDefault, decorateType),
2566         * src/SDCClabel.c (labelUnreach),
2567         * src/SDCC.y (labeled_statement, jump_statement): More improvements
2568         to error messages.
2569         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
2570         (with thanks to Stas Sergeev)
2571         * device/include/time.h,
2572         * device/lib/time.c (CheckTime): suppress unreachable code warning
2573
2574 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2575
2576         * src/SDCCast.c (createIvalCharPtr),
2577         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
2578         bug #753752)
2579         * support/regression/tests/nullstring.c: tests for these two bugs
2580
2581 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2582
2583         * support/Util/SDCCerr.h,
2584         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
2585         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
2586         about storage class and 'at' used inside struct or union
2587         * src/SDCCBBlock.c (iCodeFromeBBlock),
2588         * src/SDCCcse.c (ifxOptimize),
2589         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
2590         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
2591         printIval, emitStaticSeg, emitOverlay),
2592         * src/SDCClabel.c (deleteIfx),
2593         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
2594         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
2595         gatherAutoInit, processParms),
2596         * support/Util/SDCCerr.h,
2597         * support/Util/SDCCerr.c (werrorfl): Support for better error location
2598         reporting for post-parse errors.
2599
2600 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2601
2602         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
2603         implicit casts via union; they don't work on big endian systems
2604         (possible fix for bug #861138)
2605
2606 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2607
2608         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
2609         * src/mcs51/main.c: fixed the fix for bug #737001
2610
2611 2003-12-15  Borut Razem <borut.razem AT siol.net>
2612
2613         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
2614
2615 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2616
2617         * support/makebin/makebin.c: put output in binary mode
2618
2619 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2620
2621         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
2622         xdata and data memory on startup. Set the environment variable
2623         SDCC_NOGENRAMCLEAR to disable this.
2624         * src/mcs51/peephole.def,
2625         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
2626         (allows non-interrupt and interrupt code to safely compete for a resource
2627         without the non-interrupt code having to disable interrupts)
2628
2629 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2630
2631         * src/SDCCicode.c (geniCodeAdd),
2632         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
2633         with valFromType if type might be a pointer and host is big endian).
2634         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
2635         types, not just integer types.
2636         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
2637         multiply defined with mismatching "at" address.
2638
2639 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2640
2641         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
2642         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
2643         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
2644         with embedded nulls (fixed bug #753752)
2645
2646 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2647
2648         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
2649         Apparently this did not see much testing (endless loop)
2650
2651 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2652
2653         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
2654
2655 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2656
2657         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
2658         gracefully handle NULL memmap pointers
2659
2660 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2661
2662         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
2663         instead of deleting the iCode when an operand is volatile
2664         * src/z80/gen.c (genDummyRead),
2665         * src/mcs51/gen.c (genDummyRead),
2666         * src/ds390/gen.c (genDummyRead),
2667         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
2668         not just IC_RIGHT
2669         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
2670         * src/SDCC.y: fixed bug #850420
2671
2672 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2673
2674         Applied z80 i/o port patch from Peter Townson and fixed some operators
2675         to better handle operands in A register.
2676         * device/include/z180.h
2677         * src/SDCC.y
2678         * src/SDCCglue.c
2679         * src/z80/gen.c
2680         * src/z80/gen.h
2681         * src/z80/main.c
2682         * src/z80/peeph-z80.def
2683         * src/z80/peeph.def
2684         * src/z80/z80.h
2685
2686 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2687
2688         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
2689
2690 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2691
2692         * device/lib/hc08/_mullong.c: Removed extra #endif
2693
2694 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2695
2696         * sim/ucsim/hc08.src/inst.cc,
2697         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
2698         carries from x to h
2699         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
2700         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
2701         * device/include/stdarg.h: fixed varargs for hc08
2702         * device/lib/Makefile.in,
2703         * device/lib/hc08/Makefile,
2704         * device/lib/hc08/_mulint.c,
2705         * device/lib/hc08/_mullong.c: fixed some endian problems
2706
2707 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2708
2709         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
2710         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
2711         * device/lib/_gptrget.c,
2712         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
2713
2714 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2715
2716         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
2717         * src/SDCCast.c (astErrors): fixed bug #846007
2718         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
2719
2720 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2721
2722         * src/SDCCast.c (decorateType): disabled a transformation I added in
2723         revision 1.188 (access to fields of a structure at an absolute address);
2724         it breaks with bitfields, extern declarations, and gcse analysis.
2725         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
2726         could be assigned through a pointer, so don't complain.
2727         * src/SDCCast.c (astErrors),
2728         * src/SDCCast.h,
2729         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
2730
2731 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
2732
2733         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
2734         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
2735         output of __config directives, since gpasm now supports them
2736         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
2737         pre-processor macro, i.e. -DMCU=p18f452
2738         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
2739         and modified to handle 'cast' icode similarly to '=' icode
2740         * src/pic16/device.h (typedef struct PIC_device): added field
2741         'extMIface' to indicate that chip has external memory interface
2742         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
2743         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
2744         18F8720
2745
2746 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2747
2748         * src/SDCC.y (pointer): fixed bug #846006
2749         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
2750         * src/SDCCast.c (decorateType): fixed bug #846009
2751         * src/ds390/peeph.def,
2752         * src/ds390/gen.c (genAnd, genOr),
2753         * src/mcs51/peeph.def,
2754         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
2755
2756 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2757
2758         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
2759         * src/SDCCdflow.c
2760         * src/SDCCcse.c
2761         * src/SDCCcse.h
2762         * src/SDCCBBlock.h
2763         * src/SDCCBBlock.c
2764
2765 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
2766
2767         fixed bug #845089
2768         * src/SDCCbitv.h,
2769         * src/SDCCbitv.c: added function to free a bitvector
2770         * src/SDCClrange.h,
2771         * src/SDCClrange.c: added function to recompute the liveranges
2772         * src/avr/ralloc.c,
2773         * src/ds390/ralloc.c,
2774         * src/hc08/ralloc.c,
2775         * src/mcs51/ralloc.c,
2776         * src/pic/ralloc.c,
2777         * src/pic16/ralloc.c,
2778         * src/xa51/ralloc.c,
2779         * src/z80/ralloc.c: recompute the liveranges after register packing
2780
2781 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
2782
2783         * src/SDCCloop.c (newInduction): fixed bug #845630
2784
2785 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2786
2787         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
2788         inadvertantly left behind from my 2003-11-12 change
2789
2790 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2791
2792         Updated headers I neglected to commit yesterday.
2793         * src/SDCClrange.h,
2794         * src/SDCCicode.h
2795
2796 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2797
2798         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
2799         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
2800         * src/SDCCopt.c (eBBlockFromiCode),
2801         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
2802         the creation of the key hash table from the sequencing so it can be used
2803         earlier (for some GCSE bug fixes still pending)
2804
2805 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2806
2807         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
2808         * support/regression/tests/addsub.c: testing genPlus shortcut
2809
2810 2003-11-15  Borut Razem <borut.razem AT siol.net>
2811
2812         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
2813
2814 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2815
2816         * src/SDCCcse.c (cseBBlock): fixed bug #527779
2817         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
2818         ordering is immaterial.
2819         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
2820
2821 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2822
2823         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
2824         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
2825         (SIGSEV) of bug #840381
2826         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
2827         unlink new file before rename if new and old filenames are the same)
2828
2829 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2830
2831         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
2832         uninitialized variables) for the mcs51. Set environment variable
2833         SDCC_GENRAMCLEAR to test.
2834         xdata initialization slightly shorter
2835
2836 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2837
2838         * src/SDCCsymt.h,
2839         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
2840         #838241 & 780691 (basicly the same bug)
2841         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
2842         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
2843
2844 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
2845
2846         * src/SDCCmain.c (linkEdit): "fix" #834252
2847
2848 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2849
2850         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
2851         * src/SDCCast.h,
2852         * src/SDCC.y: fixed bug #819403
2853
2854 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2855
2856         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
2857         the reentrant attribute.
2858         * src/hc08/gen.c (genPackBits): added missing stack readjustment
2859         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
2860         simulation
2861         * src/SDCCast.c (decorateType): fixed bug with storage class not being
2862         updated during pointer dereference; f.e. ~(((char *)1)*) was being
2863         erroneously reduced to a literal.
2864         * src/hc08/ralloc.c (packRegisters, rematStr),
2865         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
2866         some cases
2867
2868 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2869
2870         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
2871         * doc/sdccman.lyx: changed from 'article' to 'book'
2872         * doc/Makefile: readded test_suite_spec and cdbfileformat
2873
2874 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
2875
2876         * device/include/stdlib.h: include malloc.h to comply with ANSI
2877         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
2878
2879 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2880
2881         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
2882         * doc/clean.mk: also remove *.out files
2883         * doc/sdccman.lyx: some additions, larger top/bottom margins
2884
2885 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2886
2887         * src/SDCC.y: fixed bug #837365
2888         * support/regression/tests/bitopcse.c
2889         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
2890         a symbol (might be valop instead)
2891         * device/lib/Makefile.in: added errno.c to HC08SOURCES
2892         * device/lib/clean.mk: added hc08 to the cleaning list
2893
2894 2003-11-04  Borut Razem <borut.razem AT siol.net>
2895
2896         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
2897           made 2003-11-04
2898         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
2899           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
2900           malloc is declared in standard stdlib.h
2901
2902 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2903
2904         * device/lib/hc08/Makefile: need to clean .rel not .o files
2905         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
2906
2907 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2908
2909         * src/port.h,
2910         * src/hc08/main.c,
2911         * src/mcs51/main.c,
2912         * src/ds390/main.c,
2913         * src/z80/main.c,
2914         * src/avr/main.c,
2915         * src/pic/main.c,
2916         * src/pic16/main.c,
2917         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
2918         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
2919         tests (which uses the port's oclsExpense function)
2920         * src/SDCC.y,
2921         * src/SDCCast.c,
2922         * src/SDCCicode.c,
2923         * src/hc08/gen.c,
2924         * src/ds390/gen.c,
2925         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
2926
2927 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2928
2929         * src/SDCCcse.c (ifxOptimize),
2930         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
2931         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
2932         deleting the IFX iCode.
2933         * src/hc08/ralloc.c: reduced unneeded slocs
2934         * src/hc08/gen.c: fixed bug in asmopToBoolean
2935
2936 2003-11-04  Borut Razem <borut.razem AT siol.net>
2937
2938         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
2939           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
2940           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
2941           transferred to configure
2942
2943 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
2944
2945         Use headers defined in the C[++] standards:
2946         * sim/ucsim/gui.src/serio.src/fileio.cc
2947         * sim/ucsim/gui.src/serio.src/frontend.cc
2948         * sim/ucsim/gui.src/serio.src/main.cc
2949         * sim/ucsim/gui.src/serio.src/posix_signal.cc
2950         * support/Util/NewAlloc.c
2951         * as/hc08/lklibr.c
2952         * as/mcs51/lklibr.c
2953         * as/z80/aslist.c
2954         * as/z80/assym.c
2955
2956 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2957
2958         * Added MSVC projects for hc08 assembler and linker:
2959         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
2960         /as/hc08/link_hc08.dsp
2961
2962 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
2963
2964         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
2965
2966 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
2967
2968         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
2969
2970 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2971
2972         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
2973
2974 2003-10-31  Borut Razem <borut.razem AT siol.net>
2975
2976         * support/cpp2/cpplib.h,
2977           support/cpp2/cpplib.c,
2978           support/cpp2/cpplex.c,
2979           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
2980           to switch _asm block preprocessing on / off. Default is
2981           #pragma preproc_asm +
2982
2983 2003-10-31  Borut Razem <borut.razem AT siol.net>
2984
2985         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
2986           when outputting comment blocks (when executed with -C option) and
2987           _asm (SDCPP specific) blocks
2988
2989 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2990
2991         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
2992
2993 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
2994
2995         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
2996
2997 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
2998
2999         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
3000         * src/SDCCast.c (decorateType): fixed bug #832664
3001
3002 2003-10-31  Borut Razem <borut.razem AT siol.net>
3003
3004         * support\cpp2\cpplex.c: fixed for SDCPP:
3005           comments(when executed with -C option) and _asm blocks
3006           were included even if they where in skipped #if block.
3007           Applied solution from GCC cpp 3.3.2
3008
3009 2003-10-31  Borut Razem <borut.razem AT siol.net>
3010
3011         * src/SDCC.lex: sdcc now understands both formats:
3012           '# <line_number> <file_name>' and
3013           '#line <line_number> <file_name>'
3014         * support/cpp2/cppmain.c: sdcpp now generates the standard
3015           '# <line_number> <file_name>' instead of former
3016           '#line <line_number> <file_name>'
3017
3018 2003-10-30  Borut Razem <borut.razem AT siol.net>
3019
3020         * support/cpp2/cpphash.h,
3021         * support/cpp2/cpplib.h
3022         * support/cpp2/cpplex.c,
3023         * support/cpp2/cppmain.c,
3024         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
3025
3026 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3027
3028         Fixed a number of problems revealed by bug #827883.
3029         * src/SDCCloop.c (loopInvariants): Spill location of the
3030         result operand should be recomputed if extracted from
3031         a loop. Also, don't extract assignments of an iTemp
3032         from a literal.
3033         * src/SDCCast.c (isConformingBody): loop reversal should
3034         not occur if the control variable is involved with a
3035         relational operator.
3036
3037 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
3038
3039         * .version: bumped to 2.3.6 to reflect the big improvements
3040         made by Erik and Klaus. Thanks!
3041
3042 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
3043
3044         Replaced the livrange code.
3045         * src/SDCClrange.c: added new LR code
3046         * src/SDCCloop.c,
3047         * src/SDCCBBlock.h: removed remainig parts from old LR code
3048         * src/ds390/ralloc.c,
3049         * src/ds390/gen.c: minor fixes to make it work with new code
3050
3051 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3052
3053         * as/hc08/asm.h,
3054         * as/hc08/lkrloc.c,
3055         * src/hc08/gen.c,
3056         * src/hc08/ralloc.c: Fix various warnings related to the hc08
3057         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
3058         (tweaked fix for bug #818696)
3059
3060 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3061
3062         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
3063
3064 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3065
3066         * src/SDCCmain.c,
3067         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
3068         * src/mcs51/gen.c (gencjneshort),
3069         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
3070         more efficient (per Scott Bronson's suggestion)
3071
3072 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3073
3074         Extended the semantics of the critical keyword to include
3075         individual statements. See RFE #827755 and #799831
3076         * src/SDCC.y
3077         * src/SDCCicode.c
3078         * src/SDCCopt.c
3079         * src/SDCCast.c
3080         * support/Util/SDCCerr.c
3081         * support/Util/SDCCerr.h
3082         * src/mcs51/gen.c
3083         * src/ds390/gen.c
3084         * src/hc08/gen.c
3085
3086 2003-10-19  Borut Razem <borut.razem AT siol.net>
3087
3088         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
3089
3090 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3091
3092         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
3093         Fixed bug #818696
3094         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
3095         and predecrement operand is displayed
3096
3097 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
3098
3099         * src/SDCCval.c (valMinus): fixed bug #826041
3100
3101 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3102
3103         Some hc08 related updates that I missed earlier
3104         * sim/ucsim/stypes.h
3105         * support/regression/ports/hc08/spec.mk
3106
3107 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3108
3109         New target "hc08" for the Motorola 68hc08 family of micros
3110
3111         * configure
3112         * configure.in
3113         * Makefile
3114         * src/hc08/*
3115         * src/SDCCmain.c
3116         * src/port.h
3117         * sim/ucsim/hc08.src/*
3118         * sim/ucsim/configure.in
3119         * src/ucsim/configure
3120         * sim/ucsim/packages_in.mk
3121         * as/hc08/*
3122         * as/Makefile
3123         * device/include/mc68hc908qy.h
3124         * device/lib/hc08/*
3125         * device/lib/Makefile.in
3126         * support/regression/ports/hc08/*
3127         * support/regression/Makefile
3128
3129 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3130
3131         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
3132         regression test
3133         * src/ds390/gen.c (genCast): fixed bug #821957
3134
3135 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
3136
3137         * device/lib/logf.c: "fixed" overlay bug
3138         * support/regression/ports/host/spec.mk: added m library
3139         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
3140         * support/regression/tests/float_trans: added (for Eric)
3141
3142 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
3143
3144         * src/mcs51/gen.c (genCpl): fixed bug
3145         http://sf.net/mailarchive/message.php?msg_id=6263915
3146
3147 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
3148
3149         * src/SDCCast.c (decorateType): added extended constant folding
3150         * src/SDCCsymt.c (computeType): cleanup
3151         * src/SDCCval.c (valShift): minor optimization
3152         * support/regression/tests/ast_constant_folding.c: added
3153
3154 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3155
3156         * src/SDCCmain.c: removed some unintended changes
3157
3158 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3159
3160         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
3161         * src/z80/gen.c: fixed part of bug #817589
3162         * src/SDCCsymt.c (checkFunction): fixed bug #817895
3163
3164 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
3165
3166         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
3167         * src/SDCCcflow.c
3168         * src/SDCCcse.c
3169         * src/SDCCdflow.c
3170         * src/SDCClabel.c
3171         * src/SDCClrange.c
3172         * src/SDCCmem.c
3173         * src/SDCCopt.c
3174         * src/SDCCpeeph.c
3175         * src/SDCCset.c
3176         * src/avr/ralloc.c
3177         * src/ds390/ralloc.c
3178         * src/izt/ralloc.c
3179         * src/mcs51/ralloc.c
3180         * src/pic/ralloc.c
3181         * src/pic16/ralloc.c
3182         * src/xa51/ralloc.c
3183         * src/z80/ralloc.c
3184         * src/z80/gen.c: removed unused label "release:"
3185
3186 2003-10-06  Borut Razem <borut.razem AT siol.net>
3187
3188         * src/SDCC.lex: removed definition of unused variables
3189           save_optimize and save_options
3190
3191 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
3192
3193         * clean.mk: removed '=' in "-maxdepth=1"
3194         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
3195         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
3196
3197 2003-10-06  Borut Razem <borut.razem AT siol.net>
3198
3199         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
3200           my_unput() replaced by unput()
3201
3202 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
3203
3204         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
3205         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
3206         type-punned pointer will break strict-aliasing rules"
3207         Old LR behaviour is again default; Klaus' LR can be choosen by
3208         defining the environment variable LRKLAUS
3209         * src/SDCCBBlock.h
3210         * src/SDCCloop.c
3211         * src/SDCClrange.c
3212         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
3213         * clean.mk: fixed removal of files in bin/CVS/
3214         * device/lib/clean.mk: fixed removal of directories small and large
3215         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
3216         * src/SDCCicode.c,
3217         * src/SDCCval.c: removed superflous test for pedantic
3218
3219 2003-10-05  Borut Razem <borut.razem AT siol.net>
3220
3221         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
3222           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
3223           message "unmatched #pragma SAVE and #pragma RESTORE"
3224
3225 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3226
3227         * doc/sdccman.lyx: various additions and updates (interrupts, inline
3228           assembly, critical functions, atomic, nojtbound)
3229
3230 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
3231
3232         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
3233         * src/SDCCBBlock.h
3234         * src/SDCCloop.c
3235         * src/SDCCloop.h
3236         * src/SDCClrange.c
3237
3238 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3239
3240         * src/z80/gen.h,
3241         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
3242         * src/mcs51/gen.h
3243         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
3244         * src/ds390/gen.h
3245         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
3246         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
3247         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
3248
3249 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3250
3251         * src/z80/gen.c (genRet): fixed bug #524753
3252         * src/z80/gen.c (genCast): fixed internal error on cast from
3253         pointer to long
3254         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
3255         fix for bug #477835 to the z80
3256         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
3257         for tracking iCodes in the peephole optimizer for z80
3258
3259 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3260
3261         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
3262         the other part of bug #814548
3263         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
3264
3265 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
3266
3267         * src/SDCCcse.c: fixed part of bug #814548
3268
3269 2003-09-28  Borut Razem <borut.razem AT siol.net>
3270
3271         * src/asm.c: rewrite of printILine() to use temporary file instead
3272           a pipe
3273         * src/xa51/main.c: commented out declaration of int rewinds
3274
3275 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3276
3277         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
3278
3279 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3280
3281         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
3282         * src/asm.c (printILine): Fixed bug #811015
3283
3284 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3285
3286         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
3287         freeing.
3288
3289 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3290
3291         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
3292         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
3293         to correctly handle general case of AOP_PAIRPTR
3294         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
3295
3296 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3297
3298         * src/mcs51/ralloc.c (fillGaps),
3299         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
3300         register positioning bug)
3301
3302 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
3303
3304         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
3305
3306 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3307
3308         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
3309         genCodePointerGet, genGenPointerGet, genFarPointerSet,
3310         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
3311         (ralloc doesn't intentionally do this now, but perhaps later)
3312         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
3313         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
3314         register positioning bugs (Fixed bug #762602 and #795325)
3315         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
3316         (Fixed bug #808779)
3317         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
3318         lines that --i-code-in-asm generates
3319
3320 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3321
3322         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
3323         trying to fclose a FILE* that was already closed.
3324
3325 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3326
3327         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
3328         of const struct should be treated as if const themselves)
3329
3330 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
3331
3332         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
3333
3334 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3335
3336         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
3337         Unix (/n) and DOS (/r/n) line terminations.
3338
3339 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3340
3341         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
3342         bug #613775
3343
3344 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3345
3346         * src/mcs51/gen.c (genFunction, genEndFunction),
3347         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
3348         and restore of EA so that stack offsets to parameters are
3349         correct when using both critical and reentrant/stack-auto.
3350         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
3351         size (can be triggered in error if sloc is shared between
3352         different sized objects)
3353         * device/include/float.h: fixed macros to explicitly use
3354         unsigned long where needed
3355
3356 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
3357
3358         Feature req. 799831: added code to allow nesting of critical functions
3359         * src/mcs51/gen.c (genFunction, genEndFunction)
3360         * src/ds390/gen.c (genFunction, genEndFunction)
3361
3362 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3363
3364         * src/SDCCsymt.c (sclsFromPtr),
3365         * src/SDCCsymt.h,
3366         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
3367         support for standard C idiom of memory mapped variables; for
3368         example, *((xdata int*)0x1234) = 1 is now internally equivalent
3369         to xdata int at 0x1234 tempvar = 1.
3370         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
3371         provided by Akiya ISHIDA
3372
3373 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
3374
3375         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
3376         * src/SDCCval.c (constVal): added reduction from int to char
3377         * src/SDCCval.c (valMult, valDiv): fixed sign handling
3378         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
3379         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
3380         to ignore the sign
3381         * support/regression/tests/shifts.c: fixed
3382
3383 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3384
3385         * src/z80/gen.c (genXor): Fixed bug #805445
3386
3387 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3388
3389         Fixed bug #621531 (const & volatile confusion in the type chain).
3390         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
3391         refer to the const or volatile state of the pointer itself.
3392
3393         * src/SDCCast.c
3394         * src/SDCCglue.c
3395         * src/SDCCicode.c
3396         * src/SDCCsymt.c
3397         * src/SDCCval.c
3398         * src/SDCC.y
3399         * src/SDCCsymt.h
3400         * src/pic/gen.c
3401         * src/pic/ralloc.c
3402         * src/pic16/gen.c
3403         * src/pic16/ralloc.c
3404         * support/regression/tests/const.c
3405
3406 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3407
3408         When checking for duplicated modules, use absolute paths
3409         instead of relative paths.  Files changed:
3410
3411         * as/mcs51/lklib.c
3412         * link/z80/lklib.c
3413
3414 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3415
3416         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
3417
3418 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3419
3420         * device/include/string.h: added size_t typedef, changed
3421         prototypes to use size_t, eliminated separate reentrant and
3422         non-reentrant declarations, added _memmove declaration
3423         * device/lib/_memcpy.c: changed to use size_t instead of int,
3424         changed /4 to >>2 to avoid division library call
3425         * device/lib/_memcmp.c,
3426         * device/lib/_memset.c,
3427         * device/lib/_strncat.c,
3428         * device/lib/_strncpy.c,
3429         * device/lib/_strncmp.c: changed to use size_t instead of int
3430         * device/lib/_memmove.c: new file (fixed bug #772294)
3431         * device/lib/Makefile.in: added _memmove.c
3432         * device/lib/z80/asm_strings.s: fixed bug #772290
3433         * support/regression/tests/bitfields.c: attempt to fix host assertion
3434         failure on amd64-unknown-linux2.2
3435
3436 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3437
3438         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
3439         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
3440         * as/z80/asmain.c (main): fixed bug #801766
3441
3442 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
3443
3444         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
3445         compilers
3446
3447 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3448
3449         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
3450         reported in bug #800609
3451
3452 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
3453
3454         * Top header beautifications in src/pic16 directory:
3455           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
3456           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
3457           pcoderegs.h, ralloc.c, ralloc.h
3458         * main.c: added top header and GPL license notice
3459         * pcode.c: fixed the if-conditional warning
3460
3461 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
3462
3463         * device/lib/_mullong.c: replaced int by short for gcc
3464
3465 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3466
3467         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
3468         and JUMPTABLE iCodes properly now (worked by accident before)
3469         * src/mcs51/gen.c (leftRightUseAcc),
3470         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
3471         iCode properly now. Use getSize instead of nRegs since a & b
3472         aren't part of the nRegs tally.
3473
3474 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
3475
3476         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
3477         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
3478           before instructions that use the _STATUS register
3479
3480 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
3481
3482         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
3483         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
3484         fetching of the pointer
3485         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
3486         copied from genNearPointerSet()
3487         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
3488         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
3489         If they pop r0/r1 they must be called in the opposite order than aopOp().
3490         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
3491         (resp. --stack-auto), prepared for --xstack
3492
3493 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3494
3495         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
3496
3497 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
3498
3499         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
3500         these ports have their own __sdcc_external_start()
3501
3502 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
3503
3504         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
3505         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
3506         type for bits was changed. It resulted in bit variables becoming
3507         global, which is not permitted in PIC 14 assembly output.
3508
3509 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3510
3511         * doc/sdccman.lyx: various additions and updates. Rearranged sections
3512
3513 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3514
3515         Z80 and MCS51 linkers complaint if a public symbol is defined
3516         in more than one library module:
3517
3518         * as/mcs51/lklib.c
3519         * link/z80/lklib.c
3520         * as/mcs51/Makefile.in
3521
3522 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3523
3524         A few small changes that speed up the peephole optimizer.
3525
3526         * src/SDCCpeeph.c
3527
3528 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3529
3530         Try to make the peephole optimizer smarter by maintaining
3531         an association between the assembly source code and the
3532         iCodes that originated them. Put this information to use
3533         with a new peephole rule condition "notVolatile" so that
3534         the rules can be aggressive yet still safe.
3535
3536         * src/SDCCpeeph.c
3537         * src/SDCCpeeph.h
3538         * src/mcs51/gen.c
3539         * src/mcs51/peeph.def
3540
3541 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3542
3543         Fixed bug #741761
3544
3545         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
3546         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
3547         if the left or right operand symbols have the accuse flag set.
3548
3549 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3550
3551         Changed the type of the result of the ! (NOT) operator to char;
3552         previously it returned the same type as the source. This allows
3553         us to eliminate all the genFloatNot functions (all of its target
3554         implementations were very buggy) since !float can use the same
3555         code as !long now.
3556
3557         * src/SDCCicode.c (ast2iCode): ! returns char
3558         * src/mcs51/gen.c (genNot, genNotFloat),
3559         * src/ds390/gen.c (genNot, genNotFloat),
3560         * src/z80/gen.c (genNot, genNotFloat),
3561         * src/pic/gen.c (genNot, genNotFloat),
3562         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
3563
3564 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
3565
3566         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
3567         1. Interrupt would not compile properly. Ensure PCLATH register is saved
3568            during interrupts. Ensure WSAVE is located at a shared bank address.
3569         2. Fixed page selection in some places
3570         3. Fixed BTFSS/C to where necessary use registers directly and not simply
3571            the registers name strings.
3572         4. Fixed "signed / unsigned compare" compiler warnings.
3573         5. The PIC port manages its own allocation of the general purpose
3574            registers, but makes no attempt to reuse them. As a result when
3575            compiling it soon runs out of general purpose registers. Some
3576            additional code was added to the files pcode.c and device.c to walk
3577            through the function call tree and rename the registers so that they
3578            get reused.
3579
3580         * src/pic/device.c
3581         * src/pic/gen.c
3582         * src/pic/glue.c
3583         * src/pic/pcode.c
3584         * src/pic/pcode.h
3585         * src/pic/ralloc.c
3586         * src/pic/ralloc.h
3587         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
3588         genPlus() & genMinus() when the result is the same as left or right
3589
3590 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3591
3592         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
3593
3594 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3595
3596         Made bitfield a distinct type from bit so that bitfields
3597         convert as per ANSI C and bits retain their traditional
3598         boolean style behaviour. Implemented bitfield support in
3599         the z80 port.
3600
3601         * src/SDCCsymt.h,
3602         * src/SDCCsymt.c,
3603         * src/SDCCast.c,
3604         * src/cdbFile.c,
3605         * src/mcs51/gen.c,
3606         * src/ds390/gen.c: bit v bitfield split
3607         * src/z80/gen.c: New support for bitfields
3608         * support/regression/tests/bitfields.c: reenabled z80,
3609         added more tests
3610
3611 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3612
3613         Rules 246.x, 247.x relate to bitfields, the others speed up
3614         access to xdata mapped I/O devices.
3615
3616         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
3617
3618 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3619
3620         Cleaned up genPackBits and genUnpackBits and added two helper
3621         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
3622         for literal assignments in genPackBits (thanks to Frieder for
3623         reminding me).
3624
3625         * src/mcs51/gen.c
3626         * src/ds390/gen.c
3627
3628 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3629
3630         Fixed bug #748310 (pointer to function type mishandled when the
3631         function name is omitted). Also fixed a SIGSEGV when a function
3632         attribute (reentrant, etc) is used on a non-function or on a
3633         function but misplaced before the parameter list.
3634
3635         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
3636         bug #748310
3637         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
3638         * support/Util/SDCCerr.h,
3639         * support/Util/SDCCerr.c: Added func attr misuse error msg
3640
3641 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
3642
3643         Fixed bug #787649 by anonymous
3644         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
3645         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
3646
3647 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3648
3649         Fixed numerous bitfield problems.
3650
3651         * src/SDCC.y: More bitfield related error checking
3652         * src/SDCCsymt.h,
3653         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
3654         * support/Util/SDCCerr.h,
3655         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
3656         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
3657         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
3658         * support/regression/tests/bitfields.c: tests added
3659
3660 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3661
3662         Made the constant following the "interrupt" keyword optional. If
3663         omitted, the function will not automatically be given an entry
3664         in the interrupt vector table (similar to #pragma NOIV, but
3665         less syntacticly kludgy). The interrupt number is also now
3666         range checked. Also fixed a bug in the high order bit example
3667         in the manual.
3668
3669         * src/SDCC.y
3670         * src/SDCCmem.c
3671         * src/SDCCglue.c
3672         * src/SDCCsymt.h
3673         * support/Util/SDCCerr.c
3674         * support/Util/SDCCerr.h
3675         * doc/sdccman.lyx
3676
3677 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
3678
3679         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
3680         * src/SDCCicode.c (operandOperation): rewritten some ops
3681         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
3682         * src/SDCCsymt.c (computeType): literals are handled the same way as any
3683         other type
3684         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
3685         be re-activated by defining REDUCE_LITERALS)
3686         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
3687         unsigned, but are signed by default
3688         * src/SDCCval.c (constVal): rearranged
3689         * src/SDCCval.c (valMod): preliminary fix
3690         * src/SDCCval.c (valCastLiteral): use TYPE_* types
3691         * support/regression/literalop.c: added, work in progress
3692
3693 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3694
3695         Generate warnings for useless declarations like "char data;"
3696         that don't do what new users expect.
3697
3698         * src/SDCC.y
3699         * support/Util/SDCCerr.h
3700         * support/Util/SDCCerr.c
3701
3702 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
3703
3704         * src/SDCCval.c (valMult): fix overflow detection of negative int
3705
3706 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3707
3708         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
3709
3710         Changes to support big endian targets:
3711
3712         * src/ports.h
3713         * src/SDCCglue.c
3714         * src/avr/main.c
3715         * src/ds390/main.c
3716         * src/izt/i186.c
3717         * src/mcs51/main.c
3718         * src/pic/main.c
3719         * src/pic16/main.c
3720         * src/xa51/main.c
3721         * src/z80/main.c
3722
3723 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
3724
3725         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
3726         * device/lib/time.c: fixed warning "integer overflow in expression"
3727
3728 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
3729
3730         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
3731         * src/SDCCval.c (constVal): changed default to signed; hex and octal
3732         constants are unsigned; added recognition of "u" flag for unsigned
3733         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
3734         * src/SDCCval.c (valDiv, valMod): fixed signdness
3735         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
3736         signedness of modulo, left and right shift
3737         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
3738         * support/Util/SDCCerr.h: added warning W_INT_OVL
3739         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
3740         * src/SDCCast.c (ast_print): improved output of constants
3741
3742 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3743
3744         Fixed some warnings when building with MSVC:
3745
3746         * as\mcs51\asdata.c
3747         * as\z80\asdata.c
3748         * as\mcs51\asm.h
3749         * as\z80\asm.h
3750         * link\z80\aslink.h
3751         * link\z80\lkdata.c
3752         * link\z80\lkeval.c
3753         * link\z80\lkgb.c
3754         * link\z80\lkihx.c
3755         * link\z80\lks19.c
3756         * link\z80\lksym.c
3757         * support\cpp2\cpplib.c
3758         * src\ds390\gen.c
3759         * src\mcs51\gen.c
3760
3761 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
3762
3763         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
3764
3765 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3766
3767         * support\librarian\clean.mk: Do not remove Makefile.
3768         * support\librarian\Makefile: added.
3769
3770 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3771
3772         Added librarian to MSVC build:
3773         * all.dsp
3774         * sdcc.dsw
3775         * support\librarian\librarian.dsp
3776
3777         'configure' not needed for librarian, removed:
3778         * support\librarian\configure
3779         * support\librarian\configure.in
3780         * support\librarian\config_in.h
3781         * support\librarian\Makefile.in
3782
3783         Hopefully these ones built the librarian and the rest of sdcc properly:
3784         * Makefile
3785         * Makefile.common.in
3786
3787         Messed up 'configure', so revert to previous version:
3788         * configure
3789         * configure.in
3790
3791 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
3792
3793         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
3794         there, while the mantissa of a double is "only" 53 bits wide.
3795
3796 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3797
3798         Adding sdcclib to the build.  MSVC project coming soon.
3799         Files added/changed:
3800
3801         * support\librarian\clean.mk
3802         * support\librarian\configure
3803         * support\librarian\configure.in
3804         * support\librarian\config_in.h
3805         * support\librarian\Makefile.bcc
3806         * support\librarian\Makefile.in
3807         * support\librarian\sdcclib.c
3808         * Makefile.bcc
3809         * Makefile
3810         * Makefile.common.in
3811         * configure
3812         * configure.in
3813
3814 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3815
3816         Linker now complaints if linked modules have conflicting options, for
3817         example, one compiled using --model-large and another one compiled with
3818         --model-small.  The following files were modified:
3819
3820         * as\mcs51\asdata.c
3821         * as\mcs51\aslink.h
3822         * as\mcs51\asm.h
3823         * as\mcs51\asmain.c
3824         * as\mcs51\asout.c
3825         * as\mcs51\i51pst.c
3826         * as\mcs51\lkdata.c
3827         * as\mcs51\lklibr.c
3828         * as\mcs51\lkmain.c
3829         * as\z80\asdata.c
3830         * as\z80\asm.h
3831         * as\z80\asmain.c
3832         * as\z80\asout.c
3833         * as\z80\z80pst.c
3834         * link\z80\aslink.h
3835         * link\z80\lkdata.c
3836         * link\z80\lklibr.c
3837         * link\z80\lkmain.c
3838         * src\SDCCglue.c
3839
3840 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3841
3842         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
3843         as/mcs51/lklibr.c: Generate a warning when a library is not found.
3844
3845 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
3846
3847         * src/z80/mappings.i: fix _mul[us][int,long] entries
3848
3849 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3850
3851         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
3852
3853 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
3854
3855         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
3856         * support/regression/tests/bitopcse.c: added
3857         fixed warning:
3858         * src/avr/gen.c:
3859         * src/pic/gen.c:
3860         * src/pic16/gen.c:
3861         * src/z80/gen.c:
3862         * src/xa51/gen.c:
3863
3864 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3865
3866         added support for new library format to z80, gbz80 linkers:
3867         *link/z80/aslink.h
3868         *link/z80/lklex.c
3869         *link/z80/lklib.c
3870         *link/z80/lklist.c
3871
3872 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
3873
3874         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
3875         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
3876
3877 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
3878
3879         added DUMMY_READ_VOLATILE:
3880         * src/SDCC.y:
3881         * src/avr/gen.c:
3882         * src/xa51/gen.c:
3883         * src/z80/gen.c:
3884         * src/pic/gen.c:
3885         * src/pic16/gen.c:
3886         * src/mcs51/gen.c:
3887         * src/ds390/gen.c:
3888         * src/SDCCcse.c (algebraicOpts): many improvements
3889         * src/SDCCcse.h: removed algebraicOpts()
3890         * src/SDCCicode.c (picDummyRead): added
3891
3892 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3893
3894         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
3895         "Insufficient space in data memory".
3896
3897 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3898
3899         * src/mcs51/gen.c: fixed bug #771358
3900         * src/z80/gen.c: fixed bug #759087
3901
3902 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
3903
3904         * src/pic16/glue.c: minor cleanup by Vangelis
3905
3906 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3907
3908         * device/include/regc515c.h: fixed #758477
3909         * device/lib/_gptrget.c: saving some cycles in generic pointer get
3910         * device/lib/_gptrput.c: saved a few bytes
3911         * my tab spacing is 8, yours too?)
3912         * device/lib/_ser.c: process RX bytes earlier than TX bytes
3913         * device/lib/serial.c: process RX bytes earlier than TX bytes
3914         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
3915
3916 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3917
3918         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
3919
3920 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3921
3922     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
3923
3924 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
3925
3926         * device/lib/Makefile.in: bad fix, reverted to 1.43
3927
3928 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
3929
3930         * device/lib/Makefile.in: added missing z80 object files
3931
3932 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
3933
3934         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
3935         pic16 progress by Vangelis:
3936         * src/SDCCglobl.h:
3937         * src/SDCCmain.c:
3938         * src/pic/Makefile:
3939         * src/pic:
3940         * pic/Makefile:
3941         * pic16/device.c:
3942         * pic16/device.h:
3943         * pic16/gen.c:
3944         * pic16/gen.h:
3945         * pic16/genarith.c:
3946         * pic16/glue.c:
3947         * pic16/main.c:
3948         * pic16/pcode.c:
3949         * pic16/pcode.h:
3950         * pic16/pcodepeep.c:
3951         * pic16/peeph.def:
3952
3953 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3954
3955     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
3956
3957 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3958
3959     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
3960     added gbz80 build to MSVC project.
3961     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
3962     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
3963     from 8051 stuff and setup so it links using a .lnk file.
3964
3965 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3966
3967     * support/librarian/sdcclib.c: sdcc librarian.
3968     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
3969     with sdcclib.
3970
3971 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3972
3973     * as/mcs51/lkmain.c: properly handle extensions in function afile.
3974
3975 2003-07-02  Borut Razem <borut.razem AT siol.net>
3976
3977         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
3978         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
3979         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
3980         src/xa51/main.c, src/z80/main.c:
3981         virtualization of glue() function: each port has it's own glue function,
3982         which is accessed by do_glue function pointer in PORT.general structure
3983
3984 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
3985
3986         * DS800C400 fun, improved ROM interface and tinibios.
3987
3988 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
3989
3990         * More support for DS80C400. Now includes beginning of interface to ROM.
3991
3992 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
3993
3994         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
3995
3996 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3997
3998         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
3999
4000 2003-06-19  Borut Razem <borut.razem AT siol.net>
4001
4002         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
4003
4004 2003-06-19  Borut Razem <borut.razem AT siol.net>
4005
4006         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
4007         fixed Z80 port - crt0.o: cannot open.
4008
4009 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
4010
4011         * support/Util/MySystem.c (merge_command): revert bad fix
4012
4013 2003-06-18  Borut Razem <borut.razem AT siol.net>
4014
4015         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
4016
4017 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4018
4019         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
4020         option --use-stdout sends errors to stdout instead of stderr.
4021
4022 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
4023
4024         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
4025
4026 2003-06-15  Borut Razem <borut.razem AT siol.net>
4027
4028         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
4029         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
4030         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
4031         fixed width array of pointers replaced with sets;
4032         multiple include and lib paths ared transferred to preprocessor and linker
4033         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
4034         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
4035         fixed width array of pointers
4036         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
4037         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
4038         fixupPath(), getPathDifference()
4039         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
4040         fixed width array of pointers
4041
4042 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
4043
4044         * src/pic16/ralloc.c: fix warnings
4045         * src/pic16/pcode.c: fix warning
4046
4047 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
4048
4049          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
4050         know all the details, but essentially this set of changes enable
4051         the pic16 port to generate movff instructions and generate assembler
4052         directives,
4053         * src/SDCCmain.c:
4054         * src/pic16/gen.c:
4055         * src/pic16/glue.c:
4056         * src/pic16/pcode.c:
4057         * src/pic16/device.c:
4058         * src/pic16/main.c:
4059         * src/pic16/pcode.h:
4060         * src/pic16/pcoderegs.c:
4061         * src/pic16/ralloc.c:
4062         * src/pic16/ralloc.h:
4063
4064 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4065
4066         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
4067         added option --vc, so sdcc errors and warnings are compatible with
4068         Microsoft Visual Studio.
4069
4070 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4071
4072         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
4073           device/lib/libfloat.lib: added atof function.
4074
4075 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
4076
4077         * doc/sdccman.lyx: updated to Lyx 1.3
4078         * doc/cdbfileformat.lyx: updated to Lyx 1.3
4079         * doc/test_suite_spec.lyx: updated to Lyx 1.3
4080         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
4081
4082 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
4083
4084         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
4085
4086 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4087
4088         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
4089           additions to the "related tools/documentation" section
4090
4091 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
4092
4093         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
4094
4095 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
4096
4097         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
4098         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
4099
4100 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
4101
4102         * doc/sdccman.lyx: fix double dash and other minor things
4103         * doc/Makefile: fix double dash
4104
4105 2003-05-28  Karl Bongers(patches from Martin Helmling)
4106         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
4107           condition and ignore commands.
4108
4109 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4110
4111         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
4112           is in parts still quite out of date, I did changes as far as I felt makes sense
4113           for a non-native english speaker.
4114           Please feel free to add to the manual or to correct my changes.
4115         * doc/Makefile: undid touching the date of intermediate tex files.
4116
4117 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4118
4119         * doc/sdccman.lyx: Manual has an index now
4120
4121 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
4122
4123         Finalize muluint/mulsint and mululong/mulslong merging:
4124         * device/lib/_mulint.c
4125         * device/lib/_mullong.c
4126         * device/lib/gbz80/mul.s
4127         * device/lib/gbz80/stubs.s
4128         * device/lib/z80/mul.s
4129         * device/lib/z80/stubs.s
4130         * src/SDCCsymt.c (initCSupport)
4131
4132 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4133
4134         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
4135         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
4136           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
4137           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
4138           instead of /Zm500.
4139
4140 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4141
4142         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
4143           the regression tests I'm not brave enough to enable 245.b, 245.c
4144         * doc/sdccman.lyx: added latex preamble for hyperref package.
4145           Using pdflatex this will give you a hyperlinked pdf file with
4146           bookmarks. (prepend '%' before /usepackage if this breaks something)
4147
4148 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4149
4150          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
4151
4152 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
4153
4154         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
4155
4156 2003-05-21    <johan AT balder>
4157
4158         * src/SDCCglue.c (printIval): fixed bug #739934
4159
4160 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
4161
4162         Applied patch from bug 737905 (renamed yylineo to mylineno):
4163         * src/altlex.c
4164         * src/SDCCast.c
4165         * src/SDCglobl.h
4166         * src/SDCC.lex
4167         * src/SDCCsymt.c
4168         * src/SDCCval.c
4169         * src/pic16/pcode.c: Cleaned warnings
4170         * src/pic16/pcodeflow.c: Cleaned warnings
4171         * src/pic16/pcoderegs.c: Cleaned warnings
4172
4173 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
4174
4175         * src/pic16/pcode.c: Cleaned warnings
4176         * src/pic16/pcodepeep.c: Cleaned warnings
4177         * src/pic16/ralloc.c: Cleaned warnings
4178
4179 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
4180
4181         * doc/sdccman.lyx: fixed bug 739745
4182         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
4183
4184 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
4185
4186         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
4187         it can be defined with CFLAGS when running configure
4188         * src/SDCCmain.c: fixed compiling + linking with object files
4189
4190 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
4191
4192         * configure.in: configure for pic16 port,
4193             added --disable-pic16-port
4194         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
4195         * src/SDCCmain.c: linkOptions is changed to set *,
4196             added if/endif conditional macros to remove options help
4197             messages from optionsTable when a port is not configured, added
4198             support for the PIc16 port in the ports table, when executing
4199             the compiler with no port specified on command line, a default
4200             port is selected with the new macro DEFAULT_PORT which is
4201             defined in port.h, in setDefaultOptions() linkOptions is removed
4202             from initialization assignment, since now it is a set,
4203             parseCmdLine uses setParseWithComma for linkOptions, in
4204             linkEdit() linkOptions are accessed with new function indexSet()
4205             which returns the i'th item of a set variable. See SDCCset.c, in
4206             linkEdit() when calling buildCmdLine(), added linkOptions as
4207             last argument. Now users can pass arguments to gplink via the
4208             -Wl option, main() uses pic16glue() to glue up pic16 programs
4209         * src/SDCCpeeph.c: various changes to support pic16
4210         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
4211             return the i'th item of the set
4212         * src/SDCCset.h: added function prototype for indexSet()
4213         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
4214         * src/clean.mk: added pic16 in CLEANALLPORTS variable
4215         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
4216             added macro DEFAULT_PORT
4217         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
4218         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
4219             generated
4220         * src/pic16/glue.c: commented out some error producing lines
4221         * src/pic16/main.c: __config directives are commented out to stop
4222             gpasm complaining and test the linkage with gplink, _linkCmd and
4223             _asmCmd changed to be more gplink and gpasm friendly
4224         * src/pic16/peeph.def: peep rule 3 is commented out, since it
4225             produced an error when parsed, peep rule 12 is added to utilize
4226             movff, but it is commented out since the pCode does not support
4227             yet a command with 2 address arguments
4228
4229 2003-05-18    <johan AT balder>
4230
4231         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
4232         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
4233 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
4234
4235         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
4236   Added feature to script commands from file.
4237
4238 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
4239
4240         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
4241         * src/SDCCutil.c: include ctype.h for win32
4242
4243 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
4244
4245         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
4246
4247 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
4248
4249         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
4250   Fixed so you can set breakpoints prior to run, run does not stop
4251   on entry now.  Add tbreak.  Other enhancements and fixes for use
4252   with ddd.
4253
4254 2003-05-12  Borut Razem <borut.razem AT siol.net>
4255
4256         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
4257
4258 2003-05-11  Borut Razem <borut.razem AT siol.net>
4259
4260         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
4261         the path of bin directory, so that PATH is the only env. variable, which has to be set
4262         in case of standard installation.
4263         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
4264         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
4265         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
4266
4267 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
4268
4269         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
4270         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
4271         temp files are in the port dir; clean the gen/test directory when
4272         generating new test.c
4273         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
4274         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
4275         * support/regression/tests/zeropad.c: added
4276
4277 2003-05-09    <johan AT balder>
4278
4279         * src/SDCCglue.c: fixed bug #597940
4280
4281 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
4282
4283         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
4284   cache sfr, optimize next,step, fix off by one sourceline,
4285   support ddd list function.
4286         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
4287
4288 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
4289
4290         * support/regression/HTMLgen.py: added compare_s2f()
4291         * support/regression/Makefile: redo 1.27
4292         * support/regression/generate-cases.py: redo 1.5
4293
4294 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
4295
4296         * support/regression/tests/float.c: workaround 33 bit hex constant
4297         * support/regression/tests/simplefloat.c: fix division for host
4298
4299 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
4300
4301         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
4302         that tame's the PIC's over-aggressive optimizer.
4303
4304 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4305
4306          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
4307          support for MSVC.
4308
4309 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
4310
4311         Initial support for DS80C400. "Hello world" runs on TINIm400
4312         (with polled I/O).
4313
4314 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
4315
4316          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
4317          * Some notes on ddd usage added in debugger/README
4318          Martin Helmling adding more features and fixes for ddd GUI debugger.
4319          Code added for nexti, stepi, up, down, and other adjustments.
4320
4321 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
4322
4323         * src/pic/pCodepeep.c non-wildcard asmops are now handled
4324         * src/pic/peeph.def Added two rules to optimize carry manipulation
4325         * src/pic/* removed debug printfs
4326
4327 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
4328
4329         * debugger/mcs51/cmd.c: added header newalloc.h
4330
4331 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
4332
4333         * as/Makefile: new EXEEXT
4334         * as/z80/Makefile: remove trailing slash of BUILDIR
4335         * as/z80/clean.mk: new EXEEXT
4336         * Makefile.common.in: add to CFLAGS (and others), don't replace it
4337         * support/cpp2/Makefile.in: new EXEEXT
4338         * src/pic/glue.c (pic14emitRegularMap): fixed warning
4339
4340 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
4341
4342         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
4343         EXEEXT was introduced to fix all related problems with targets
4344         "clean", "install" and "uninstall"; a couple of further flaws
4345         especially with "clean" have been fixed too
4346         * as/mcs51/Makefile.in
4347         * as/mcs51/clean.mk
4348         * as/z80/Makefile
4349         * Makefile
4350         * clean.mk
4351         * debugger/mcs51/Makefile.in
4352         * debugger/mcs51/clean.mk
4353         * link/z80/Makefile
4354         * link/z80/Makefile.in
4355         * link/z80/clean.mk
4356         * link/Makefile
4357         * packihx/Makefile.in
4358         * packihx/clean.mk
4359         * sim/ucsim/Makefile
4360         * sim/ucsim/clean.mk
4361         * sim/ucsim/avr.src/Makefile.in
4362         * sim/ucsim/avr.src/clean.mk
4363         * sim/ucsim/s51.src/Makefile.in
4364         * sim/ucsim/s51.src/clean.mk
4365         * sim/ucsim/xa.src/Makefile.in
4366         * sim/ucsim/xa.src/clean.mk
4367         * sim/ucsim/z80.src/Makefile.in
4368         * sim/ucsim/z80.src/clean.mk
4369         * sim/ucsim/main_in.mk
4370         * sim/ucsim/packages_in.mk
4371         * sim/ucsim/gui.src/Makefile.in
4372         * sim/ucsim/gui.src/serio.src/Makefile.in
4373         * sim/ucsim/gui.src/serio.src/clean.mk
4374         * src/Makefile.in
4375         * src/clean.mk
4376         * support/cpp2/Makefile.in
4377         * support/cpp2/clean.mk
4378         * support/makebin/Makefile
4379         * support/makebin/clean.mk
4380         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
4381         * doc/sdccman.lyx: --program-suffix no longer needed
4382
4383 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
4384
4385          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
4386          Martin Helmling added support for ddd GUI debugger.
4387          Code added to display assembly, set variables, and other commands
4388          to interface to ddd.
4389
4390 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
4391
4392         * as/Makefile: fix target clean
4393         * as/clean.mk: fix target clean
4394         * as/z80/clean.mk: fix target clean
4395
4396 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
4397
4398         * Makefile.common.in: added  AT EXEEXT AT
4399         * configure.in: removed all mingw32 stuff
4400         * configure: rebuilt from configure.in
4401         * doc/sdccman.lyx: updated section "installation"
4402         * support/scripts/sdcc_mingw32: adapted to configure
4403         * support/scripts/sdcc_cygwin_mingw32: added
4404
4405 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
4406
4407         * src/pic Added object file support for the PIC port
4408         * src/pic Applied patch from Craig Franklin (this started the object file support)
4409         * src/regression Updated the PIC regression tests for object files
4410
4411 2003-04-20  Borut Razem <borut.razem AT siol.net>
4412
4413         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
4414           lklex.c: In function `getfid':
4415           lklex.c:203: warning: array subscript has type `char'
4416         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
4417           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
4418         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
4419           stack handling macros
4420
4421 2003-04-19  Borut Razem <borut.razem AT siol.net>
4422
4423         * "handling space characters in file path" task:
4424         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
4425         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
4426         * support/Util/MySystem.h: make it self-sufficient
4427         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
4428           src/z80/main.c, sdcc/as/mcs51/lklex.c:
4429           handling space characters in file path
4430         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
4431           (it will be used by assemblers, which have their own includes, e.g. gpasm)
4432         * support/Util/MySystem.c: handling space characters in executable's path
4433
4434 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
4435
4436         * as/z80/Makefile: fix permanent rebuild of z80
4437         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
4438         * support/regression/tests/bitfields.c: added Johan's bitfields.c
4439
4440 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
4441
4442         * src/SDCCopt.c: add special case optimization to replace modulo by
4443           a power of two with a bitwise AND.
4444
4445 2003-04-18    <johan AT balder>
4446
4447         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
4448
4449 2003-04-17    <johan AT balder>
4450
4451         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
4452         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
4453
4454 2003-04-13  Borut Razem <borut.razem AT siol.net>
4455
4456         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
4457         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
4458           fixed mingw problem in adl_NORMALIZE_PATH
4459
4460 2003-04-12  Borut Razem <borut.razem AT siol.net>
4461
4462         * fixed "#pragma SAVE/RESTORE can not be nested":
4463         * src/SDCC.lex: reworked pragma handling functions
4464         * sdcc/src/SDCCglobl.h: reworked stack handling macros
4465         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
4466
4467 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
4468
4469         * src/SDCCutil.c (pathEquivalent): defined but not used
4470         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
4471         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
4472         * configure: rebuilt from configure.in
4473         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
4474         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
4475         * device/include/Makefile.in: replace sdcc_datadir
4476         * device/lib/Makefile.in: replace sdcc_datadir
4477         * Makefile.common.in: add LDFLAGS from configure
4478         * packihx/Makefile.in: use LDFLAGS
4479         * src/Makefile.in: use LDFLAGS
4480         * support/cpp2/Makefile.in: add LDFLAGS from configure
4481         * support/makebin/Makefile: use LDFLAGS
4482         * .version: bumped version number to 2.3.5
4483
4484 2003-04-12  Borut Razem <borut.razem AT siol.net>
4485
4486         * completed "different paths" task:
4487         * src/SDCCmacro.c: fixed bug in handling quotes
4488         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
4489         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
4490
4491 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
4492
4493         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
4494
4495 2003-04-11 kevin Vigor <kevin AT vigor.nu>
4496
4497         * ds390/gen.c ds390/peeph.def: fix bug 706781
4498
4499 2003-04-11  Borut Razem <borut.razem AT siol.net>
4500
4501         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
4502
4503 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
4504
4505         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
4506         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
4507          set - this bit used to not be set...).
4508         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
4509           bad code in PIC Port
4510         * src/regression/and2.c added to test bug 609268
4511         * src/regression/Makefile added and2.c to regression test
4512
4513
4514 2003-04-08    <johan AT CP255758-A>
4515
4516         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
4517         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
4518         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
4519
4520 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
4521
4522         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
4523         fix bug #487815
4524         * support/cpp2/Makefile.in: fix bug #487815
4525         * configure: rebuilt from configure.in
4526         * Makefile.common.in: docdir changed, new path suffixes
4527         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
4528         * sdcc_vc_in.h: reflect changes from sdccconf.h
4529         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
4530         * src/SDCCutil.h: remove BINDIR hack
4531         * doc/sdccman.lyx: update new path hierarchy
4532
4533 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
4534
4535         * src/SDCCpeeph.c: added okToRemoveSLOC test
4536
4537 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
4538
4539         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
4540
4541 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
4542
4543         * src/SDCCpeeph.c: added labelIsReturnOnly test
4544         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
4545
4546 2003-04-05    <johan AT balder>
4547
4548         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
4549         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
4550         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
4551         * src/SDCCast.c: fixed a warning
4552         * src/SDCCast.h: fixed a warning
4553         * src/SDCCicode.c (operandFromAst): fixed a warning
4554
4555 2003-04-04    <johan AT balder>
4556
4557         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
4558         * src/SDCCast.c (decorateType): fixed bug #715076
4559         * src/SDCC.y: fixed bug #702907
4560
4561 2003-04-03    <johan AT balder>
4562
4563         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
4564         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
4565         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
4566         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
4567         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
4568
4569 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
4570
4571         * _decdptr.c: fix return values
4572         * _gptrget.c: fix return values
4573         * _gptrgetc.c: fix return values
4574         * _gptrput.c: fix return values
4575         * _mulint.c: fix return values
4576         * as/z80/Makefile: fix 'make -j' problem
4577
4578 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
4579
4580         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
4581         * configure.in: big cleanup, updated to autoconf 2.5x
4582         * configure: rebuilt from configure.in
4583         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
4584         * sdcc_vc_in.h: reflect changes from sdccconf.h
4585         * doc/Makefile: fixed a flaw in "make install"
4586
4587 2003-04-02    <johan AT balder>
4588
4589         * src/ds390/gen.c (genCmp): no comments
4590         * src/mcs51/gen.c (genCmp): no comments
4591         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
4592         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
4593
4594 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
4595
4596         * support/regression/generate-cases.py: place generated file in given sub directory
4597         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
4598         * support/regression/Makefile: improvements for 'make -j';
4599         side effect: it's simpler and faster now
4600
4601 2003-03-31  Borut Razem <borut.razem AT siol.net>
4602
4603         * src/z80/main.c: link-{port} and as-{port} defined without path
4604         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
4605
4606 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
4607
4608         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
4609
4610 2003-03-30  Borut Razem <borut.razem AT siol.net>
4611
4612         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
4613           changed type of list parameter to set
4614         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
4615         * src/port.h: changed type of do_assemble() parameter to set
4616         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
4617           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
4618           definition of "cppoutfilename" macro with NULL value in preProcess()
4619         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
4620         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
4621         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
4622           replaced with set *binPathSet
4623         * shash_add() deallocates the item, if allready exsists, before adding the new one
4624         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
4625
4626 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
4627
4628         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
4629           a nested for loop bug in the PIC port
4630         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
4631           for loops
4632
4633 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
4634
4635         * support/Util/dbuf.h: remove C++ stuff to make it portable
4636
4637 2003-03-28  Borut Razem <borut.razem AT siol.net>
4638
4639         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
4640           literal strings in stringLiteral()
4641         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
4642         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
4643           to the project
4644
4645 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
4646
4647         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
4648
4649 2003-03-26    <johan AT balder>
4650
4651         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
4652         * src/ds390/gen.c (saveRegisters): catched symbol abuse
4653         * src/SDCCast.c (decorateType): fixed " -v < 3"
4654
4655 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
4656
4657         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
4658         Added Lenny Story's debug infrastructure changes:
4659         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
4660         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
4661         * src/cdbFile.c: added
4662         * src/SDCCdebug.c: added
4663         * src/SDCCdebug.h: added
4664         * src/SDCCast.c (createFunction)
4665         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
4666         * src/SDCCmain.c (parseCmdLine, main)
4667         * src/SDCCmem.c (redoStackOffsets)
4668         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
4669         * src/SDCCsymt.h
4670         * src/common.h
4671         * src/avr/gen.c (genAVRCode)
4672         * src/ds390/gen.c (gen390Code)
4673         * src/mcs51/gen.c (gen51Code)
4674         * src/pic/gen.c (genpic14Code)
4675         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
4676         * src/xa51/gen.c (genXA51Code)
4677         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
4678
4679 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4680
4681         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
4682         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
4683
4684 2003-03-22    <johan AT balder>
4685
4686         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
4687
4688 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
4689
4690         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
4691         * doc/cdbfileformat.lyx: added, written by Lenny Story
4692         * doc/Makefile: added cdbfileformat.lyx
4693         * doc/clean.mk: added cdbfileformat.lyx
4694
4695 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
4696
4697         * src/mcs51/peeph.def: fix bug #705773
4698
4699 2003-03-20    <johan AT balder>
4700
4701         An sfr/sbit can have an "at #" AND an initializer
4702         * src/SDCCsymt.c (checkSClass):
4703         * src/SDCCmem.c (allocGlobal):
4704         * src/SDCCmem.c (allocLocal):
4705         * src/SDCCast.c (createBlock):
4706
4707 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
4708
4709         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
4710
4711 2003-03-16    <johan AT balder>
4712
4713         Undid the hackup of const and volatile, the problem is much bigger
4714         * src/SDCC.y:1.65
4715         * src/SDCCast.c:1.171
4716         * src/SDCCglue.c:1.138
4717         * src/SDCCicode.c:1.146
4718         * src/SDCCsymt.c:1.150
4719         * src/SDCCval.c:1.65
4720
4721 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
4722
4723         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
4724         * src/ds390/gen.c (genAddrOf): fixed bug #704087
4725
4726 2003-03-13    <johan AT balder>
4727
4728         Hackup const and volatile modifiers in type chains a bit:
4729         * src/SDCC.y:1.63
4730         * src/SDCCast.c:1.169
4731         * src/SDCCglue.c:1.136
4732         * src/SDCCicode.c:1.143
4733         * src/SDCCsymt.c1.146
4734         * src/SDCCsymt.h1.59
4735         * src/SDCCval.c:1.63
4736
4737 2003-03-12    <johan AT balder>
4738
4739         * src/SDCCBBlock.h: more LRH debugging junk
4740         * src/SDCCcflow.h: more LRH debugging junk
4741         * src/SDCCloop.c: more LRH debugging junk
4742         * src/SDCC.y (struct_declaration): fixed bug #697590
4743         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
4744         * src/ds390/gen.c (aopForRemat): fixed bug #700031
4745         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
4746
4747 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
4748         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
4749         test function names must now match exactly).
4750         * src/SDCCcse.c: added special case in findCheaperOp to allow
4751         extending a short integer. Makes less awful code for bug 700121 test case.
4752
4753 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4754
4755         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
4756         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
4757
4758 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
4759
4760         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
4761         actually called (operandsNotEqual() was called for all
4762         operandsNotEqualX tests).
4763
4764 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
4765
4766         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
4767         with shorter literals. Fixes bug 700121.
4768
4769 2003-03-11    <johan AT balder>
4770
4771         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
4772
4773 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
4774
4775         * src/SDCCloop.c (mergeRegions): an evil beast is dead
4776         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
4777
4778 2003-03-10  Borut Razem <borut.razem AT siol.net>
4779
4780         * src/SDCCmain.c: pipe preprocessor's output
4781         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
4782         * sdcc_vc_in.h: define pclose as _pclose for WIN32
4783         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
4784         which closes all pipes in pipeSet set
4785         * src/SDCCset.c: free deleted item in function deleteSetItem()
4786         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
4787         moved from z80 to src subproject
4788         * .version: increased version number to 2.3.4
4789
4790 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
4791
4792         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
4793         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
4794         * support/regression/ports/xa51/spec.mk: fix typo
4795
4796 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
4797
4798         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
4799
4800 2003-03-09  Borut Razem <borut.razem AT siol.net>
4801
4802         * src/SDCCmain.c: pipe preprocessor's output
4803         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
4804         * sdcc_vc_in.h: define pclose as _pclose for WIN32
4805         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
4806         which closes all pipes in pipeSet set
4807         * src/SDCCset.c: free deleted item in function deleteSetItem()
4808         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
4809         moved from z80 to src subproject
4810
4811 2003-03-09  Borut Razem <borut.razem AT siol.net>
4812
4813         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
4814         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
4815         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
4816         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
4817         * src/SDCCglobl.h: unification of WIN32 native definitions
4818
4819 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4820
4821         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
4822
4823 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
4824
4825         * src/configure.in:   check for endianess (even while cross-compiling)
4826         * src/configure:      check for endianess (even while cross-compiling)
4827         * src/configure_in.h: check for endianess (even while cross-compiling)
4828         * src/avr/gen.c:        remove old endianess stuff
4829         * src/mcs51/gen.c:      remove old endianess stuff
4830         * src/ds390/gen.c:      remove old endianess stuff
4831         * src/pic/gen.c:        remove old endianess stuff
4832         * src/pic/genarith.c:   remove old endianess stuff
4833         * src/pic/glue.c:       fix endianess check
4834         * src/pic16/gen.c:      remove old endianess stuff
4835         * src/pic16/genarith.c: remove old endianess stuff
4836         * src/pic16/glue.c:     fix endianess check
4837         * src/xa51/gen.c:       remove old endianess stuff
4838         * src/z80/gen.c:        fix endianess check
4839         * src/SDCCglue.c:       fix endianess check
4840         * src/ds390/peeph.def: fix bug 700036
4841
4842 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
4843
4844         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
4845         * src/configure: find appropriate data-types on host for SDCC's int and long
4846         * src/configure.in: find appropriate data-types on host for SDCC's int and long
4847         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
4848         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
4849
4850 2003-03-07    <johan AT balder>
4851
4852         Just a big NOOP:
4853                 some minor cleanups before the big shot
4854                 OP_DEFS and OP_USES now use Kevin's protection
4855                 new option --nolabelopt
4856
4857         * src/SDCCBBlock.c:
4858         * src/SDCCast.c,:
4859         * src/SDCCcflow.c:
4860         * src/SDCCcse.c:
4861         * src/SDCCicode.c:
4862         * src/SDCCicode.h:
4863         * src/SDCClabel.c:
4864         * src/SDCCloop.c:
4865         * src/SDCCmain.c:
4866         * src/ds390/ralloc.c:
4867         * src/mcs51/ralloc.c:
4868         * src/pic/ralloc.c:
4869         * src/xa51/ralloc.c:
4870         * src/z80/ralloc.c:
4871
4872 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
4873
4874         * src/pic/pcode.c (get_op): fix 64 bit warnings
4875         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
4876         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
4877         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
4878         * support/regression/tests/malloc.c: fix 64 bit warnings
4879
4880 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
4881
4882         * src/mcs51/gen.c (genMinus): fixed bug 696436
4883
4884 2003-03-02  Borut Razem <borut.razem AT siol.net>
4885
4886         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
4887
4888 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
4889
4890         * configure.in: test for mkstemp
4891         * sdccconf_in.h: add HAVE_MKSTEMP
4892
4893 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
4894
4895         * device/include/ctype.h: removed warning while using --stack-auto
4896         * device/include/malloc.h: removed warning while using --stack-auto
4897         * device/include/string.h: removed warning while using --stack-auto
4898
4899 2003-02-23  Borut Razem <borut.razem AT siol.net>
4900
4901         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
4902         because NDEBUG is defined (see man assert)
4903         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
4904
4905 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4906
4907         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
4908         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
4909
4910 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4911
4912         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
4913         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
4914
4915 2003-02-18    <johan AT balder>
4916
4917         * as/mcs51/asmain.c (asmbl): module can start with a digit
4918         * as/z80/asmain.c (asmbl): module can start with a digit
4919
4920 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
4921
4922         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
4923         * src/asm.c: fix pipe() for Mingw32
4924
4925 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
4926
4927         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
4928         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
4929         make -V work again; --c1mode reads now from stdin
4930         * doc/sdccman.lyx: added --c1mode
4931         * support/Util/SDCCerr.c: new messages for c1 mode
4932         * support/Util/SDCCerr.h: new messages for c1 mode
4933         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
4934
4935 2003-02-15    <johan AT balder>
4936
4937         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
4938
4939 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
4940
4941         * doc/sdccman.lyx: Environment variables, -o and other minor things
4942
4943 2003-02-14    <johan AT balder>
4944
4945         * src/xa51/main.c: before anyone really tries to use it :)
4946
4947         * Install doc's in share/sdcc/doc
4948         * removed some obsolete files
4949         * Do a proper make distclean and uninstall
4950         M Makefile.common.in
4951         R sdccbuild.sh
4952         M as/Makefile
4953         M device/include/Makefile.in
4954         M device/lib/Makefile.in
4955         M doc/sdccman.lyx
4956         M link/Makefile
4957         M sim/ucsim/doc/Makefile.in
4958         M src/clean.mk
4959         R src/avr/peeph.rul
4960         R src/xa51/peeph.rul
4961         M support/cpp2/Makefile.in
4962         M support/makebin/Makefile
4963
4964
4965 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
4966
4967         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
4968
4969 2003-02-10  Borut Razem <borut.razem AT siol.net>
4970
4971         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
4972         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
4973         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
4974         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
4975         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
4976         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
4977         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
4978         src/z80/Makefile.bcc: Borland Makefile cleanup
4979         * as/z80/Makefile.bcc: Added Borland Makefile
4980         * support/cpp2/borland.h: Removed
4981
4982 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
4983
4984         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
4985         * src/SDCC.lex: new pragma NOIV
4986         * src/SDCCglobl.h: new pragma NOIV
4987         * src/SDCCmem.c: new pragma NOIV
4988
4989 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
4990
4991         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
4992
4993 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
4994
4995         * src/SDCCmain.c: signal handling is switched off by --debug
4996         * doc/Makefile: small fix for install; use clean.mk again
4997         * doc/clean.mk: clean *.pdf and *.html too
4998
4999 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
5000
5001         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
5002         * device/lib/printfl.c: fix a ds390 bug by making it portable
5003         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
5004         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
5005         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
5006         * debugger/mcs51/cmd.c: converted multi-line string literals
5007         * sim/ucsim/globals.cc: converted multi-line string literals
5008         * src/SDCCmain.c: introduced signal handler to remove temp files
5009         * doc/Makefile: small tweaks, implement clean
5010         * doc: removed generated files
5011
5012 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5013
5014         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
5015         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
5016         Address Record is not correctly generated for DS390."
5017
5018 2003-02-02  Borut Razem <borut.razem AT siol.net>
5019
5020         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
5021         * as/mcs51/asm.h: fixed compilation with Borland C
5022         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
5023         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
5024         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
5025         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
5026         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
5027         src/z80/Makefile.bcc: delete $(LIB) only if exist
5028         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
5029
5030 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
5031
5032         * device/include/malloc.h: introduced NULL
5033         * device/include/string.h: introduced NULL
5034         * device/include/stdlib.h: introduced NULL
5035         * device/lib/_memcpy.c: removed NULL
5036         * device/lib/_strcat.c: removed NULL
5037         * device/lib/_strchr.c: removed NULL
5038         * device/lib/_strcmp.c: removed NULL
5039         * device/lib/_strcpy.c: removed NULL
5040         * device/lib/_strcspn.c: removed NULL
5041         * device/lib/_strlen.c: removed NULL
5042         * device/lib/_strncat.c: removed NULL
5043         * device/lib/_strncmp.c: removed NULL
5044         * device/lib/_strncpy.c: removed NULL
5045         * device/lib/_strpbrk.c: removed NULL
5046         * device/lib/_strrchr.c: removed NULL
5047         * device/lib/_strspn.c: removed NULL
5048         * device/lib/_strstr.c: removed NULL
5049         * device/lib/_strtok.c: removed NULL
5050         * device/lib/malloc.c: removed NULL, include own header
5051
5052 2003-02-02    <johan AT balder>
5053
5054         * src/mcs51/ralloc.c (packForPush): fixed bug #631653, maybe other ports need this too? At least now some new alerts in SDCCBBlock.c and SDCCicode.c gives an early warning
5055         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
5056         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
5057         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
5058         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
5059         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
5060
5061 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5062
5063         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
5064         area 'DATA'"
5065
5066 2003-02-01    <johan AT balder>
5067
5068         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
5069
5070 2003-01-31    <johan AT CP255758-A>
5071
5072         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
5073
5074 2003-01-30    <johan AT balder>
5075
5076         * src/SDCCBBlock.c: automatic bug detection
5077         * src/SDCCicode.c: automatic bug detection
5078
5079 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5080
5081         * src/SDCCglobl.h:   now --xram-size 0 works
5082         * src/SDCCmain.c:    now --xram-size 0 works
5083
5084 2003-01-29    <johan AT balder>
5085
5086         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
5087
5088 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5089
5090         * as/mcs51/aslink.h: Added options --xram-size and --code-size
5091         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
5092         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
5093         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
5094         * src/SDCCglobl.h:   Added options --xram-size and --code-size
5095         * src/SDCCmain.c:    Added options --xram-size and --code-size
5096
5097 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
5098
5099         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
5100         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
5101
5102 2003-01-27    <johan AT balder>
5103
5104         * src/SDCC.y: fixed bug #613764
5105
5106 2003-01-26    <johan AT balder>
5107
5108         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
5109         * src/SDCCsymt.h: fixed bug #673374
5110         * src/SDCCglue.c: fixed bug #661910
5111         * src/SDCCast.c: fixed bug #458099 and 673374
5112
5113 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
5114
5115         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
5116         * as/mcs51/strcmpi.h: added
5117         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
5118         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
5119         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
5120         * as/mcs51/assym.c: strcmpi -> as_strcmpi
5121         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
5122         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
5123         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
5124         * as/mcs51/Makefile.aslink: new module strcmpi
5125         * as/mcs51/Makefile.asx8051: new module strcmpi
5126         * as/mcs51/Makefil.bcc: new module strcmpi
5127         * as/mcs51/Makefile.in: new module strcmpi
5128         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
5129
5130 2003-01-26    <johan AT balder>
5131
5132         * src/SDCCglue.c: reverted back to 1.124
5133         * src/SDCCast.c: reverted back to 1.156
5134         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
5135
5136 2003-01-25    <johan AT balder>
5137
5138         * src/SDCCglue.c: A better fix for bug #661910
5139         * src/SDCCast.c: A better fix for bug #661910
5140         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
5141
5142 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
5143
5144         * src/Makefile.in: remove spawn.o
5145         * src/SDCCmain.c: remove spawn.h
5146         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
5147         * src/spawn.c: removed
5148         * src/spawn.h: removed
5149         * support/regression/ports/ds390/spec.mk: link with -r
5150
5151 2003-01-24    <johan AT CP255758-A>
5152
5153         * src/ds390/gen.c (aopOp): fixed bug #667458
5154         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
5155         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
5156         (createIvalCharPtr): an ival doesn't always have a storage class anymore
5157
5158 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
5159
5160         * src/mcs51/peeph.def: better assembler identation by Frieder
5161         * src/mcs51/gen.c: better assembler identation by Frieder
5162
5163 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
5164
5165         * as/z80/string.h: removed for gcc 3.2
5166         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
5167         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
5168
5169 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
5170
5171         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
5172         * src/SDCCpeeph.c (replaceRule): fix bug #663503
5173         * support/regression/Makefile: separate temp files for ports
5174         * support/regression/generate-cases.py: separate temp files for ports
5175         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
5176         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
5177
5178 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
5179
5180         * moved tinitalk to device/examples/ds390
5181
5182 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
5183
5184         * as/mcs51/lkmem.c: rflag is for DS390
5185         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
5186         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
5187                          (linkEdit): move mem- and map-files the same way as ihx-files
5188         * src/z80/main.c (_setDefaultOptions): removed --generic
5189         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
5190         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
5191         * src/pic/glue.c (picglue): --c1mode works again
5192         * src/pic16/glue.c (pic16glue): --c1mode works again
5193         * src/asm.c (printCLine): fix #660034
5194
5195 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
5196
5197         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
5198         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
5199         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
5200         * as/mcs51/lkmem (summary): better fix for sp problem
5201         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
5202         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
5203         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
5204                                               remove --stack-after-data
5205
5206 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
5207
5208         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
5209         * src/SDCCutil.c (join): ugly bug: missing '\0'
5210         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
5211
5212 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
5213
5214         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
5215         * src/port.h: typo
5216         * src/pic/main.c (_asmCmd): gpasm supports -o
5217         * src/z80/main.c: more general macros
5218         * device/lib/Makefile.in: remove intermediate files
5219
5220 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
5221
5222         * .version: Bumped version number to 2.3.3
5223         * src/SDCCBBlock.c: new option -o
5224         * src/SDCCglobl.h: new option -o
5225         * src/SDCCglue.c: new option -o
5226         * src/SDCCmain.c: new option -o
5227         * src/asm.c: new option -o
5228         * src/ds390/main.c: new option -o
5229         * src/pic/glue.c: new option -o
5230         * src/pic/pcode.c: new option -o
5231         * src/pic/ralloc.c: new option -o
5232         * src/pic16/glue.c: new option -o
5233         * src/pic16/pcode.c: new option -o
5234         * src/pic16/ralloc.c: new option -o
5235         * src/z80/main.c: new option -o
5236         * device/lib/Makefile.in: use -o
5237         * support/regression/ports/ds390/spec.mk: use -o
5238         * support/regression/ports/gbz80/spec.mk: use -o
5239         * support/regression/ports/mcs51/spec.mk: use -o
5240         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
5241         * support/regression/ports/z80/spec.mk: use -o
5242         * support/regression/ports/ucz80/spec.mk: use -o
5243         * support/regression/ports/xa51/spec.mk: use -o
5244         * support/regression/fwk/lib/timeout.c: fix usage string
5245
5246 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
5247         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
5248
5249 2003-01-07    <johan AT balder>
5250
5251         * src/SDCCast.c (decorateType): fixed bug #600035
5252
5253 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
5254         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
5255         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
5256         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
5257         * src/pic/pcode.c: outcommented unused variable to remove warnings
5258         * src/pic/ralloc.c: outcommented unused variable to remove warnings
5259
5260 2003-01-06    <karl AT turbobit.com>
5261         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
5262    regression tests.
5263
5264 2003-01-06    <johan AT balder>
5265
5266         * src/SDCCicode.c: fixed array add
5267
5268 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
5269         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
5270         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
5271
5272 2003-01-04    <johan AT balder>
5273
5274         * src/SDCCval.c (getNelements): fixed the initialized array of structures
5275
5276 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5277         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
5278
5279 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
5280         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
5281         * support/regression/tests/bug-524697.c: fit mem usage into 8032
5282
5283 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
5284         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
5285
5286 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
5287         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
5288
5289 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
5290         * src/mcs51/main.c: removed {bindir}{sep} from aslink
5291
5292 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5293
5294     * in \sdcc\as\mcs51\ changed these files in order to create an
5295     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
5296     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
5297     following files to include the previous two files: aslink.dsp,
5298     Makefile.aslink, Makefile.bcc, and Makefile.in.
5299
5300     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
5301     .adb instead of .cdb
5302
5303 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5304
5305         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
5306         value from option --iram-size.
5307
5308 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5309
5310         * \sdcc\as\mcs51\lklist.c: added boundary check before using
5311         dram[] array.
5312
5313 2002-09-18    <wiml AT hhhh.org>
5314
5315         * SDCClrange.h: exposed setFromRange() and setToRange()
5316         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
5317           packRegsForAccUse() (bug 542397)
5318         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
5319           multiple times and emitting the fetch operations more than once
5320           added aopGetUsesAcc() function to allow binary operators to
5321           fetch their operands in the correct order; made genMinus() emit
5322           compact code for X = LITERAL - Y
5323
5324 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5325         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
5326         sprintf() in line 1267.
5327
5328 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5329         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
5330         like ports.
5331
5332 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5333         Changes to aslink (All the changes are marked with 'JCF'):
5334
5335         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
5336         summary().
5337
5338         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
5339         area BSEG.  Also moves, if possible, the DATA area down into the internal
5340         ram so more space is available.
5341
5342         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
5343         sflag.
5344
5345         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
5346         not bytes.  Function summary() which creates a memory usage summary
5347         file with extension .mem.  Reports of overlaping stack and small stack
5348         size.  If the space for the stack is less than 16 bytes aslink trows a
5349         warning.
5350
5351         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
5352         the 8051.  Option 'y' for memory summary output file.
5353
5354         Changes to sdcc (All the changes are marked with 'JCF'):
5355
5356         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
5357
5358         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
5359         overlaying area for it (uses RegBankUsed[4]).
5360
5361         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
5362         bank zero as used by default.  By default aslink locates the stack
5363         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
5364         the creation of the .mem file.  Delegates the allocation of data area
5365         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
5366         the begining of the stack area to aslink.
5367
5368         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
5369         glue() in SDCCglue.c creates an area for it.
5370
5371 2002-09-03  Borut Razem <borut.razem AT siol.net>
5372         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
5373         sdcc/src/pic/glue.c:
5374         introduced atexit() handler for teporay files removal in case of
5375         errors, assertions, ...
5376
5377 2002-08-29  Borut Razem <borut.razem AT siol.net>
5378         * sdcc/support/cpp2/auto-host_vc_in.h:
5379         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
5380         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
5381         Maybe there is a similar problem with BORLANDC? It should be checked!
5382
5383         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
5384         corrected improper use of assert: the assignment to clr variable was done inside the assert.
5385         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
5386         was not executed, and the compiler (cl) launched a warning:
5387         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
5388
5389 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
5390         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
5391
5392 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
5393         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
5394
5395         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
5396           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
5397           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
5398           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
5399           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
5400           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
5401           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
5402         - added Release configuration in VS projects
5403         - review of compiler an linker options
5404         - VC .exe files are generated in bin_vc directory, not to interfere
5405           with binaries generated from other projects (cygwin, mingw, bcc ...)
5406
5407         * sdcc/src/yacc.dsp: added
5408
5409         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
5410         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
5411         and insert the version number definitions from .version
5412
5413         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
5414
5415         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
5416         added - genarate auto-host.h using auto-host_vc_in.h as template
5417
5418         * sdcc/sdcc_vc.h,
5419         removed from CVS, generated automatically
5420
5421 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
5422         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
5423
5424 2002-08-11  Borut Razem <borut.razem AT siol.net>
5425         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
5426
5427 2002-08-10  Borut Razem <borut.razem AT siol.net>
5428         * src/SDCCmain.c (main):
5429         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
5430         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
5431         The consequence was that some temporary files were not removed.
5432
5433         * src/SDCCglue.c:
5434         unification of code in functions tempfilename() and tempfile():
5435         function tempnam() is defined in Visual Studio 6.0 and .NET
5436
5437         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
5438
5439         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
5440           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
5441         - removed compiler command line option /WX: Treats all warnings as errors
5442         - update a list of source files, included into the project
5443
5444         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
5445           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
5446         changed project type to Generic Project so that can be correcly converted to VS.NET project
5447
5448         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
5449
5450         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
5451
5452         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
5453
5454         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
5455         added return 0 statements after assert() to make compiler happy
5456
5457         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
5458         added newline in the def file to keep MSC compiler satisfied
5459
5460         * sdcc/src/z80/gen.c:
5461         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
5462           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
5463         - solved MSC error in function aopDump()
5464
5465         * sdcc_vc.h: define PREFIX as "\\sdcc"
5466
5467 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
5468         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
5469
5470 2002-06-22  Scott Dattalo <scott AT dattalo.com>
5471         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
5472         - Rewrote the register banking algorithm.
5473         - Added pCode live-range analysis to registers (for now, only non-used and
5474         singly-used registers optimized away)
5475
5476         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
5477
5478         * support/scripts/inc2h.pl Kevin L. Pauba <klpauba AT cox.net> submitted this perl script for converting MicroChip include files into SDCC Pic include files.
5479
5480 2002-05-10  Scott Dattalo <scott AT dattalo.com>
5481         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
5482
5483 2002-04-22  Michael Hope  <michaelh AT vroom>
5484
5485         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
5486
5487         * configure.in (DD_COPT): Added include support required for gbdk.
5488
5489         * .version: Bumped version number just to increase it.
5490
5491         * src/SDCCmain.c: Added -nostdinc to the default options.
5492
5493 2002-04-15  Michael Hope  <michaelh AT vroom>
5494
5495         * device/lib/z80/printf.c (sprintf): Added.
5496
5497         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
5498
5499         * src/z80/peeph.def: Added transpose redundent load rule.
5500
5501         * src/z80/main.c: Added force callee saves for jaune.
5502
5503         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
5504
5505         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
5506
5507 2002-03-28  Johan Knol  <johan AT balder>
5508
5509         * src/SDCCval.c: fixed bug #532436
5510
5511 2002-03-14  Scott Dattalo <scott AT dattalo.com>
5512         * /src/port.h:
5513         Added "char *Processor" field to the port structure.
5514
5515         * /src/SDCCmain.c:
5516         Added -p option. Allows port dependent processor to be specified.
5517
5518         * all ports:
5519         Initialized the new field char *Processor field to NULL in all ports
5520
5521         * /src/pic/*:
5522         Compiler generated registers for interrupt context saving
5523         were not getting allocated.
5524
5525 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
5526
5527         * /src/SDCCast.c:
5528         Fixed left shift. Will promote the left side of a left shift
5529         if a) left shifting more than size of operand or b) when assigned
5530         to something size > size of left side
5531
5532 2002-03-14  Scott Dattalo <scott AT dattalo.com>
5533         * src/pic/*
5534         tons of changes. Register allocation has been
5535         rewritten. Added customization for the various PICs. Flow
5536         analysis is restructured. ...
5537
5538         * src/pic/device.h:
5539         Added
5540
5541         * src/pic/device.c:
5542         Added. device.c is a PIC port hack to accomodate variations
5543         in PIC devices.
5544
5545 2002-03-13  Michael Hope  <michaelh AT vroom>
5546
5547         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
5548
5549 2002-03-04  johanknol  <johanknol AT manik>
5550
5551         * /src/SDCCval.c: fixed
5552
5553         const unsigned char arr[][2] = { { 0, 1 } };
5554         t18.c:1: error: Initializer element is not constant
5555
5556 2002-03-04  bela  <bela AT manik>
5557
5558         * /device/include/mcs51reg.h:
5559         ds89c420 register definition update
5560
5561 2002-03-03    <johan AT FRIJA>
5562
5563         * support/Util/SDCCerr.c: did something, but don't no why anymore
5564
5565         * support/regression/tests/bug-524691.c: made it a little less shy
5566
5567         * src/SDCCast.c (decorateType): fixed bug #524697
5568
5569         * src/SDCCast.c: made some lineno improvements
5570
5571         * src/SDCCval.c (getNelements): changed warning to error
5572
5573         * src/SDCCglue.c (printIvalArray): changed warning to error
5574
5575         * src/SDCCicode.c: fixed a warning for mingw
5576
5577         * src/SDCCast.c (decorateType): fixed the << promotion for ops
5578
5579         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
5580
5581 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
5582
5583         * src/ds390/peeph.def:
5584         Added some more peephole rules
5585
5586         * src/ds390/gen.c: Various fixes & enhancements
5587
5588         * src/SDCClrange.c, src/SDCClrange.h:
5589         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
5590
5591         * src/ds390/ralloc.c:
5592         various fixes & enhancements (ds390) specific
5593
5594         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
5595         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
5596         from rallocs.
5597
5598         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
5599
5600 2002-03-02    <johan AT FRIJA>
5601
5602         * src/SDCCast.c (decorateType): fixed bug #524708
5603
5604         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
5605
5606         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
5607
5608 2002-03-01  Michael Hope  <michaelh AT vroom>
5609
5610         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
5611
5612         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
5613
5614 2002-03-01    <johan AT FRIJA>
5615
5616         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
5617
5618         * src/SDCCast.c (decorateType): fixed bug #524209
5619
5620         * src/SDCCval.c (valNot): fixed bug #524195
5621
5622 2002-02-26    <johan AT balder>
5623
5624         * src/xa51/gen.c: fixed a warning
5625
5626         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
5627
5628         * src/SDCCast.c (decorateType): fixed bug #522534
5629
5630 2002-02-23    <johan AT balder>
5631
5632         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
5633
5634 2002-02-22    <johan AT balder>
5635
5636         * src/SDCCast.c: fixed bug #514865
5637
5638         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
5639
5640 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
5641
5642         * sdcc/src/SDCCloop.c:
5643         Previous fix was not good. basic blocks that have "break" or "return" are
5644         not really partof a loop , but live ranges used in these blocks should
5645         be live thru the entire loop, so set partOfLoop but don't add them to
5646         loop region
5647
5648 2002-02-21    <johan AT FRIJA>
5649
5650         * src/SDCCcse.c: fixed bug #514308
5651
5652 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
5653
5654         * src/SDCCloop.c:
5655         Fixed BUG #519583. If a conditional block ended in a return/break
5656         statement inside a loop, it was not being considered part of the loop.
5657
5658         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
5659
5660 2002-02-10  Karl Bongers <karl AT turbobit.com>
5661
5662         * debugger/*:
5663         Fixed up SDCDB debugger somewhat.  Updated debugger/README
5664         with lots of comments and notes.
5665
5666         * device/examples/test2.c:
5667         Fix bug, "red" variable not being initialized(compiler complained).
5668
5669         * device/examples/Makefile, examples/test3.c:
5670         Add Makefile in device/examples folder, compiles test3.c
5671         for use as a multiple module SDCDB test case.
5672
5673         * sim/ucsim/cmd.src/cmdset.cc:
5674         Took out debug printfs in ucsim "next" command.
5675
5676         * sim/ucsim/xa.src:
5677         Karl and Johan start ucsim XA support.  Most dissassembly working,
5678         about 75% emulation done(plenty of work remaining).
5679
5680         * sim/ucsim/z80.src:
5681         Add Z80 support to ucsim, add test-ucz80 regression test,
5682         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
5683         Notice z80 compiler fails on examples/test3.c/crc code.
5684
5685 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
5686
5687         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
5688         Added support for --parms-in-bank1
5689
5690         * src/ds390/peeph.def:
5691         added a few more peephole optimzations
5692
5693         * src/ds390/main.c:
5694         1) added __builtin_inp & __builtin_outp used to read in data of given length
5695            from a memory mapped port
5696         2) added __builtin_memcmp
5697         3) added __builtin_swapw swap bytes of a short
5698
5699         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
5700         1) handle multiple send & receives from register bank1
5701         2) ralloc can now allocate DPTR1 to some liveRanges
5702
5703         * src/SDCCsymt.c, src/SDCCsymt.h:
5704         changes to handle multiple sends & receives
5705
5706         * src/SDCCptropt.h:
5707         added some pointer arithmetic optimization
5708
5709         * src/SDCCptropt.c:
5710         added some pointer arithmetic optimizations but not stable yet so not
5711         called from anywhere (will get this working shortly)
5712
5713         * src/SDCCopt.c: fixed for multiple sends & receives
5714
5715         * src/SDCCmain.c:
5716         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
5717         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
5718            set preprocessor defines (depending on options)
5719
5720         * src/SDCCicode.c, src/SDCCicode.h:
5721         changes made to handle multiple sends & receives
5722
5723         * src/SDCCglobl.h:
5724         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
5725
5726         * src/SDCCcse.c, src/SDCCcse.h:
5727         added function findbackward def (to be used in upcoming optimization)
5728
5729         * src/SDCCcflow.c, src/SDCCcflow.h:
5730         added function returnAtEnd - to determine if a basic block terminates with
5731         a RETURN iCode
5732
5733         * src/SDCCast.c, src/SDCCast.h:
5734         added option parms-in-bank1
5735
5736         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
5737         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
5738         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
5739         adjusted for --parms-in-bank1 option
5740
5741         * device/include/string.h:
5742         donot redefine "reentrant" keyword
5743
5744         * device/include/ds80c390.h: Added some more SFRs
5745
5746 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
5747
5748         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
5749
5750 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
5751
5752         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
5753
5754 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
5755
5756         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
5757
5758 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
5759
5760         * Added --xram-movc option
5761
5762 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
5763
5764         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
5765
5766 2002-01-11  Johan Knol
5767
5768         * Added math lib of Jesus Calvino-Fraga
5769
5770 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
5771
5772         * src/SDCCmain.c (processFile): fix processing of ../../src.c
5773         * support/regression/Makefile: new target test-mcs51-stack-auto
5774         * support/regression/ports/mcs51-stack-auto/spec.mk: added
5775
5776 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
5777
5778         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
5779
5780 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
5781
5782         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
5783
5784 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
5785
5786         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
5787
5788         * src/SDCCglue.h: add definition for printIvalChar()
5789
5790 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
5791
5792         * src/SDCCast.c: fix #498138 by Johan
5793
5794         * src/SDCCglue.c: fix #498138 by Johan
5795
5796 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
5797
5798         * support/regression/Makefile: fix clean
5799
5800         * support/regression/ports/ds390/support.c: fix transmission of last character
5801
5802 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
5803
5804         * /sdcc/src/ds390/gen.c:
5805         a) improved computing address of stack variable
5806         b) took out some #if 0 code
5807         c) improved parmBytes adjustment
5808         d) improved genPlusIncr & genMinusIncr
5809         e) genCmp could generate bad code (when left assigned to DPTR)
5810         f) Fixed bug in hasInc
5811
5812         * /sdcc/src/ds390/ralloc.c:
5813         a) packRegsForSupport could mess up live information (Fixed)
5814         b) packRegsDPTRuse could be incorrect for left & right shift
5815
5816         * /sdcc/src/mcs51/ralloc.c:
5817         packRegsForSupport could mess up the live information (Fixed)
5818
5819         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
5820
5821         * /sdcc/src/SDCCast.c:
5822         can reverse a loop even if function call is present as long
5823         as the loop control variable is local & is not passed as parameter
5824
5825 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
5826
5827         * /sdcc/ChangeLog: *** empty log message ***
5828
5829         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
5830         More builtin function additions for TININative
5831
5832         * /sdcc/src/ds390/ralloc.c:
5833         Had broken the regression testsuite
5834
5835         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
5836
5837         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
5838         Added funcattr hasStackParms will be set for reentrant functions when there
5839         are paramteres on the stack, this helps in minimizing frame pointer generation
5840         typeFromStr can handle function pointers now
5841
5842         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
5843         *** empty log message ***
5844
5845 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
5846
5847         * /src/ds390/gen.c, /src/ds390/main.c:
5848         More builtin function additions for TININative
5849
5850         * /src/ds390/ralloc.c:
5851         Had broken the regression testsuite
5852
5853         * /src/SDCCast.c: Fixed a bug in dumptree
5854
5855         * /src/SDCCsymt.c, /src/SDCCsymt.h:
5856         Added funcattr hasStackParms will be set for reentrant functions when there
5857         are paramteres on the stack, this helps in minimizing frame pointer generation
5858         typeFromStr can handle function pointers now
5859
5860         * /doc/builtins.txt, /doc/TININative.txt:
5861         *** empty log message ***
5862
5863
5864 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
5865
5866         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
5867         ALPHA version for -mTININative
5868
5869         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
5870         updated to reflect changes in the port structure
5871
5872         * /src/port.h:
5873         added function do_assemble (similar to do_link) if non-null this function
5874         will be called to do assembly (-mTININative) requires a multi command
5875         assembly
5876         added function genAssemblerEnd will be called to generate assembler Epilogue
5877
5878         * /src/SDCCsymt.c:
5879         added _JavaNative to debug info printing
5880
5881         * /src/SDCCmain.c: added option --tini-libid
5882         added port->do_assemble function (-mTININative) has a multi command assemble
5883
5884         * /src/SDCCglue.c: Disabled "constExpr" check
5885         added port->genAssemblerEnd function
5886
5887         * /src/SDCCglobl.h: Added option --tini-libid value
5888
5889         * /src/SDCCast.h:
5890         tookout optimizeCompare from the header (has no external references)
5891
5892         * /src/SDCCast.c: made one more function "static"
5893
5894 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
5895
5896         * src/z80/mappings.i: Added z80asm support.
5897
5898         * src/z80/main.c: Added z80asm support on --asm=z80asm
5899
5900         * src/z80/gen.c: Fixed asm portability issues.
5901
5902         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
5903
5904         * src/SDCCglue.c (printExterns): Added global/extern split.
5905
5906 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
5907
5908         * support/regression/Makefile: added test for mcs51 model large
5909
5910         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
5911
5912         * support/regression/ports/gbz80/spec.mk: added -mgbz80
5913
5914 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
5915
5916         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
5917
5918 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
5919
5920         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
5921
5922         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
5923
5924 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
5925
5926         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
5927
5928         * support/regression/tests/simplefloat.c: Port to mcs51.
5929
5930 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
5931         * support/regression/tests/bug-485362.c: Added.
5932
5933         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
5934
5935         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
5936
5937         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
5938
5939         * src/z80/gen.c (aopDump): Added a dump function.
5940
5941 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
5942         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
5943
5944         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
5945
5946         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
5947
5948         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
5949
5950         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
5951
5952         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
5953
5954         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
5955
5956         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
5957
5958         * support/regression/ports/ds390/support.c: Use tinibios.
5959
5960         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
5961
5962 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
5963
5964         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
5965         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
5966
5967         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
5968
5969         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
5970
5971 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
5972
5973         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
5974
5975         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
5976         (packRegsForIYUse): Created and optimised.
5977
5978 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
5979
5980         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
5981 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
5982
5983         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
5984
5985         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
5986
5987         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
5988
5989 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
5990
5991         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
5992
5993         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
5994
5995 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
5996
5997         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
5998
5999         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
6000
6001         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
6002
6003 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
6004
6005         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
6006         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
6007         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
6008
6009         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
6010
6011         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
6012         (genNotFloat): Added.
6013         (genUminusFloat): Added.
6014
6015         * device/lib/z80/Makefile: Added floating pt stubs.
6016
6017         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
6018
6019         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
6020
6021         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
6022
6023 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
6024
6025         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
6026
6027         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
6028
6029         * sdcc/support/regression/Makefile: Add port ds390.
6030
6031         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
6032
6033         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
6034
6035         * sdcc/support/regression/ports/ds390/spec.mk: Added.
6036
6037         * sdcc/support/regression/ports/ds390/support.c: Added.
6038
6039         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
6040
6041         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
6042
6043         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
6044
6045 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
6046
6047         * device/include/malloc.h: Added z80 and gbz80 support.
6048
6049         * device/lib/gbz80/heap.s: Added.
6050
6051         * device/lib/z80/heap.s: Added.
6052
6053         * device/lib/malloc.c: Added z80 and gbz80 support.
6054
6055         * support/regression/tests/malloc.c (testMalloc): Added.
6056
6057         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
6058
6059         * support/regression/tests/bug-478094.c: Added.
6060
6061         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
6062
6063 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
6064
6065         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
6066
6067         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
6068
6069         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
6070
6071         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
6072
6073         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
6074
6075 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
6076
6077         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
6078
6079 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
6080
6081         * support/regression/tests/bug-477927.c: Added.
6082
6083         * src/z80/peeph.def: Added minor rules.
6084
6085         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
6086
6087         * src/z80/peeph.def: Added jump optimisation modification.
6088
6089 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
6090
6091         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
6092
6093 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
6094
6095         * support/regression/tests/funptrs.c: Added.
6096
6097 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
6098
6099         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
6100
6101 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
6102
6103         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
6104
6105         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
6106
6107         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
6108         (movLeft2ResultLong): Created.
6109
6110         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
6111         (joinPushes): Added.  Joins two char pushes into a word push.
6112
6113 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
6114
6115         * support/cpp2/Makefile.in (install): Added creation of dest dir.
6116
6117         * support/makebin/Makefile (install): Added creation of dest dir.
6118
6119 2001-10-24 Karl Bongers <karl AT turbobit.com>
6120
6121         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
6122
6123 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
6124
6125         * src/z80/ralloc.c: Turned off faulty pack for one use.
6126
6127         * src/z80/peeph-gbz80.def: Removed redundent restart options.
6128
6129         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
6130
6131 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
6132
6133         * support/regression/Makefile: Improved clean
6134
6135         * support/regression/ports/gbz80/spec.mk: Added clean
6136
6137         * support/regression/ports/host/spec.mk: Added clean
6138
6139         * support/regression/ports/z80/spec.mk: Added clean
6140
6141         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
6142
6143         * support/regression/ports/mcs51/timeout.c: little improvements
6144
6145 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
6146
6147         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
6148
6149         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
6150
6151         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
6152
6153 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
6154
6155         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
6156
6157         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
6158
6159 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
6160         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
6161
6162         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
6163
6164         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
6165
6166         * src/mcs51/main.c (_linkCmd): Added bin path to command.
6167
6168         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
6169
6170         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
6171
6172         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
6173
6174         * support/regression/tests/longor.c: Added.
6175
6176 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
6177
6178         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
6179
6180         * as/mcs51/aslink.h: define PATH_MAX
6181
6182         * as/mcs51/asm.h: define PATH_MAX
6183
6184         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
6185
6186         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
6187
6188         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
6189
6190         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
6191
6192         * src/SDCCglobl.h: define PATH_MAX
6193
6194         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
6195
6196         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
6197
6198 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
6199
6200         * src/z80/gen.c (gencjneshort): Fixed
6201
6202         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
6203
6204 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
6205
6206         * support/regression/tests/bug-469671.c: Added.
6207
6208         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
6209
6210 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
6211
6212         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
6213
6214         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
6215
6216 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
6217
6218         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
6219
6220         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
6221
6222         * src/device/lib/_mullong.c : removed hint: nooverlay bug
6223
6224         * src/device/lib/_divuint.c : removed hint: nooverlay bug
6225
6226         * src/device/lib/_divulong.c: removed hint: nooverlay bug
6227
6228         * src/device/lib/_moduint.c : removed hint: nooverlay bug
6229
6230         * src/device/lib/_modulong.c: removed hint: nooverlay bug
6231
6232 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
6233
6234         * src/z80/gen.c (setupPair): Added 'extended stack' support for the z80.  Can now have local variables or parameters of more than 127 bytes in size.  Increadibly slow, but it will work.  Currently anything involving the carry flag.
6235
6236         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
6237
6238         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
6239
6240 2001-10-07    <johan AT FRIJA>
6241
6242         * device/lib/gets.c (gets): fixed the return value.
6243
6244 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
6245         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
6246
6247         * src/SDCCpeeph.c (peepHole): Fixed all leaks.  Added trace support for freeing lines.  Optimised restart logic to re-run instead of restart.  Now compiles dscan.c on ~60MB instead of ~200MB.
6248
6249         * support/Util/NewAlloc.c: Added ability to use libgc instead of malloc.  Added Safe_free and Safe_strdup.  Added trace support where you can log allocations and free all at once.
6250
6251         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
6252
6253         * src/pic/gen.c: Removed Safe_strdup.
6254
6255         * configure.in: Added option to enable libgc support.
6256
6257         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
6258         (bitVectUnion): Optimised.
6259         (bitVectIntersect): Optimised.
6260         (bitVectBitsInCommon): Optimised.
6261         (bitVectCplAnd): Optimised.
6262
6263         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
6264
6265 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
6266
6267         * src/SDCCmain.c: distinguish between assembler debug and plain options
6268
6269         * src/avr/main.c:   remove standard assembler options
6270
6271         * src/ds390/main.c: remove standard assembler options
6272
6273         * src/mcs51/main.c: remove standard assembler options
6274
6275         * src/port.h: removed "PENDING" comment
6276
6277 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
6278
6279         * src/device/lib/_mulint.c  : new, with assember functions
6280
6281         * src/device/lib/_mullong.c : new, with assember functions
6282
6283         * src/device/lib/_divuint.c : with assember functions
6284
6285         * src/device/lib/_divsint.c : with assember functions
6286
6287         * src/device/lib/_divulong.c: with assember functions
6288
6289         * src/device/lib/_divslong.c: with assember functions
6290
6291         * src/device/lib/_moduint.c : with assember functions
6292
6293         * src/device/lib/_modsint.c : with assember functions
6294
6295         * src/device/lib/_modulong.c: with assember functions
6296
6297         * src/device/lib/_modslong.c: with assember functions
6298
6299         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
6300
6301         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
6302
6303         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
6304                                       replaced _mululong.c and _mulslong.c by _mullong.c
6305
6306 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
6307
6308         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
6309
6310 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
6311
6312         * src/SDCCglue.c: test, if win32api is available for MINGW
6313
6314 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
6315
6316         * src/SDCCsymt.c: no more _modifier in printTypeChain()
6317         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
6318         * support/regression/ports/gbz80/spec.mk: removed GENERIC
6319         * support/regression/ports/host/spec.mk: removed GENERIC
6320         * support/regression/ports/mcs51/spec.mk: removed GENERIC
6321         * support/regression/ports/z80/spec.mk: removed GENERIC
6322
6323 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
6324
6325         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
6326
6327         * support/regression/tests/bug-467035.c: Created.
6328
6329 2001-10-01    <johan AT FRIJA>
6330
6331         * src/SDCC.y: fixed bug #466586 part 1
6332
6333 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
6334
6335         * SDCCicode.c: z80 has no generic pointers
6336         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
6337
6338 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
6339
6340         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
6341
6342 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
6343
6344         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
6345
6346         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
6347
6348 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
6349
6350         * configure.in: Fixed up so that ucsim is only configured once.
6351
6352         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
6353
6354         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
6355         (getPathDifference): As above.
6356
6357         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
6358
6359         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
6360
6361 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
6362         * .version: Updated to 2.3.1
6363
6364         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
6365         Added copyright header.
6366
6367         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
6368         (assemble): Added support for macro based assembler commands.
6369         (linkEdit): Added support for macro based linker commands.
6370         (preProcess): Changed the pre-processor to use macros.
6371         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
6372         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
6373
6374         * device/lib/z80/crt0.s: Added module name for debugging.
6375
6376 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
6377
6378         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
6379
6380         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
6381
6382         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
6383
6384         * src/Makefile.in: Added SDCCmacro and SDCCutil
6385
6386 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
6387
6388         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
6389
6390 2001-09-16    <johan AT FRIJA>
6391
6392         * support/Util/SDCCerr.c: fixed up the error/warning/info database. I only changed the E_ W_ I_ prefix to what SDCCerr.c says it is.
6393
6394 2001-09-15    <johan AT FRIJA>
6395
6396         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
6397         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
6398
6399 2001-09-11    <johan AT FRIJA>
6400
6401         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
6402
6403 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
6404
6405         * support/regression/tests/bug-460444.c: Added test case.
6406
6407         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
6408         (genCast): Added justification for all of the asserts.
6409
6410 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
6411
6412         * support/regression/support.c: _xdata replaced by xdata
6413
6414         * support/regression/spec.mk: removed _generic
6415
6416 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
6417
6418         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
6419
6420         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
6421         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
6422
6423         * src/z80/peeph.def: Added a rule to optimise shift then compare.
6424
6425         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
6426
6427         * support/regression/tests/bug-460010.c: Added test case.
6428
6429         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
6430
6431 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
6432
6433         * support/regression/Makefile: inter-port-clean adjusted for mcs51
6434
6435         * support/regression/testfwk.c: removed workaround for bug #436344
6436
6437         * support/regression/tests/bp.c: use less memory with mcs51
6438
6439         * support/regression/tests/bug-441448.c: use less memory
6440
6441         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
6442
6443         * support/regression/collate-results.py: typo
6444
6445 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
6446
6447         * support/regression/tests/fetchoverlap.c: Added new test case.
6448
6449         * support/regression/tests/bp.c: Added new test case.
6450
6451         * support/regression/tests/bug-448984.c: Added new test case.
6452
6453         * support/regression/tests/pow2shifts.c: Added new test case.
6454
6455         * src/z80/gen.c: Turned off the noise it normally generates for the release.
6456         (genlshTwo): Fixed right shift for count > 8.
6457
6458         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
6459
6460 2001-09-08    <johan AT FRIJA>
6461
6462         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
6463
6464 2001-09-07    <johan AT FRIJA>
6465
6466         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
6467
6468         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
6469
6470 2001-09-06    <johan AT FRIJA>
6471
6472         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
6473         * bernhard noted me at this: "() equals to (void)" (1.38)
6474
6475 2001-09-05    <johan AT FRIJA>
6476
6477         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
6478
6479 2001-09-04    <johan AT FRIJA>
6480
6481         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
6482
6483
6484 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
6485
6486         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
6487
6488 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
6489
6490         * link/z80/aslink.h: Fixed path for PATH_MAX
6491
6492 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
6493
6494         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
6495
6496         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
6497
6498         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
6499
6500         * src/z80/gen.c (genUminus): Fixed add, sub, and uminus on the gbz80 port for longs.  Had to shift some functions about to do it.
6501
6502 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
6503
6504         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
6505         (genCmp): Fixed up genCmp for the GB with longs.
6506
6507         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
6508
6509         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
6510
6511         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
6512
6513         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
6514
6515 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
6516
6517         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
6518
6519 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
6520
6521         * device/lib/gbz80/crt0.s (init): Fixed up support for the gbz80 such that it will at least run (and fail badly) the regression tests.
6522
6523         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
6524
6525 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
6526
6527         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
6528
6529         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
6530
6531 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
6532
6533   * sim/ucsim/configure:    little improvement of Cygwin-detection
6534   * sim/ucsim/configure.in: little improvement of Cygwin-detection
6535   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
6536   * support/regression/tests/bug-221100.c: small changes for mcs51
6537   * support/regression/tests/bug-221168.c: small changes for mcs51
6538   * support/regression/tests/bug-227710.c: small changes for mcs51
6539   * support/regression/tests/staticinit.c: small changes for mcs51
6540   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
6541   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
6542   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
6543
6544 $Revision$