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