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