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