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