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