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