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