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