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