]> git.gag.com Git - fw/sdcc/blob - ChangeLog
7e93e65042ab9f3509e3f37f9bce0e638ca2423d
[fw/sdcc] / ChangeLog
1 2005-03-10 Raphael Neider <rneider AT web.de>
2
3         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4           genNearPointerGet): (hopefully) fixed access to bitfields via
5           pointers (p->bitN = x; and x = p->bitN; failed)
6         
7 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
8
9         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
10
11 2005-03-09 Raphael Neider <rneider AT web.de>
12
13         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
14
15 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
16
17         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
18         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
19           (regTypeNum): set REG_BIT type if necessary
20         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
21         * support/regression/tests/critical.c: check bug 1144613
22
23 2005-03-02 Raphael Neider <rneider AT web.de>
24
25         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
26
27 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
28
29         * src/avr/ralloc.c (serialRegAssign),
30         * src/ds390/ralloc.c (serialRegAssign),
31         * src/hc08/ralloc.c (serialRegAssign),
32         * src/mcs51/ralloc.c (serialRegAssign),
33         * src/pic/ralloc.c (serialRegAssign),
34         * src/pic16/ralloc.c (serialRegAssign),
35         * src/xa51/ralloc.c (serialRegAssign),
36         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
37
38 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
39
40         * src/SDCCast.c (decorateType): fixed bug 1124787
41
42 2005-02-20 Hubert Sack <sack AT digiplan.de>
43         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
44
45         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
46         patch #1121755
47
48 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
49
50         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
51         to keep the correct label reference count when adding/removing references
52         to labels. A peephole file using this is appended to patch #1144962.
53
54 2005-02-14 Raphael Neider <rneider AT web.de>
55
56         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
57         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
58         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
59           retrievals of result operand's value on assignment
60
61 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
62
63         * device/include/pic16/string.h: modified prototype for memccpy()
64         to memccpy(void *, void *, char, size_t)
65         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
66         check whether to omit frame pointer or not,
67         * (genInline): convert all occurences of "\n" to LF in inline
68         assembler blocks, this helps formatting the inline text,
69         * (pic16_loadFSR0): modified prototype,
70         * (genNearPointerGet, genNearPointerSet): reorganization of code,
71         removed some 8051 legacy code,
72         * (genPackBits): enabled handling bitfields exceeding one byte in size,
73         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
74         before allocating temporary registers in functions,
75
76 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
77
78         * support/regression/tests/bitvars.c: corrected the "fix"
79
80 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
81
82         * support/regression/tests/bitvars.c,
83         * support/regression/tests/bitwise.c,
84         * support/regression/tests/rotate.c: "fixed" problems on Alpha
85
86 2005-02-10 Raphael Neider <rneider AT web.de>
87
88         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
89           different size for Alpha
90         * src/pic16/gen.c (genCmpEq) : improved compare with 0
91
92 2005-02-09 Raphael Neider <rneider AT web.de>
93
94         * src/SDCC.lex(doPragma) : save and restore warning options as well
95           (also added new stack plus clone- and copyAndFreeSDCCERRG())
96         * have #pragma less_pedantic set the errorlevel to WARNING
97           (fixes #1117001)
98         * (cloneOptimize) : fixed wrong malloc's size
99         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
100           facilitate correct handling of #pragma (save|restore)
101
102 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
103
104         * src/mcs51/gen.c: removed non-standard C nameless struct/union
105
106 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
107
108         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
109
110 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
111
112         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
113
114 2005-02-02 Raphael Neider <rneider AT web.de>
115
116         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
117         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
118         * (pic16_storeForReturn): fixed to allow returning function pointers
119         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
120         * device/include/pic16/{stddef.h,stdbool.h}: added
121
122 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
123
124         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
125
126 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
127
128         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
129         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
130          appeared to be required
131
132 2005-01-31 Borut Razem <borut.razem AT siol.net>
133
134         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
135           include/mcs51 and include/z80 directories to the package
136
137 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
138
139         * src/hc08/gen.c (genFunction): fixed bug #1112752
140
141 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
142
143         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
144
145 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
146
147         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
148
149 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
150
151         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
152
153 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
154
155         * device/include/c8051fxxx.h: removed these 6 files
156         * device/include/mcs51/c8051fxxx.h: added these 11 new files
157
158 2005-01-26 Raphael Neider <rneider AT web.de>
159
160         * src/pic16/gen.c (genAssign): fixed assignment from longs
161           in codespace (were cut to three bytes)
162         * (genDummyRead): implemented (except for CODESPACE...),
163           fixed bug #1108575
164         * src/pic16/glue.c (emitStatistics): beautified
165         * device/lib/pic16/libm/Makefile: added include path
166
167 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
168
169         * src/z80/gen.c (aopPut): fixed bug #1103902
170
171 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
172
173         * device/lib/expf.c: fixed bug #1095792
174
175 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
176
177         * device/lib/pic16/libm: added Math library sources
178
179 2005-01-24 Raphael Neider <rneider AT web.de>
180
181         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
182           to enable upcast to pCodeOpReg2 (there is no type tag to
183           differenciate the two and pic16_popGet2p cast into PCOR2)
184         * src/pic16/main.c (_process_pragma): fixed another malloc bug
185           (sizeof(sectNames) changed to sizeof(sectName))
186           Both patches fix segfaults under MinGW.
187
188 2005-01-23 Raphael Neider <rneider AT web.de>
189
190         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
191           Safe_[mc]?alloc()'ed variables
192         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
193           of (byte sized) temporaries (assign them to WREG for now)
194         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
195           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
196           this might fix SIGSEGVs on MinGW...
197         * src/SDCCopt.c (killDeadCode): restored original behaviour
198           (volatile operands might get thrown away though)
199
200 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
201
202         * src/pic16/gen.c: fixed bug #1106975,
203         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
204         pointer update, INTCON is saved, global interrupts are disabled and
205         restored after updateing TOS.
206         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
207         * added function attribute 'shadowregs' to take advantage of shadow
208         registers,
209         * added function attribute 'wparam' as an alternative to the wparam
210         pragma,
211         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
212         user declares a non-ISR function as 'shadowregs',
213         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
214
215 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
216
217         * .version: bumped version number to 2.4.8
218         * device/lib/pic16/pics.all: list of PIC18F devices supported by
219         pic16 port,
220         * device/lib/pic16/libio/i2c/: I2C module support library,
221         * device/include/pic16/i2c.h: I2C support library header,
222         * device/lib/pic16/libc/stdio/: standard IO support sources,
223         * (printf_small.c): printf_small() source, supports float print,
224         * (printf_tiny.c): printf_tiny() source, does not support floats,
225         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
226         enable global optimizations for entire library source, other
227         Makefiles in the source tree are also modified to reflect this,
228         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
229         function,
230         * doc/sdccman.lyx: updated to reflect new changes,
231         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
232         sym->onStack if-case,
233         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
234         sbit, idata, _idata, xdata, _xdata,
235         * added pragma library, to link an external library, (see doc),
236         * removed command line options, --pomit-config-words, --pomit-ivt,
237         --pleave-reset-vector,
238         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
239         when calling assembler to reflect memory model used, also define
240         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
241         reflect stack model used,
242         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
243         on stack return NULL,
244
245 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
246
247         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
248           of the operands is volatile. Fixes #1020220
249
250 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
251
252         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
253         * (OptimizeRegUsage): make sure that there is really no other flow where
254           the first pCode is used
255
256 2005-01-22 Raphael Neider <rneider AT web.de>
257
258         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
259           to fix #1106967 (pCode->seq are not set up correctly)
260
261 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
262
263         * src/SDCCglue.c (glue): make sure code area is declared before the
264         static initialization area.
265
266 2005-01-21 Raphael Neider <rneider AT web.de>
267
268         * device/lib/Makefile.in: fixed test for pic16 install dir
269         * device/lib/pic16/*/Makefile*: modified compile flags to enable
270           optimizations
271         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
272           added --optimize-goto compiler switch and pragma wparam documentation
273         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
274         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
275           and PRODH closing bug #1071770 (peephole optimizer)
276
277 2005-01-19 Raphael Neider <rneider AT web.de>
278
279         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
280           cmdLine buffers (used when calling sdcpp...) are large enough
281           (MAX_PATH=256 truncates arguments leading to system halts when
282           used in MinGW...)
283         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
284         * (genUminus): rewritten to for efficiency
285         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
286           used uninitialized in some cases)
287         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
288           copy the third byte from the int -- now assumes 0x80 (data memory)
289         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
290           operands (genAddLit expects the iCode's operands to swapped as
291           well), fixed leftover bytes (crashed for short left operands)
292         * (pic16_genMinusDec): performance improvements, removed false
293           PIC14 emitSKPNCs
294         * (pic16_genMinus): fixed to cope with differently sized operands
295         * src/pic16/glue.c (pic16_glue): added new banksel optimization
296           for --obanksel > 1
297         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
298         * src/pic16/graph.[ch]: implementation of directed graphs, used by
299           new banksel optimization
300         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
301           analysis for temporary registers (segfaults...)
302         * src/pic16/peeph.def: added rule
303
304 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
305
306         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
307         which converts a float number to its ASCII representation
308         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
309         functions to convert the fractional and integer part of a float to ASCII,
310         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
311         realloc.c): added _MALLOC_SPEC to explicit place variables in data
312         ram
313         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
314         _STATMEM macros,
315         * device/include/pic16/adc.h: added GPL info,
316         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
317         a pCodeOp as tested operand,
318         * (genNearPointerGet): optimized bit testing, does not use
319         intermediate register for bit value, test directly instead with
320         BTFSS, BTFSC, works only for single bits,
321         * (genpic16Code): dump the name of the iCode in the asm,
322         * src/pic16/ralloc.c (decodeOp): removed static declaration and
323         renamed to pic16_decodeOp,
324         * (serialRegAssign): do not allocate a temporary register for iCode
325         sequences that test a single bit for 1/0
326
327 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
328
329         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
330         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
331         access stack and frame pointers. They are initially assigned to
332         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
333         accessing SFRs. Updated all occurences of modification of stack or
334         frame pointer in gen.c and pcode.c,
335         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
336         assigning of a literal value to pointers,
337         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
338         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
339         selected
340
341 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
342
343         * doc/sdccman.lyx: update documentation about stack pragma, added
344         some info for stack memory models
345
346 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
347
348         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
349
350 2005-01-08 Raphael Neider <rneider AT web.de>
351
352         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
353           udata sections to fix bug #1097823
354
355 2005-01-05 Raphael Neider <rneider AT web.de>
356
357         * src/pic16/gen.c (genGenericShift): added handling of differently
358           sized left operand and result
359
360 2005-01-04 Raphael Neider <rneider AT web.de>
361
362         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
363         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
364           to hold the condition bit)
365         * added new version of genCmp (old code available via #define)
366         * added new version of genShiftLeft/genShiftRight in a generic
367           way, now supports shifting by negative values
368         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
369           shiftCount (expected by genGenericShift)
370         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
371         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
372           dump
373         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
374           is an invalid literal too...)
375
376 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
377
378         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
379         from Raphael Neider,
380         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
381         for 8-bit literals. This fixes some literal operands which are sign
382         extended to 16-bits ints when instruction needs only 8-bits.
383
384 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
385
386         * device/lib/logf.c: added mcs51 assembly version
387         * device/lib/expf.c: added mcs51 assembly version
388         * device/lib/_logexpf.c: new shared asm code for expf and logf
389         * device/include/math.h: add defines for assembly math library
390         * device/lib/Makefile.in: build new _logexpf.c
391         * device/lib/libfloat.lib: use new _logexpf.c
392
393 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
394
395         * src/pic/device.c
396         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
397           device types which have less than 0x7f registers.
398
399 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
400
401         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
402
403 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
404
405         * device/lib/printf_fast.c: only build on supported arch.
406         * device/lib/printf_tiny.c: only build on supported arch.
407         * device/lib/printf_fast_f.c: only build if asm float lib
408         * device/lib/_fsget1arg.c: only build if asm float lib
409         * device/lib/_fsget2args.c: only build if asm float lib
410         * device/lib/_fsnormalize.c: only build if asm float lib
411         * device/lib/_fsreturnval.c: only build if asm float lib
412         * device/lib/_fsrshift.c: only build if asm float lib
413         * device/lib/_fsswapargs.c: only build if asm float lib
414         * device/include/stdio.h: don't provide print_fast,
415           print_fast_f, print_tiny prototypes if --xstack used
416
417 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
418
419         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
420         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
421           to the SOURCES
422
423 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
424
425         * device/lib/printf_fast_f.c: same as printf_fast, but
426           with floating point enabled
427         * device/lib/printf_fast.c: minor tweaks
428         * device/include/stdio.h: add printf_fast_f
429
430 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
431
432         * src/SDCCmain.c: make --float-reent default for mcs51
433         * device/lib/_fsadd.c: added mcs51 assembly version
434         * device/lib/_fssub.c: added mcs51 assembly version
435         * device/lib/_fsmul.c: added mcs51 assembly version
436         * device/lib/_fsdiv.c: added mcs51 assembly version
437         * device/lib/_fseq.c: added mcs51 assembly version
438         * device/lib/_fsneq.c: added mcs51 assembly version
439         * device/lib/_fsgt.c: added mcs51 assembly version
440         * device/lib/_fslt.c: added mcs51 assembly version
441         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
442         * device/lib/Makefile.in: add _fscmp to build
443         * device/lib/libfloat.lib: add _fscmp to build
444
445 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
446
447         * device/lib/_fs2slong.c: added mcs51 assembly version
448         * device/lib/_fs2sint.c: added mcs51 assembly version
449         * device/lib/_fs2schar.c: added mcs51 assembly version
450         * device/lib/_fs2ulong.c: added mcs51 assembly version
451         * device/lib/_fs2uint.c: added mcs51 assembly version
452         * device/lib/_fs2uchar.c: added mcs51 assembly version
453         * device/lib/_slong2fs.c: added mcs51 assembly version
454         * device/lib/_sint2fs.c: added mcs51 assembly version
455         * device/lib/_schar2fs.c: added mcs51 assembly version
456         * device/lib/_ulong2fs.c: added mcs51 assembly version
457         * device/lib/_uint2fs.c: added mcs51 assembly version
458         * device/lib/_uchar2fs.c: added mcs51 assembly version
459         * device/include/float.h: added #define to select asm vs c
460
461 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
462
463         * device/lib/printf_fast.c: improvements to float output
464         * device/include/float.h: add defines for assembly float library
465         * device/lib/_fsget1arg.c: receive 1 float arg
466         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
467         * device/lib/_fsnormalize.c: normalize a float
468         * device/lib/_fsreturnval.c: return float, various helper routines
469         * device/lib/_fsrshift.c: right shift a float's mantissa
470         * device/lib/_fsswapargs.c: swap 2 floats
471         * device/lib/Makefile.in: build these 6 new files for mcs51
472         * device/lib/libfloat.lib: add these 6 files to the library
473
474 2004-12-26 Borut Razem <borut.razem AT siol.net>
475
476         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
477           built by gcc 3.4.2
478
479 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
480
481         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
482           and fully reentrant and register bank neutral.
483         * device/lib/printf_fast.c: added float (not enabled by default),
484           added compact/slower integer (also not enabled by default),
485           improved size/speed of fast integer code, other minor changes
486         * device/include/stdio.h, device/lib/Makefile.in,
487           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
488
489 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
490
491         * src/pic16/pcode.c: declaring variables other than at the start of a
492           block is not supported in C by VC6.
493
494 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
495
496         * applied a previous patch from Raphael Neider that wasn't included
497         in the previous commits, which fixes infinite loops within jumptable
498         improvements,
499         * made some fixes that previous patches introduced
500
501 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
502
503         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
504         that fixes an issue with AOP_PCODE asmop's offset,
505         * (pic16_popCopyReg): update instance field too,
506         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
507         function of pic port,
508         * (genCmp, genAnd, genAssign),
509         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
510
511 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
512
513         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
514         variables initial values to idata section,
515         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
516         variables in some functions. This utilizes parmBytes field of iCode
517         structure to hold the offset of the variable in stack. (might be
518         able to use the stack field too?)
519         * applied patch from Raphael Neider # ### , # ###
520         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
521         variable initial values in idata section,
522         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
523         for static variables with initial value
524         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
525         applied fix in while loop from Raphael Neider.
526
527 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
528
529         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
530         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
531         * src/ds390/ralloc.c (serialRegAssign): spill bits
532         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
533         * support/Util/SDCCerr.c,
534         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
535         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
536         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
537
538 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
539
540         * device/include/sdcc-lib.h: inserted LGPL, added includes
541           asm/ds390/features.h and asm/mcs51/features.h
542         * device/include/asm/default/features.h,
543         * device/include/asm/gbz80/features.h,
544         * device/include/asm/z80/features.h: added empty _AUTOMEM
545           and _STATMEM
546         * device/include/asm/ds390/features.h,
547         * device/include/asm/mcs51/features.h: added files with defines for
548           _AUTOMEM and _STATMEM indicating automatic and static storage class
549         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
550         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
551         * src/SDCCicode.c (geniCodeCast),
552         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
553         * src/SDCCloop.c (loopInduction): removed unused variable lr
554         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
555           to convertToFcall to include char modulo (RFE 1065037), added check
556           if left operand is unsigned and use abs of literal value
557         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
558           as it doesn't work after conversion from peephole.def to peephole.rul
559         * src/mcs51/gen.c (toBoolean): added check for size,
560           (genModOneByte): optimized code for signed char modulo a literal
561           power of 2 (thanks to Hubert Sack),
562           (genRRC): removed unnecessary "clr c",
563           (genRLC): replaced "add a,acc" with cheaper "rlc a"
564         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
565           jump optimization,
566           swapped rules 256.c and 256.d,
567           extended 256.d by using new multiple checks (thanks Erik),
568           added rules 256.e and 256.f,
569           updated rule 261.a and 261.b to new generated code
570         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
571
572 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
573
574         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
575           induction related bugs, including first part of bug #1074377
576
577 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
578
579         * applied patch from bug-report #1076292,
580         * applied patches for genAnd and Goto-optimizations for Raphael
581         Neider,
582         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
583         dump a less iCode information,
584         * src/pic16/device.h (pic16_options_t): added field debgen,
585         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
586         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
587         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
588         puclic,
589         * (various functions): added macros FENTRY and FENTRY2 to functions,
590         to emit function prologue,
591         * (various functions): fixed indentation,
592         * (genNearPointerGet): fixed loading of FSR0,
593         * (genPackBits): applied patch from Raphael Neider to fix updating
594         of FSR0 and touching only the modified bits,
595         * src/pic16/genarith.c (various functions): added macros FENTRY to
596         emit function prologue in comments,
597         * src/pic16/pcode.h: added functions debugf2, debugf3,
598         * src/pic16/ralloc.c: partial fix for packForPush caused
599         segmentation fault,
600
601 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
602
603         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
604           <stsp AT users.sourceforge.net> with reversed byte order
605         * support/regression/tests/rotate.c: added (ds390 skips some tests)
606
607 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
608
609         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
610           bug #1074377
611         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
612         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
613
614 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
615
616         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
617
618 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
619
620         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
621           conditions,
622           (setFromConditionArgs): friendly operand parser for peephole rules,
623           (operandBaseName, operandsNotRelated): new peephole condition
624           "operandsNotRelated" -- similar to "operandsNotSame", but takes
625           architecture specific register naming into account, handles n-way
626           comparisons, and supports quoted literals
627         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
628
629 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
630
631         * src/mcs51/peeph.def: fixed bug #1076940
632
633 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
634
635         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
636
637 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
638
639         Adding support for replacing ljmps with sjmps in jumptables
640         generated for switch statements. For now you need to set the
641         environment variable SDCC_SJMP_JUMPTABLE to enable this.
642         Now 4 algorithms for mcs51 jumptable generation are used:
643         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
644         addresses loaded pc-relative for up to 112 cases and stack-pushing
645         target addresses loaded with offset from dptr for up to 256 cases.
646
647         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
648         * src/mcs51/main.c: adapted constants for switch table generation
649         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
650
651 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
652
653         * device/lib/printf_large.c (_print_format): fixed bug 1073386
654         * support/regression/tests/bug1057979.c: added test for bug 1073386
655
656 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
657
658         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
659         compilers
660
661 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
662
663         * src/pic16/device.h,
664         * src/pic16/genarith.c,
665         * src/pic16/glue.c,
666         * src/pic16/main.c,
667         * src/pic16/pcode.c: applied patches #1068154 and #1070213
668
669 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
670
671         Large cummulative patch for pic16 port.
672         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
673         to call when a stack overflow occurs,
674         * (malloc.h): added CVS Id tag,
675         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
676         variable,
677         * added libc directory. The current version of LibC contains string
678         functions, ctype functions and macros and some functions of the
679         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
680         be extensively tested in the future. Standard disclaimer here.
681         Library is not automatically build yet. But one can build it by
682         invoking 'make' inside the libc directory.
683         * added ADC library under libio. Preliminary version yet.
684
685         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
686         * src/pic16/gen.c (aopForRemat): asmop size is filled by
687         aopForRemat() now and not by pic16_aopOp(),
688         * (pic16_popGetTempReg): removed warning messgae when allocating
689         temporary registers, its a buggy feature and will be removed,
690         * (pic16_popGet): set register instance field in AOP_CRY,
691         * (pic16_outBitC): fixed for results in size greater than 1,
692         * (genUminusFloat): fixed for pic16, ported code from mcs51,
693         * (pic16_storeForReturn): optimized return of 0,
694         * (genCmp): experimental code for new genCmp which uses PIC18's
695         special compare&skip instructions. Initial tests fail some times
696         with variables grater than 1 byte in size, so new code is disabled,
697         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
698         a single bit,
699         * (genCast): began a fix to optimize the casting of a bit to another
700         bit, now assigning a bitfield to another bitfield will fail, sorry,
701         * src/pic16/main.c: disabled the use of lr-support feature,
702         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
703         * added some function prototypes, added function _debugf prototype,
704         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
705         bits with offset (case PO_GPR_BIT),
706         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
707         command line,
708         * (isBankInstruction): modified to return 0 for no banking instruction,
709         and 1 for banking instruction,
710         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
711         caused stop processing pCodes after a inline assembly block,
712         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
713         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
714         registers when it shouldn't,
715         * src/pic16/ralloc.c (allocReg): add preliminary support for
716         supporting a limited set of temporary registers,
717
718 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
719
720         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
721           genDataPointerSet): ensure assignments always copy in MSB to LSB
722           order,
723           (loadRegFromAop): recognize CLRH optimization,
724           (genFunction): optimize RECEIVE iCodes in reentrant functions
725
726 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
727
728         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
729           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
730           selected.
731         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
732         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
733           contiguous with data
734
735 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
736
737         * device/lib/_gptrget.c (_gptrget),
738         * device/lib/_gptrgetc.c (_gptrgetc),
739         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
740           instead of sjmp to ret
741         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
742           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
743
744 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
745
746         * .version: bumped version to 2.4.7
747         * device/lib/_gptrget.c (_gptrget): is now _naked
748         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
749         * device/lib/_gptrput.c (_gptrput): is now _naked
750         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
751           (createFunction): fixed xstack
752         * src/SDCCglue.c (emitMaps): set allocation required for bit area
753         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
754           or bit either,
755           (geniCodeCritical): store original interrupt state in an iTemp bit
756           var unless stack-auto
757         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
758         * src/SDCCmain.c (setIncludePath): added include/target to search path
759         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
760         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
761           prototype,
762           (processFuncArgs): put bit vars in bit area
763         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
764           unsaveRBank): fixed xstack,
765           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
766           (genFunction, genEndFunction): fixed xstack,
767           (genAssign): optimization don't walk backwards through mem
768         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
769         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
770         * support/regression/Makefile: also make library (for stack-auto) when
771           making "all" and added "test-mcs51-xstack-auto"
772         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
773         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
774         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
775         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
776         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
777           make-library by MAKE_LIBRARY
778         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
779           regression tests for xstack
780         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
781         * support/regression/tests/critical.c: test for critical on mcs51
782
783 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
784
785         * support/regression/ports/ucz80/spec.mk: use include and lib files from
786           built version of sdcc instead of installed version
787
788 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
789
790         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
791         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
792           vprintf.c now
793         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
794         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
795           WARNING: remove device/lib/build/z80/printf.o by hand when
796           updating from previous build!
797         * device/lib/z80/printf.c: updated comment
798         * support/regression/tests/bug1057979.c: test all ports now
799         * support/regression/tests/bug1065458.c: file added
800
801 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
802
803         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
804           *_start and *_end symbols for static functions
805
806 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
807
808         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
809           and search crt0.o in all library paths,
810           (setIncludePath): proper handling of --nostdinc,
811           (setLibPath): proper handling of --nostdlib
812         * support/regression/Makefile,
813         * support/regression/ports/ds390/spec.mk,
814         * support/regression/ports/gbz80/spec.mk,
815         * support/regression/ports/hc08/spec.mk,
816         * support/regression/ports/mcs51/spec.mk,
817         * support/regression/ports/mcs51-large/spec.mk,
818         * support/regression/ports/mcs51-stack-auto/spec.mk,
819         * support/regression/ports/z80/spec.mk: use include and lib files from
820           built version of sdcc instead of installed version
821         * doc/sdccman.lyx: fixed typo in --nostdinc
822
823 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
824
825         * src/pic/pcode.c,
826         * src/pic/device.c,
827         * src/pic/ralloc.c,
828         * src/pic/gen.c : added support to generate code for struct bit fields.
829
830 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
831
832         * as/xa51/xa_version.h,
833         * device/include/errno.h,
834         * device/include/regc515c.h,
835         * device/lib/_itoa.c,
836         * device/lib/_ltoa.c,
837         * device/lib/ser_ir_cts_rts.c,
838         * sim/ucsim/xa.src/glob.cc,
839         * sim/ucsim/xa.src/inst_gen.cc,
840         * sim/ucsim/xa.src/xa_bit.cc,
841         * sim/ucsim/xa.src/xa_sfr.cc,
842         * sim/ucsim/z80.src/inst_dd.cc,
843         * sim/ucsim/z80.src/inst_fdcb.cc,
844         * support/scripts/keil2sdcc.pl,
845         * src/pic16/pic16.dsp,
846         * src/pic16/pic16a.dsp: corrected cvs line endings
847         * device/lib/printf_large.c: fixed bug 1057979
848         * src/pic16/gen.c: fixed non-C standard code
849         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
850         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
851         * support/regression/ports/mcs51/support.c: reload T1 asap
852         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
853           pdata use and clear idata startup behaviour
854         * support/regression/tests/bug1057979.c: added
855
856 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
857
858         * device/examples/ds390/ow390/ad26.h,
859         * device/examples/ds390/ow390/cnt1d.h,
860         * device/examples/ds390/ow390/crcutil.c,
861         * device/examples/ds390/ow390/ownet.h,
862         * device/examples/ds390/ow390/owsesu.c,
863         * device/examples/ds390/ow390/swt12.h,
864         * device/examples/ds390/ow390/swtoper.c,
865         * device/examples/ds390/ow390/temp10.h,
866         * device/examples/ds390/ow390/thermodl.c,
867         * device/examples/ds390/tinitalk/tinitalk.dsp,
868         * device/examples/ds390/tinitalk/tinitalk.dsw,
869         * device/examples/mcs51/clock/hw.h,
870         * device/examples/mcs51/simple2/go.bat,
871         * device/examples/serialcomm/windows/serial.h,
872         * device/examples/xa51/dummy.c,
873         * device/examples/xa51/hello.c,
874         * device/include/80c51xa.h,
875         * device/include/at89x051.h: corrected cvs line endings
876
877 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
878
879         * src/pic16/main.c (options): added command line --gstack, to trace
880         stack over/under flows,
881         * added pragma 'wparam' to allow passing first byte of function
882         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
883         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
884         call to __gstack_test function and sets up the symbol as extern,
885         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
886         * popaop): added call to pic16_testStackOverflow,
887         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
888         wparamList list,
889         * (genCall, genPcall): now all parameters are passed via stack
890         except in functions that are pass to wparam pragma in which WREG is
891         used too,
892         * (genPcall): REENTRANT flag is checked to see if variable prototype
893         contains reentrant keyword, don't call a non-reentrant function, via
894         a reentrant function pointer or vice versa, functions are never
895         passed via WREG,
896         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
897         D.Winkler,
898         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
899         SIGSEGV when accessing a NULL register stucture,
900         * (pic16_printGPointerType): modified to handle UPPER modifier for
901         function initializers, changed prototype of function to simpler one,
902         * (pic16_printIvalFuncPtr): check to see if function is already
903         added in externs list,
904         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
905         optimized a move from W to SFR with a move to the same register
906         later after a CALL,
907         * device/lib/pic16/debug: NEW directory, contains debug features
908         which are enabled when linking with libdebug.lib, currently command
909         line option --gstack enables stack pointer tracing for over/under
910         flow, corresponding sources are in debug/gstack
911
912 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
913
914         * doc/sdccman.lyx: updated SDCC version,
915         * (PIC16 port): update list of command line options,
916         * src/pic16/device.h (structure pic16_options_t): added field gstack
917         to enable stack overflow tracing on push/pops,
918         * src/pic16/device.c (statistics structure): added statistics
919         structure,
920         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
921         pic16_dump_int_registers): increase statistics counters for each
922         * variable which is encountered
923         * (pic16_dump_usection): emit each .udata variable to its own udata
924         section,
925         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
926         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
927         parameters via stack, otherwise use old scheme,
928         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
929         assembler output file,
930         * src/pic16/main.c: added command line options --gstack to enable
931         push/pop tracing for stack overflow,
932         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
933         instructions): added size of each instruction,
934         * (pic16_countInstruction): estimate size of instructions in
935         the_pFile list, inline assembly blocks are not counted,
936         * (pic16_FixRegisterBanking): trace previous register usage, when
937         banksel optimizations is greater than 0, don't emit a redudant
938         banksel directive,
939
940 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
941
942         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
943         * src/pic16/ralloc.c : applied same fix for pic16.
944         * src/pic/gen.c : tidied it up a little.
945
946 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
947
948         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
949         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
950
951 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
952
953         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
954
955 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
956
957         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
958         non-reentrant function __modsint in the interrupt function (thus
959         corrupting math operations during serial I/O)
960         * device/lib/ser_ir.c: as above, changed buffersize
961         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
962         256.c,d for zeroing
963         * doc/Makefile: added option -t for rsync
964
965 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
966
967         * src/SDCCast.h (struct ast),
968         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
969
970 2004-10-20 Borut Razem <borut.razem AT siol.net>
971
972         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
973         package
974
975 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
976
977         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
978         makefile targets,
979         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
980         support functions to replace long sequences of MOVFF's from access
981         bank registers to stack and vice versa,
982         * src/pic16/device.h: added new field opt_flags, where optimization
983         flags can be set to enable certain features,
984         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
985         * pBlock, (genFunction, genEndFunction): surroung loop for
986         saving/loading used registers in stack with PC_INFO pCodes,
987         INF_LREGS. Code in between can then be optimized by pCode optimizer
988         to support function calls,
989         * (genDataPointerSet): fixed bug which loaded float fields in
990         structures with corrupt data,
991         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
992         in a standard way debug info on stderr. Feature used for developing
993         and debugging only,
994         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
995         obsolete chunks of code,
996         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
997         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
998         * pic16/src/pcode.c (pic16_newpCodeInfo,
999         * (pic16_newpCodeOpLocalRegs),
1000         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
1001         feature,
1002         * (pic16_pCodeConstString): printing of the initial value of a
1003         symbol as a comment is inhibited since parsing was already done by
1004         copyStr and output is corrupt,
1005         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
1006
1007 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1008
1009         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
1010
1011 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
1012
1013         * as/mcs51/lkarea.c: removed old K&R style,
1014           (lnksect): changed check on boundary error,
1015           (lnksect2): changed check on boundary error,
1016           (lnksect2): extend XSTK to end of page if size = 1
1017         * as/mcs51/lkmain.c: removed old K&R style,
1018           (Areas51): create l_IRAM symbol
1019         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
1020         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
1021           model-mcs51-stack-auto, added model-mcs51-xstack-auto
1022         * device/lib/_mullong.c: added version to be compiled with xstack
1023         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
1024         * device/lib/mcs51/crtxclear.asm: clear pdata as well
1025         * device/lib/mcs51/crtxstack.asm: fixed comment
1026         * src/SDCCglue.c: maxInterrupts defaults to 0,
1027           (emitMaps): added pdata,
1028           (createInterruptVect): (re)moved default,
1029           (glue): added pdata,
1030           (glue): moved __start__xstack to XSTK with default size 1
1031         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
1032           and options.float_rent when options.stackAuto is set,
1033           (linkEdit): only write XDATA_NAME if provided on command line
1034         * src/SDCCmem.h,
1035         * src/SDCCmem.c: added pdata
1036         * src/port.h: added pdata_name to PORT
1037         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
1038           (saveRegisters, unsaveRegisters): removed usage of B,
1039           (genMinus): fixed accumulator clash,
1040           (genJumpTab): added comment, this needs another look
1041         * src/mcs51/gen.c: added check for "B in use" paranoia,
1042           added pushB() and popB()
1043         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
1044           chance
1045         * src/avr/main.c,
1046         * src/ds390/main.c,
1047         * src/hc08/main.c,
1048         * src/mcs51/main.c,
1049         * src/pic/main.c,
1050         * src/pic16/main.c,
1051         * src/xa51/main.c,
1052         * src/z80/main.c: (reset_regparms) made void parameter explicit and
1053           added PSEG (PAG,XDATA) or NULL to port specifier
1054         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
1055         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
1056           (_mcs51_genInitStartup): removed __start__xstack equ,
1057           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
1058         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
1059         * src/z80/gen.c (_rleAppend): fixed warnings
1060         * support/regression/tests/zeropad.c: added pdata test
1061         * .version: bumped to 2.4.6
1062
1063 2004-10-17 Borut Razem <borut.razem AT siol.net>
1064
1065         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
1066         as a part of nightly build
1067
1068 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
1069
1070         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
1071         WREG holds the first byte function parameters,
1072         * (aopForSym): take special case for symbols which are in FARSPACE
1073         but in CODESPACE too,
1074         * (assignResultValue): modified to take into account _G.useWreg,
1075         * (genCall): don't use wreg for parameter passing when function is
1076         declared as reentrant, too, added optimization INCF to stack
1077         pointer when stack parameter count is 1,
1078         * (genFunction, genEndFunction): refurnished and fixed to not using
1079         wreg for passing parameters when function has varargs or is
1080         reentrant, fixed bug with symbol name compare for generating
1081         functions in absolute address,
1082         * (pic16_storeForReturn): refurnished,
1083         * (genCmp): began writing a new version of the function, not ready
1084         yet, therefore it is disabled,
1085         * (genAssign): do not read code memory when assigning a function to
1086         a pointer function,
1087         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
1088         array of characters, not pointer,
1089         * (pic16initialComments): in debug mode emit an .ident directive for
1090         the assembler,
1091         * (_process_pragma): emit a new warning type (internal to pic16)
1092         when setting stack to default length, emit a similar warning when
1093         placing a function at absolute address and address is not word aligned
1094         * (_pic16_parseOptions): added 'return TRUE' statement,
1095         * (_pic16_linkEdit): if compiling a source, then add the source's
1096         file object, first in the list of objects to link,
1097
1098 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
1099
1100         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
1101         * src/pic/main.c : removed VC warning.
1102         * src/pic/gen.c : changed comment.
1103
1104 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
1105
1106         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
1107         reference to a deprecated symbol _GPTRREG was causing failure to
1108         link. Thanks G. M. Gallant for the info.
1109
1110 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
1111
1112         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
1113         comments for Bugs item #954788.
1114
1115 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
1116
1117         * src/pic16/device.c (pic16_dump_gsection,
1118         * pic16_groupRegistersInSection): handle symbols declared to be in
1119         access bank differently,
1120         * src/pic16/gen.c (struct _G): added field resDirect,
1121         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
1122         send values read from stack directly to result and don't allocate
1123         temporary values,
1124         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
1125         same registers,
1126         * (pic16_sameRegsOfs): NEW,
1127         * (freeAsmop): if _G.resDirect is set then do not mark registers as
1128         free because they were not allocated from temporary pool,
1129         * pic16_popRegFromString): workaround to fix a problem with
1130         allocating variables twice or never,
1131         * (genGenPointerGet): using PRODL instead of FSR0H,
1132         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
1133         instead of FSR0H,
1134         * (genAssign): take advantage of the _G.resDirect flag,
1135         * (genCast): around line 11844, use mov2f instead of directly
1136         MOVFF'ing between operands to account for literal values,
1137         * src/pic16/genutils.c: some new debug functions for gpsim have been
1138         added,
1139         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
1140         float with integer part only,
1141         * src/pic16/main.c (_process_pragma): handle pragma udata access to
1142         place variables in access bank
1143         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
1144         updated sources to reflect recent changes in gen.c
1145
1146 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
1147
1148         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
1149         sources that searched for headers in installation path, now the
1150         device/include/pic16 is used,
1151         * src/pic16/glue.c (pic16glue),
1152         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
1153         .line directives if not in debug mode, this suppresses assembler's
1154         warnings for ignored directives
1155
1156 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
1157
1158         * src/port.h: made reset_regparms prototype void parameter explicit.
1159         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
1160         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
1161         * doc/sdccman.lyx: documented warning disabling and how to use
1162           printf_large to make it print floats.
1163         * device/include/stdbool.h: NEW
1164         * device/lib/_atof.c,
1165         * device/lib/_divuint.c,
1166         * device/lib/_divulong.c,
1167         * device/lib/expf.c,
1168         * device/lib/printf_large.c,
1169         * device/lib/sincosf.c,
1170         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
1171         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
1172           a completely reentrant lib.
1173
1174 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
1175
1176         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
1177         * device/include/pic16/stdio.h: fixed bug with colon
1178
1179 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
1180
1181         * device/include/pic16/stdio.h,
1182         * device/include/pic16/stdlib.h,
1183         * device/include/pic16/math.h: NEW
1184         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
1185         declared as _naked to reduce overhead
1186         * device/lib/Makefile.in (target port-specific-objects-pic16):
1187         changed * to *.* so to ignore the CVS directory,
1188         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
1189         stacked variables back in stack,
1190         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
1191         corruption
1192
1193 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
1194
1195         * .version: bumped version number to 2.4.5
1196         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
1197         * support/Util/SDCCerr.c (messages structure): added entry for
1198         W_POSSBUG2
1199
1200         Large cumulative patch for pic16 port and libraries.
1201         * device/include/pic16/sdcc-lib.h,
1202         * device/include/pic16/stdarg.h,
1203         * device/include/asm/pic16/features.h,
1204         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
1205         * device/include/pic16/float.h: changes reentrant keyword with
1206         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
1207         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
1208         updated target build-libraries to include objects from gptr,
1209         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
1210         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
1211         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
1212         all function headings,
1213         * src/SDCCmain.c: added global parameter userIncDirsSet,
1214         * (parseCmdLine): when option -I is encountered add directory to
1215         userIncDirsSet too,
1216         * src/version.awk: added space between control and long,
1217         * src/pic16/NOTES: added some notes for the port,
1218         * src/pic16/gen.c: added prototype for mov2fp function,
1219         * (fReturnpic16[]): properly named return value registers,
1220         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
1221         * (aopForSym): added code to handle symbols with onStack flag set,
1222         symbols onStack are allocated PTRSIZE bytes,
1223         * (aopFreeAsmop): handles special case where asmops are stack objects,
1224         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
1225         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
1226         added argument lock to trace flaws in allocating temporary registers
1227         when developing port,
1228         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
1229         * (pic16_popRegFromString): reenabled allocating a direct register
1230         from string,
1231         * (assignResultValue): various beautifications,
1232         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
1233         referenced function argument,
1234         * (genIpush): reenabled to allow stacked arguments, handles only
1235         ic->parmPush iCodes,
1236         * (genCall, genPcall): major changes to allow for variable argument
1237         functions, fixed a bug with falsely restoring stack pointer after
1238         returning from call,
1239         * (genFunction): pending code for critical function,
1240         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
1241         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
1242         * (genNearPointerGet): fixed bug with indirect reading, was always
1243         reading from INDF0
1244         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
1245         pointers,
1246         * (genAddrOf): rewrote code to take address of a stacked function parameter
1247         * (genCast): fixed casting to generic pointer type,
1248         * src/pic16/gen.h: added AOP_STA,
1249         * (struct asmop): added field stk,
1250         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
1251         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
1252         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
1253         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
1254         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
1255         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
1256         generic pointers,
1257         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
1258         and library paths,
1259         * (pic16_port structure): generic pointer size is set to 3,
1260         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
1261         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
1262         compiler warning,
1263         * src/pic16/ralloc.c (allocReg): prevent allocating register when
1264         operand is an iTemp,
1265
1266 2004-09-24 Martin Helmling <mh AT octo-soft.de>
1267
1268         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
1269         * debugger/mcs51/simi.c: addapt new syntax of s51
1270
1271 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
1272
1273         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
1274         * src/pic16/pcode.c: commented out some calls to free() in order to
1275         fix bug #989576,
1276
1277 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1278
1279         * src/SDCCicode.h,
1280         * src/SDCCicode.c (isiCodeInFunctionCall),
1281         * src/avr/ralloc.c (selectSpil),
1282         * src/pic/ralloc.c (selectSpil),
1283         * src/pic16/ralloc.c (selectSpil),
1284         * src/ds390/ralloc.c (selectSpil),
1285         * src/hc08/ralloc.c (selectSpil),
1286         * src/xa51/ralloc.c (selectSpil),
1287         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
1288         stack in the middle of a function call sequence (fixes bug #1020268)
1289         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
1290         costs associated with the minimum switch case.
1291
1292 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1293
1294         * src/SDCC.lex: fixed bug #1030549
1295
1296 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1297
1298         * src/SDCCcse.h (struct cseDef),
1299         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
1300         over a function call if the CSE is derived from a symbol whose
1301         address has been taken (fixes bug #1029883)
1302         * support/regression/tests/bug-1029883: a new regression test for
1303         this bug
1304
1305 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1306
1307         * src/hc08/gen.c (emitinline): fixed bug #1029778
1308         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
1309         to a cast object is no longer a syntax error ("fixes" bug #1030006,
1310         and starts toward RFE #905167)
1311
1312 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
1313
1314         * src/pic16/gen.c (mov2f): New function to move an operand to
1315         another without considering if it is a literal or a register,
1316         * (pic16_sameRegs): don't check if they are both AOP_REG,
1317         * (AccRsh): removed andmask=0 lines,
1318         * (genLeftShift): duplicated to be improved in future versions,
1319         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
1320         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
1321         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
1322         * (pic16initMnemonics): added initialization for POC_INFSNZW,
1323         * (insertBankSwitch): fixed inserting banksel directives algorithm
1324         for instructions that follow a skip instruction, this fixes a report
1325         for broken subtraction code generation,
1326         * src/pic16/ralloc.c (deassignLRs): do not free register if current
1327         iCode is a left op, just in case result and right share the same
1328         registers
1329
1330 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1331
1332         * src/hc08/main.c,
1333         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
1334         preservation of HX
1335         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
1336         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
1337         on 2004-09-12; it was buggy
1338
1339 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
1340
1341         * src/SDCCsymt.h: removed RESULT_CHECK
1342         * src/SDCCast.c,
1343         * src/SDCCglue.c,
1344         * src/SDCCval.c,
1345         * src/pic/glue.c,
1346         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
1347
1348 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
1349
1350         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
1351         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
1352         configuration values no more rejected by compiler, they are assigned
1353         to configuration registers with a warning message instead,
1354         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
1355         the for-loop so last conf register is emitted too,
1356         * (_pic16_initPaths): link library libsdcc.lib by default,
1357         * (_hasNativeMulFor): modified test for multiplication according to
1358         Raphael Neider's remarks. Integer multiplication is also done with
1359         support functions,
1360         * device/include/pic16/pic18fregs.h: corrected type error in while
1361         testing and including 18f6720 header file
1362
1363 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
1364
1365         * src/pic16/device.h (pic16_options): removed field use_crt,
1366         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
1367         until an optimization to handle single bits is added,
1368         * (pic16_loadFSR0): moved before genUnpackBits,
1369         * (genAnd): some white lines removed,
1370         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
1371         leave_reset flags in pic16_options when using crt modules,
1372
1373 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
1374
1375         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
1376           for bugs 898889 & 979599. Also used some safer print instructions.
1377
1378 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
1379
1380         * src/pic16/device.h (pic16_options_t): added field use_crt,
1381         crt_name, no_crt,
1382         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
1383         catch a probable future bug,
1384         * src/pic16/gen.c: aopIdx function commented out,
1385         * (genAssign): commented out old code which used aopIdx,
1386         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
1387         code, added if conditionals to take into account the --use-crt
1388         command line options,
1389         * src/pic16/main.c (pic16_optionsTable): added new command line
1390         options, --use-crt= and --no-crt,
1391         * (_pic16_linkEdit): now the proper crt object is added in the
1392         linker command line except than when --no-crt is specified,
1393         * src/pic16/pcode.c,
1394         * src/pic16/pcode.h: added some structures and functions for a new
1395         optimization scheme to compansate for instruction overhead between
1396         same iCodes, this scheme is currently under development and is not
1397         working in any way,
1398         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
1399         to && operator,
1400         * device/lib/pic16/startup/crt0i.c,
1401         * device/lib/pic16/startup/crt0iz.c: added global char variable
1402         __uflags to force the generation of an idata section
1403
1404 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
1405
1406         * doc/Makefile,
1407         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
1408         * doc/sdccman.lyx: updated sdcc version to 2.4.4
1409
1410 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1411
1412         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
1413         Frieder) and clarified the default code optimization mode
1414
1415 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1416
1417         * src/SDCC.lex (doPragma, process_pragma),
1418         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
1419         "opt_code_size", and "opt_code_balanced"
1420         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
1421         regrouped options by category, added support for category headers
1422         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
1423         and "--opt-code-size"
1424         * doc/sdccman.lyx: documented these new options and pragmas
1425         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
1426         preference into account
1427
1428 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
1429
1430         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
1431           geniCodePreDec): Fixed bug 904237 by generating a warning
1432         * src/SDCCerr.h,
1433         * src/SDCCerr.c: added warning W_SIZEOF_VOID
1434
1435 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
1436
1437         * src/pic/device.c : When no max ram set validate full memory range.
1438         * src/pic/pcode.c,
1439         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
1440
1441 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
1442
1443         * device/lib/_gptrget.c,
1444         * device/lib/_gptrput.c: updated comment
1445         * device/lib/calloc.c,
1446         * device/lib/free.c,
1447         * device/lib/malloc.c,
1448         * device/lib/realloc.c: added LGPL, made them reentrant-safe
1449         * src/SDCCcse.c (cseBBlock),
1450         * src/SDCCicode.c (printOperand, geniCodeArray),
1451         * src/SDCCicode.h (struct operand): fixed bug 868103
1452         * support/regression/tests/bug-868103.c: added
1453         * src/SDCCast.c (searchLitOp),
1454         * src/SDCCcse.h (struct cseDef),
1455         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
1456         * src/SDCCicode.h (struct operand),
1457         * src/SDCCsymt.h (struct sym_link),
1458         * src/avr/gen.c (hasInc),
1459         * src/ds390/gen.c (hasInc),
1460         * src/hc08/gen.c (genPlusIncr, hasInc),
1461         * src/mcs51/gen.c (hasInc),
1462         * src/pic16/glue.c (pic16_printIvalChar),
1463         * src/pic16/ralloc.c (regWithIdx),
1464         * src/xa51/gen.c (hasInc) : removed warnings
1465         * src/SDCCast.c (createBlock): added comment ???
1466         * src/hc08/ralloc.c: updated comments
1467
1468 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1469
1470         * doc/sdccman.lyx: updated section on switch statements, added
1471         section about semaphore locking
1472         * doc/Makefile: added option -info for latex2html
1473         * device/lib/_gptrget.c,
1474         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
1475
1476 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
1477
1478         * src/pic/device.h,
1479         * src/pic/device.c,
1480         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
1481          maxram is less than 0x100.
1482
1483 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
1484
1485         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
1486
1487 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1488
1489         * src/port.h,
1490         * src/mcs51/main.c,
1491         * src/ds390/main.c,
1492         * src/z80/main.c,
1493         * src/hc08/main.c,
1494         * src/pic/main.c,
1495         * src/pic16/main.c,
1496         * src/avr/main.c,
1497         * src/xa51/main.c
1498         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
1499         a jump table is the best form for a switch statement, including
1500         automatic insertion of missing cases to make the case range
1501         continuous. Developed in collaboration with Frieder Ferlemann.
1502
1503 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1504
1505         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
1506         accumulator result if it needs sign extension
1507
1508 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
1509
1510         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
1511
1512 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
1513
1514         * device/lib/gbz80/printf.c,
1515         * device/lib/z80/printf.c: removed define for NULL
1516
1517 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
1518
1519         * as/xa51/xa_link.c,
1520         * device/examples/ds390/ow390/ad26.c,
1521         * device/examples/ds390/ow390/cnt1d.c,
1522         * device/examples/ds390/ow390/counter.c,
1523         * device/examples/ds390/ow390/ds2480.h,
1524         * device/examples/ds390/ow390/ds2480ut.c,
1525         * device/examples/ds390/ow390/findtype.c,
1526         * device/examples/ds390/ow390/gethumd.c,
1527         * device/examples/ds390/ow390/owllu.c,
1528         * device/examples/ds390/ow390/ownetu.c,
1529         * device/examples/ds390/ow390/swt12.c,
1530         * device/examples/ds390/ow390/swtloop.c,
1531         * device/examples/ds390/ow390/temp.c,
1532         * device/examples/ds390/ow390/temp10.c,
1533         * device/examples/ds390/ow390/thermo21.c,
1534         * device/examples/ds390/ow390/tinilnk.c,
1535         * device/examples/ds390/ow390/tstfind.c,
1536         * device/examples/serialcomm/windows/serial.cpp,
1537         * device/examples/serialcomm/windows/test_serialcomm.cpp,
1538         * device/include/reg51.h: fixed line endings for cvs
1539
1540 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1541
1542         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
1543         packRegsForAccUse, packRegisters): new accumulator register
1544         packing algorithm
1545         * support/regression/ports/hc08/support.c (_putchar): suppress
1546         warning of unused variable
1547         * src/SDCCicode.c: added SWAP entry to codeTable
1548
1549 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
1550
1551         * device/lib/sprintf.c: forgot to add this file before previous commit
1552
1553 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
1554
1555         * src/pic16/gen.c (genPackBits): added operand right in function
1556         parameters, load result directly if p_type is POINTER (that is
1557         called by genNearPointerSet)
1558         * (genUnPackBits): added operand left in function parameters,
1559         * (genNearPointerGet, genNearPointerSet): prevent the loading of
1560         FSR0 if accessing bitfields,
1561
1562 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
1563
1564         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
1565           _print_format; updated printf, sprintf, vsprintf
1566         * device/include/asm/default/features.h: corrected comment/define
1567         * device/lib/Makefile.in: added sprintf.c
1568         * device/lib/libsdcc.lib: added sprintf module
1569         * device/lib/printf_large.c,
1570         * device/lib/vprintf.c,
1571         * device/lib/sprintf.c: totally refactored printf_large and vprintf
1572           into these 3 files
1573         * support/regression/Makefile: changed ALL_PORTS into a usefull default
1574         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
1575         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
1576           hc08 test
1577         * support/regression/tests/zeropad.c: define idata as data for hc08
1578
1579 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1580
1581         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
1582         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
1583         labels are referenced at least once (even if a reference is not found)
1584         * src/hc08/gen.c (emitcode): set isComment flag for comments
1585         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
1586         loads), rules 6a..6b (optimize jumps to return)
1587
1588 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1589
1590         * device/lib/acosf.c (acosf),
1591         * device/lib/asinf.c (asinf),
1592         * device/lib/atanf.c (atanf),
1593         * device/lib/ceilf.c (ceilf),
1594         * device/lib/cosf.c (cosf),
1595         * device/lib/coshf.c (coshf),
1596         * device/lib/cotf.c (cotf),
1597         * device/lib/fabsf.c (fabsf),
1598         * device/lib/floorf.c (floorf),
1599         * device/lib/log10f.c (log10f),
1600         * device/lib/logf.c (logf),
1601         * device/lib/sinf.c (sinf),
1602         * device/lib/sinhf.c (sinhf),
1603         * device/lib/sqrtf.c (sqrtf),
1604         * device/lib/tanf.c (tanf),
1605         * device/lib/tanhf.c (tanhf),
1606         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
1607         replaced all instances of "reentrant" in the library functions
1608         defined in math.h with this macro.
1609         * support/regression/tests/float_trans.c: reenabled test for hc08
1610
1611 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
1612
1613         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
1614         erroneously deleted
1615
1616 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1617
1618         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
1619         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
1620         multi-byte volatile operands are used
1621         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
1622         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
1623         initialization to area GSINIT0 so that it would always precede
1624         any static initializers in GSINIT
1625         * support/regression/tests/zeropad.c: fixed idata define for hc08
1626         * support/regression/tests/bug-927659.c,
1627         * support/regression/tests/float_trans.c: disabled tests for hc08
1628         pending missing library routines
1629         * .version: increased version number to 2.4.4 - hc08 port now passes
1630         regression tests
1631
1632
1633 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
1634
1635         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
1636         * Makefile.common.in,
1637         * as/Makefile,
1638         * as/hc08/Makefile.in,
1639         * as/mcs51/Makefile.in,
1640         * as/z80/Makefile.in,
1641         * debugger/mcs51/Makefile.in,
1642         * device/include/Makefile.in,
1643         * device/lib/Makefile.in,
1644         * doc/Makefile,
1645         * link/Makefile,
1646         * link/z80/Makefile.in,
1647         * packihx/Makefile.in,
1648         * sim/ucsim/main_in.mk,
1649         * sim/ucsim/avr.src/Makefile.in,
1650         * sim/ucsim/doc/Makefile.in,
1651         * sim/ucsim/gui.src/serio.src/Makefile.in,
1652         * sim/ucsim/hc08.src/Makefile.in,
1653         * sim/ucsim/s51.src/Makefile.in,
1654         * sim/ucsim/xa.src/Makefile.in,
1655         * sim/ucsim/z80.src/Makefile.in,
1656         * src/Makefile.in,
1657         * support/cpp2/Makefile.in,
1658         * support/librarian/Makefile,
1659         * support/makebin/Makefile: added DESTDIR to the install path proposed
1660         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
1661         * doc/sdccman.lyx: added DESTDIR documentation
1662
1663 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
1664
1665         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
1666         instruction for interrupt handlers, use fast returns when returning
1667         from high priority interrupts
1668
1669 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1670
1671         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
1672         code generation
1673         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
1674         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
1675         bugs, ported much of Bernhard's code from mcs51
1676         * src/mcs51/gen.c (genSend),
1677         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
1678         than one when calling a reentrant function
1679         * device/lib/_mullong.c: defined an alternate struct layout for big
1680         endian ports (hc08)
1681
1682 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1683
1684         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
1685         test
1686
1687 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1688
1689         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
1690         are sane and complete before asking the port its prefered parameter
1691         passing method (fixes bug #1017633)
1692         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
1693         and _ret3
1694
1695 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1696
1697         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
1698         problem in bitfields >= 8 bits.
1699
1700 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
1701
1702         * src/SDCCsymt.c: undid changes that were not meant to be committed
1703
1704 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
1705
1706         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
1707
1708 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
1709
1710         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
1711           copied and wrong bit got inverted
1712
1713 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1714
1715         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
1716         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
1717         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
1718         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
1719         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
1720         assignments to bitfields at known addresses
1721         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
1722         reads from bitfields at known addresses
1723         * src/hc08/ralloc.c (packRegisters),
1724         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
1725         genhc08Code): optimize pointer get values used as conditionals
1726         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
1727         and branch
1728
1729 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1730
1731         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
1732         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
1733         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
1734         as conditionals
1735
1736 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1737
1738         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
1739
1740 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1741
1742         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
1743         related problems
1744
1745 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
1746
1747         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
1748
1749 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1750
1751         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
1752         mcs51 port
1753
1754 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
1755
1756         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
1757
1758 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1759
1760         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
1761         cases use more compact code.
1762
1763 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
1764
1765         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
1766
1767 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1768
1769         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
1770
1771 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1772
1773         * src/SDCCsymt.h,
1774         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
1775         parameter of changePointer() from symbol* to sym_link*
1776         * src/SDCCast.c (decorateType): call changePointer() for CAST op
1777         * src/SDCCsymt.c (compareType): void* type is castable to other
1778         pointers, but not necesarily an exact match.
1779         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
1780         is no longer blindly treated as an exact match.
1781         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
1782
1783 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
1784
1785         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
1786
1787 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
1788
1789         * src/pic/gen.c,
1790         * src/pic/pcode.c,
1791         * src/pic/ralloc.h,
1792         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
1793
1794 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
1795
1796         * src/pic/device.c,
1797         * src/pic/device.h,
1798         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
1799
1800 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1801
1802         * src/mcs51/gen.c (emitcode): fixed bug #992819
1803
1804 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
1805
1806         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
1807           there's no need to make it worse
1808
1809 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1810
1811         * src/mcs51/ralloc.c (deassignLR),
1812         * src/ds390/ralloc.c (deassignLR),
1813         * src/hc08/ralloc.c (deassignLR),
1814         * src/z80/ralloc.c (deassignLR),
1815         * src/pic/ralloc.c (deassignLR),
1816         * src/pic16/ralloc.c (deassignLR),
1817         * src/avr/ralloc.c (deassignLR),
1818         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
1819         rlivePoint): fixed another part of bug #971834
1820
1821 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1822
1823         * src/z80/main.c: enabled "critical" keyword
1824         * src/z80/mappings.i,
1825         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
1826         functions (fixes bug #979646)
1827         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
1828
1829 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
1830
1831         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
1832           such as c:\mydir.
1833
1834 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
1835
1836         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
1837           doesn't disable too much optimizations
1838
1839 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
1840
1841         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
1842
1843 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
1844
1845         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
1846
1847 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
1848
1849         * src/pic/gen.c tidied up tabs
1850         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
1851         * src/pic/main.c tidied up tabs
1852         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
1853         * src/pic/pcoderegs.c tidied up tabs
1854         * src/pic/ralloc.c tidied up tabs
1855
1856 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
1857
1858         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
1859         to S_FIXED for pic16 port and when symbol is not in level 0,
1860         allocate for S_REGISTER storage class and pic16 port, too,
1861         * src/pic16/device.h: prototype for checkSym,
1862         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
1863         * (pic16_assignConfigWordValue): test the value and the mask to
1864         validate that the value is suitable for the configuration word,
1865         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
1866         collect extern declared symbols, don't emit symbol twice, check
1867         first if symbol is in publics set first,
1868         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
1869         * added command line '--fstack' which enables an experimental
1870         feature for stack access, too buggy to be used yet...
1871         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
1872         * (pic16_allocDirReg): when register has storage class S_REGISTER
1873         allocate in pic16_dynAccessRegs,
1874         * device/include/pic16/pic18f????.h: modified configuration word
1875         naming convention, words started as CONFIG0H but should be CONFIG1H
1876
1877 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
1878
1879         * device/include/mcs51reg.h: fixed bug 970993
1880
1881 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
1882
1883         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
1884         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
1885         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
1886         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
1887         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
1888         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
1889           error/warning numbers,
1890           added function setWarningDisabled()
1891         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
1892         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
1893           _memcmp.c _memmove.c calloc.c realloc.c free.c
1894         * support/regression/tests/malloc.c: added tests for new functionality
1895         * support/regression/tests/zeropad.c: added tests for truncated initializers
1896           and initialized char arrays starting with '\x0'
1897         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
1898
1899 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
1900
1901         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
1902
1903 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1904
1905         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
1906         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
1907         peephole 177.e. Thanks to anonymous
1908
1909 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
1910
1911         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
1912         function isn't used in the source but referenced as a
1913         variable initializer then declare it as extern in .asm file
1914
1915 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
1916
1917         * .version: increased version number to 2.4.3
1918
1919         Adding version extension according to ChangeLog CVS revision
1920         * src/Makefile.in (target all): added dependency 'version.h'
1921         * (rule version.h): added rule to create version.h from ChangeLog,
1922         * (rule dep): added dependency version.h,
1923         * src/version.awk: AWK script to create version.h
1924         * src/SDCCdwarf2.c (dwWriteModule),
1925         * src/SDCCglue.c (initialComments),
1926         * src/SDCCmain.c (printVersionInfo): modified to write after
1927         version string the version extension number,
1928         * src/SDCCutil.c: included "version.h"
1929         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
1930         number,
1931         * src/SDCCutil.h: added prototype for getBuildNumber
1932
1933         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
1934         includeDirsSet, too,
1935         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
1936         const char [] is found in function prototype...
1937
1938         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
1939         moving to WREG with source is already in WREG,
1940         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
1941         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
1942         * (aopForSym): stack'ed symbols are partially supported, added
1943         if-clause to support symbols in FARSPACE,
1944         * (sameRegs): added test for AOP_ACC to see if registers are same,
1945         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
1946         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
1947         * (pic16_popRegFromString): will not allocate a new register if it
1948         doesn't find one by name, bug may have introduced...
1949         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
1950         * (genIpush): revived to use pic16 port's stack,
1951         * (genAddrOf): added incomplete case for stack'ed operand,
1952         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
1953         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
1954         can handle multibyte operands,
1955         * src/pic16/glue.c (pic16_printIval*): some debug info added,
1956         * (pic16initialComments): added message for MPLAB compatibility
1957         mode enabled,
1958         * src/pic16/main.h: prototype for pic16_mplab_comp,
1959         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
1960         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
1961         * (_pic16_linkEdit): NEW, handles link stage, transferred here
1962         because of increased complexity of procedure,
1963         * (_process_pragma): stack pragma changed to format 'stack pos len',
1964         emit symbol '_stack_end' to conform with gplink,
1965         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
1966         to search for register,
1967         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
1968         PO_GPR_REGISTER,
1969         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
1970         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
1971         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
1972         case for PO_GPR_REGISTER,
1973         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
1974         dies, the new era is ahead !...
1975         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
1976         pic16_dynInternalRegs,
1977         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
1978         * (pic16_allocDirReg): minor optimizations and bug fixes,
1979         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
1980
1981         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
1982         load stack and frame pointer with address of 'stack_end' symbol
1983
1984 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
1985
1986         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
1987         without source code but only variable initializers
1988
1989 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
1990
1991         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
1992         external are not declared as extern to reduce overhead while linking
1993
1994 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
1995
1996         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
1997
1998 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
1999
2000         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
2001           Yee Keat for the patch
2002         * src/SDCCast.c (decorateType): fixed bug #979599
2003         * src/ds390/gen.h: removed local fReturnSizeDS390
2004         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
2005         * src/ds390/gen.c (genAnd, genOr, genXor),
2006         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
2007
2008 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
2009
2010         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
2011         add relFilesSet to $3, manipulate $2 to handle linking of object
2012         files without source files in command line,
2013         * device/include/pic16 (all headers): added ID location macros,
2014         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
2015         entries for ID location bytes,
2016         * (pic16_assignIdByteValue): NEW,
2017         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
2018         added field dumpcalltree to pic16_options_t,
2019         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
2020         is used instead of pic16_Gstack_base_addr, check if (ifx) before
2021         emitting rFalseIfx label after check_carry label,
2022         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
2023         pic16_emitDIRegs), NEW
2024         * (pic16glue): dump .calltree file when option --calltree found,
2025         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
2026         * (_pic16_genAssemblerPreamble): emit ID locations after
2027         configuration registers,
2028         * (pic16_linkCmd): modifications of the link command,
2029         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
2030         * (pic16_pCodeInitRegisters): don't init stack registers,
2031         * (pic16_findPrevInstruction): fixed bug,
2032         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
2033         bug with immediate registers,
2034         * (buildCallTree): traces stack push and pop,
2035         * (pct2): dump also stack usage for each function,
2036         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
2037         * (pic16_allocDirReg): various modifications,
2038         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
2039         fixed to 1,
2040
2041 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
2042
2043         * src/pic16/pcode.c: removed buggy double colon
2044
2045 2004-07-01 Borut Razem <borut.razem AT siol.net>
2046
2047         * support/scripts/sdcc.nsi: added include/pic16 to setup
2048
2049 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
2050
2051         * device/lib/Makefile.in: fixed bug in target objects-pic16,
2052         * device/lib/pic16/Makefile: prefixed with dash (-) command under
2053         target 'clean',
2054         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
2055         specific command line arguments. Also added sample lkr script
2056         for placing a variable at a specific memory bank.
2057         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
2058         at a specific memory bank,
2059         * (pic16_dump_isection): fixed bug which caused string literals to
2060         be omitted when dumping idata section,
2061         * (pic16_groupRegistersInSection): added code to handle registers
2062         in specific memory banks,
2063         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
2064         public, all references are renamed too,
2065         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
2066         AOP_DPTR2,
2067         * (pic16_storeForReturn): added case to handle when dest is WREG,
2068         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
2069         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
2070         pic16_rel_udata, check to see if that register is marked as being
2071         a member of a specific memory bank,
2072         * (pic16_printIvalCharPtr): added code to add string literals either
2073         to code or the idata sections,
2074         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
2075         also accept the 'udata' pragma,
2076         * src/pic16/main.h: new structure types sectName and sectSym
2077         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
2078         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
2079         * (pic16_findPrevInstruction): fixed, it returned nothing,
2080         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
2081         instruction combinations,
2082         * (pic16_FixRegisterBanking): heavily reorganised,
2083         * (pic16_AnalyzeBanking): if generating banksel directives is
2084         disabled, then don't call FixRegisterBanking at all,
2085         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
2086         completely removed,
2087         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
2088
2089 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
2090
2091         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
2092         Phuah Yee Keat <yk.phuah AT nestac.com>
2093
2094 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
2095
2096         * src/pic16/glue.c (pic16createInterruptVect): function now emits
2097         correctly the IVT even if it is relocated to some other location
2098
2099 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
2100
2101         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
2102         * device/include/pic16/pic18f2220.h: NEW,
2103         * device/lib/pic16/libdev/pic18f2220.c: NEW,
2104         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
2105         * src/pic16/device.c (struct Pics16): added info for 18f2220,
2106         * src/pic16/device.h (struct pic16_options): added ivt_loc and
2107         nodefaultlibs, ivt_loc is the location of the interrupt vector
2108         table, and nodefaultlibs signs that default libraries should not be
2109         linked in link stage,
2110         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
2111         according to --ivt-loc argument,
2112         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
2113         when pragma stack is found,
2114
2115 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2116
2117         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
2118         256 (range check), 257 (do while), 258.a-f (bit banging
2119         f.e. on 3-wire SPI bus)
2120
2121 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2122
2123         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
2124         variables used exclusively within a loop
2125
2126 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
2127
2128         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
2129
2130 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2131
2132         * src/SDCClrange.c (computeClash): fixed bug #971834
2133
2134 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2135
2136         * src/mcs51/gen.c (genCmp): fixed bug #975903
2137         * src/hc08/gen.c (operandsEqu),
2138         * src/ds390/gen.c (operandsEqu),
2139         * src/z80/gen.c (operandsEqu),
2140         * src/pic/gen.c (operandsEqu),
2141         * src/pic16/gen.c (operandsEqu),
2142         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
2143         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
2144
2145 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2146
2147         * src/SDCCcse.c (cseBBlock): fixed bug #966963
2148
2149 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
2150
2151         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
2152         default case in switch statement,
2153         * glue.c (pic16_initPointer): expr is initialised via decoarteType
2154         to eliminate problem with initialisation of pointers, but problem
2155         still exists,
2156         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
2157         * (emitStaticSegment): removed various lines emitting debug info,
2158         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
2159         added processor registers for utilizing EEPROM,
2160         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
2161         configurable and set 8
2162
2163 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
2164
2165         * .version: increased version number to 2.4.2,
2166
2167         Cumulative patch for pic16 port
2168         * src/pic16/device.c: changed scheme to dump initial values for
2169         variables in idata segment, all print_idata* functions were removed,
2170         now the pic16_printIval* will be called,
2171         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
2172         * _pic16_printPointerType, pic16_printPointerType,
2173         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
2174         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
2175         NEW, similar to the respective functions in SDCCglue.c,
2176         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
2177         way, emitting hex bytes,
2178         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
2179
2180 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2181
2182         * src/avr/ralloc.c (serialRegAssign),
2183         * src/xa51/ralloc.c (serialRegAssign),
2184         * src/pic/ralloc.c (serialRegAssign),
2185         * src/pic16/ralloc.c (serialRegAssign),
2186         * src/hc08/ralloc.c (serialRegAssign),
2187         * src/z80/ralloc.c (serialRegAssign),
2188         * src/ds390/ralloc.c (serialRegAssign),
2189         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
2190
2191 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2192
2193         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
2194         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
2195
2196 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
2197
2198         Cumulative patch for pic16 port:
2199         * src/pic16/device.h (typedef PIC16_device) modified fields for
2200         defining microcontrollers,
2201         * src/pic16/device.c: added new info for all devices in Pics16 array,
2202         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
2203         to be optimised out by the pCode optimiser,
2204         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
2205         specially, bug reported by G.M. Gallant,
2206         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
2207         as force'd so that cannot be optimised out by pCode optimiser,
2208         * src/pic16/pcode.c,
2209         * src/pic16/pcodepeeph.c,
2210         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
2211         they are disabled by default, but can be enabled explicit with
2212         command argument --denable-peeps, for testing,
2213         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
2214         --pomit-ivt in COMPILE_FLAGS
2215
2216 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
2217
2218         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
2219           compilation on MSVC
2220
2221 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
2222
2223         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
2224
2225 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2226
2227         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
2228         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
2229
2230 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
2231
2232         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
2233         would only assign 0x300001 register.
2234
2235 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
2236
2237         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
2238         in COMPILE_FLAGS. Thanks to G. Gallant for report.
2239
2240 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2241
2242         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
2243         for ds80c400
2244         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
2245         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
2246         added peephole 254 (left shift), 255 (jump table)
2247
2248 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
2249
2250         * device/lib/Makefile.in: removed comment line with model-pic16,
2251         * (target port-specific-objects-pic16): the libraries and objects
2252         are copied to the build directory form the device/lib/pic16/bin
2253         directory
2254
2255         Cumulative patch concerning pic16 port:
2256         * library directory has been re-organized,
2257         * added support for PIC18F1220,
2258         * added headers and library sources for chips 18f1220,18f6520,
2259         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
2260
2261         * configuration registers setting has changed, now each supported
2262         device has a complete description of the registers it uses,
2263         * all initialisations are moved to idata sections, these section
2264         can be absolute or relocatable,
2265         * fixed initialisation of codespace variables,
2266         * fixed warning about PCLATU and gpsim,
2267         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
2268         * (genAssign): use table reads when assigning from variables in codespace,
2269         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
2270         char/int variables placed in codespace,
2271         * (pic16_emitConfigRegs): NEW, emits a list with configuration
2272         registers set in .asm file, no need for --pomit-config-words anymore,
2273         * (pic16glue): some 8051 legacy segments are commented out
2274         (to be removed completely),
2275         * added support for alternative assembler and linker with --asm=
2276         and --link= command line arguments,
2277         * peepholes are disabled automatically in the port, no need to
2278         specify on command line,
2279         * port supports natively char/int/long multiplication, but converts
2280         all divisions to support functions,
2281         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
2282         to the file set in variable $2,
2283         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
2284         strings in ASCII format and not in hex,
2285         * ralloc.c (serialRegAssign): added a triplet of conditional calls
2286         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
2287         allocate proper register if iCodes aren't temporary,
2288
2289 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
2290
2291         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
2292
2293 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
2294
2295         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
2296         is commented out
2297
2298 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2299
2300         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
2301         computed address is reused
2302         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
2303         multi-byte bitfields
2304
2305 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
2306
2307         * src/z80/gen.c: (genArrayInit): must check for pointers too
2308
2309 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
2310
2311         * support/regression/tests/zeropad.c: never meant to commit the
2312           nestedstruct test: removed, added check for GCC version
2313
2314 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
2315
2316         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
2317         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
2318         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
2319           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
2320           bugs 928906 and 954082 half-empty initializers
2321         * src/SDCCsymt.h,
2322         * src/SDCCsymt.c (getAllocSize): added for above fix
2323         * src/z80/gen.c (genArrayInit): fixed bug 741044
2324         * support/regression/tests/zeropad.c: added tests
2325
2326 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
2327
2328         * src/pic16/device.c (pic16_dump_section): corrected bug which
2329         caused some symbols of the libraries to be misplaced
2330
2331 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
2332
2333         * src/pic16/glue.c,
2334         * src/pic16/ralloc.h,
2335         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
2336         to fix conflict with pic port
2337
2338 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
2339
2340         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
2341         externs configuration variables,
2342         * src/pic16/ralloc.h,
2343         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
2344         prototype in header, commented out some debug messages
2345
2346 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
2347
2348         * src/pic16/glue.c,
2349         * src/pic16/main.c,
2350         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
2351         for gpasm COFF object generation. Thanks to D. Hawkins for
2352         his patch info
2353
2354 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2355
2356         * src/ds390/main.c,
2357         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
2358         Brock for spotting this)
2359         * src/ds390/gen.c (genEndFunction),
2360         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
2361         interrupt handler and critical. Disable push/pop optimizations when
2362         peephole optimizations disabled.
2363
2364 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
2365
2366         Updated pic16 library sources and headers.
2367         * device/lib/pic16/pic18f*/ ,
2368         * device/include/pic16/*.h: modified to handle structured SFR
2369         definitions
2370
2371 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
2372
2373         * src/port.h (PORT structure): added hook initPaths, now each
2374         port can declare its own default search paths,
2375         which can been seen with the --print-search-dirs option,
2376         see pic16 port for example,
2377         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
2378         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
2379         * (doPrintSearchDirs): NEW, replaces in a central manner the
2380         printing of search dirs which was split in set*Paths functions,
2381         * (main): added call to port->initPaths and doPrintSearchDirs,
2382         * src/avr/main.c,
2383         * src/ds390/main.c,
2384         * src/hc08/main.c,
2385         * src/izt/i186.c,
2386         * src/izt/tlcs900h.c,
2387         * src/mcs51/main.c,
2388         * src/pic/main.c,
2389         * src/pic16/main.c: modified port structures to reflect addition of
2390         initPaths hook,
2391
2392         * src/pic16/device.c (regCompare): registers are finally sorted by name,
2393         * (pic16_dump_section): for registers in same address reserve memory once,
2394         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
2395         to no_banksel,
2396         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
2397         result is greater in size than right or left,
2398         * (pic16_genUMult8X8_8): there are some cases where the result can
2399         be 16 bits size, so handle these,
2400         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
2401         * (pic16_outBitC): modified to emit pcodes,
2402         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
2403         or not,
2404         * (genDivOneByte): implemented algorithm to divide 8-bits,
2405         * (genCmp): uncommented goto, but issues still exist,
2406         * (genAnd): fixed a bug with variables >8bits,
2407         * (genPackBits): optimization added that uses BCF/BSF to change a
2408         single bit,
2409         * (genAssign): fixed bug when assigning floating point literals,
2410         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
2411         __sdcc_gsinit_startup label,
2412         * src/pic16/main.c (_pic16_init): removed search directory
2413         initialisations,
2414         * (_pic16_initPaths): NEW, used to initialise search directories,
2415         * (_hasNativeMulFor): support functions for all except char/int
2416         multiplication, and char division,
2417         * (PIC16_port struct): modified entry for native mul support,
2418         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
2419         no_banksel option,
2420         * (buildCallTree): call to register_usage is ifdef'ed out,
2421
2422 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2423
2424         * device/include/string.h: applied Stas Sergeev's patch to make this
2425         header file compatible with the preprocessor -Wundef option
2426         * src/SDCCmain.c (main): abort compilation if preprocessor reports
2427         failure (fixes bug #941458)
2428
2429 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2430
2431         * src/SDCCopt.c (killDeadCode): fixed bug #907733
2432         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
2433         that the variable, not the function, should be static
2434         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
2435         to be consistent with non-literal case
2436
2437 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2438
2439         * src/SDCCast.c (isConformingBody): fixed bug #949967
2440         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
2441         convilong): fixed bug #952086
2442
2443 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2444
2445         * src/SDCCmem.c (allocVariables): fixed bug #955321
2446
2447 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2448
2449         * src/hc08/main.c (_hc08_genAssemblerEnd),
2450         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
2451         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
2452         completely eliminated the use of a temporary file
2453         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
2454         when more than one file linked
2455         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
2456
2457 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2458
2459         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
2460         which fixes bug #543481
2461         * support/regression/tests/bug-751703.c: fixed comments left from a
2462         cut and paste error
2463         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
2464         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
2465         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
2466         scopes
2467         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
2468         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
2469         are now changed to underscores in moduleName
2470
2471 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2472
2473         * as/mcs51/lkmem.c: better fix for bug #954173
2474
2475 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
2476         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2477
2478         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
2479         * device/include/c8051f000.h,
2480         * device/include/c8051f120.h,
2481         * device/include/c8051f300.h,
2482         * device/include/c8051f310.h,
2483         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
2484         PWM16) and detab'ed
2485
2486 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2487
2488         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
2489         and mailing lists, doc'ed --no-peep-comments, removed reference
2490         to knoppix (newest version has no LyX/LaTeX), other minor changes
2491         * src/SDCCglue.c (glue): save 2 bytes stack space with
2492         option --main-return. The ljmp could probably be avoided too
2493
2494 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2495
2496         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
2497
2498 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2499
2500         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
2501         * src/SDCCopt.c (isLocalWithoutDef),
2502         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
2503         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
2504         (credit to Maarten Brock for patch #949363, on which this is based)
2505         * support/regression/tests/bug-751703.c: some test cases of extern used
2506         within inner scopes.
2507
2508 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2509
2510         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
2511         SPEC_STRUCT
2512         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
2513         struct definitions
2514         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
2515         dwWriteLabel): fix to create valid debugger symbols even when
2516         the module name has non-alphanumeric symbols in it
2517         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
2518         when a variable's allocation has been optimized away
2519
2520
2521 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2522
2523         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
2524         * src/hc08/main.c,
2525         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
2526         * src/mcs51/main.c,
2527         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
2528         * src/ds390/main.c,
2529         * src/z80/gen.c (z80_emitDebuggerSymbol),
2530         * src/z80/main.c,
2531         * src/pic/gen.c (pic14_emitDebuggerSymbol),
2532         * src/pic/main.c,
2533         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
2534         * src/pic16/main.c,
2535         * src/avr/gen.c (avr_emitDebuggerSymbol),
2536         * src/avr/main.c,
2537         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
2538         * src/xa51/main.c,
2539         * src/SDCCdebug.c (emitDebuggerSymbol),
2540         * src/SDCCdebug.h,
2541         * src/port.h: added a debugger struct to the port struct. Added a
2542         callback for defining debugger symbols
2543
2544         * src/SDCCast.c (createLabel),
2545         * src/SDCC.y (labeled_statement): mark all compiler generated labels
2546         with isitmp = 1
2547         * src/SDCCicode.h,
2548         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
2549         iCode back to the ast for the function
2550
2551         * src/hc08/ralloc.c (hc08_assignRegisters),
2552         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
2553         unneeded fields from the regs struct.
2554         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
2555         pushReg() & pullReg() functions instead of emitcode()
2556
2557         * src/hc08/gen.c (genLabel, genhc08Code),
2558         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
2559
2560         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
2561         debugger hooks
2562
2563         * src/hc08/gen.c (genEndFunction, genhc08Code),
2564         * src/hc08/gen.h,
2565         * src/mcs51/gen.c (genEndFunction, gen51Code),
2566         * src/mcs51/gen.h,
2567         * src/ds390/gen.c (genEndFunction, gen390Code),
2568         * src/ds390/gen.h,
2569         * src/z80/gen.c (genEndFunction, genZ80Code),
2570         * src/z80/gen.h,
2571         * src/z80/z80.h,
2572         * src/pic/gen.c (genEndFunction, genpic14Code),
2573         * src/pic/gen.h,
2574         * src/pic16/gen.c (genEndFunction, genpic16Code),
2575         * src/pic16/gen.h,
2576         * src/avr/gen.c (genEndFunction, genAVRCode),
2577         * src/avr/gen.h,
2578         * src/xa51/gen.c (genEndFunction, genXA51Code),
2579         * src/xa51/gen.h,
2580         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
2581         specific code to cdbFile.c and out of the backend code generators
2582
2583         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
2584         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
2585         starting address is now 0
2586
2587         * as/hc08/asm.h,
2588         * as/hc08/m08pst.c,
2589         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
2590         assembler directive for DWARF support
2591         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
2592
2593         * src/src.dsp,
2594         * src/Makefile.in,
2595         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
2596
2597 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2598
2599         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
2600         and inappropriate peephole optimization in jump tables
2601
2602 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2603
2604         * as/hc08/m08pst.c,
2605         * src/SDCCglue.c: sdccopt works for the hc08 port now
2606
2607 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
2608
2609         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
2610
2611 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2612
2613         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
2614
2615 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2616
2617         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
2618         rules
2619         * src/SDCCmain.c,
2620         * src/SDCCglobl.h,
2621         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
2622         comments from the peephole optimizer replacement rules
2623         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
2624         symbols
2625         * src/SDCCcse.c (updateSpillLocation),
2626         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
2627         equivalents
2628         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
2629         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
2630         objects far pointers
2631
2632 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2633
2634         * src/SDCCsymt.h: a missing part of my last change
2635         * src/pic/ralloc.c (regTypeNum),
2636         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
2637
2638 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2639
2640         * src/SDCCicode.h,
2641         * src/SDCCicode.c (aggrToPtrDclType),
2642         * src/SDCCptropt.h,
2643         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
2644         ptrPseudoSymConvert),
2645         * src/pic/ralloc.c (regTypeNum),
2646         * src/pic16/ralloc.c (regTypeNum),
2647         * src/hc08/ralloc.c (regTypeNum),
2648         * src/ds390/ralloc.c (regTypeNum),
2649         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
2650         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
2651
2652 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2653
2654         * link/z80/lkmain.c (afile),
2655         * as/hc08/lkmain.c (afile),
2656         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
2657         prevent a pointer problem when a filename has no directory and
2658         no extension specified.
2659
2660 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2661
2662         * link/z80/lkmain.c (afile): allow periods in directory names
2663         * link/z80/lkmain.c (afile),
2664         * as/mcs51/lkmain.c (afile),
2665         * as/hc08/lkmain.c (afile): allow linker script file to have an
2666         extension other than ".lnk"
2667         * link/z80/lklex.c (getfid),
2668         * link/z80/lkmain.c (parse),
2669         * as/mcs51/lklex.c (getfid),
2670         * as/mcs51/lkmain.c (parse),
2671         * as/hc08/lklex.c (getfid),
2672         * as/hc08/lkmain.c (parse): Support comments in the linker script
2673         file on lines by themselves and after filenames
2674
2675 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2676
2677         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
2678
2679 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2680
2681         * src/z80/peeph-z80.def: removed some peephole rules that don't
2682         work with multibyte arithmetic (fixed bug #937126)
2683         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
2684         to registers and not global variables
2685         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
2686         geniCodePreInc, geniCodePostDec, geniCodePreDec,
2687         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
2688         checking for assignments not internally generated (fixed bug #931895)
2689         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
2690         structure member (fixed bug #930072)
2691
2692 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2693
2694         * src/SDCCmain.c (linkEdit),
2695         * src/hc08/main.c (_hc08_parseOptions),
2696         * as/hc08/Makefile.in,
2697         * as/hc08/aslink.h,
2698         * as/hc08/asm.h,
2699         * as/hc08/m08pst.c,
2700         * as/hc08/lkrloc.c (relr, rele),
2701         * as/hc08/lkarea.c (lnkarea)
2702         * as/hc08/lkmain.c (afile, parse),
2703         * as/hc08/lkelf.c: support for ELF output
2704         * as/hc08/lks19.c (s19),
2705         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
2706
2707 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2708
2709         * as/mcs51/lkihx.c: Fixed bug #899105.
2710
2711 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2712
2713         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
2714         .dsp files from Unix to DOS.
2715
2716 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2717
2718         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
2719         function pointers; we have been compliant for several months now.
2720         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
2721         change that was accidently commented out
2722         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
2723         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
2724         bug #922319
2725
2726 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2727
2728         * src/hc08/gen.c: output of all of the internal debugging information
2729         is now controlled by the D() macro; it is disabled by default
2730
2731 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2732
2733         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
2734         harder to keep the same registers during a CAST iCode
2735         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
2736         long via int can be done in a single cast, if the signedness is
2737         correct.
2738         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
2739         putchar() in tinibios.c in ds390's library
2740
2741 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
2742
2743         * src/SDCCast.c (decorateType): fixed bug #898889,
2744         cast result of a literal complement too
2745         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
2746         fixed check for bitfields
2747
2748 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
2749
2750         * src/SDCCicode.c (geniCodeLogic): made it static,
2751         (geniCodeLogicAndOr): added in order to fix bug #905492,
2752         (ast2iCode): fixed bug #905492
2753         * support/regression/tests/bug-905492.c: added
2754         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
2755         (processParms): fixed bug #927659: don't copy parms, this will clear
2756         decorated flag
2757         * support/regression/tests/bug-927659.c: added
2758
2759 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
2760
2761         * src/SDCCast.c (addCast): don't cast float to char
2762         * device/lib/libsdcc.lib: added _memmove
2763
2764 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
2765
2766         * device/lib/large/Makefile: fixed parallel execution by
2767         replacing `make` by `$(MAKE)`
2768
2769 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2770
2771         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
2772         offsets (fixes bug #923936)
2773
2774 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
2775
2776         * device/lib/small/Makefile: fixed parallel execution by
2777         replacing `make` by `$(MAKE)`
2778
2779 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
2780
2781         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
2782
2783 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
2784
2785         * src/pic/gen.c (genCpl): multi-byte complements were not working.
2786         * src/regression/Makefile: Regression test was not running.
2787
2788 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
2789
2790         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
2791         complement if possible
2792         * src/SDCCval.c (valComplement),
2793         * src/SDCCicode.c (operandOperation): fixed complement of literal
2794         * support/regression/tests/onebyte.c (testComplement): added
2795
2796 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
2797
2798         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
2799         return an optimized tree; actually replace actParm with the new tree
2800         * src/SDCCast.h: added some parantheses to remove side effects
2801         * support/regression/tests/bug-920866.c
2802
2803 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
2804         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
2805         Bit operands were not being handled properly in the pic14 port.
2806         (now src/regression/add.c passes again).
2807
2808 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2809
2810         * src/SDCC.y (labeled_statement): case and default no longer require
2811         a following statement (RFE #893037)
2812
2813 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2814
2815         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
2816         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
2817         disabled (fixes bug #916294)
2818         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
2819         "mov a,acc"; patch provided by Lenny Story
2820         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
2821
2822 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2823
2824         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
2825         functions
2826         * src/ds390/gen.c (genFunction, genEndFunction),
2827         * src/ds390/ralloc.c (ds390_assignRegisters),
2828         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
2829         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
2830         pushed if there are parameters passed on the stack. Also, a cleaner
2831         way to decide if r0/r1 should be pushed/popped. (Together they fix
2832         bug #918693)
2833
2834 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2835
2836         * doc/sdccman.lyx,
2837         * device/lib/mcs51/crtpagesfr.asm,
2838         * device/lib/mcs51/crtxinit.asm,
2839         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
2840         to avoid confusion with Si Lab's SFRPAGE register.
2841
2842 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2843
2844         * src/SDCCglue.c (emitMaps): allow public sfr variables
2845         * src/SDCCglue.c (initialComments): include compiler build date
2846         with compiler version and put the timestamp of the generated
2847         assembly file on a serperate line to be less confusing.
2848         * src/port.h: added genInitStartup hook
2849         * src/avr/main.c,
2850         * src/ds390/main.c,
2851         * src/hc08/main.c,
2852         * src/pic/main.c,
2853         * src/pic16/main.c,
2854         * src/xa51/main.c,
2855         * src/z80/main.c: genInitStartup initialize as NULL (default to
2856         historical behaviour)
2857         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
2858         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
2859         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
2860         library instead of hard coding it into the compiler.
2861         * support/regression/ports/mcs51-stack-auto/spec.mk,
2862         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
2863         * device/lib/mcs51/Makefile,
2864         * device/lib/small/Makefile,
2865         * device/lib/large/Makefile,
2866         * device/lib/mcs51/crtpagesfr.asm,
2867         * device/lib/mcs51/crtstart.asm,
2868         * device/lib/mcs51/crtxclear.asm,
2869         * device/lib/mcs51/crtxinit.asm,
2870         * device/lib/mcs51/crtclear.asm,
2871         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
2872         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
2873         and into user configurable files.
2874         * device/lib/clean.mk: clean mcs51 directory too
2875         * support/regression/tests/longlit.c: added static to T1 declaration
2876         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
2877         accesses in the initialization code
2878
2879 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2880
2881         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
2882         OSCTRIMVAL as noted in bug #916008
2883
2884 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2885
2886         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
2887         in loops with multiple exits (reported as incorrect registers
2888         used by Martin Helmling in Sdcc-user list)
2889
2890 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2891
2892         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
2893         made ds390 register extensions look less like error messages
2894
2895 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2896
2897         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
2898         reported by Adam Wozniak in Sdcc-user list
2899
2900 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
2901
2902         * src/SDCCast.c (decorateType): fixed with bug and promotion in
2903         arithmetic optimizations, added debug output
2904
2905 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
2906
2907         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
2908         * sdcc.spec: updated and split sdcc into 3 rpms
2909         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
2910         needed for literals of LEFT_OP and '+'
2911         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
2912         introduced RESULT_TYPE_NOPROM
2913         (geniCodeMultiply): fixed logic for decision if mul is optimized to
2914         left shift
2915         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
2916         limited promotion to int only for '*'
2917         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
2918
2919 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
2920
2921         * src/pic16/gen.c (genSkip),
2922         (genc16bit2lit), (gencjneshort): commented out
2923         (is_LitOp): new helper function, checks operand type
2924         (genCmpEq): rewritten
2925
2926 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
2927
2928         * support/regression/tests/bug-908454.c: added
2929
2930 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
2931
2932         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
2933         * src/SDCCicode.c (usualBinaryConversions): op needs int type
2934         (geniCodeCast): cosmetic, don't preserve bit storage class
2935         (geniCodeLeftShift): added promotion
2936         (geniCodeLogic): fixed regression
2937         * src/SDCCsymt.c (computeTypeOr): accept bits too
2938         (compareType): 2nd part of fix for bug #908454, needed for bitfields
2939
2940 2004-03-07  Borut Razem <borut.razem AT siol.net>
2941
2942         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
2943
2944 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
2945
2946         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
2947         version of pic16_genPackRegisters which does not check if ic is a
2948         CAST operator,
2949         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
2950         function cause string1.c regression test fails
2951
2952 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
2953
2954         * sim/ucsim/configure.in,
2955         * sim/ucsim/configure,
2956         * sim/ucsim/doc/Makefile.in: use docdir
2957         * src/SDCC.y: fixed sbit atrributes
2958         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
2959         * src/SDCCast.c (decorateType): |^& need special promotion handling
2960         * src/SDCCast.h,
2961         * src/SDCCsymt.h: moved definition of RESULT_TYPE
2962         * src/SDCCsymt.h (computeType),
2963         * src/SDCCicode.c: computeType() needs op
2964         * src/SDCCsymt.c (checkTypeSanity),
2965         * doc/sddman.lyx: "plain" bitfields are unsigned
2966         * src/SDCCsymt.c (computeTypeOr): added
2967         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
2968         |^& ops
2969         * src/SDCCval.c (val*): computeType() needs op
2970         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
2971         * support/regression/tests/onebyte.c: added tests for |^&
2972
2973 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
2974
2975         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
2976         for writing icode into asm output.
2977
2978 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
2979
2980         * src/pic16/device.c: added some debug lines enabled
2981         with macro DEBUG_CHECK,
2982         * src/pic16/genarith.c: more debug in genPlus,
2983         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
2984         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
2985         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
2986         * (aopForSym): onStack symbols are re-placed in data memspace,
2987         and onStack flag is cleared,
2988         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
2989         copy temporary pcodeop,
2990         * (genPcall): added warning for not updating PCLATU,
2991         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
2992         always true for pic16 port,
2993         * (genMultOneWord): NEW, supports integer multiplication,
2994         * (genMult): modified to call genMultOneWord,
2995         * (ifxForOp): added warning when return NULL,
2996         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
2997         flag is set before call to operandFromSymbol for implicit
2998         added structures,
2999         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
3000         options.intlong_rent are set by default,
3001         * (_hasNativeMulFor): modified to allow port generation of integer
3002         multiplication,
3003         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
3004         set regtype to REG_SFR for all registers, restricting seting the
3005         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
3006
3007 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3008
3009         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
3010         more than 500 times in the regression tests
3011
3012 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3013
3014         * support/Util/SDCCerr.h,
3015         * support/Util/SDCCerr.c,
3016         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
3017         enumerator_list),
3018         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
3019         for symbol conflicts.
3020         * support/valdiags/tests/enum.c,
3021         * support/valdiags/tests/tentdecl.c,
3022         * support/valdiags/tests/struct.c: expect possible error messages
3023         referring to original symbol definitions.
3024         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
3025         * src/SDCCsymt.h,
3026         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
3027
3028 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
3029
3030         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
3031
3032 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
3033
3034         * src/pic16/ralloc.c (newReg): fixed bug #908929
3035
3036 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3037
3038         * src/ds390/gen.c: added missing #include "main.h"
3039
3040 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
3041
3042         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
3043         checking if symbol is already in set,
3044         * src/pic16/device.h: prototype for checkAddSym,
3045         * src/pic16/gen.c: (_G): added entry interruptvector,
3046         * (assignResultValue): removed some commented out lines,
3047         * (genFunction): check for ISR via sym->type, absolute section for
3048         interrupt code is created via a new pBlock, the goto instruction is
3049         placed now correctly at the interrupt vector position, changed all
3050         references from ivec to _G.interruptvector,
3051         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
3052         is the interrupt is a high priority one, same for return from ISR,
3053         * src/pic16/glue.c: changed all calls of addSetHead for publics and
3054         externs to calls of checkAddSym,
3055         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
3056         pic16_pcode_verbose flag is set,
3057         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
3058         * src/pic16/pcoderegs.c: message about how many registers are saved
3059         will only be emitted if pic16_pcode_verbose flag is set,
3060
3061 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3062
3063         * src/ds390/ralloc.h,
3064         * src/ds390/ralloc.c (ds390_regWithIdx),
3065         * src/ds390/gen.c (emitcode),
3066         * src/ds390/main.h,
3067         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
3068         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
3069         ds390operandCompare, getRegsRead, getRegsWritten,
3070         initializeAsmLineNode): customized instruction size calculation for
3071         ds390, started basis for some register optimizations
3072         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
3073         corresponding assembly output
3074         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
3075         missing push/pop of r0/r1. Optimized push/pops
3076
3077 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3078
3079         * src/mcs51/main.c (instructionSize): fixed ACALL size
3080         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
3081
3082 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
3083
3084         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
3085         the sorting of rlist with NULL elements
3086         * (print_idataType, print_idata): NEW to create idata sections
3087         * src/pic16/device.h: idataSymSet new variable
3088         * src/pic16/gen.c (genFunction): fixed some bugs in string
3089         comparing, improved the absolute section creation for ISRs,
3090         added FSR0L/FSR0H in registers that are saved in an ISR,
3091         * (genInline): fixed the processing of inline snippets,
3092         now they undergo no process by the peephole optimizer
3093         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
3094         are placed in idataSymSet,
3095         * (pic16emitStaticSeg): extern symbols are added in externs,
3096         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
3097         switching when aboslute variables are placed in access bank memory
3098         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
3099         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
3100         commented out with #if,
3101         * (pic16_packRegisters): reintroduce the check for CAST because some
3102         symbols are not correctly handled,
3103         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
3104         pCodeInstruction instead of pCode,
3105         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
3106         pCodeAsmDir definition,
3107         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
3108         directive, then the argument directive is emitted without the leading
3109         tab, hack for inline labels which must be in the first column,
3110         * (compareLabel,pic16_findNextInstruction),
3111         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
3112         * (insertBankSwitch): modified for the new pCodeAsmDir,
3113
3114 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
3115         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
3116
3117         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
3118         instance,
3119         * (pushSide): commented out with #if,
3120         * (assignResultValue): fixed some typos in saving
3121         registers,
3122         * (genPcall): FIXED and sync'ed with genCall,
3123         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
3124         * (genNearPointerGet): fixed to handle some more cases,
3125         implementation scheme via table reads,
3126         * (genConstPointerGet): modified to access code memory correct,
3127         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
3128         and improved to handle some cases
3129         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
3130         instead of "RETLW" for init data
3131         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
3132         not IN_DIRSPACE, work around to reduce bank switching when aboslute
3133         variables are placed in access bank memory (<0x80 and >=0xf80),
3134         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
3135         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
3136         TBLWT_POSTDEC,TBLWT_PREINC
3137         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
3138         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
3139         directives
3140         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
3141         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
3142         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
3143         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
3144
3145 2004-02-29  Borut Razem <borut.razem AT siol.net>
3146
3147         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
3148         support/Util/findme.h, support/Util/system.h: enhance binary relative
3149         search for lib and include by using findProgramPath()
3150
3151 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3152
3153         * src/SDCCpeeph.h,
3154         * src/SDCCpeeph.c (pcDistance),
3155         * src/port.h,
3156         * src/mcs51/ralloc.h,
3157         * src/mcs51/ralloc.c (mcs51_regWithIdx),
3158         * src/mcs51/main.h,
3159         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
3160         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
3161         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
3162         size calculation port specific, started basis for some register
3163         optimizations
3164         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
3165         missing push/pop of r0/r1. Optimized push/pops
3166         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
3167         * device/lib/_modsint.c (_modsint),
3168         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
3169         and stack version so regression tests pass
3170
3171 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
3172
3173         * src/Makefile.in (dep): include SLIBOBJS in dependency check
3174         * src/SDCCast.c (decorateType): catch another small optimization
3175         with '?' operator
3176         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
3177         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
3178         modified to finally use computeType() all over SDCC,
3179         see Feature Request #877103
3180         * src/SDCCval.h: cosmetic
3181         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
3182         valCompare(); regression tested in muldiv.c
3183         * support/regression/tests/muldiv.c (testMod): mod sign follows
3184         dividend only
3185
3186 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
3187
3188         * src/SDCCast.c (decorateType): fixed bug #902362
3189         * doc/INSTALL.txt: fixed install instructions for win32
3190
3191 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
3192
3193         * device/include/Makefile.in (install): fixed by replacing spaces
3194         by tabs
3195         * doc/README.txt,
3196         * doc/INSTALL.txt: updated for release
3197         * doc/sdccman.lyx: added warning for --xstack being buggy
3198
3199 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
3200
3201         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
3202         to eliminate build warnings.
3203         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
3204
3205 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
3206            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
3207
3208         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
3209         removed -penable-stack, added comment for stack pragma, added
3210         warning for not initializing the stack/frame registers, removed
3211         comment at interrupts section
3212
3213         Stack is made permanent, there is no ability to disable stack usage.
3214         * src/pic16/device.h,
3215         * src/pic16/device.c: removed all references to USE_STACK macro,
3216         * src/pic16/device.c (pic16_dump_section): when no elements in
3217         rlist, free rlist before return,
3218         * (pic16_dump_int_registers): NEW, internal registers are a new set
3219         of general purpose registers reused by each function,
3220         * (checkAddReg): returns 1 if registers is added to set,
3221         * (pic16_groupRegistersInSection): when a registers is of type
3222         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
3223         * src/pic16/device.h: memRange and Assigned Memory are deleted,
3224         SRCASECMP macro is moved here from device.c
3225         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
3226         PO_PCLATU, PO_PRODL, PO_PRODH,
3227         * (pic16_pCodeOpType, genMinus,
3228         changed compares to "a" register, with AOP_ACC,
3229         * (pic16_genPlus): fixed some bugs and indented properly,
3230         * (pic16_addSign): changed size to size+offset in the MOVWF
3231         instruction,
3232         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
3233         multiply 8-bit operand by literal, result is 8-bit,
3234         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
3235         multiply 2 8-bit operand, result is 8-bit,
3236         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
3237         genUMult8X*_16,
3238         * src/pic16/gen.c: changed accUse to contain WREG only,
3239         * (pic16_emitcomment): renamed to pic16_emitpcomment,
3240         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
3241         true, do not use immediate addressing any more unless sym is a
3242         pointer in codespace,
3243         * (aopForRemat): do not use immediate addressing when symbol not in
3244         codespace and when symbol's address is requested,
3245         * (aopOp): for-loop in if(sym->accUse) is modified for the new
3246         accUse size (= 1),
3247         * (aopGet): added case for AOP_ACC and don't return "accumulator
3248         bug" but WREG instead,
3249         * (popGetTempReg): pushes contents of temporary register in stack,
3250         * (popReleaseTempReg): pops contents of temporary register from
3251         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
3252         * (pic16_popGet): separated case AOP_ACC to return register WREG
3253         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
3254         or PO_IMMEDIATE and initializes their instance/offset appropriately,
3255         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
3256         the use of immediate pointers to certain cases only.
3257
3258         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
3259         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
3260         * (assignResultValue, genCall, genRet): modified to use the new
3261         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
3262         genPcall is still broken,
3263         * (genFunction): added code to create 'A' type pBlocks when
3264         interrupt functions are generated, code not extensively tested yet,
3265         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
3266         * (genEndFunction): modified so ISRs pop stored registers from stack,
3267         * (genMultOneByte): cleanup,
3268         * (AccRsh): added flag andmask, to and result with appropriate mask,
3269         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
3270         * (genDataPointerGet): fixed and reenabled its use,
3271         * (genNearDataPointerGet): bugs fixed,
3272         * (genDataPointerSet): bugs fixed,
3273         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
3274         pic16_DumpSymbol, pic16_DumpOp,
3275         * src/pic16/genutils.h: function prototypes for the above functions,
3276         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
3277         pointers,
3278         * (pic16emitRegularMap): many many many improvements, but needs a
3279         major cleanup,
3280         * src/pic16/main.c: enable_stack in pic16_options is removed,
3281         * (_pic16_parseOptions): removed command line options -penable-stack,
3282         * (_process_pragma): emit stack symbol only when stack pragma is
3283         processed,
3284         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
3285         redirected to FSR0L/FSR0H pair,
3286         * (pic16_get_op, pic16_get_op2): modifications and improvements,
3287         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
3288         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
3289         for immediates,
3290         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
3291         * (dumpPicOptype): NEW,
3292         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
3293         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
3294         with movff instruction,
3295         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
3296         added pic16_int_regs, some packRegsFor* functions are commented out,
3297         because produce errors,
3298         * src/pic16/NOTES: minor modifications
3299
3300 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3301
3302         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
3303         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
3304         --pack-iram.
3305         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
3306         * as/mcs51/lkaomf51.c: fixed bug #895763
3307
3308 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
3309
3310         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
3311
3312 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3313
3314         * doc/sdccman.lyx: added details about the HC08 storage classes and
3315         interrupts, fixed the register usage info for z80 & gbz80
3316
3317 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
3318
3319         * doc/sdccman.lyx: added more pic16 port documentation
3320         * device/include/pic16/: added header pic18fregs.h
3321
3322 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
3323
3324         * doc/sdccman.lyx: added Vangelis' contribution
3325
3326 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3327
3328         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
3329         extend to the next CALL or PCALL, not just to the next CALL.
3330
3331 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
3332
3333         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
3334
3335 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3336
3337         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
3338         bug #895752 and a better fix for bug #716790
3339
3340 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3341
3342         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
3343
3344 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3345
3346         * doc/sdccman.lyx: minor changes, minor changed
3347
3348 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
3349
3350         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
3351         which can't handle SDCC_NEWONEBYTEOPS,
3352         (geniCodeMultiply): removed conversion from mult to shift for pic14
3353         and pic16
3354
3355 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3356
3357         * src/hc08/gen.h,
3358         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
3359         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
3360         thus fixing bug #895406
3361
3362 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
3363
3364         * device/lib/_modsint.c,
3365         * device/lib/_modslong.c: sign follows divisor only
3366         * src/hc08/gen.c (genMultOneByte): if result size is 1,
3367         signs or signedness can be ignored
3368         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
3369         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
3370         added optimization for IFX,
3371         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
3372         arguments;
3373         reenabled optimization for IFX, which was removed on 2004-01-11
3374         * src/SDCCast.h: added return type IFX
3375         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
3376         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
3377         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
3378         SDCC_OLDONEBYTEOPS selects the old behaviour
3379         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
3380         changed again and commented promotion rule
3381         * src/SDCCval.c (valDiv): promotion no longer necessary
3382         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
3383         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
3384         rewritten
3385         * support/regression/tests/onebyte.c: added
3386
3387 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
3388
3389         * gen.c (genInline): reverted to old code for assemnling inline
3390         code because of bug reported James Chadd
3391
3392 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
3393
3394         * ralloc.h: missing declarations from previous patch,
3395         seems that patch for ralloc.h was never applied, fixed
3396
3397 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
3398            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
3399
3400         * pcode.c,
3401         * pcode.h,
3402         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
3403         indirect addressing. Marked FSR0 as deprecated
3404         * gen.c (pointerCode): commented out, not needed now
3405         (pic16_popGet2p): new MOVFF helper function
3406         (genGenPointerGet),
3407         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
3408         (shiftRLong): removed duplicate debugging info
3409
3410 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3411
3412         * src/ds390/gen.c (genNearPointerGet),
3413         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
3414         optimization with bits, but not bitfields.
3415         * src/ds390/ralloc.c (packRegisters),
3416         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
3417
3418 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
3419
3420         * src/SDCCcse.c (algebraicOpts): copy operands before modification
3421
3422 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3423
3424         * src/SDCCsymt.h,
3425         * src/SDCCicode.c (operandFromSymbol),
3426         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
3427         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
3428         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
3429         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
3430         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
3431         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
3432         bug #892038
3433         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
3434         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
3435         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
3436         * src/SDCCsymt.c (newSymbol),
3437         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
3438         enumerator_list),
3439         * src/SDCCval.h,
3440         * src/SDCCval.c (newiList): fixed bug #885705
3441
3442 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3443
3444         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
3445         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
3446
3447 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3448
3449         * device/include/c8051f120.h,
3450         * device/include/c8051f300.h,
3451         * device/include/c8051f310.h: added/updated header files for Silicon
3452         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
3453         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
3454         in new section Submitting patches
3455
3456 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3457
3458         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
3459         genFarPointerGet, genCodePointerGet, genGenPointerGet,
3460         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
3461         genGenPointerSet),
3462         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
3463         genFarPointerGet, genCodePointerGet, genGenPointerGet,
3464         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
3465         genGenPointerSet),
3466         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
3467         genFarPointerGet, genCodePointerGet, genGenPointerGet,
3468         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
3469         genGenPointerSet),
3470         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
3471         genFarPointerGet, genCodePointerGet, genGenPointerGet,
3472         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
3473         genGenPointerSet): fixed bug #892400
3474         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
3475         to eliminate build warnings.
3476         * src/SDCCast.c (processParms),
3477         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
3478         fixed bug 751859
3479         * support/valdiag/valdiag.py: added GCC to the list of defines active
3480         when compiling with gcc
3481
3482 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3483
3484         * support/Util/SDCCerr.h,
3485         * support/Util/SDCCerr.c,
3486         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
3487         with an incomplete type (fixed bug #883734)
3488         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
3489
3490 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3491
3492         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
3493
3494 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3495
3496         * src/SDCCast.c (decorateType),
3497         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
3498         function pointer implementation
3499         * support/regression/tests/funptrs.c: added tests to verify both forms
3500         of function pointers work correctly. Added tests to verify parameters
3501         are passed in the correct order.
3502
3503 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
3504
3505         * device.c (regCompare): registers are sorted by ascending
3506         address and increasing size,
3507         * main.c (_pic16_finaliseOptions): removed the declaration
3508         of compiler macro MCU. Now a macro of the format pic18fxxxx
3509         will be defined from the command line
3510
3511 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
3512             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
3513
3514         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
3515         PCOP_RLCF was overwritten!
3516         * gen.c (genSkip): commented out calls to pic16_emitcode,
3517         * (genCmpEQ): fixed "long" compares, only high word did get compared,
3518         * (genlshTwo),
3519         * (genRRC): added debugging info,
3520         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
3521         overwritten while shifting,
3522         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
3523         overwritten while shifting,
3524         * (AccLsh),
3525         * (AccRsh),
3526         * (shiftLLeftOrResult),
3527         * (shiftRLeftOrResult),
3528         * (shiftRLong),
3529         * (shiftLLong): Implemented with pic16_emitpcode
3530         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
3531         * (genLeftShift): Fixed bug, operand for shift by variable always
3532         was "and"ed with 0x0f,
3533         * (genLeftShiftLiteral),
3534         * (genrshTwo),
3535         * (genRightShiftLiteral): added debugging info,
3536         * (genrshFour): added comment,
3537         * (genRightShift): determined signedness from operand "left"
3538         instead of "result"
3539
3540 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3541
3542         * src/SDCCicode.c (geniCodeParms),
3543         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
3544         function pointers, fixed function pointer bugs #861242 and #861896
3545
3546 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3547
3548         * device/include/c8051f000.h,
3549         * device/include/c8051f120.h,
3550         * device/include/c8051f300.h: added header files for Silicon
3551         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
3552
3553 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
3554
3555         * src/SDCCast.c (processParams): added new type flow and restructured
3556         (gatherAutoInit): added new type flow
3557         (addCast): cosmetic changes
3558         (getLeftResultType): added new type flow for array indices, patch
3559         provided by Stas, see FR #877103
3560         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
3561         array index patch by Stas
3562         * src/SDCCast.h: added prototype getResultTypeFromType()
3563         * src/SDCCval.h,
3564         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
3565         * src/pic/glue.c (pic14emitStaticSeg),
3566         * src/pic16/glue.c (pic16emitStaticSeg),
3567         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
3568         for initialization of symbols
3569         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
3570         * support/Util/SDCCerr.h:
3571         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
3572         * .version: bumped version number to 2.3.8
3573         * device/include/Makefile.in (install),
3574         * doc/Makefile (install): changed to 'rm `find ...`' construct to
3575         avoid warnings
3576
3577 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
3578
3579         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
3580         Slade Rich fixed an optimization bug
3581         * src/pic/pcodepeep.c,
3582         * src/pic/pcoderegs.c
3583         * doc/Makefile (install): added test for directory
3584
3585 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3586
3587         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
3588         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
3589         * src/pic/ralloc.c (getRegPtr, getRegGpr),
3590         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
3591         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
3592         * as/mcs51/asexpr.c (term),
3593         * as/hc08/asexpr.c (term): fixed bug #887146
3594
3595 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3596
3597         * src/z80/gen.c (genMult): handle single byte result product
3598         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
3599         DUMMY_READ_VOLATILE (fixed bug #886367)
3600
3601 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
3602
3603         * support/regression/tests/libmullong.c: fixed logic, on little endian
3604         hosts we ended without a mullong_wrapper()
3605
3606 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3607
3608         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
3609         virus/worm forged address usage.
3610
3611 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
3612
3613         Fixed promotion, it should be done on AST level:
3614         * src/SDCCast.c (addCast): added promotion to int
3615         (decorateType): updated call to upCast()
3616         * src/SDCCicode.c (geniCodeLeftShift): removed call to
3617         usualUnaryConversions()
3618
3619 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
3620
3621         * support/regression/tests/literalop.c (mulWrapper): Added a
3622         wrapper to remove integer overflow warnings.
3623
3624         * support/regression/tests/float_trans.c: Made work on host.
3625
3626         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
3627         location of sz80.
3628
3629         * support/regression/generate-cases.py (main): Changed from inline
3630         to a main method.
3631
3632         * doc/Makefile (install): Changed to depth first to get rid of
3633         missing directory install warning.
3634
3635         * as/Makefile (install-doc): Made work on Mac.
3636
3637 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
3638
3639         * src/SDCCast.c: added an additional type flow in decorateType() of
3640         opposite direction, see feature request #860006; it's enabled at runtime
3641         by setting the environment variable SDCC_NEWTYPEFLOW
3642         * src/SDCCast.h: changed prototype of decorateType()
3643         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
3644         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
3645         'char' to 'int' can be omitted, if both operands are 'unsigned char';
3646         see feature request #877103
3647         * src/SDCCval.c: updated call of decorateType()
3648         (valBitwise): fixed bug #882876
3649         (valMinus): added promotion
3650         (valLogicAndOr): result is unsigned
3651         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
3652         * src/SDCCsymt.c (computeType),
3653         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
3654         must not cause an unsigned operation
3655         * src/pic/glue (pic14emitRegularMap),
3656         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
3657
3658 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
3659
3660         * src/pic/pcode.c (PCodeID): commented out left over debug code
3661
3662 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
3663
3664         * support/valdiag/tests/overflow.c: added shift tests
3665         * src/pic/device.c,
3666         * src/pic/gen.c,
3667         * src/pic/gen.h,
3668         * src/pic/glue.c,
3669         * src/pic/main.c,
3670         * src/pic/pcode.c,
3671         * src/pic/pcode.h,
3672         * src/pic/pcodepeep.c,
3673         * src/pic/pcoderegs.c,
3674         * src/pic/ralloc.c,
3675         * src/pic/ralloc.h: applied patch from Slade Rich;
3676         added support for multiple code pages and multiple RAM banks on the
3677         PIC 14 port. The ASM files now no longer simply assume all the
3678         code / RAM are in the same page / bank. This means the linker can
3679         safely allocate code/RAM of separate ASM files to different pages/banks.
3680         * doc/sdccman.lyx: added Slade's tips
3681         * src/mcs51/peeph.def: fixed bug #880768
3682
3683 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3684
3685         * src/hc08/ralloc.c (rematStr): fixed bug #879282
3686         * src/SDCCast.c (decorateType): fixed bug #880197
3687
3688 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
3689
3690         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
3691         getopt.h.
3692
3693         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
3694         strtof is not part of C89 and isn't included with Mac OS X.
3695
3696 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3697
3698         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
3699         shiftL2Left2Result): fixed bug #879326
3700         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
3701         (genMultOneByte): fixed bug in signed vs unsigned multiplication
3702         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
3703         address fetch for clr instruction
3704         * device/lib/hc08/_mulint.c: created optimized assembly version
3705         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
3706
3707 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
3708
3709         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
3710         proposed in FR #877103
3711
3712 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
3713
3714         * src/SDCCval.c (cheapestVal): added missing checks
3715         * src/SDCCicode.c (usualBinaryConversions): fixed condition
3716         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
3717
3718 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
3719
3720         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
3721         equal operands
3722
3723 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
3724
3725         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
3726         loaded with the linker search paths (-L arguments) and the libraries
3727         to be linked with the current source (-l arguments). Changes
3728         currently will affect only the pic16 port.
3729         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
3730         include path the port specific paths and port specific libraries,
3731         * gplink command now contains the $3 argument,
3732         * src/pic16/device.h,
3733         * src/pic16/device.c,: structure PIC_device is made public and
3734         renamed to PIC16_device, the same for variable Pics which is renamed
3735         to Pics16. Updated all references to them.
3736         * src/pic16/glue.c (pic16glue): corrected bug with code
3737         initialization which bypassed the variable initializations block.
3738
3739         * device/lib/pic16/Makefile.rules: removed --penable-stack from
3740         COMPILE_FLAGS and added the --nostdinc option
3741
3742 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3743
3744         * device/include/mc68hc908jb8.h: Register defs for another member
3745         of the hc08 family. Contributed by Bjorn Bringert - thanks!
3746
3747 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
3748
3749         Documenting changes from previous commits.
3750         * configure.in (version 1.56),
3751         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
3752         when generating output files to configure the pic16 library,
3753         but now I've commented it out, since gputils aren't installed in the
3754         SF compile farm, so library won't compile
3755
3756         * device/lib/Makefile.in (version 1.56): initially I've added in
3757         target 'all' the prerequestive 'model-pic16' so it compiled the
3758         pic16 library, but now I've commented it out for the same reasons
3759         above,
3760         * added targets 'model-pic16' and 'objects-pic16' to compile the
3761         library
3762         * added target 'port-specific-objects-pic16' to handle the
3763         generated libraries and copy them into the build/ directory
3764         * added target 'clean-intermediate-pic16' to clean intermediate
3765         files into pic16 directory
3766         * in target 'installdirs' added line to create directory pic16 in
3767         the installation path
3768
3769         * device/include/Makefile.in (version 1.11): in target 'install'
3770         added lines to copy all header files to installation path,
3771         * in target 'installdirs' added line create directory for pic16
3772         headers in the installation path
3773
3774 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
3775
3776         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
3777          a function call
3778
3779 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
3780
3781         * configure,
3782         * device/lib/configure.in,
3783         * device/lib/configure: fixed for autoconf 2.57
3784
3785 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3786
3787         * src/z80/main.c (_parseOptions): fixed the portmode= command line
3788         option so that it actually works. Made it specific to the z80, since
3789         the gbz80 doesn't have these kinds of I/O ports.
3790
3791 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3792
3793         * device/include/z180.h,
3794         * device/lib/_memcpy.c,
3795         * device/lib/_memmove.c,
3796         * device/lib/_mulint.c,
3797         * device/lib/ser_ir.c,
3798         * device/lib/ser_ir_cts_rts.c,
3799         * device/lib/_strcmp.c,
3800         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
3801         * src/z80/main.c (_process_pragma): add support for pragmas bank and
3802         portmode; added deprecation warning for bank= and protmode= forms.
3803         Also, guard against buffer overflow.
3804         * src/z80/gen.c (aopGet): generate better code for sfr banked read
3805
3806 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3807
3808         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
3809         changed interrupt vector table generation to only emit declared vectors.
3810         * device/include/Makefile.in: added missing backslash
3811         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
3812
3813 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
3814
3815         Mainly changes to support compilation of the device libraries
3816         * src/pic16/device.c: stack is allocated via symbol and not
3817         via literal number. The symbol is placed in the corresponding
3818         position of the data ram
3819         * (pic16_dump_section): relocatable and absolute uninitialized
3820         data are now emitted in sorted order to reduce section naming,
3821         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
3822         weren't marked as being in the access bank,
3823
3824 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
3825
3826         Added portion of GNU PIC Library under the directory
3827         device/include/pic16 and device/lib/pic16. These files
3828         contain the declarations of SFRs for the PIC18Fxx2 devices.
3829         The directory is initialized via configure from toplevel.
3830
3831 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
3832
3833         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
3834         the spilllocations to be compared correctly
3835
3836 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
3837
3838         * src/SDCCast.c (decorateType): fixed bug introduced today
3839
3840 2004-01-12  Borut Razem <borut.razem AT siol.net>
3841
3842         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
3843         doc/sdccman.lyx: upper case pragmas are deprecated
3844
3845 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
3846
3847         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
3848         in simpler and even better code
3849
3850 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
3851
3852         * src/SDCCicode.c (operandOperation): fixed bug #874819
3853         * src/SDCCast.c (decorateType): fixed
3854         char foo (unsigned long ul) { return ul > 0; }
3855
3856 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3857
3858         * doc/sdccman.lyx: Moved and added some sections, small changes
3859         all over. Telling LaTeX to be less strict with word spacing
3860         to better keep the right margin. Changed some notes about
3861         maintainance of the ports in section 3.2.1 - is it OK like this?
3862
3863 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
3864
3865         SDCC source changes:
3866         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
3867         convilong): modified to inform the pic16 port that builtin functions
3868         are external
3869
3870         PIC16 PORT specific changes:
3871         * src/pic16/device.c pic16_dump_equates() added,
3872         processor registers declared internally by the port are emitted in
3873         the translation as equates,
3874         * src/pic16/gen.c: inline code is passed unprocessed to the
3875         translation,
3876         * (pic16_popGetLit2): fnuction modified to take second operand as
3877         pCodeOp pointer and not as literal,
3878         * (popRegFromIdx): prefixed with pic16_,
3879         * (pic16_popCombine2): modified to receive already allocated pCode
3880         operands,
3881         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
3882         * (genFunction): initializes local stack frame and pushes on stack
3883         all the registers used by this function,
3884         * (genEndFunction): restores all registers from stack and restores
3885         stack frame,
3886         * src/pic16/glue.c (pic16emitRegularMap): various changes and
3887         improvements,
3888         * (pic16glue): changed the program startup sequence,
3889         * added new dbName code 'A' for functions placed in absolute section
3890         * src/pic16/main.c: added function attribute _naked,
3891         * added pragma 'code' to place a fnuction at an absolute address,
3892         * added command line arguments --debug-ralloc and --pcode-verbose,
3893         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
3894         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
3895         * (pic16_newpCodeOpLit2): modified to take the second operand as
3896         pCodeOp pointer,
3897         * (pic16_printpBlock): modified to emit each function in a separate
3898         section,
3899         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
3900         UPPER for immediate operands,
3901         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
3902         instruction,
3903         * src/pic16/peeph.def: all peepholes with movff are commented out,
3904         because there is a problem in the pcode peep optimizer,
3905         * src/pic16/ralloc.c: the register allocator can now reuse local
3906         function symbols for another function. This saves register usage.
3907         * src/pic16/ralloc.h: added flag isLocal in structure regs,
3908
3909         Added file src/pic16/NOTES with information about program writing on
3910         the current port version.
3911
3912 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3913
3914         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
3915         and peephole 252 (array access)
3916
3917 2004-01-09  Borut Razem <borut.razem AT siol.net>
3918
3919         * src/SDCCmain.c : fixed #872250: -l command line defined library
3920           files are scanned before standard library files
3921
3922 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3923
3924         * src/SDCCast.c (decorateType): fixed bug #874046
3925
3926 2004-01-09  Borut Razem <borut.razem AT siol.net>
3927
3928         * support/scripts/sdcc.nsi: remove previous installation
3929
3930 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3931
3932         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
3933         bytes for last interrupt vector (mcs51)
3934         * sdcc.spec: fixed typo
3935
3936 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3937
3938         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
3939         gen51Code): more efficient parameter receive for --model-large
3940         ("bug" #845294)
3941
3942 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3943
3944         * src/ds390/main.c,
3945         * src/z80/main.c: added missed needLinkerScript flags (more than
3946         one port structure defined in these file)
3947         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
3948         bug #795325
3949
3950 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
3951
3952         * src/SDCCmain.c: removed various references to DEFAULT_PORT
3953         * src/port.h: added flag needLinkerScript in port->linker
3954         structure to inform whether to create a .lnk file or not,
3955         * src/avr/main.c,
3956         * src/ds390/main.c,
3957         * src/hc08/main.c,
3958         * src/mcs51/main.c,
3959         * src/pic/main.c,
3960         * src/pic16/main.c,
3961         * src/xa51/main.c,
3962         * src/z80/main.c: changed appropriately to configure
3963         needLinkerScript flag
3964         * src/pic/gen.c,
3965         * src/pic16/gen.c (genAddrOf): fixed bug #863624
3966         * src/pic/glue.c: added variable udata_section_name to
3967         override default uninitialized data segment definition for
3968         devices only with SHAREBANK memory (reported from Erik Epetrich)
3969         * (pic14emitOverlay): modified to emit a commented overlay segment
3970         directive when no overlay data exist
3971         * (picglue): modified to emit uninitialized data segment
3972         according to udata_section_name
3973         * src/pic/main.c (_pic14_parseOptions): added command line
3974         options --udata-section-name=[name] to override default
3975         udata definition name
3976         * modified _linkCmd and _asmCmd to include compiler passed
3977         arguments via -W option
3978         * src/pic16/main.c: added $l in _asmCmd, changed extension for
3979         object file from '.rel' to '.o' in port->linker structure,
3980         changed size of fptr from 2 to 3 in port structure
3981
3982 2004-01-07  Borut Razem <borut.razem AT siol.net>
3983
3984         * support/scripts/sdcc.nsi: update PATH
3985         * support/scripts/sdcc.ico: craeted
3986
3987 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
3988
3989         * device/include/Makefile.in: fix install
3990         * doc/Makefile: fix install
3991
3992 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3993
3994         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
3995         in bug #860505
3996         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
3997         how the function variable allocation summary is displayed; also
3998         include information about variables allocated to the overlay
3999         segment
4000
4001 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4002
4003         * as/mcs51/lkmain.c: Help about -Y option
4004         * as/mcs51/lkarea.c: Fixed gcc warnings
4005
4006 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
4007
4008         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
4009         fixed warning
4010         * support/valdiag/tests/overflow.c: added
4011         * src/SDCCast.c (decorateType),
4012         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
4013         LEFT_OP (left shift)
4014
4015 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4016
4017         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
4018         (default behaviour).
4019
4020 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4021
4022         A python script to validate compiler diagnostic messages. It can be
4023         used to verify that sdcc complains about bad c source code and
4024         gives a good location of the error.
4025         * support/valdiag/Makefile,
4026         * support/valdiag/valdiag.py,
4027         * support/valdiag/tests/*
4028
4029 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4030
4031         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
4032         * src/SDCCsymt.c (newEnumType),
4033         * src/SDCCsymt.h
4034         * support/Util/SDCCerr.c,
4035         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
4036         enum related bugs.
4037         * support/regression/tests/enum.c: added test for enum values that
4038         require at least 2 bytes of storage.
4039
4040 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
4041
4042         * src/common.h: added ifndef/define/endif macros
4043         around the header file.
4044         Bug reported from Jesus Calvino-Fraga
4045
4046 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
4047
4048         * sdcc.spec: updated
4049         * device/include/Makefile.in: don't install CVS directories
4050         * device/lib/Makefile.in: added removal of CVS directories after install
4051         * doc/Makefile: fixed install, added local_icons
4052         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
4053         * src/mcs51/gen.c (genRightShift): fixed bug #870788
4054         * src/ds390/gen.c (genRightShift): fixed bug #870788
4055         * src/SDCCast.c (decorateType): fixed bug #870781
4056
4057 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
4058
4059         PIC16 port related changes:
4060         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
4061         added variable stackPos,
4062
4063         * gen.c: genCall, assignResultValue: added support for
4064         pushing/retrieving function parameters to/from stack,
4065         genFunction,genEndFunction: setup stack frame for the
4066         generated function,
4067         genAddrOf: will be changed according to bug 863624
4068
4069         * added files genutils.c and genutils.h which contain gen*
4070         debugged and optimised functions extracted from gen.c
4071
4072         * glue.c: added variable 'externs' which holds extern symbols,
4073         pic16emitRegularMap: is modified to properly handle relocatable
4074          symbols under the new scheme,
4075         pic16createInterruptVect: is modified
4076         pic16printPublics: is modified to emit 'global' assembler directives,
4077         added pic16_printExterns to print extern symbols,
4078         pic16glue: initializes stack/frame pointer in the beginning of
4079         the assembly output. Temporary hack, will be corrected later,
4080         because gplink yet does not support stack and SDCC does not
4081         yet support a type of crt0.o object to create the final binary.
4082
4083         * Removed many lines that contain 8051 legacy code.
4084         * The code is finally placed under a 'code' directive.
4085         * Added port specific options.
4086
4087         * _process_pragma: simplified since now we do not need *special*
4088         include file to define SFR registers. But a separate header
4089         will be needed. This will be developed later.
4090         * _pic16_parseOptions: added, parses port specific options:
4091         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
4092         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
4093         --preplace-udata-with=
4094
4095         * _pic16_setDefaultOptions: modified to initialize section names,
4096         but hack is temporarly out of order since it needs improvement.
4097         * _pic16_genAssemblerPreamble: configuration words are emitted by
4098         their address instead of their name. This part is incomplete and
4099         supports only the 18Fxx2 devices. Other devices will emit an error
4100         during assembly since they do not contain the same set of config
4101         registers
4102         * _pic16_genIVT: is modified,
4103
4104         * pcode.c: added definitions for some hardware registers that are needed
4105         for stack support
4106         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
4107         All PCI entries are updated. Now LFSR is supported.
4108         * Removed pic16_pciTRIS is mentioned by mdubuc in source
4109         * added pic16_newpCodeOpLit2 to support instructions with
4110         two literal arguments
4111         * pic16_pCode2str: corrected code that emits assembler instructions
4112         with two literal operands and those that have an access bit modifier
4113         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
4114         this fixes a bug which caused some labels to be lost, when an
4115         assembler directive was added, i.e. banksel,
4116         * pic16_FixRegisterBanking: improved logic that causes the insertion
4117         of bank switching,
4118         * InlineFunction: functions that are called once, are not any more
4119         inlined. This can be a port option in the future,
4120
4121         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
4122
4123         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
4124         hold the corresponding uninitialized symbols,
4125         * pic16_allocProcessorRegister: registers have explicit marked the
4126         accessBank field,
4127         * pic16_allocInternalRegister: registers are explicit marked as
4128         not used,
4129         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
4130         processing list, so bit registers were lost,
4131         *
4132
4133         * ralloc.h: added field 'accessBank' and original symbol operand
4134         in register definition,
4135         * removed the field isMapped from register definition,
4136
4137         ** Several functions have been removed from various sources:
4138         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
4139         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
4140         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
4141         pic16_assignRelocatableRegisters
4142
4143         ** others have been introduced:
4144         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
4145         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
4146
4147 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
4148
4149         * support/scripts/inc2h.pl: changed definition of BIT_AT
4150         to emit 'sbit at' instead of 'bit at'. This was a request.
4151
4152         PIC16 port related preliminary changes:
4153         * gen.c: prefixed function popRegFromString with
4154         pic16_ and all references to it corrected
4155         * pcode.c: all pic16_pc_* hardware registers prefixed
4156         with underscore (_),
4157         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
4158         * ralloc.c: newReg(): when register is REG_SFR then
4159         set address to rIdx,
4160         pic16_allocProcessorRegister(): marks register wasUsed=0
4161         pic16_writeUsedRegs(): added a call to assign processor
4162         registers via pic16_assignFixedRegisters
4163
4164 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4165
4166         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
4167         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
4168         variables in unused register banks.  Also the SSEG is placed
4169         wherever there is enough space for it, and IDATA can be anywhere
4170         in internal RAM.  For now compile using -Wl-Y[stack_size].
4171         The mem file is different for this option as well, since it
4172         makes no sense of talking about DSEG lenght.
4173
4174 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
4175
4176         * src/SDCClrange.c: fixed bug 869095 that caused segfault
4177         in certain cases, e.g. when ROM assignment, patch provided
4178         from Albert den Haan.
4179
4180 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
4181
4182         Many signedness and type propagation fixes:
4183         * src/SDCCicode.c: made geniCodeCast() static
4184         replaced SPEC_ by IS_ (cosmetic)
4185         (operandOperation): fixed div and mod operation
4186         (usualBinaryConversions): added support for promotion of char
4187         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
4188         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
4189         (geniCodeAdd): an array index will stay unsigned, even if promoted
4190         from char to int
4191         (geniCodeArray): ditto
4192         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
4193         * src/SDCCsymt.c (computeType): added more support for char;
4194         promotion of char is selectable by promoteCharToInt, fixed signedness
4195         for all cases
4196         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
4197         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
4198         * src/SDCCval (val*): replaced signedness calculation by
4199         computeType()
4200         rearranged if-branches (cosmetic)
4201         (valShift): added warning W_SHIFT_CHANGED
4202         (valCompare): fixed problem with different types
4203         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
4204         * support/regression/tests/literalop.c: added many cases
4205         * support/regression/tests/ast_constant_folding.c: changed finally to
4206         'unsigned int'
4207         * .version: new year, new version: 2.3.7
4208         * src/SDCCmain.c (main): applied patch #866468
4209         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
4210         provided by Scott Bronson
4211         * doc/sdccman.lyx: updated documentation for sdcdb
4212         updated and added chapter tips
4213
4214 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4215
4216         * src/SDCCsymt.h: missing from yesterday's commits
4217
4218 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4219
4220         * src/SDCC.y (struct_or_union_specifier),
4221         * support/Util/SDCCerr.c,
4222         * support/Util/SDCCerr.h: verify that struct & union tags are used
4223         as declared.
4224
4225 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4226
4227         * src/SDCCglobl.h: missing from yesterday's commits
4228
4229 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4230
4231         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
4232         sft_attributes, struct_declaration, parameter_declaration,
4233         type_name, start_block, declaration_list),
4234         * src/SDCC.lex (check_type): support redefinition of typedef names
4235
4236 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4237
4238         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
4239         aligned xdata arrays. Erik helped me with the if clause.
4240
4241 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4242
4243         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
4244         warning
4245
4246 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4247
4248         * src/SDCCast.h,
4249         * src/SDCCast.c (newAst_),
4250         * src/SDCCicode.h,
4251         * src/SDCCicode.c (ast2iCode, newiCode),
4252         * src/SDCCglobl.h,
4253         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
4254         expr, statement, expression_statement, selection_statement,
4255         iteration_statement, expr_opt, jump_statement): foundation for tracking
4256         sequence points
4257         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
4258         point code too)
4259
4260 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4261
4262         * support/Util/SDCCerr.c,
4263         * src/SDCCast.h,
4264         * src/SDCCast.c (createCase, createDefault, decorateType),
4265         * src/SDCClabel.c (labelUnreach),
4266         * src/SDCC.y (labeled_statement, jump_statement): More improvements
4267         to error messages.
4268         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
4269         (with thanks to Stas Sergeev)
4270         * device/include/time.h,
4271         * device/lib/time.c (CheckTime): suppress unreachable code warning
4272
4273 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4274
4275         * src/SDCCast.c (createIvalCharPtr),
4276         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
4277         bug #753752)
4278         * support/regression/tests/nullstring.c: tests for these two bugs
4279
4280 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4281
4282         * support/Util/SDCCerr.h,
4283         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
4284         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
4285         about storage class and 'at' used inside struct or union
4286         * src/SDCCBBlock.c (iCodeFromeBBlock),
4287         * src/SDCCcse.c (ifxOptimize),
4288         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
4289         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
4290         printIval, emitStaticSeg, emitOverlay),
4291         * src/SDCClabel.c (deleteIfx),
4292         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
4293         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
4294         gatherAutoInit, processParms),
4295         * support/Util/SDCCerr.h,
4296         * support/Util/SDCCerr.c (werrorfl): Support for better error location
4297         reporting for post-parse errors.
4298
4299 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4300
4301         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
4302         implicit casts via union; they don't work on big endian systems
4303         (possible fix for bug #861138)
4304
4305 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4306
4307         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
4308         * src/mcs51/main.c: fixed the fix for bug #737001
4309
4310 2003-12-15  Borut Razem <borut.razem AT siol.net>
4311
4312         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
4313
4314 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4315
4316         * support/makebin/makebin.c: put output in binary mode
4317
4318 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4319
4320         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
4321         xdata and data memory on startup. Set the environment variable
4322         SDCC_NOGENRAMCLEAR to disable this.
4323         * src/mcs51/peephole.def,
4324         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
4325         (allows non-interrupt and interrupt code to safely compete for a resource
4326         without the non-interrupt code having to disable interrupts)
4327
4328 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4329
4330         * src/SDCCicode.c (geniCodeAdd),
4331         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
4332         with valFromType if type might be a pointer and host is big endian).
4333         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
4334         types, not just integer types.
4335         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
4336         multiply defined with mismatching "at" address.
4337
4338 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4339
4340         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
4341         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
4342         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
4343         with embedded nulls (fixed bug #753752)
4344
4345 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4346
4347         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
4348         Apparently this did not see much testing (endless loop)
4349
4350 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4351
4352         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
4353
4354 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4355
4356         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
4357         gracefully handle NULL memmap pointers
4358
4359 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4360
4361         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
4362         instead of deleting the iCode when an operand is volatile
4363         * src/z80/gen.c (genDummyRead),
4364         * src/mcs51/gen.c (genDummyRead),
4365         * src/ds390/gen.c (genDummyRead),
4366         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
4367         not just IC_RIGHT
4368         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
4369         * src/SDCC.y: fixed bug #850420
4370
4371 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4372
4373         Applied z80 i/o port patch from Peter Townson and fixed some operators
4374         to better handle operands in A register.
4375         * device/include/z180.h
4376         * src/SDCC.y
4377         * src/SDCCglue.c
4378         * src/z80/gen.c
4379         * src/z80/gen.h
4380         * src/z80/main.c
4381         * src/z80/peeph-z80.def
4382         * src/z80/peeph.def
4383         * src/z80/z80.h
4384
4385 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4386
4387         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
4388
4389 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4390
4391         * device/lib/hc08/_mullong.c: Removed extra #endif
4392
4393 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4394
4395         * sim/ucsim/hc08.src/inst.cc,
4396         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
4397         carries from x to h
4398         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
4399         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
4400         * device/include/stdarg.h: fixed varargs for hc08
4401         * device/lib/Makefile.in,
4402         * device/lib/hc08/Makefile,
4403         * device/lib/hc08/_mulint.c,
4404         * device/lib/hc08/_mullong.c: fixed some endian problems
4405
4406 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4407
4408         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
4409         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
4410         * device/lib/_gptrget.c,
4411         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
4412
4413 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4414
4415         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
4416         * src/SDCCast.c (astErrors): fixed bug #846007
4417         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
4418
4419 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4420
4421         * src/SDCCast.c (decorateType): disabled a transformation I added in
4422         revision 1.188 (access to fields of a structure at an absolute address);
4423         it breaks with bitfields, extern declarations, and gcse analysis.
4424         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
4425         could be assigned through a pointer, so don't complain.
4426         * src/SDCCast.c (astErrors),
4427         * src/SDCCast.h,
4428         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
4429
4430 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
4431
4432         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
4433         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
4434         output of __config directives, since gpasm now supports them
4435         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
4436         pre-processor macro, i.e. -DMCU=p18f452
4437         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
4438         and modified to handle 'cast' icode similarly to '=' icode
4439         * src/pic16/device.h (typedef struct PIC_device): added field
4440         'extMIface' to indicate that chip has external memory interface
4441         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
4442         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
4443         18F8720
4444
4445 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4446
4447         * src/SDCC.y (pointer): fixed bug #846006
4448         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
4449         * src/SDCCast.c (decorateType): fixed bug #846009
4450         * src/ds390/peeph.def,
4451         * src/ds390/gen.c (genAnd, genOr),
4452         * src/mcs51/peeph.def,
4453         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
4454
4455 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4456
4457         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
4458         * src/SDCCdflow.c
4459         * src/SDCCcse.c
4460         * src/SDCCcse.h
4461         * src/SDCCBBlock.h
4462         * src/SDCCBBlock.c
4463
4464 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
4465
4466         fixed bug #845089
4467         * src/SDCCbitv.h,
4468         * src/SDCCbitv.c: added function to free a bitvector
4469         * src/SDCClrange.h,
4470         * src/SDCClrange.c: added function to recompute the liveranges
4471         * src/avr/ralloc.c,
4472         * src/ds390/ralloc.c,
4473         * src/hc08/ralloc.c,
4474         * src/mcs51/ralloc.c,
4475         * src/pic/ralloc.c,
4476         * src/pic16/ralloc.c,
4477         * src/xa51/ralloc.c,
4478         * src/z80/ralloc.c: recompute the liveranges after register packing
4479
4480 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
4481
4482         * src/SDCCloop.c (newInduction): fixed bug #845630
4483
4484 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4485
4486         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
4487         inadvertantly left behind from my 2003-11-12 change
4488
4489 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4490
4491         Updated headers I neglected to commit yesterday.
4492         * src/SDCClrange.h,
4493         * src/SDCCicode.h
4494
4495 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4496
4497         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
4498         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
4499         * src/SDCCopt.c (eBBlockFromiCode),
4500         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
4501         the creation of the key hash table from the sequencing so it can be used
4502         earlier (for some GCSE bug fixes still pending)
4503
4504 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4505
4506         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
4507         * support/regression/tests/addsub.c: testing genPlus shortcut
4508
4509 2003-11-15  Borut Razem <borut.razem AT siol.net>
4510
4511         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
4512
4513 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4514
4515         * src/SDCCcse.c (cseBBlock): fixed bug #527779
4516         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
4517         ordering is immaterial.
4518         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
4519
4520 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4521
4522         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
4523         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
4524         (SIGSEV) of bug #840381
4525         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
4526         unlink new file before rename if new and old filenames are the same)
4527
4528 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4529
4530         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
4531         uninitialized variables) for the mcs51. Set environment variable
4532         SDCC_GENRAMCLEAR to test.
4533         xdata initialization slightly shorter
4534
4535 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4536
4537         * src/SDCCsymt.h,
4538         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
4539         #838241 & 780691 (basicly the same bug)
4540         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
4541         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
4542
4543 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
4544
4545         * src/SDCCmain.c (linkEdit): "fix" #834252
4546
4547 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4548
4549         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
4550         * src/SDCCast.h,
4551         * src/SDCC.y: fixed bug #819403
4552
4553 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4554
4555         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
4556         the reentrant attribute.
4557         * src/hc08/gen.c (genPackBits): added missing stack readjustment
4558         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
4559         simulation
4560         * src/SDCCast.c (decorateType): fixed bug with storage class not being
4561         updated during pointer dereference; f.e. ~(((char *)1)*) was being
4562         erroneously reduced to a literal.
4563         * src/hc08/ralloc.c (packRegisters, rematStr),
4564         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
4565         some cases
4566
4567 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4568
4569         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
4570         * doc/sdccman.lyx: changed from 'article' to 'book'
4571         * doc/Makefile: readded test_suite_spec and cdbfileformat
4572
4573 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
4574
4575         * device/include/stdlib.h: include malloc.h to comply with ANSI
4576         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
4577
4578 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4579
4580         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
4581         * doc/clean.mk: also remove *.out files
4582         * doc/sdccman.lyx: some additions, larger top/bottom margins
4583
4584 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4585
4586         * src/SDCC.y: fixed bug #837365
4587         * support/regression/tests/bitopcse.c
4588         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
4589         a symbol (might be valop instead)
4590         * device/lib/Makefile.in: added errno.c to HC08SOURCES
4591         * device/lib/clean.mk: added hc08 to the cleaning list
4592
4593 2003-11-04  Borut Razem <borut.razem AT siol.net>
4594
4595         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
4596           made 2003-11-04
4597         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
4598           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
4599           malloc is declared in standard stdlib.h
4600
4601 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4602
4603         * device/lib/hc08/Makefile: need to clean .rel not .o files
4604         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
4605
4606 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4607
4608         * src/port.h,
4609         * src/hc08/main.c,
4610         * src/mcs51/main.c,
4611         * src/ds390/main.c,
4612         * src/z80/main.c,
4613         * src/avr/main.c,
4614         * src/pic/main.c,
4615         * src/pic16/main.c,
4616         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
4617         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
4618         tests (which uses the port's oclsExpense function)
4619         * src/SDCC.y,
4620         * src/SDCCast.c,
4621         * src/SDCCicode.c,
4622         * src/hc08/gen.c,
4623         * src/ds390/gen.c,
4624         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
4625
4626 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4627
4628         * src/SDCCcse.c (ifxOptimize),
4629         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
4630         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
4631         deleting the IFX iCode.
4632         * src/hc08/ralloc.c: reduced unneeded slocs
4633         * src/hc08/gen.c: fixed bug in asmopToBoolean
4634
4635 2003-11-04  Borut Razem <borut.razem AT siol.net>
4636
4637         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
4638           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
4639           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
4640           transferred to configure
4641
4642 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
4643
4644         Use headers defined in the C[++] standards:
4645         * sim/ucsim/gui.src/serio.src/fileio.cc
4646         * sim/ucsim/gui.src/serio.src/frontend.cc
4647         * sim/ucsim/gui.src/serio.src/main.cc
4648         * sim/ucsim/gui.src/serio.src/posix_signal.cc
4649         * support/Util/NewAlloc.c
4650         * as/hc08/lklibr.c
4651         * as/mcs51/lklibr.c
4652         * as/z80/aslist.c
4653         * as/z80/assym.c
4654
4655 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4656
4657         * Added MSVC projects for hc08 assembler and linker:
4658         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
4659         /as/hc08/link_hc08.dsp
4660
4661 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
4662
4663         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
4664
4665 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
4666
4667         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
4668
4669 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4670
4671         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
4672
4673 2003-10-31  Borut Razem <borut.razem AT siol.net>
4674
4675         * support/cpp2/cpplib.h,
4676           support/cpp2/cpplib.c,
4677           support/cpp2/cpplex.c,
4678           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
4679           to switch _asm block preprocessing on / off. Default is
4680           #pragma preproc_asm +
4681
4682 2003-10-31  Borut Razem <borut.razem AT siol.net>
4683
4684         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
4685           when outputting comment blocks (when executed with -C option) and
4686           _asm (SDCPP specific) blocks
4687
4688 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4689
4690         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
4691
4692 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
4693
4694         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
4695
4696 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
4697
4698         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
4699         * src/SDCCast.c (decorateType): fixed bug #832664
4700
4701 2003-10-31  Borut Razem <borut.razem AT siol.net>
4702
4703         * support\cpp2\cpplex.c: fixed for SDCPP:
4704           comments(when executed with -C option) and _asm blocks
4705           were included even if they where in skipped #if block.
4706           Applied solution from GCC cpp 3.3.2
4707
4708 2003-10-31  Borut Razem <borut.razem AT siol.net>
4709
4710         * src/SDCC.lex: sdcc now understands both formats:
4711           '# <line_number> <file_name>' and
4712           '#line <line_number> <file_name>'
4713         * support/cpp2/cppmain.c: sdcpp now generates the standard
4714           '# <line_number> <file_name>' instead of former
4715           '#line <line_number> <file_name>'
4716
4717 2003-10-30  Borut Razem <borut.razem AT siol.net>
4718
4719         * support/cpp2/cpphash.h,
4720         * support/cpp2/cpplib.h
4721         * support/cpp2/cpplex.c,
4722         * support/cpp2/cppmain.c,
4723         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
4724
4725 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4726
4727         Fixed a number of problems revealed by bug #827883.
4728         * src/SDCCloop.c (loopInvariants): Spill location of the
4729         result operand should be recomputed if extracted from
4730         a loop. Also, don't extract assignments of an iTemp
4731         from a literal.
4732         * src/SDCCast.c (isConformingBody): loop reversal should
4733         not occur if the control variable is involved with a
4734         relational operator.
4735
4736 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
4737
4738         * .version: bumped to 2.3.6 to reflect the big improvements
4739         made by Erik and Klaus. Thanks!
4740
4741 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
4742
4743         Replaced the livrange code.
4744         * src/SDCClrange.c: added new LR code
4745         * src/SDCCloop.c,
4746         * src/SDCCBBlock.h: removed remainig parts from old LR code
4747         * src/ds390/ralloc.c,
4748         * src/ds390/gen.c: minor fixes to make it work with new code
4749
4750 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4751
4752         * as/hc08/asm.h,
4753         * as/hc08/lkrloc.c,
4754         * src/hc08/gen.c,
4755         * src/hc08/ralloc.c: Fix various warnings related to the hc08
4756         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
4757         (tweaked fix for bug #818696)
4758
4759 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4760
4761         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
4762
4763 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4764
4765         * src/SDCCmain.c,
4766         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
4767         * src/mcs51/gen.c (gencjneshort),
4768         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
4769         more efficient (per Scott Bronson's suggestion)
4770
4771 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4772
4773         Extended the semantics of the critical keyword to include
4774         individual statements. See RFE #827755 and #799831
4775         * src/SDCC.y
4776         * src/SDCCicode.c
4777         * src/SDCCopt.c
4778         * src/SDCCast.c
4779         * support/Util/SDCCerr.c
4780         * support/Util/SDCCerr.h
4781         * src/mcs51/gen.c
4782         * src/ds390/gen.c
4783         * src/hc08/gen.c
4784
4785 2003-10-19  Borut Razem <borut.razem AT siol.net>
4786
4787         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
4788
4789 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4790
4791         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
4792         Fixed bug #818696
4793         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
4794         and predecrement operand is displayed
4795
4796 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
4797
4798         * src/SDCCval.c (valMinus): fixed bug #826041
4799
4800 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4801
4802         Some hc08 related updates that I missed earlier
4803         * sim/ucsim/stypes.h
4804         * support/regression/ports/hc08/spec.mk
4805
4806 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4807
4808         New target "hc08" for the Motorola 68hc08 family of micros
4809
4810         * configure
4811         * configure.in
4812         * Makefile
4813         * src/hc08/*
4814         * src/SDCCmain.c
4815         * src/port.h
4816         * sim/ucsim/hc08.src/*
4817         * sim/ucsim/configure.in
4818         * src/ucsim/configure
4819         * sim/ucsim/packages_in.mk
4820         * as/hc08/*
4821         * as/Makefile
4822         * device/include/mc68hc908qy.h
4823         * device/lib/hc08/*
4824         * device/lib/Makefile.in
4825         * support/regression/ports/hc08/*
4826         * support/regression/Makefile
4827
4828 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4829
4830         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
4831         regression test
4832         * src/ds390/gen.c (genCast): fixed bug #821957
4833
4834 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
4835
4836         * device/lib/logf.c: "fixed" overlay bug
4837         * support/regression/ports/host/spec.mk: added m library
4838         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
4839         * support/regression/tests/float_trans: added (for Eric)
4840
4841 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
4842
4843         * src/mcs51/gen.c (genCpl): fixed bug
4844         http://sf.net/mailarchive/message.php?msg_id=6263915
4845
4846 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
4847
4848         * src/SDCCast.c (decorateType): added extended constant folding
4849         * src/SDCCsymt.c (computeType): cleanup
4850         * src/SDCCval.c (valShift): minor optimization
4851         * support/regression/tests/ast_constant_folding.c: added
4852
4853 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4854
4855         * src/SDCCmain.c: removed some unintended changes
4856
4857 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4858
4859         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
4860         * src/z80/gen.c: fixed part of bug #817589
4861         * src/SDCCsymt.c (checkFunction): fixed bug #817895
4862
4863 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
4864
4865         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
4866         * src/SDCCcflow.c
4867         * src/SDCCcse.c
4868         * src/SDCCdflow.c
4869         * src/SDCClabel.c
4870         * src/SDCClrange.c
4871         * src/SDCCmem.c
4872         * src/SDCCopt.c
4873         * src/SDCCpeeph.c
4874         * src/SDCCset.c
4875         * src/avr/ralloc.c
4876         * src/ds390/ralloc.c
4877         * src/izt/ralloc.c
4878         * src/mcs51/ralloc.c
4879         * src/pic/ralloc.c
4880         * src/pic16/ralloc.c
4881         * src/xa51/ralloc.c
4882         * src/z80/ralloc.c
4883         * src/z80/gen.c: removed unused label "release:"
4884
4885 2003-10-06  Borut Razem <borut.razem AT siol.net>
4886
4887         * src/SDCC.lex: removed definition of unused variables
4888           save_optimize and save_options
4889
4890 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
4891
4892         * clean.mk: removed '=' in "-maxdepth=1"
4893         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
4894         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
4895
4896 2003-10-06  Borut Razem <borut.razem AT siol.net>
4897
4898         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
4899           my_unput() replaced by unput()
4900
4901 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
4902
4903         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
4904         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
4905         type-punned pointer will break strict-aliasing rules"
4906         Old LR behaviour is again default; Klaus' LR can be choosen by
4907         defining the environment variable LRKLAUS
4908         * src/SDCCBBlock.h
4909         * src/SDCCloop.c
4910         * src/SDCClrange.c
4911         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
4912         * clean.mk: fixed removal of files in bin/CVS/
4913         * device/lib/clean.mk: fixed removal of directories small and large
4914         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
4915         * src/SDCCicode.c,
4916         * src/SDCCval.c: removed superflous test for pedantic
4917
4918 2003-10-05  Borut Razem <borut.razem AT siol.net>
4919
4920         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
4921           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
4922           message "unmatched #pragma SAVE and #pragma RESTORE"
4923
4924 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4925
4926         * doc/sdccman.lyx: various additions and updates (interrupts, inline
4927           assembly, critical functions, atomic, nojtbound)
4928
4929 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
4930
4931         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
4932         * src/SDCCBBlock.h
4933         * src/SDCCloop.c
4934         * src/SDCCloop.h
4935         * src/SDCClrange.c
4936
4937 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4938
4939         * src/z80/gen.h,
4940         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
4941         * src/mcs51/gen.h
4942         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
4943         * src/ds390/gen.h
4944         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
4945         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
4946         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
4947
4948 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4949
4950         * src/z80/gen.c (genRet): fixed bug #524753
4951         * src/z80/gen.c (genCast): fixed internal error on cast from
4952         pointer to long
4953         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
4954         fix for bug #477835 to the z80
4955         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
4956         for tracking iCodes in the peephole optimizer for z80
4957
4958 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4959
4960         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
4961         the other part of bug #814548
4962         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
4963
4964 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
4965
4966         * src/SDCCcse.c: fixed part of bug #814548
4967
4968 2003-09-28  Borut Razem <borut.razem AT siol.net>
4969
4970         * src/asm.c: rewrite of printILine() to use temporary file instead
4971           a pipe
4972         * src/xa51/main.c: commented out declaration of int rewinds
4973
4974 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4975
4976         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
4977
4978 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4979
4980         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
4981         * src/asm.c (printILine): Fixed bug #811015
4982
4983 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4984
4985         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
4986         freeing.
4987
4988 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4989
4990         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
4991         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
4992         to correctly handle general case of AOP_PAIRPTR
4993         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
4994
4995 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4996
4997         * src/mcs51/ralloc.c (fillGaps),
4998         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
4999         register positioning bug)
5000
5001 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
5002
5003         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
5004
5005 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5006
5007         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
5008         genCodePointerGet, genGenPointerGet, genFarPointerSet,
5009         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
5010         (ralloc doesn't intentionally do this now, but perhaps later)
5011         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
5012         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
5013         register positioning bugs (Fixed bug #762602 and #795325)
5014         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
5015         (Fixed bug #808779)
5016         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
5017         lines that --i-code-in-asm generates
5018
5019 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5020
5021         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
5022         trying to fclose a FILE* that was already closed.
5023
5024 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5025
5026         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
5027         of const struct should be treated as if const themselves)
5028
5029 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
5030
5031         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
5032
5033 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5034
5035         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
5036         Unix (/n) and DOS (/r/n) line terminations.
5037
5038 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5039
5040         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
5041         bug #613775
5042
5043 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5044
5045         * src/mcs51/gen.c (genFunction, genEndFunction),
5046         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
5047         and restore of EA so that stack offsets to parameters are
5048         correct when using both critical and reentrant/stack-auto.
5049         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
5050         size (can be triggered in error if sloc is shared between
5051         different sized objects)
5052         * device/include/float.h: fixed macros to explicitly use
5053         unsigned long where needed
5054
5055 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
5056
5057         Feature req. 799831: added code to allow nesting of critical functions
5058         * src/mcs51/gen.c (genFunction, genEndFunction)
5059         * src/ds390/gen.c (genFunction, genEndFunction)
5060
5061 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5062
5063         * src/SDCCsymt.c (sclsFromPtr),
5064         * src/SDCCsymt.h,
5065         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
5066         support for standard C idiom of memory mapped variables; for
5067         example, *((xdata int*)0x1234) = 1 is now internally equivalent
5068         to xdata int at 0x1234 tempvar = 1.
5069         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
5070         provided by Akiya ISHIDA
5071
5072 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
5073
5074         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
5075         * src/SDCCval.c (constVal): added reduction from int to char
5076         * src/SDCCval.c (valMult, valDiv): fixed sign handling
5077         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
5078         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
5079         to ignore the sign
5080         * support/regression/tests/shifts.c: fixed
5081
5082 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5083
5084         * src/z80/gen.c (genXor): Fixed bug #805445
5085
5086 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5087
5088         Fixed bug #621531 (const & volatile confusion in the type chain).
5089         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
5090         refer to the const or volatile state of the pointer itself.
5091
5092         * src/SDCCast.c
5093         * src/SDCCglue.c
5094         * src/SDCCicode.c
5095         * src/SDCCsymt.c
5096         * src/SDCCval.c
5097         * src/SDCC.y
5098         * src/SDCCsymt.h
5099         * src/pic/gen.c
5100         * src/pic/ralloc.c
5101         * src/pic16/gen.c
5102         * src/pic16/ralloc.c
5103         * support/regression/tests/const.c
5104
5105 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5106
5107         When checking for duplicated modules, use absolute paths
5108         instead of relative paths.  Files changed:
5109
5110         * as/mcs51/lklib.c
5111         * link/z80/lklib.c
5112
5113 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5114
5115         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
5116
5117 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5118
5119         * device/include/string.h: added size_t typedef, changed
5120         prototypes to use size_t, eliminated separate reentrant and
5121         non-reentrant declarations, added _memmove declaration
5122         * device/lib/_memcpy.c: changed to use size_t instead of int,
5123         changed /4 to >>2 to avoid division library call
5124         * device/lib/_memcmp.c,
5125         * device/lib/_memset.c,
5126         * device/lib/_strncat.c,
5127         * device/lib/_strncpy.c,
5128         * device/lib/_strncmp.c: changed to use size_t instead of int
5129         * device/lib/_memmove.c: new file (fixed bug #772294)
5130         * device/lib/Makefile.in: added _memmove.c
5131         * device/lib/z80/asm_strings.s: fixed bug #772290
5132         * support/regression/tests/bitfields.c: attempt to fix host assertion
5133         failure on amd64-unknown-linux2.2
5134
5135 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5136
5137         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
5138         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
5139         * as/z80/asmain.c (main): fixed bug #801766
5140
5141 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
5142
5143         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
5144         compilers
5145
5146 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5147
5148         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
5149         reported in bug #800609
5150
5151 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
5152
5153         * Top header beautifications in src/pic16 directory:
5154           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
5155           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
5156           pcoderegs.h, ralloc.c, ralloc.h
5157         * main.c: added top header and GPL license notice
5158         * pcode.c: fixed the if-conditional warning
5159
5160 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
5161
5162         * device/lib/_mullong.c: replaced int by short for gcc
5163
5164 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5165
5166         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
5167         and JUMPTABLE iCodes properly now (worked by accident before)
5168         * src/mcs51/gen.c (leftRightUseAcc),
5169         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
5170         iCode properly now. Use getSize instead of nRegs since a & b
5171         aren't part of the nRegs tally.
5172
5173 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
5174
5175         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
5176         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
5177           before instructions that use the _STATUS register
5178
5179 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
5180
5181         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
5182         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
5183         fetching of the pointer
5184         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
5185         copied from genNearPointerSet()
5186         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
5187         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
5188         If they pop r0/r1 they must be called in the opposite order than aopOp().
5189         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
5190         (resp. --stack-auto), prepared for --xstack
5191
5192 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5193
5194         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
5195
5196 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
5197
5198         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
5199         these ports have their own __sdcc_external_start()
5200
5201 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
5202
5203         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
5204         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
5205         type for bits was changed. It resulted in bit variables becoming
5206         global, which is not permitted in PIC 14 assembly output.
5207
5208 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5209
5210         * doc/sdccman.lyx: various additions and updates. Rearranged sections
5211
5212 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5213
5214         Z80 and MCS51 linkers complaint if a public symbol is defined
5215         in more than one library module:
5216
5217         * as/mcs51/lklib.c
5218         * link/z80/lklib.c
5219         * as/mcs51/Makefile.in
5220
5221 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5222
5223         A few small changes that speed up the peephole optimizer.
5224
5225         * src/SDCCpeeph.c
5226
5227 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5228
5229         Try to make the peephole optimizer smarter by maintaining
5230         an association between the assembly source code and the
5231         iCodes that originated them. Put this information to use
5232         with a new peephole rule condition "notVolatile" so that
5233         the rules can be aggressive yet still safe.
5234
5235         * src/SDCCpeeph.c
5236         * src/SDCCpeeph.h
5237         * src/mcs51/gen.c
5238         * src/mcs51/peeph.def
5239
5240 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5241
5242         Fixed bug #741761
5243
5244         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
5245         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
5246         if the left or right operand symbols have the accuse flag set.
5247
5248 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5249
5250         Changed the type of the result of the ! (NOT) operator to char;
5251         previously it returned the same type as the source. This allows
5252         us to eliminate all the genFloatNot functions (all of its target
5253         implementations were very buggy) since !float can use the same
5254         code as !long now.
5255
5256         * src/SDCCicode.c (ast2iCode): ! returns char
5257         * src/mcs51/gen.c (genNot, genNotFloat),
5258         * src/ds390/gen.c (genNot, genNotFloat),
5259         * src/z80/gen.c (genNot, genNotFloat),
5260         * src/pic/gen.c (genNot, genNotFloat),
5261         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
5262
5263 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
5264
5265         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
5266         1. Interrupt would not compile properly. Ensure PCLATH register is saved
5267            during interrupts. Ensure WSAVE is located at a shared bank address.
5268         2. Fixed page selection in some places
5269         3. Fixed BTFSS/C to where necessary use registers directly and not simply
5270            the registers name strings.
5271         4. Fixed "signed / unsigned compare" compiler warnings.
5272         5. The PIC port manages its own allocation of the general purpose
5273            registers, but makes no attempt to reuse them. As a result when
5274            compiling it soon runs out of general purpose registers. Some
5275            additional code was added to the files pcode.c and device.c to walk
5276            through the function call tree and rename the registers so that they
5277            get reused.
5278
5279         * src/pic/device.c
5280         * src/pic/gen.c
5281         * src/pic/glue.c
5282         * src/pic/pcode.c
5283         * src/pic/pcode.h
5284         * src/pic/ralloc.c
5285         * src/pic/ralloc.h
5286         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
5287         genPlus() & genMinus() when the result is the same as left or right
5288
5289 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5290
5291         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
5292
5293 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5294
5295         Made bitfield a distinct type from bit so that bitfields
5296         convert as per ANSI C and bits retain their traditional
5297         boolean style behaviour. Implemented bitfield support in
5298         the z80 port.
5299
5300         * src/SDCCsymt.h,
5301         * src/SDCCsymt.c,
5302         * src/SDCCast.c,
5303         * src/cdbFile.c,
5304         * src/mcs51/gen.c,
5305         * src/ds390/gen.c: bit v bitfield split
5306         * src/z80/gen.c: New support for bitfields
5307         * support/regression/tests/bitfields.c: reenabled z80,
5308         added more tests
5309
5310 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5311
5312         Rules 246.x, 247.x relate to bitfields, the others speed up
5313         access to xdata mapped I/O devices.
5314
5315         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
5316
5317 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5318
5319         Cleaned up genPackBits and genUnpackBits and added two helper
5320         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
5321         for literal assignments in genPackBits (thanks to Frieder for
5322         reminding me).
5323
5324         * src/mcs51/gen.c
5325         * src/ds390/gen.c
5326
5327 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5328
5329         Fixed bug #748310 (pointer to function type mishandled when the
5330         function name is omitted). Also fixed a SIGSEGV when a function
5331         attribute (reentrant, etc) is used on a non-function or on a
5332         function but misplaced before the parameter list.
5333
5334         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
5335         bug #748310
5336         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
5337         * support/Util/SDCCerr.h,
5338         * support/Util/SDCCerr.c: Added func attr misuse error msg
5339
5340 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
5341
5342         Fixed bug #787649 by anonymous
5343         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
5344         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
5345
5346 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5347
5348         Fixed numerous bitfield problems.
5349
5350         * src/SDCC.y: More bitfield related error checking
5351         * src/SDCCsymt.h,
5352         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
5353         * support/Util/SDCCerr.h,
5354         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
5355         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
5356         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
5357         * support/regression/tests/bitfields.c: tests added
5358
5359 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5360
5361         Made the constant following the "interrupt" keyword optional. If
5362         omitted, the function will not automatically be given an entry
5363         in the interrupt vector table (similar to #pragma NOIV, but
5364         less syntacticly kludgy). The interrupt number is also now
5365         range checked. Also fixed a bug in the high order bit example
5366         in the manual.
5367
5368         * src/SDCC.y
5369         * src/SDCCmem.c
5370         * src/SDCCglue.c
5371         * src/SDCCsymt.h
5372         * support/Util/SDCCerr.c
5373         * support/Util/SDCCerr.h
5374         * doc/sdccman.lyx
5375
5376 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
5377
5378         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
5379         * src/SDCCicode.c (operandOperation): rewritten some ops
5380         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
5381         * src/SDCCsymt.c (computeType): literals are handled the same way as any
5382         other type
5383         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
5384         be re-activated by defining REDUCE_LITERALS)
5385         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
5386         unsigned, but are signed by default
5387         * src/SDCCval.c (constVal): rearranged
5388         * src/SDCCval.c (valMod): preliminary fix
5389         * src/SDCCval.c (valCastLiteral): use TYPE_* types
5390         * support/regression/literalop.c: added, work in progress
5391
5392 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5393
5394         Generate warnings for useless declarations like "char data;"
5395         that don't do what new users expect.
5396
5397         * src/SDCC.y
5398         * support/Util/SDCCerr.h
5399         * support/Util/SDCCerr.c
5400
5401 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
5402
5403         * src/SDCCval.c (valMult): fix overflow detection of negative int
5404
5405 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5406
5407         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
5408
5409         Changes to support big endian targets:
5410
5411         * src/ports.h
5412         * src/SDCCglue.c
5413         * src/avr/main.c
5414         * src/ds390/main.c
5415         * src/izt/i186.c
5416         * src/mcs51/main.c
5417         * src/pic/main.c
5418         * src/pic16/main.c
5419         * src/xa51/main.c
5420         * src/z80/main.c
5421
5422 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
5423
5424         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
5425         * device/lib/time.c: fixed warning "integer overflow in expression"
5426
5427 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
5428
5429         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
5430         * src/SDCCval.c (constVal): changed default to signed; hex and octal
5431         constants are unsigned; added recognition of "u" flag for unsigned
5432         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
5433         * src/SDCCval.c (valDiv, valMod): fixed signdness
5434         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
5435         signedness of modulo, left and right shift
5436         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
5437         * support/Util/SDCCerr.h: added warning W_INT_OVL
5438         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
5439         * src/SDCCast.c (ast_print): improved output of constants
5440
5441 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5442
5443         Fixed some warnings when building with MSVC:
5444
5445         * as\mcs51\asdata.c
5446         * as\z80\asdata.c
5447         * as\mcs51\asm.h
5448         * as\z80\asm.h
5449         * link\z80\aslink.h
5450         * link\z80\lkdata.c
5451         * link\z80\lkeval.c
5452         * link\z80\lkgb.c
5453         * link\z80\lkihx.c
5454         * link\z80\lks19.c
5455         * link\z80\lksym.c
5456         * support\cpp2\cpplib.c
5457         * src\ds390\gen.c
5458         * src\mcs51\gen.c
5459
5460 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
5461
5462         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
5463
5464 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5465
5466         * support\librarian\clean.mk: Do not remove Makefile.
5467         * support\librarian\Makefile: added.
5468
5469 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5470
5471         Added librarian to MSVC build:
5472         * all.dsp
5473         * sdcc.dsw
5474         * support\librarian\librarian.dsp
5475
5476         'configure' not needed for librarian, removed:
5477         * support\librarian\configure
5478         * support\librarian\configure.in
5479         * support\librarian\config_in.h
5480         * support\librarian\Makefile.in
5481
5482         Hopefully these ones built the librarian and the rest of sdcc properly:
5483         * Makefile
5484         * Makefile.common.in
5485
5486         Messed up 'configure', so revert to previous version:
5487         * configure
5488         * configure.in
5489
5490 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
5491
5492         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
5493         there, while the mantissa of a double is "only" 53 bits wide.
5494
5495 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5496
5497         Adding sdcclib to the build.  MSVC project coming soon.
5498         Files added/changed:
5499
5500         * support\librarian\clean.mk
5501         * support\librarian\configure
5502         * support\librarian\configure.in
5503         * support\librarian\config_in.h
5504         * support\librarian\Makefile.bcc
5505         * support\librarian\Makefile.in
5506         * support\librarian\sdcclib.c
5507         * Makefile.bcc
5508         * Makefile
5509         * Makefile.common.in
5510         * configure
5511         * configure.in
5512
5513 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5514
5515         Linker now complaints if linked modules have conflicting options, for
5516         example, one compiled using --model-large and another one compiled with
5517         --model-small.  The following files were modified:
5518
5519         * as\mcs51\asdata.c
5520         * as\mcs51\aslink.h
5521         * as\mcs51\asm.h
5522         * as\mcs51\asmain.c
5523         * as\mcs51\asout.c
5524         * as\mcs51\i51pst.c
5525         * as\mcs51\lkdata.c
5526         * as\mcs51\lklibr.c
5527         * as\mcs51\lkmain.c
5528         * as\z80\asdata.c
5529         * as\z80\asm.h
5530         * as\z80\asmain.c
5531         * as\z80\asout.c
5532         * as\z80\z80pst.c
5533         * link\z80\aslink.h
5534         * link\z80\lkdata.c
5535         * link\z80\lklibr.c
5536         * link\z80\lkmain.c
5537         * src\SDCCglue.c
5538
5539 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5540
5541         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
5542         as/mcs51/lklibr.c: Generate a warning when a library is not found.
5543
5544 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
5545
5546         * src/z80/mappings.i: fix _mul[us][int,long] entries
5547
5548 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5549
5550         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
5551
5552 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
5553
5554         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
5555         * support/regression/tests/bitopcse.c: added
5556         fixed warning:
5557         * src/avr/gen.c:
5558         * src/pic/gen.c:
5559         * src/pic16/gen.c:
5560         * src/z80/gen.c:
5561         * src/xa51/gen.c:
5562
5563 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5564
5565         added support for new library format to z80, gbz80 linkers:
5566         *link/z80/aslink.h
5567         *link/z80/lklex.c
5568         *link/z80/lklib.c
5569         *link/z80/lklist.c
5570
5571 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
5572
5573         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
5574         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
5575
5576 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
5577
5578         added DUMMY_READ_VOLATILE:
5579         * src/SDCC.y:
5580         * src/avr/gen.c:
5581         * src/xa51/gen.c:
5582         * src/z80/gen.c:
5583         * src/pic/gen.c:
5584         * src/pic16/gen.c:
5585         * src/mcs51/gen.c:
5586         * src/ds390/gen.c:
5587         * src/SDCCcse.c (algebraicOpts): many improvements
5588         * src/SDCCcse.h: removed algebraicOpts()
5589         * src/SDCCicode.c (picDummyRead): added
5590
5591 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5592
5593         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
5594         "Insufficient space in data memory".
5595
5596 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5597
5598         * src/mcs51/gen.c: fixed bug #771358
5599         * src/z80/gen.c: fixed bug #759087
5600
5601 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
5602
5603         * src/pic16/glue.c: minor cleanup by Vangelis
5604
5605 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5606
5607         * device/include/regc515c.h: fixed #758477
5608         * device/lib/_gptrget.c: saving some cycles in generic pointer get
5609         * device/lib/_gptrput.c: saved a few bytes
5610         * my tab spacing is 8, yours too?)
5611         * device/lib/_ser.c: process RX bytes earlier than TX bytes
5612         * device/lib/serial.c: process RX bytes earlier than TX bytes
5613         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
5614
5615 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5616
5617         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
5618
5619 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5620
5621     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
5622
5623 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
5624
5625         * device/lib/Makefile.in: bad fix, reverted to 1.43
5626
5627 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
5628
5629         * device/lib/Makefile.in: added missing z80 object files
5630
5631 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
5632
5633         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
5634         pic16 progress by Vangelis:
5635         * src/SDCCglobl.h:
5636         * src/SDCCmain.c:
5637         * src/pic/Makefile:
5638         * src/pic:
5639         * pic/Makefile:
5640         * pic16/device.c:
5641         * pic16/device.h:
5642         * pic16/gen.c:
5643         * pic16/gen.h:
5644         * pic16/genarith.c:
5645         * pic16/glue.c:
5646         * pic16/main.c:
5647         * pic16/pcode.c:
5648         * pic16/pcode.h:
5649         * pic16/pcodepeep.c:
5650         * pic16/peeph.def:
5651
5652 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5653
5654     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
5655
5656 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5657
5658     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
5659     added gbz80 build to MSVC project.
5660     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
5661     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
5662     from 8051 stuff and setup so it links using a .lnk file.
5663
5664 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5665
5666     * support/librarian/sdcclib.c: sdcc librarian.
5667     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
5668     with sdcclib.
5669
5670 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5671
5672     * as/mcs51/lkmain.c: properly handle extensions in function afile.
5673
5674 2003-07-02  Borut Razem <borut.razem AT siol.net>
5675
5676         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
5677         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
5678         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
5679         src/xa51/main.c, src/z80/main.c:
5680         virtualization of glue() function: each port has it's own glue function,
5681         which is accessed by do_glue function pointer in PORT.general structure
5682
5683 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
5684
5685         * DS800C400 fun, improved ROM interface and tinibios.
5686
5687 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
5688
5689         * More support for DS80C400. Now includes beginning of interface to ROM.
5690
5691 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
5692
5693         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
5694
5695 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5696
5697         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
5698
5699 2003-06-19  Borut Razem <borut.razem AT siol.net>
5700
5701         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
5702
5703 2003-06-19  Borut Razem <borut.razem AT siol.net>
5704
5705         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
5706         fixed Z80 port - crt0.o: cannot open.
5707
5708 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
5709
5710         * support/Util/MySystem.c (merge_command): revert bad fix
5711
5712 2003-06-18  Borut Razem <borut.razem AT siol.net>
5713
5714         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
5715
5716 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5717
5718         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
5719         option --use-stdout sends errors to stdout instead of stderr.
5720
5721 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
5722
5723         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
5724
5725 2003-06-15  Borut Razem <borut.razem AT siol.net>
5726
5727         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
5728         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
5729         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
5730         fixed width array of pointers replaced with sets;
5731         multiple include and lib paths ared transferred to preprocessor and linker
5732         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
5733         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
5734         fixed width array of pointers
5735         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
5736         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
5737         fixupPath(), getPathDifference()
5738         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
5739         fixed width array of pointers
5740
5741 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
5742
5743         * src/pic16/ralloc.c: fix warnings
5744         * src/pic16/pcode.c: fix warning
5745
5746 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
5747
5748          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
5749         know all the details, but essentially this set of changes enable
5750         the pic16 port to generate movff instructions and generate assembler
5751         directives,
5752         * src/SDCCmain.c:
5753         * src/pic16/gen.c:
5754         * src/pic16/glue.c:
5755         * src/pic16/pcode.c:
5756         * src/pic16/device.c:
5757         * src/pic16/main.c:
5758         * src/pic16/pcode.h:
5759         * src/pic16/pcoderegs.c:
5760         * src/pic16/ralloc.c:
5761         * src/pic16/ralloc.h:
5762
5763 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5764
5765         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
5766         added option --vc, so sdcc errors and warnings are compatible with
5767         Microsoft Visual Studio.
5768
5769 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5770
5771         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
5772           device/lib/libfloat.lib: added atof function.
5773
5774 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
5775
5776         * doc/sdccman.lyx: updated to Lyx 1.3
5777         * doc/cdbfileformat.lyx: updated to Lyx 1.3
5778         * doc/test_suite_spec.lyx: updated to Lyx 1.3
5779         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
5780
5781 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
5782
5783         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
5784
5785 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5786
5787         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
5788           additions to the "related tools/documentation" section
5789
5790 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
5791
5792         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
5793
5794 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
5795
5796         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
5797         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
5798
5799 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
5800
5801         * doc/sdccman.lyx: fix double dash and other minor things
5802         * doc/Makefile: fix double dash
5803
5804 2003-05-28  Karl Bongers(patches from Martin Helmling)
5805         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
5806           condition and ignore commands.
5807
5808 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5809
5810         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
5811           is in parts still quite out of date, I did changes as far as I felt makes sense
5812           for a non-native english speaker.
5813           Please feel free to add to the manual or to correct my changes.
5814         * doc/Makefile: undid touching the date of intermediate tex files.
5815
5816 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5817
5818         * doc/sdccman.lyx: Manual has an index now
5819
5820 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
5821
5822         Finalize muluint/mulsint and mululong/mulslong merging:
5823         * device/lib/_mulint.c
5824         * device/lib/_mullong.c
5825         * device/lib/gbz80/mul.s
5826         * device/lib/gbz80/stubs.s
5827         * device/lib/z80/mul.s
5828         * device/lib/z80/stubs.s
5829         * src/SDCCsymt.c (initCSupport)
5830
5831 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5832
5833         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
5834         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
5835           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
5836           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
5837           instead of /Zm500.
5838
5839 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5840
5841         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
5842           the regression tests I'm not brave enough to enable 245.b, 245.c
5843         * doc/sdccman.lyx: added latex preamble for hyperref package.
5844           Using pdflatex this will give you a hyperlinked pdf file with
5845           bookmarks. (prepend '%' before /usepackage if this breaks something)
5846
5847 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5848
5849          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
5850
5851 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
5852
5853         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
5854
5855 2003-05-21    <johan AT balder>
5856
5857         * src/SDCCglue.c (printIval): fixed bug #739934
5858
5859 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
5860
5861         Applied patch from bug 737905 (renamed yylineo to mylineno):
5862         * src/altlex.c
5863         * src/SDCCast.c
5864         * src/SDCglobl.h
5865         * src/SDCC.lex
5866         * src/SDCCsymt.c
5867         * src/SDCCval.c
5868         * src/pic16/pcode.c: Cleaned warnings
5869         * src/pic16/pcodeflow.c: Cleaned warnings
5870         * src/pic16/pcoderegs.c: Cleaned warnings
5871
5872 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
5873
5874         * src/pic16/pcode.c: Cleaned warnings
5875         * src/pic16/pcodepeep.c: Cleaned warnings
5876         * src/pic16/ralloc.c: Cleaned warnings
5877
5878 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
5879
5880         * doc/sdccman.lyx: fixed bug 739745
5881         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
5882
5883 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
5884
5885         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
5886         it can be defined with CFLAGS when running configure
5887         * src/SDCCmain.c: fixed compiling + linking with object files
5888
5889 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
5890
5891         * configure.in: configure for pic16 port,
5892             added --disable-pic16-port
5893         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
5894         * src/SDCCmain.c: linkOptions is changed to set *,
5895             added if/endif conditional macros to remove options help
5896             messages from optionsTable when a port is not configured, added
5897             support for the PIc16 port in the ports table, when executing
5898             the compiler with no port specified on command line, a default
5899             port is selected with the new macro DEFAULT_PORT which is
5900             defined in port.h, in setDefaultOptions() linkOptions is removed
5901             from initialization assignment, since now it is a set,
5902             parseCmdLine uses setParseWithComma for linkOptions, in
5903             linkEdit() linkOptions are accessed with new function indexSet()
5904             which returns the i'th item of a set variable. See SDCCset.c, in
5905             linkEdit() when calling buildCmdLine(), added linkOptions as
5906             last argument. Now users can pass arguments to gplink via the
5907             -Wl option, main() uses pic16glue() to glue up pic16 programs
5908         * src/SDCCpeeph.c: various changes to support pic16
5909         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
5910             return the i'th item of the set
5911         * src/SDCCset.h: added function prototype for indexSet()
5912         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
5913         * src/clean.mk: added pic16 in CLEANALLPORTS variable
5914         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
5915             added macro DEFAULT_PORT
5916         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
5917         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
5918             generated
5919         * src/pic16/glue.c: commented out some error producing lines
5920         * src/pic16/main.c: __config directives are commented out to stop
5921             gpasm complaining and test the linkage with gplink, _linkCmd and
5922             _asmCmd changed to be more gplink and gpasm friendly
5923         * src/pic16/peeph.def: peep rule 3 is commented out, since it
5924             produced an error when parsed, peep rule 12 is added to utilize
5925             movff, but it is commented out since the pCode does not support
5926             yet a command with 2 address arguments
5927
5928 2003-05-18    <johan AT balder>
5929
5930         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
5931         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
5932 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
5933
5934         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
5935   Added feature to script commands from file.
5936
5937 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
5938
5939         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
5940         * src/SDCCutil.c: include ctype.h for win32
5941
5942 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
5943
5944         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
5945
5946 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
5947
5948         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
5949   Fixed so you can set breakpoints prior to run, run does not stop
5950   on entry now.  Add tbreak.  Other enhancements and fixes for use
5951   with ddd.
5952
5953 2003-05-12  Borut Razem <borut.razem AT siol.net>
5954
5955         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
5956
5957 2003-05-11  Borut Razem <borut.razem AT siol.net>
5958
5959         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
5960         the path of bin directory, so that PATH is the only env. variable, which has to be set
5961         in case of standard installation.
5962         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
5963         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
5964         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
5965
5966 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
5967
5968         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
5969         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
5970         temp files are in the port dir; clean the gen/test directory when
5971         generating new test.c
5972         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
5973         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
5974         * support/regression/tests/zeropad.c: added
5975
5976 2003-05-09    <johan AT balder>
5977
5978         * src/SDCCglue.c: fixed bug #597940
5979
5980 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
5981
5982         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
5983   cache sfr, optimize next,step, fix off by one sourceline,
5984   support ddd list function.
5985         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
5986
5987 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
5988
5989         * support/regression/HTMLgen.py: added compare_s2f()
5990         * support/regression/Makefile: redo 1.27
5991         * support/regression/generate-cases.py: redo 1.5
5992
5993 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
5994
5995         * support/regression/tests/float.c: workaround 33 bit hex constant
5996         * support/regression/tests/simplefloat.c: fix division for host
5997
5998 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
5999
6000         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
6001         that tame's the PIC's over-aggressive optimizer.
6002
6003 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6004
6005          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
6006          support for MSVC.
6007
6008 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
6009
6010         Initial support for DS80C400. "Hello world" runs on TINIm400
6011         (with polled I/O).
6012
6013 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
6014
6015          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
6016          * Some notes on ddd usage added in debugger/README
6017          Martin Helmling adding more features and fixes for ddd GUI debugger.
6018          Code added for nexti, stepi, up, down, and other adjustments.
6019
6020 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
6021
6022         * src/pic/pCodepeep.c non-wildcard asmops are now handled
6023         * src/pic/peeph.def Added two rules to optimize carry manipulation
6024         * src/pic/* removed debug printfs
6025
6026 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
6027
6028         * debugger/mcs51/cmd.c: added header newalloc.h
6029
6030 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
6031
6032         * as/Makefile: new EXEEXT
6033         * as/z80/Makefile: remove trailing slash of BUILDIR
6034         * as/z80/clean.mk: new EXEEXT
6035         * Makefile.common.in: add to CFLAGS (and others), don't replace it
6036         * support/cpp2/Makefile.in: new EXEEXT
6037         * src/pic/glue.c (pic14emitRegularMap): fixed warning
6038
6039 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
6040
6041         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
6042         EXEEXT was introduced to fix all related problems with targets
6043         "clean", "install" and "uninstall"; a couple of further flaws
6044         especially with "clean" have been fixed too
6045         * as/mcs51/Makefile.in
6046         * as/mcs51/clean.mk
6047         * as/z80/Makefile
6048         * Makefile
6049         * clean.mk
6050         * debugger/mcs51/Makefile.in
6051         * debugger/mcs51/clean.mk
6052         * link/z80/Makefile
6053         * link/z80/Makefile.in
6054         * link/z80/clean.mk
6055         * link/Makefile
6056         * packihx/Makefile.in
6057         * packihx/clean.mk
6058         * sim/ucsim/Makefile
6059         * sim/ucsim/clean.mk
6060         * sim/ucsim/avr.src/Makefile.in
6061         * sim/ucsim/avr.src/clean.mk
6062         * sim/ucsim/s51.src/Makefile.in
6063         * sim/ucsim/s51.src/clean.mk
6064         * sim/ucsim/xa.src/Makefile.in
6065         * sim/ucsim/xa.src/clean.mk
6066         * sim/ucsim/z80.src/Makefile.in
6067         * sim/ucsim/z80.src/clean.mk
6068         * sim/ucsim/main_in.mk
6069         * sim/ucsim/packages_in.mk
6070         * sim/ucsim/gui.src/Makefile.in
6071         * sim/ucsim/gui.src/serio.src/Makefile.in
6072         * sim/ucsim/gui.src/serio.src/clean.mk
6073         * src/Makefile.in
6074         * src/clean.mk
6075         * support/cpp2/Makefile.in
6076         * support/cpp2/clean.mk
6077         * support/makebin/Makefile
6078         * support/makebin/clean.mk
6079         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
6080         * doc/sdccman.lyx: --program-suffix no longer needed
6081
6082 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
6083
6084          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
6085          Martin Helmling added support for ddd GUI debugger.
6086          Code added to display assembly, set variables, and other commands
6087          to interface to ddd.
6088
6089 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
6090
6091         * as/Makefile: fix target clean
6092         * as/clean.mk: fix target clean
6093         * as/z80/clean.mk: fix target clean
6094
6095 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
6096
6097         * Makefile.common.in: added  AT EXEEXT AT
6098         * configure.in: removed all mingw32 stuff
6099         * configure: rebuilt from configure.in
6100         * doc/sdccman.lyx: updated section "installation"
6101         * support/scripts/sdcc_mingw32: adapted to configure
6102         * support/scripts/sdcc_cygwin_mingw32: added
6103
6104 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
6105
6106         * src/pic Added object file support for the PIC port
6107         * src/pic Applied patch from Craig Franklin (this started the object file support)
6108         * src/regression Updated the PIC regression tests for object files
6109
6110 2003-04-20  Borut Razem <borut.razem AT siol.net>
6111
6112         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
6113           lklex.c: In function `getfid':
6114           lklex.c:203: warning: array subscript has type `char'
6115         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
6116           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
6117         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
6118           stack handling macros
6119
6120 2003-04-19  Borut Razem <borut.razem AT siol.net>
6121
6122         * "handling space characters in file path" task:
6123         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
6124         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
6125         * support/Util/MySystem.h: make it self-sufficient
6126         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
6127           src/z80/main.c, sdcc/as/mcs51/lklex.c:
6128           handling space characters in file path
6129         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
6130           (it will be used by assemblers, which have their own includes, e.g. gpasm)
6131         * support/Util/MySystem.c: handling space characters in executable's path
6132
6133 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
6134
6135         * as/z80/Makefile: fix permanent rebuild of z80
6136         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
6137         * support/regression/tests/bitfields.c: added Johan's bitfields.c
6138
6139 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
6140
6141         * src/SDCCopt.c: add special case optimization to replace modulo by
6142           a power of two with a bitwise AND.
6143
6144 2003-04-18    <johan AT balder>
6145
6146         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
6147
6148 2003-04-17    <johan AT balder>
6149
6150         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
6151         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
6152
6153 2003-04-13  Borut Razem <borut.razem AT siol.net>
6154
6155         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
6156         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
6157           fixed mingw problem in adl_NORMALIZE_PATH
6158
6159 2003-04-12  Borut Razem <borut.razem AT siol.net>
6160
6161         * fixed "#pragma SAVE/RESTORE can not be nested":
6162         * src/SDCC.lex: reworked pragma handling functions
6163         * sdcc/src/SDCCglobl.h: reworked stack handling macros
6164         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
6165
6166 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
6167
6168         * src/SDCCutil.c (pathEquivalent): defined but not used
6169         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
6170         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
6171         * configure: rebuilt from configure.in
6172         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
6173         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
6174         * device/include/Makefile.in: replace sdcc_datadir
6175         * device/lib/Makefile.in: replace sdcc_datadir
6176         * Makefile.common.in: add LDFLAGS from configure
6177         * packihx/Makefile.in: use LDFLAGS
6178         * src/Makefile.in: use LDFLAGS
6179         * support/cpp2/Makefile.in: add LDFLAGS from configure
6180         * support/makebin/Makefile: use LDFLAGS
6181         * .version: bumped version number to 2.3.5
6182
6183 2003-04-12  Borut Razem <borut.razem AT siol.net>
6184
6185         * completed "different paths" task:
6186         * src/SDCCmacro.c: fixed bug in handling quotes
6187         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
6188         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
6189
6190 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
6191
6192         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
6193
6194 2003-04-11 kevin Vigor <kevin AT vigor.nu>
6195
6196         * ds390/gen.c ds390/peeph.def: fix bug 706781
6197
6198 2003-04-11  Borut Razem <borut.razem AT siol.net>
6199
6200         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
6201
6202 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
6203
6204         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
6205         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
6206          set - this bit used to not be set...).
6207         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
6208           bad code in PIC Port
6209         * src/regression/and2.c added to test bug 609268
6210         * src/regression/Makefile added and2.c to regression test
6211
6212
6213 2003-04-08    <johan AT CP255758-A>
6214
6215         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
6216         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
6217         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
6218
6219 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
6220
6221         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
6222         fix bug #487815
6223         * support/cpp2/Makefile.in: fix bug #487815
6224         * configure: rebuilt from configure.in
6225         * Makefile.common.in: docdir changed, new path suffixes
6226         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
6227         * sdcc_vc_in.h: reflect changes from sdccconf.h
6228         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
6229         * src/SDCCutil.h: remove BINDIR hack
6230         * doc/sdccman.lyx: update new path hierarchy
6231
6232 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
6233
6234         * src/SDCCpeeph.c: added okToRemoveSLOC test
6235
6236 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
6237
6238         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
6239
6240 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
6241
6242         * src/SDCCpeeph.c: added labelIsReturnOnly test
6243         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
6244
6245 2003-04-05    <johan AT balder>
6246
6247         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
6248         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
6249         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
6250         * src/SDCCast.c: fixed a warning
6251         * src/SDCCast.h: fixed a warning
6252         * src/SDCCicode.c (operandFromAst): fixed a warning
6253
6254 2003-04-04    <johan AT balder>
6255
6256         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
6257         * src/SDCCast.c (decorateType): fixed bug #715076
6258         * src/SDCC.y: fixed bug #702907
6259
6260 2003-04-03    <johan AT balder>
6261
6262         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
6263         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
6264         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
6265         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
6266         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
6267
6268 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
6269
6270         * _decdptr.c: fix return values
6271         * _gptrget.c: fix return values
6272         * _gptrgetc.c: fix return values
6273         * _gptrput.c: fix return values
6274         * _mulint.c: fix return values
6275         * as/z80/Makefile: fix 'make -j' problem
6276
6277 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
6278
6279         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
6280         * configure.in: big cleanup, updated to autoconf 2.5x
6281         * configure: rebuilt from configure.in
6282         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
6283         * sdcc_vc_in.h: reflect changes from sdccconf.h
6284         * doc/Makefile: fixed a flaw in "make install"
6285
6286 2003-04-02    <johan AT balder>
6287
6288         * src/ds390/gen.c (genCmp): no comments
6289         * src/mcs51/gen.c (genCmp): no comments
6290         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
6291         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
6292
6293 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
6294
6295         * support/regression/generate-cases.py: place generated file in given sub directory
6296         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
6297         * support/regression/Makefile: improvements for 'make -j';
6298         side effect: it's simpler and faster now
6299
6300 2003-03-31  Borut Razem <borut.razem AT siol.net>
6301
6302         * src/z80/main.c: link-{port} and as-{port} defined without path
6303         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
6304
6305 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
6306
6307         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
6308
6309 2003-03-30  Borut Razem <borut.razem AT siol.net>
6310
6311         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
6312           changed type of list parameter to set
6313         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
6314         * src/port.h: changed type of do_assemble() parameter to set
6315         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
6316           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
6317           definition of "cppoutfilename" macro with NULL value in preProcess()
6318         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
6319         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
6320         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
6321           replaced with set *binPathSet
6322         * shash_add() deallocates the item, if allready exsists, before adding the new one
6323         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
6324
6325 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
6326
6327         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
6328           a nested for loop bug in the PIC port
6329         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
6330           for loops
6331
6332 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
6333
6334         * support/Util/dbuf.h: remove C++ stuff to make it portable
6335
6336 2003-03-28  Borut Razem <borut.razem AT siol.net>
6337
6338         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
6339           literal strings in stringLiteral()
6340         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
6341         * src/Makefile.bcc, src/Makefile.in, src\src.dsp: added support/Util/dbuf.c
6342           to the project
6343
6344 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
6345
6346         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
6347
6348 2003-03-26    <johan AT balder>
6349
6350         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
6351         * src/ds390/gen.c (saveRegisters): catched symbol abuse
6352         * src/SDCCast.c (decorateType): fixed " -v < 3"
6353
6354 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
6355
6356         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
6357         Added Lenny Story's debug infrastructure changes:
6358         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
6359         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
6360         * src/cdbFile.c: added
6361         * src/SDCCdebug.c: added
6362         * src/SDCCdebug.h: added
6363         * src/SDCCast.c (createFunction)
6364         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
6365         * src/SDCCmain.c (parseCmdLine, main)
6366         * src/SDCCmem.c (redoStackOffsets)
6367         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
6368         * src/SDCCsymt.h
6369         * src/common.h
6370         * src/avr/gen.c (genAVRCode)
6371         * src/ds390/gen.c (gen390Code)
6372         * src/mcs51/gen.c (gen51Code)
6373         * src/pic/gen.c (genpic14Code)
6374         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
6375         * src/xa51/gen.c (genXA51Code)
6376         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
6377
6378 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6379
6380         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
6381         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
6382
6383 2003-03-22    <johan AT balder>
6384
6385         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
6386
6387 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
6388
6389         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
6390         * doc/cdbfileformat.lyx: added, written by Lenny Story
6391         * doc/Makefile: added cdbfileformat.lyx
6392         * doc/clean.mk: added cdbfileformat.lyx
6393
6394 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
6395
6396         * src/mcs51/peeph.def: fix bug #705773
6397
6398 2003-03-20    <johan AT balder>
6399
6400         An sfr/sbit can have an "at #" AND an initializer
6401         * src/SDCCsymt.c (checkSClass):
6402         * src/SDCCmem.c (allocGlobal):
6403         * src/SDCCmem.c (allocLocal):
6404         * src/SDCCast.c (createBlock):
6405
6406 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
6407
6408         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
6409
6410 2003-03-16    <johan AT balder>
6411
6412         Undid the hackup of const and volatile, the problem is much bigger
6413         * src/SDCC.y:1.65
6414         * src/SDCCast.c:1.171
6415         * src/SDCCglue.c:1.138
6416         * src/SDCCicode.c:1.146
6417         * src/SDCCsymt.c:1.150
6418         * src/SDCCval.c:1.65
6419
6420 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
6421
6422         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
6423         * src/ds390/gen.c (genAddrOf): fixed bug #704087
6424
6425 2003-03-13    <johan AT balder>
6426
6427         Hackup const and volatile modifiers in type chains a bit:
6428         * src/SDCC.y:1.63
6429         * src/SDCCast.c:1.169
6430         * src/SDCCglue.c:1.136
6431         * src/SDCCicode.c:1.143
6432         * src/SDCCsymt.c1.146
6433         * src/SDCCsymt.h1.59
6434         * src/SDCCval.c:1.63
6435
6436 2003-03-12    <johan AT balder>
6437
6438         * src/SDCCBBlock.h: more LRH debugging junk
6439         * src/SDCCcflow.h: more LRH debugging junk
6440         * src/SDCCloop.c: more LRH debugging junk
6441         * src/SDCC.y (struct_declaration): fixed bug #697590
6442         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
6443         * src/ds390/gen.c (aopForRemat): fixed bug #700031
6444         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
6445
6446 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
6447         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
6448         test function names must now match exactly).
6449         * src/SDCCcse.c: added special case in findCheaperOp to allow
6450         extending a short integer. Makes less awful code for bug 700121 test case.
6451
6452 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6453
6454         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
6455         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
6456
6457 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
6458
6459         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
6460         actually called (operandsNotEqual() was called for all
6461         operandsNotEqualX tests).
6462
6463 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
6464
6465         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
6466         with shorter literals. Fixes bug 700121.
6467
6468 2003-03-11    <johan AT balder>
6469
6470         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
6471
6472 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
6473
6474         * src/SDCCloop.c (mergeRegions): an evil beast is dead
6475         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
6476
6477 2003-03-10  Borut Razem <borut.razem AT siol.net>
6478
6479         * src/SDCCmain.c: pipe preprocessor's output
6480         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
6481         * sdcc_vc_in.h: define pclose as _pclose for WIN32
6482         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
6483         which closes all pipes in pipeSet set
6484         * src/SDCCset.c: free deleted item in function deleteSetItem()
6485         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
6486         moved from z80 to src subproject
6487         * .version: increased version number to 2.3.4
6488
6489 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
6490
6491         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
6492         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
6493         * support/regression/ports/xa51/spec.mk: fix typo
6494
6495 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
6496
6497         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
6498
6499 2003-03-09  Borut Razem <borut.razem AT siol.net>
6500
6501         * src/SDCCmain.c: pipe preprocessor's output
6502         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
6503         * sdcc_vc_in.h: define pclose as _pclose for WIN32
6504         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
6505         which closes all pipes in pipeSet set
6506         * src/SDCCset.c: free deleted item in function deleteSetItem()
6507         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
6508         moved from z80 to src subproject
6509
6510 2003-03-09  Borut Razem <borut.razem AT siol.net>
6511
6512         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
6513         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
6514         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
6515         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
6516         * src/SDCCglobl.h: unification of WIN32 native definitions
6517
6518 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6519
6520         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
6521
6522 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
6523
6524         * src/configure.in:   check for endianess (even while cross-compiling)
6525         * src/configure:      check for endianess (even while cross-compiling)
6526         * src/configure_in.h: check for endianess (even while cross-compiling)
6527         * src/avr/gen.c:        remove old endianess stuff
6528         * src/mcs51/gen.c:      remove old endianess stuff
6529         * src/ds390/gen.c:      remove old endianess stuff
6530         * src/pic/gen.c:        remove old endianess stuff
6531         * src/pic/genarith.c:   remove old endianess stuff
6532         * src/pic/glue.c:       fix endianess check
6533         * src/pic16/gen.c:      remove old endianess stuff
6534         * src/pic16/genarith.c: remove old endianess stuff
6535         * src/pic16/glue.c:     fix endianess check
6536         * src/xa51/gen.c:       remove old endianess stuff
6537         * src/z80/gen.c:        fix endianess check
6538         * src/SDCCglue.c:       fix endianess check
6539         * src/ds390/peeph.def: fix bug 700036
6540
6541 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
6542
6543         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
6544         * src/configure: find appropriate data-types on host for SDCC's int and long
6545         * src/configure.in: find appropriate data-types on host for SDCC's int and long
6546         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
6547         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
6548
6549 2003-03-07    <johan AT balder>
6550
6551         Just a big NOOP:
6552                 some minor cleanups before the big shot
6553                 OP_DEFS and OP_USES now use Kevin's protection
6554                 new option --nolabelopt
6555
6556         * src/SDCCBBlock.c:
6557         * src/SDCCast.c,:
6558         * src/SDCCcflow.c:
6559         * src/SDCCcse.c:
6560         * src/SDCCicode.c:
6561         * src/SDCCicode.h:
6562         * src/SDCClabel.c:
6563         * src/SDCCloop.c:
6564         * src/SDCCmain.c:
6565         * src/ds390/ralloc.c:
6566         * src/mcs51/ralloc.c:
6567         * src/pic/ralloc.c:
6568         * src/xa51/ralloc.c:
6569         * src/z80/ralloc.c:
6570
6571 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
6572
6573         * src/pic/pcode.c (get_op): fix 64 bit warnings
6574         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
6575         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
6576         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
6577         * support/regression/tests/malloc.c: fix 64 bit warnings
6578
6579 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
6580
6581         * src/mcs51/gen.c (genMinus): fixed bug 696436
6582
6583 2003-03-02  Borut Razem <borut.razem AT siol.net>
6584
6585         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
6586
6587 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
6588
6589         * configure.in: test for mkstemp
6590         * sdccconf_in.h: add HAVE_MKSTEMP
6591
6592 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
6593
6594         * device/include/ctype.h: removed warning while using --stack-auto
6595         * device/include/malloc.h: removed warning while using --stack-auto
6596         * device/include/string.h: removed warning while using --stack-auto
6597
6598 2003-02-23  Borut Razem <borut.razem AT siol.net>
6599
6600         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
6601         because NDEBUG is defined (see man assert)
6602         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
6603
6604 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6605
6606         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
6607         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
6608
6609 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6610
6611         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
6612         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
6613
6614 2003-02-18    <johan AT balder>
6615
6616         * as/mcs51/asmain.c (asmbl): module can start with a digit
6617         * as/z80/asmain.c (asmbl): module can start with a digit
6618
6619 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
6620
6621         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
6622         * src/asm.c: fix pipe() for Mingw32
6623
6624 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
6625
6626         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
6627         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
6628         make -V work again; --c1mode reads now from stdin
6629         * doc/sdccman.lyx: added --c1mode
6630         * support/Util/SDCCerr.c: new messages for c1 mode
6631         * support/Util/SDCCerr.h: new messages for c1 mode
6632         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
6633
6634 2003-02-15    <johan AT balder>
6635
6636         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
6637
6638 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
6639
6640         * doc/sdccman.lyx: Environment variables, -o and other minor things
6641
6642 2003-02-14    <johan AT balder>
6643
6644         * src/xa51/main.c: before anyone really tries to use it :)
6645
6646         * Install doc's in share/sdcc/doc
6647         * removed some obsolete files
6648         * Do a proper make distclean and uninstall
6649         M Makefile.common.in
6650         R sdccbuild.sh
6651         M as/Makefile
6652         M device/include/Makefile.in
6653         M device/lib/Makefile.in
6654         M doc/sdccman.lyx
6655         M link/Makefile
6656         M sim/ucsim/doc/Makefile.in
6657         M src/clean.mk
6658         R src/avr/peeph.rul
6659         R src/xa51/peeph.rul
6660         M support/cpp2/Makefile.in
6661         M support/makebin/Makefile
6662
6663
6664 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
6665
6666         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
6667
6668 2003-02-10  Borut Razem <borut.razem AT siol.net>
6669
6670         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
6671         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
6672         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
6673         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
6674         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
6675         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
6676         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
6677         src/z80/Makefile.bcc: Borland Makefile cleanup
6678         * as/z80/Makefile.bcc: Added Borland Makefile
6679         * support/cpp2/borland.h: Removed
6680
6681 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
6682
6683         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
6684         * src/SDCC.lex: new pragma NOIV
6685         * src/SDCCglobl.h: new pragma NOIV
6686         * src/SDCCmem.c: new pragma NOIV
6687
6688 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
6689
6690         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
6691
6692 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
6693
6694         * src/SDCCmain.c: signal handling is switched off by --debug
6695         * doc/Makefile: small fix for install; use clean.mk again
6696         * doc/clean.mk: clean *.pdf and *.html too
6697
6698 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
6699
6700         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
6701         * device/lib/printfl.c: fix a ds390 bug by making it portable
6702         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
6703         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
6704         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
6705         * debugger/mcs51/cmd.c: converted multi-line string literals
6706         * sim/ucsim/globals.cc: converted multi-line string literals
6707         * src/SDCCmain.c: introduced signal handler to remove temp files
6708         * doc/Makefile: small tweaks, implement clean
6709         * doc: removed generated files
6710
6711 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6712
6713         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
6714         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
6715         Address Record is not correctly generated for DS390."
6716
6717 2003-02-02  Borut Razem <borut.razem AT siol.net>
6718
6719         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
6720         * as/mcs51/asm.h: fixed compilation with Borland C
6721         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
6722         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
6723         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
6724         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
6725         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
6726         src/z80/Makefile.bcc: delete $(LIB) only if exist
6727         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
6728
6729 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
6730
6731         * device/include/malloc.h: introduced NULL
6732         * device/include/string.h: introduced NULL
6733         * device/include/stdlib.h: introduced NULL
6734         * device/lib/_memcpy.c: removed NULL
6735         * device/lib/_strcat.c: removed NULL
6736         * device/lib/_strchr.c: removed NULL
6737         * device/lib/_strcmp.c: removed NULL
6738         * device/lib/_strcpy.c: removed NULL
6739         * device/lib/_strcspn.c: removed NULL
6740         * device/lib/_strlen.c: removed NULL
6741         * device/lib/_strncat.c: removed NULL
6742         * device/lib/_strncmp.c: removed NULL
6743         * device/lib/_strncpy.c: removed NULL
6744         * device/lib/_strpbrk.c: removed NULL
6745         * device/lib/_strrchr.c: removed NULL
6746         * device/lib/_strspn.c: removed NULL
6747         * device/lib/_strstr.c: removed NULL
6748         * device/lib/_strtok.c: removed NULL
6749         * device/lib/malloc.c: removed NULL, include own header
6750
6751 2003-02-02    <johan AT balder>
6752
6753         * 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
6754         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
6755         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
6756         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
6757         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
6758         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
6759
6760 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6761
6762         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
6763         area 'DATA'"
6764
6765 2003-02-01    <johan AT balder>
6766
6767         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
6768
6769 2003-01-31    <johan AT CP255758-A>
6770
6771         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
6772
6773 2003-01-30    <johan AT balder>
6774
6775         * src/SDCCBBlock.c: automatic bug detection
6776         * src/SDCCicode.c: automatic bug detection
6777
6778 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6779
6780         * src/SDCCglobl.h:   now --xram-size 0 works
6781         * src/SDCCmain.c:    now --xram-size 0 works
6782
6783 2003-01-29    <johan AT balder>
6784
6785         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
6786
6787 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6788
6789         * as/mcs51/aslink.h: Added options --xram-size and --code-size
6790         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
6791         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
6792         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
6793         * src/SDCCglobl.h:   Added options --xram-size and --code-size
6794         * src/SDCCmain.c:    Added options --xram-size and --code-size
6795
6796 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
6797
6798         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
6799         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
6800
6801 2003-01-27    <johan AT balder>
6802
6803         * src/SDCC.y: fixed bug #613764
6804
6805 2003-01-26    <johan AT balder>
6806
6807         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
6808         * src/SDCCsymt.h: fixed bug #673374
6809         * src/SDCCglue.c: fixed bug #661910
6810         * src/SDCCast.c: fixed bug #458099 and 673374
6811
6812 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
6813
6814         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
6815         * as/mcs51/strcmpi.h: added
6816         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
6817         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
6818         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
6819         * as/mcs51/assym.c: strcmpi -> as_strcmpi
6820         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
6821         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
6822         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
6823         * as/mcs51/Makefile.aslink: new module strcmpi
6824         * as/mcs51/Makefile.asx8051: new module strcmpi
6825         * as/mcs51/Makefil.bcc: new module strcmpi
6826         * as/mcs51/Makefile.in: new module strcmpi
6827         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
6828
6829 2003-01-26    <johan AT balder>
6830
6831         * src/SDCCglue.c: reverted back to 1.124
6832         * src/SDCCast.c: reverted back to 1.156
6833         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
6834
6835 2003-01-25    <johan AT balder>
6836
6837         * src/SDCCglue.c: A better fix for bug #661910
6838         * src/SDCCast.c: A better fix for bug #661910
6839         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
6840
6841 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
6842
6843         * src/Makefile.in: remove spawn.o
6844         * src/SDCCmain.c: remove spawn.h
6845         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
6846         * src/spawn.c: removed
6847         * src/spawn.h: removed
6848         * support/regression/ports/ds390/spec.mk: link with -r
6849
6850 2003-01-24    <johan AT CP255758-A>
6851
6852         * src/ds390/gen.c (aopOp): fixed bug #667458
6853         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
6854         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
6855         (createIvalCharPtr): an ival doesn't always have a storage class anymore
6856
6857 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
6858
6859         * src/mcs51/peeph.def: better assembler identation by Frieder
6860         * src/mcs51/gen.c: better assembler identation by Frieder
6861
6862 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
6863
6864         * as/z80/string.h: removed for gcc 3.2
6865         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
6866         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
6867
6868 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
6869
6870         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
6871         * src/SDCCpeeph.c (replaceRule): fix bug #663503
6872         * support/regression/Makefile: separate temp files for ports
6873         * support/regression/generate-cases.py: separate temp files for ports
6874         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
6875         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
6876
6877 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
6878
6879         * moved tinitalk to device/examples/ds390
6880
6881 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
6882
6883         * as/mcs51/lkmem.c: rflag is for DS390
6884         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
6885         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
6886                          (linkEdit): move mem- and map-files the same way as ihx-files
6887         * src/z80/main.c (_setDefaultOptions): removed --generic
6888         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
6889         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
6890         * src/pic/glue.c (picglue): --c1mode works again
6891         * src/pic16/glue.c (pic16glue): --c1mode works again
6892         * src/asm.c (printCLine): fix #660034
6893
6894 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
6895
6896         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
6897         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
6898         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
6899         * as/mcs51/lkmem (summary): better fix for sp problem
6900         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
6901         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
6902         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
6903                                               remove --stack-after-data
6904
6905 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
6906
6907         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
6908         * src/SDCCutil.c (join): ugly bug: missing '\0'
6909         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
6910
6911 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
6912
6913         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
6914         * src/port.h: typo
6915         * src/pic/main.c (_asmCmd): gpasm supports -o
6916         * src/z80/main.c: more general macros
6917         * device/lib/Makefile.in: remove intermediate files
6918
6919 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
6920
6921         * .version: Bumped version number to 2.3.3
6922         * src/SDCCBBlock.c: new option -o
6923         * src/SDCCglobl.h: new option -o
6924         * src/SDCCglue.c: new option -o
6925         * src/SDCCmain.c: new option -o
6926         * src/asm.c: new option -o
6927         * src/ds390/main.c: new option -o
6928         * src/pic/glue.c: new option -o
6929         * src/pic/pcode.c: new option -o
6930         * src/pic/ralloc.c: new option -o
6931         * src/pic16/glue.c: new option -o
6932         * src/pic16/pcode.c: new option -o
6933         * src/pic16/ralloc.c: new option -o
6934         * src/z80/main.c: new option -o
6935         * device/lib/Makefile.in: use -o
6936         * support/regression/ports/ds390/spec.mk: use -o
6937         * support/regression/ports/gbz80/spec.mk: use -o
6938         * support/regression/ports/mcs51/spec.mk: use -o
6939         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
6940         * support/regression/ports/z80/spec.mk: use -o
6941         * support/regression/ports/ucz80/spec.mk: use -o
6942         * support/regression/ports/xa51/spec.mk: use -o
6943         * support/regression/fwk/lib/timeout.c: fix usage string
6944
6945 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
6946         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
6947
6948 2003-01-07    <johan AT balder>
6949
6950         * src/SDCCast.c (decorateType): fixed bug #600035
6951
6952 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
6953         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
6954         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
6955         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
6956         * src/pic/pcode.c: outcommented unused variable to remove warnings
6957         * src/pic/ralloc.c: outcommented unused variable to remove warnings
6958
6959 2003-01-06    <karl AT turbobit.com>
6960         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
6961    regression tests.
6962
6963 2003-01-06    <johan AT balder>
6964
6965         * src/SDCCicode.c: fixed array add
6966
6967 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
6968         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
6969         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
6970
6971 2003-01-04    <johan AT balder>
6972
6973         * src/SDCCval.c (getNelements): fixed the initialized array of structures
6974
6975 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6976         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
6977
6978 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
6979         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
6980         * support/regression/tests/bug-524697.c: fit mem usage into 8032
6981
6982 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
6983         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
6984
6985 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
6986         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
6987
6988 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
6989         * src/mcs51/main.c: removed {bindir}{sep} from aslink
6990
6991 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6992
6993     * in \sdcc\as\mcs51\ changed these files in order to create an
6994     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
6995     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
6996     following files to include the previous two files: aslink.dsp,
6997     Makefile.aslink, Makefile.bcc, and Makefile.in.
6998
6999     * Changed \sdcc\src\SDCCmain.c so it creates files with extension
7000     .adb instead of .cdb
7001
7002 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7003
7004         * \sdcc\as\mcs51\lklist.c: Now reports memory usage using the
7005         value from option --iram-size.
7006
7007 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7008
7009         * \sdcc\as\mcs51\lklist.c: added boundary check before using
7010         dram[] array.
7011
7012 2002-09-18    <wiml AT hhhh.org>
7013
7014         * SDCClrange.h: exposed setFromRange() and setToRange()
7015         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
7016           packRegsForAccUse() (bug 542397)
7017         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
7018           multiple times and emitting the fetch operations more than once
7019           added aopGetUsesAcc() function to allow binary operators to
7020           fetch their operands in the correct order; made genMinus() emit
7021           compact code for X = LITERAL - Y
7022
7023 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7024         * \sdcc\as\mcs51\lklist.c: Fixed incorrect number of parameters to
7025         sprintf() in line 1267.
7026
7027 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7028         * \sdcc\src\SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
7029         like ports.
7030
7031 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7032         Changes to aslink (All the changes are marked with 'JCF'):
7033
7034         * \sdcc\as\mcs51\aslink.h: External definition of sflag and
7035         summary().
7036
7037         * \sdcc\as\mcs51\lkarea.c: Computes the size of area BSEG_BYTES from
7038         area BSEG.  Also moves, if possible, the DATA area down into the internal
7039         ram so more space is available.
7040
7041         * \sdcc\as\mcs51\lkdata.c: Definition of memory summary output flag
7042         sflag.
7043
7044         * \sdcc\as\mcs51\lklist.c: For the BSEG area report the size in bits,
7045         not bytes.  Function summary() which creates a memory usage summary
7046         file with extension .mem.  Reports of overlaping stack and small stack
7047         size.  If the space for the stack is less than 16 bytes aslink trows a
7048         warning.
7049
7050         * \sdcc\as\mcs51\lkmain.c: Creation of some of the default areas for
7051         the 8051.  Option 'y' for memory summary output file.
7052
7053         Changes to sdcc (All the changes are marked with 'JCF'):
7054
7055         * \sdcc\src\SDCCglobl.h: External definition of RegBankUsed[4].
7056
7057         * \sdcc\src\SDCCglue.c:  If a register bank is used, creates an
7058         overlaying area for it (uses RegBankUsed[4]).
7059
7060         * \sdcc\src\SDCCmain.c: Definition RegBankUsed[4]; marks register
7061         bank zero as used by default.  By default aslink locates the stack
7062         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
7063         the creation of the .mem file.  Delegates the allocation of data area
7064         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
7065         the begining of the stack area to aslink.
7066
7067         * \sdcc\src\SDCCmem.c:  If a register bank is used, marks it so
7068         glue() in SDCCglue.c creates an area for it.
7069
7070 2002-09-03  Borut Razem <borut.razem AT siol.net>
7071         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
7072         sdcc/src/pic/glue.c:
7073         introduced atexit() handler for teporay files removal in case of
7074         errors, assertions, ...
7075
7076 2002-08-29  Borut Razem <borut.razem AT siol.net>
7077         * sdcc/support/cpp2/auto-host_vc_in.h:
7078         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
7079         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
7080         Maybe there is a similar problem with BORLANDC? It should be checked!
7081
7082         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
7083         corrected improper use of assert: the assignment to clr variable was done inside the assert.
7084         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
7085         was not executed, and the compiler (cl) launched a warning:
7086         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
7087
7088 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
7089         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
7090
7091 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
7092         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
7093
7094         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
7095           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
7096           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
7097           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
7098           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
7099           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
7100           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
7101         - added Release configuration in VS projects
7102         - review of compiler an linker options
7103         - VC .exe files are generated in bin_vc directory, not to interfere
7104           with binaries generated from other projects (cygwin, mingw, bcc ...)
7105
7106         * sdcc/src/yacc.dsp: added
7107
7108         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
7109         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
7110         and insert the version number definitions from .version
7111
7112         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
7113
7114         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
7115         added - genarate auto-host.h using auto-host_vc_in.h as template
7116
7117         * sdcc/sdcc_vc.h,
7118         removed from CVS, generated automatically
7119
7120 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
7121         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
7122
7123 2002-08-11  Borut Razem <borut.razem AT siol.net>
7124         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
7125
7126 2002-08-10  Borut Razem <borut.razem AT siol.net>
7127         * src/SDCCmain.c (main):
7128         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
7129         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
7130         The consequence was that some temporary files were not removed.
7131
7132         * src/SDCCglue.c:
7133         unification of code in functions tempfilename() and tempfile():
7134         function tempnam() is defined in Visual Studio 6.0 and .NET
7135
7136         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
7137
7138         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
7139           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
7140         - removed compiler command line option /WX: Treats all warnings as errors
7141         - update a list of source files, included into the project
7142
7143         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
7144           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
7145         changed project type to Generic Project so that can be correcly converted to VS.NET project
7146
7147         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
7148
7149         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
7150
7151         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
7152
7153         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
7154         added return 0 statements after assert() to make compiler happy
7155
7156         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
7157         added newline in the def file to keep MSC compiler satisfied
7158
7159         * sdcc/src/z80/gen.c:
7160         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
7161           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
7162         - solved MSC error in function aopDump()
7163
7164         * sdcc_vc.h: define PREFIX as "\\sdcc"
7165
7166 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
7167         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
7168
7169 2002-06-22  Scott Dattalo <scott AT dattalo.com>
7170         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
7171         - Rewrote the register banking algorithm.
7172         - Added pCode live-range analysis to registers (for now, only non-used and
7173         singly-used registers optimized away)
7174
7175         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
7176
7177         * 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.
7178
7179 2002-05-10  Scott Dattalo <scott AT dattalo.com>
7180         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
7181
7182 2002-04-22  Michael Hope  <michaelh AT vroom>
7183
7184         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
7185
7186         * configure.in (DD_COPT): Added include support required for gbdk.
7187
7188         * .version: Bumped version number just to increase it.
7189
7190         * src/SDCCmain.c: Added -nostdinc to the default options.
7191
7192 2002-04-15  Michael Hope  <michaelh AT vroom>
7193
7194         * device/lib/z80/printf.c (sprintf): Added.
7195
7196         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
7197
7198         * src/z80/peeph.def: Added transpose redundent load rule.
7199
7200         * src/z80/main.c: Added force callee saves for jaune.
7201
7202         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
7203
7204         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
7205
7206 2002-03-28  Johan Knol  <johan AT balder>
7207
7208         * src/SDCCval.c: fixed bug #532436
7209
7210 2002-03-14  Scott Dattalo <scott AT dattalo.com>
7211         * /src/port.h:
7212         Added "char *Processor" field to the port structure.
7213
7214         * /src/SDCCmain.c:
7215         Added -p option. Allows port dependent processor to be specified.
7216
7217         * all ports:
7218         Initialized the new field char *Processor field to NULL in all ports
7219
7220         * /src/pic/*:
7221         Compiler generated registers for interrupt context saving
7222         were not getting allocated.
7223
7224 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
7225
7226         * /src/SDCCast.c:
7227         Fixed left shift. Will promote the left side of a left shift
7228         if a) left shifting more than size of operand or b) when assigned
7229         to something size > size of left side
7230
7231 2002-03-14  Scott Dattalo <scott AT dattalo.com>
7232         * src/pic/*
7233         tons of changes. Register allocation has been
7234         rewritten. Added customization for the various PICs. Flow
7235         analysis is restructured. ...
7236
7237         * src/pic/device.h:
7238         Added
7239
7240         * src/pic/device.c:
7241         Added. device.c is a PIC port hack to accomodate variations
7242         in PIC devices.
7243
7244 2002-03-13  Michael Hope  <michaelh AT vroom>
7245
7246         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
7247
7248 2002-03-04  johanknol  <johanknol AT manik>
7249
7250         * /src/SDCCval.c: fixed
7251
7252         const unsigned char arr[][2] = { { 0, 1 } };
7253         t18.c:1: error: Initializer element is not constant
7254
7255 2002-03-04  bela  <bela AT manik>
7256
7257         * /device/include/mcs51reg.h:
7258         ds89c420 register definition update
7259
7260 2002-03-03    <johan AT FRIJA>
7261
7262         * support/Util/SDCCerr.c: did something, but don't no why anymore
7263
7264         * support/regression/tests/bug-524691.c: made it a little less shy
7265
7266         * src/SDCCast.c (decorateType): fixed bug #524697
7267
7268         * src/SDCCast.c: made some lineno improvements
7269
7270         * src/SDCCval.c (getNelements): changed warning to error
7271
7272         * src/SDCCglue.c (printIvalArray): changed warning to error
7273
7274         * src/SDCCicode.c: fixed a warning for mingw
7275
7276         * src/SDCCast.c (decorateType): fixed the << promotion for ops
7277
7278         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
7279
7280 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
7281
7282         * src/ds390/peeph.def:
7283         Added some more peephole rules
7284
7285         * src/ds390/gen.c: Various fixes & enhancements
7286
7287         * src/SDCClrange.c, src/SDCClrange.h:
7288         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
7289
7290         * src/ds390/ralloc.c:
7291         various fixes & enhancements (ds390) specific
7292
7293         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
7294         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
7295         from rallocs.
7296
7297         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
7298
7299 2002-03-02    <johan AT FRIJA>
7300
7301         * src/SDCCast.c (decorateType): fixed bug #524708
7302
7303         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
7304
7305         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
7306
7307 2002-03-01  Michael Hope  <michaelh AT vroom>
7308
7309         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
7310
7311         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
7312
7313 2002-03-01    <johan AT FRIJA>
7314
7315         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
7316
7317         * src/SDCCast.c (decorateType): fixed bug #524209
7318
7319         * src/SDCCval.c (valNot): fixed bug #524195
7320
7321 2002-02-26    <johan AT balder>
7322
7323         * src/xa51/gen.c: fixed a warning
7324
7325         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
7326
7327         * src/SDCCast.c (decorateType): fixed bug #522534
7328
7329 2002-02-23    <johan AT balder>
7330
7331         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
7332
7333 2002-02-22    <johan AT balder>
7334
7335         * src/SDCCast.c: fixed bug #514865
7336
7337         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
7338
7339 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
7340
7341         * sdcc/src/SDCCloop.c:
7342         Previous fix was not good. basic blocks that have "break" or "return" are
7343         not really partof a loop , but live ranges used in these blocks should
7344         be live thru the entire loop, so set partOfLoop but don't add them to
7345         loop region
7346
7347 2002-02-21    <johan AT FRIJA>
7348
7349         * src/SDCCcse.c: fixed bug #514308
7350
7351 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
7352
7353         * src/SDCCloop.c:
7354         Fixed BUG #519583. If a conditional block ended in a return/break
7355         statement inside a loop, it was not being considered part of the loop.
7356
7357         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
7358
7359 2002-02-10  Karl Bongers <karl AT turbobit.com>
7360
7361         * debugger/*:
7362         Fixed up SDCDB debugger somewhat.  Updated debugger/README
7363         with lots of comments and notes.
7364
7365         * device/examples/test2.c:
7366         Fix bug, "red" variable not being initialized(compiler complained).
7367
7368         * device/examples/Makefile, examples/test3.c:
7369         Add Makefile in device/examples folder, compiles test3.c
7370         for use as a multiple module SDCDB test case.
7371
7372         * sim/ucsim/cmd.src/cmdset.cc:
7373         Took out debug printfs in ucsim "next" command.
7374
7375         * sim/ucsim/xa.src:
7376         Karl and Johan start ucsim XA support.  Most dissassembly working,
7377         about 75% emulation done(plenty of work remaining).
7378
7379         * sim/ucsim/z80.src:
7380         Add Z80 support to ucsim, add test-ucz80 regression test,
7381         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
7382         Notice z80 compiler fails on examples/test3.c/crc code.
7383
7384 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
7385
7386         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
7387         Added support for --parms-in-bank1
7388
7389         * src/ds390/peeph.def:
7390         added a few more peephole optimzations
7391
7392         * src/ds390/main.c:
7393         1) added __builtin_inp & __builtin_outp used to read in data of given length
7394            from a memory mapped port
7395         2) added __builtin_memcmp
7396         3) added __builtin_swapw swap bytes of a short
7397
7398         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
7399         1) handle multiple send & receives from register bank1
7400         2) ralloc can now allocate DPTR1 to some liveRanges
7401
7402         * src/SDCCsymt.c, src/SDCCsymt.h:
7403         changes to handle multiple sends & receives
7404
7405         * src/SDCCptropt.h:
7406         added some pointer arithmetic optimization
7407
7408         * src/SDCCptropt.c:
7409         added some pointer arithmetic optimizations but not stable yet so not
7410         called from anywhere (will get this working shortly)
7411
7412         * src/SDCCopt.c: fixed for multiple sends & receives
7413
7414         * src/SDCCmain.c:
7415         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
7416         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
7417            set preprocessor defines (depending on options)
7418
7419         * src/SDCCicode.c, src/SDCCicode.h:
7420         changes made to handle multiple sends & receives
7421
7422         * src/SDCCglobl.h:
7423         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
7424
7425         * src/SDCCcse.c, src/SDCCcse.h:
7426         added function findbackward def (to be used in upcoming optimization)
7427
7428         * src/SDCCcflow.c, src/SDCCcflow.h:
7429         added function returnAtEnd - to determine if a basic block terminates with
7430         a RETURN iCode
7431
7432         * src/SDCCast.c, src/SDCCast.h:
7433         added option parms-in-bank1
7434
7435         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
7436         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
7437         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
7438         adjusted for --parms-in-bank1 option
7439
7440         * device/include/string.h:
7441         donot redefine "reentrant" keyword
7442
7443         * device/include/ds80c390.h: Added some more SFRs
7444
7445 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
7446
7447         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
7448
7449 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
7450
7451         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
7452
7453 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
7454
7455         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
7456
7457 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
7458
7459         * Added --xram-movc option
7460
7461 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
7462
7463         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
7464
7465 2002-01-11  Johan Knol
7466
7467         * Added math lib of Jesus Calvino-Fraga
7468
7469 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
7470
7471         * src/SDCCmain.c (processFile): fix processing of ../../src.c
7472         * support/regression/Makefile: new target test-mcs51-stack-auto
7473         * support/regression/ports/mcs51-stack-auto/spec.mk: added
7474
7475 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
7476
7477         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
7478
7479 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
7480
7481         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
7482
7483 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
7484
7485         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
7486
7487         * src/SDCCglue.h: add definition for printIvalChar()
7488
7489 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
7490
7491         * src/SDCCast.c: fix #498138 by Johan
7492
7493         * src/SDCCglue.c: fix #498138 by Johan
7494
7495 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
7496
7497         * support/regression/Makefile: fix clean
7498
7499         * support/regression/ports/ds390/support.c: fix transmission of last character
7500
7501 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
7502
7503         * /sdcc/src/ds390/gen.c:
7504         a) improved computing address of stack variable
7505         b) took out some #if 0 code
7506         c) improved parmBytes adjustment
7507         d) improved genPlusIncr & genMinusIncr
7508         e) genCmp could generate bad code (when left assigned to DPTR)
7509         f) Fixed bug in hasInc
7510
7511         * /sdcc/src/ds390/ralloc.c:
7512         a) packRegsForSupport could mess up live information (Fixed)
7513         b) packRegsDPTRuse could be incorrect for left & right shift
7514
7515         * /sdcc/src/mcs51/ralloc.c:
7516         packRegsForSupport could mess up the live information (Fixed)
7517
7518         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
7519
7520         * /sdcc/src/SDCCast.c:
7521         can reverse a loop even if function call is present as long
7522         as the loop control variable is local & is not passed as parameter
7523
7524 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
7525
7526         * /sdcc/ChangeLog: *** empty log message ***
7527
7528         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
7529         More builtin function additions for TININative
7530
7531         * /sdcc/src/ds390/ralloc.c:
7532         Had broken the regression testsuite
7533
7534         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
7535
7536         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
7537         Added funcattr hasStackParms will be set for reentrant functions when there
7538         are paramteres on the stack, this helps in minimizing frame pointer generation
7539         typeFromStr can handle function pointers now
7540
7541         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
7542         *** empty log message ***
7543
7544 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
7545
7546         * /src/ds390/gen.c, /src/ds390/main.c:
7547         More builtin function additions for TININative
7548
7549         * /src/ds390/ralloc.c:
7550         Had broken the regression testsuite
7551
7552         * /src/SDCCast.c: Fixed a bug in dumptree
7553
7554         * /src/SDCCsymt.c, /src/SDCCsymt.h:
7555         Added funcattr hasStackParms will be set for reentrant functions when there
7556         are paramteres on the stack, this helps in minimizing frame pointer generation
7557         typeFromStr can handle function pointers now
7558
7559         * /doc/builtins.txt, /doc/TININative.txt:
7560         *** empty log message ***
7561
7562
7563 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
7564
7565         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
7566         ALPHA version for -mTININative
7567
7568         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
7569         updated to reflect changes in the port structure
7570
7571         * /src/port.h:
7572         added function do_assemble (similar to do_link) if non-null this function
7573         will be called to do assembly (-mTININative) requires a multi command
7574         assembly
7575         added function genAssemblerEnd will be called to generate assembler Epilogue
7576
7577         * /src/SDCCsymt.c:
7578         added _JavaNative to debug info printing
7579
7580         * /src/SDCCmain.c: added option --tini-libid
7581         added port->do_assemble function (-mTININative) has a multi command assemble
7582
7583         * /src/SDCCglue.c: Disabled "constExpr" check
7584         added port->genAssemblerEnd function
7585
7586         * /src/SDCCglobl.h: Added option --tini-libid value
7587
7588         * /src/SDCCast.h:
7589         tookout optimizeCompare from the header (has no external references)
7590
7591         * /src/SDCCast.c: made one more function "static"
7592
7593 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
7594
7595         * src/z80/mappings.i: Added z80asm support.
7596
7597         * src/z80/main.c: Added z80asm support on --asm=z80asm
7598
7599         * src/z80/gen.c: Fixed asm portability issues.
7600
7601         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
7602
7603         * src/SDCCglue.c (printExterns): Added global/extern split.
7604
7605 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
7606
7607         * support/regression/Makefile: added test for mcs51 model large
7608
7609         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
7610
7611         * support/regression/ports/gbz80/spec.mk: added -mgbz80
7612
7613 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
7614
7615         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
7616
7617 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
7618
7619         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
7620
7621         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
7622
7623 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
7624
7625         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
7626
7627         * support/regression/tests/simplefloat.c: Port to mcs51.
7628
7629 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
7630         * support/regression/tests/bug-485362.c: Added.
7631
7632         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
7633
7634         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
7635
7636         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
7637
7638         * src/z80/gen.c (aopDump): Added a dump function.
7639
7640 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
7641         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
7642
7643         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
7644
7645         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
7646
7647         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
7648
7649         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
7650
7651         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
7652
7653         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
7654
7655         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
7656
7657         * support/regression/ports/ds390/support.c: Use tinibios.
7658
7659         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
7660
7661 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
7662
7663         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
7664         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
7665
7666         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
7667
7668         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
7669
7670 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
7671
7672         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
7673
7674         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
7675         (packRegsForIYUse): Created and optimised.
7676
7677 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
7678
7679         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
7680 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
7681
7682         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
7683
7684         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
7685
7686         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
7687
7688 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
7689
7690         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
7691
7692         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
7693
7694 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
7695
7696         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
7697
7698         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
7699
7700         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
7701
7702 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
7703
7704         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
7705         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
7706         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
7707
7708         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
7709
7710         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
7711         (genNotFloat): Added.
7712         (genUminusFloat): Added.
7713
7714         * device/lib/z80/Makefile: Added floating pt stubs.
7715
7716         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
7717
7718         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
7719
7720         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
7721
7722 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
7723
7724         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
7725
7726         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
7727
7728         * sdcc/support/regression/Makefile: Add port ds390.
7729
7730         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
7731
7732         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
7733
7734         * sdcc/support/regression/ports/ds390/spec.mk: Added.
7735
7736         * sdcc/support/regression/ports/ds390/support.c: Added.
7737
7738         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
7739
7740         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
7741
7742         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
7743
7744 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
7745
7746         * device/include/malloc.h: Added z80 and gbz80 support.
7747
7748         * device/lib/gbz80/heap.s: Added.
7749
7750         * device/lib/z80/heap.s: Added.
7751
7752         * device/lib/malloc.c: Added z80 and gbz80 support.
7753
7754         * support/regression/tests/malloc.c (testMalloc): Added.
7755
7756         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
7757
7758         * support/regression/tests/bug-478094.c: Added.
7759
7760         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
7761
7762 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
7763
7764         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
7765
7766         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
7767
7768         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
7769
7770         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
7771
7772         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
7773
7774 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
7775
7776         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
7777
7778 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
7779
7780         * support/regression/tests/bug-477927.c: Added.
7781
7782         * src/z80/peeph.def: Added minor rules.
7783
7784         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
7785
7786         * src/z80/peeph.def: Added jump optimisation modification.
7787
7788 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
7789
7790         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
7791
7792 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
7793
7794         * support/regression/tests/funptrs.c: Added.
7795
7796 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
7797
7798         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
7799
7800 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
7801
7802         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
7803
7804         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
7805
7806         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
7807         (movLeft2ResultLong): Created.
7808
7809         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
7810         (joinPushes): Added.  Joins two char pushes into a word push.
7811
7812 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
7813
7814         * support/cpp2/Makefile.in (install): Added creation of dest dir.
7815
7816         * support/makebin/Makefile (install): Added creation of dest dir.
7817
7818 2001-10-24 Karl Bongers <karl AT turbobit.com>
7819
7820         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
7821
7822 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
7823
7824         * src/z80/ralloc.c: Turned off faulty pack for one use.
7825
7826         * src/z80/peeph-gbz80.def: Removed redundent restart options.
7827
7828         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
7829
7830 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
7831
7832         * support/regression/Makefile: Improved clean
7833
7834         * support/regression/ports/gbz80/spec.mk: Added clean
7835
7836         * support/regression/ports/host/spec.mk: Added clean
7837
7838         * support/regression/ports/z80/spec.mk: Added clean
7839
7840         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
7841
7842         * support/regression/ports/mcs51/timeout.c: little improvements
7843
7844 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
7845
7846         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
7847
7848         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
7849
7850         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
7851
7852 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
7853
7854         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
7855
7856         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
7857
7858 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
7859         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
7860
7861         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
7862
7863         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
7864
7865         * src/mcs51/main.c (_linkCmd): Added bin path to command.
7866
7867         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
7868
7869         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
7870
7871         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
7872
7873         * support/regression/tests/longor.c: Added.
7874
7875 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
7876
7877         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
7878
7879         * as/mcs51/aslink.h: define PATH_MAX
7880
7881         * as/mcs51/asm.h: define PATH_MAX
7882
7883         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
7884
7885         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
7886
7887         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
7888
7889         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
7890
7891         * src/SDCCglobl.h: define PATH_MAX
7892
7893         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
7894
7895         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
7896
7897 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
7898
7899         * src/z80/gen.c (gencjneshort): Fixed
7900
7901         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
7902
7903 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
7904
7905         * support/regression/tests/bug-469671.c: Added.
7906
7907         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
7908
7909 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
7910
7911         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
7912
7913         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
7914
7915 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
7916
7917         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
7918
7919         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
7920
7921         * src/device/lib/_mullong.c : removed hint: nooverlay bug
7922
7923         * src/device/lib/_divuint.c : removed hint: nooverlay bug
7924
7925         * src/device/lib/_divulong.c: removed hint: nooverlay bug
7926
7927         * src/device/lib/_moduint.c : removed hint: nooverlay bug
7928
7929         * src/device/lib/_modulong.c: removed hint: nooverlay bug
7930
7931 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
7932
7933         * 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.
7934
7935         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
7936
7937         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
7938
7939 2001-10-07    <johan AT FRIJA>
7940
7941         * device/lib/gets.c (gets): fixed the return value.
7942
7943 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
7944         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
7945
7946         * 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.
7947
7948         * 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.
7949
7950         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
7951
7952         * src/pic/gen.c: Removed Safe_strdup.
7953
7954         * configure.in: Added option to enable libgc support.
7955
7956         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
7957         (bitVectUnion): Optimised.
7958         (bitVectIntersect): Optimised.
7959         (bitVectBitsInCommon): Optimised.
7960         (bitVectCplAnd): Optimised.
7961
7962         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
7963
7964 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
7965
7966         * src/SDCCmain.c: distinguish between assembler debug and plain options
7967
7968         * src/avr/main.c:   remove standard assembler options
7969
7970         * src/ds390/main.c: remove standard assembler options
7971
7972         * src/mcs51/main.c: remove standard assembler options
7973
7974         * src/port.h: removed "PENDING" comment
7975
7976 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
7977
7978         * src/device/lib/_mulint.c  : new, with assember functions
7979
7980         * src/device/lib/_mullong.c : new, with assember functions
7981
7982         * src/device/lib/_divuint.c : with assember functions
7983
7984         * src/device/lib/_divsint.c : with assember functions
7985
7986         * src/device/lib/_divulong.c: with assember functions
7987
7988         * src/device/lib/_divslong.c: with assember functions
7989
7990         * src/device/lib/_moduint.c : with assember functions
7991
7992         * src/device/lib/_modsint.c : with assember functions
7993
7994         * src/device/lib/_modulong.c: with assember functions
7995
7996         * src/device/lib/_modslong.c: with assember functions
7997
7998         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
7999
8000         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
8001
8002         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
8003                                       replaced _mululong.c and _mulslong.c by _mullong.c
8004
8005 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
8006
8007         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
8008
8009 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
8010
8011         * src/SDCCglue.c: test, if win32api is available for MINGW
8012
8013 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
8014
8015         * src/SDCCsymt.c: no more _modifier in printTypeChain()
8016         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
8017         * support/regression/ports/gbz80/spec.mk: removed GENERIC
8018         * support/regression/ports/host/spec.mk: removed GENERIC
8019         * support/regression/ports/mcs51/spec.mk: removed GENERIC
8020         * support/regression/ports/z80/spec.mk: removed GENERIC
8021
8022 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
8023
8024         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
8025
8026         * support/regression/tests/bug-467035.c: Created.
8027
8028 2001-10-01    <johan AT FRIJA>
8029
8030         * src/SDCC.y: fixed bug #466586 part 1
8031
8032 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
8033
8034         * SDCCicode.c: z80 has no generic pointers
8035         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
8036
8037 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
8038
8039         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
8040
8041 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
8042
8043         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
8044
8045         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
8046
8047 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
8048
8049         * configure.in: Fixed up so that ucsim is only configured once.
8050
8051         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
8052
8053         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
8054         (getPathDifference): As above.
8055
8056         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
8057
8058         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
8059
8060 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
8061         * .version: Updated to 2.3.1
8062
8063         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
8064         Added copyright header.
8065
8066         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
8067         (assemble): Added support for macro based assembler commands.
8068         (linkEdit): Added support for macro based linker commands.
8069         (preProcess): Changed the pre-processor to use macros.
8070         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
8071         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
8072
8073         * device/lib/z80/crt0.s: Added module name for debugging.
8074
8075 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
8076
8077         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
8078
8079         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
8080
8081         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
8082
8083         * src/Makefile.in: Added SDCCmacro and SDCCutil
8084
8085 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
8086
8087         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
8088
8089 2001-09-16    <johan AT FRIJA>
8090
8091         * 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.
8092
8093 2001-09-15    <johan AT FRIJA>
8094
8095         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
8096         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
8097
8098 2001-09-11    <johan AT FRIJA>
8099
8100         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
8101
8102 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
8103
8104         * support/regression/tests/bug-460444.c: Added test case.
8105
8106         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
8107         (genCast): Added justification for all of the asserts.
8108
8109 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
8110
8111         * support/regression/support.c: _xdata replaced by xdata
8112
8113         * support/regression/spec.mk: removed _generic
8114
8115 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
8116
8117         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
8118
8119         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
8120         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
8121
8122         * src/z80/peeph.def: Added a rule to optimise shift then compare.
8123
8124         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
8125
8126         * support/regression/tests/bug-460010.c: Added test case.
8127
8128         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
8129
8130 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
8131
8132         * support/regression/Makefile: inter-port-clean adjusted for mcs51
8133
8134         * support/regression/testfwk.c: removed workaround for bug #436344
8135
8136         * support/regression/tests/bp.c: use less memory with mcs51
8137
8138         * support/regression/tests/bug-441448.c: use less memory
8139
8140         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
8141
8142         * support/regression/collate-results.py: typo
8143
8144 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
8145
8146         * support/regression/tests/fetchoverlap.c: Added new test case.
8147
8148         * support/regression/tests/bp.c: Added new test case.
8149
8150         * support/regression/tests/bug-448984.c: Added new test case.
8151
8152         * support/regression/tests/pow2shifts.c: Added new test case.
8153
8154         * src/z80/gen.c: Turned off the noise it normally generates for the release.
8155         (genlshTwo): Fixed right shift for count > 8.
8156
8157         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
8158
8159 2001-09-08    <johan AT FRIJA>
8160
8161         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
8162
8163 2001-09-07    <johan AT FRIJA>
8164
8165         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
8166
8167         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
8168
8169 2001-09-06    <johan AT FRIJA>
8170
8171         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
8172         * bernhard noted me at this: "() equals to (void)" (1.38)
8173
8174 2001-09-05    <johan AT FRIJA>
8175
8176         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
8177
8178 2001-09-04    <johan AT FRIJA>
8179
8180         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
8181
8182
8183 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
8184
8185         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
8186
8187 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
8188
8189         * link/z80/aslink.h: Fixed path for PATH_MAX
8190
8191 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
8192
8193         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
8194
8195         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
8196
8197         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
8198
8199         * 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.
8200
8201 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
8202
8203         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
8204         (genCmp): Fixed up genCmp for the GB with longs.
8205
8206         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
8207
8208         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
8209
8210         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
8211
8212         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
8213
8214 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
8215
8216         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
8217
8218 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
8219
8220         * 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.
8221
8222         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
8223
8224 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
8225
8226         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
8227
8228         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
8229
8230 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
8231
8232   * sim/ucsim/configure:    little improvement of Cygwin-detection
8233   * sim/ucsim/configure.in: little improvement of Cygwin-detection
8234   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
8235   * support/regression/tests/bug-221100.c: small changes for mcs51
8236   * support/regression/tests/bug-221168.c: small changes for mcs51
8237   * support/regression/tests/bug-227710.c: small changes for mcs51
8238   * support/regression/tests/staticinit.c: small changes for mcs51
8239   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
8240   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
8241   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
8242
8243 $Revision$