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