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