* support/cpp2/sdcc.h: prevent multiple inclusion
[fw/sdcc] / ChangeLog
1 2006-12-09 Borut Razem <borut.razem AT siol.net>
2
3         * support/cpp2/sdcc.h: prevent multiple inclusion
4         * support/cpp2/options.h: deleted
5
6 2006-12-08 Borut Razem <borut.razem AT siol.net>
7
8         * support/cpp2/sdcc.h: removed x*alloc() macros
9         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
10         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
11           support/cpp2/sdcpp.sdc: x*alloc files added to the project
12         * support/cpp2/system.h: moved #include "sdcc.h"
13         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
14           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
15           added
16         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
17           -funsigned-char options
18         * support/cpp2/sdcppmain.c: fixed bug 1611411
19
20 2006-12-07 Borut Razem <borut.razem AT siol.net>
21
22         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
23           directive
24
25 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
26
27         * src/SDCCsymt.c (addDecl): fixed bug 1609244
28         * src/SDCCmain.c (linkEdit): fixed bug 1609279
29         * doc/sdccman.lyx,
30         * .version: bumped to 2.6.2 because a) it's been a while
31           b) the linker sources have moved c) the preprocessor is upgraded
32
33 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
34
35         * support/regression/tests/snprintf.c: some checks
36         * lib/src/printf_large.c: %bc: read char instead of int from stack
37
38 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
39
40         * device/include/mcs51/cc2430.h: inserted _XPAGE
41
42 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
43
44         * device/include/mcs51/cc2430.h: added
45
46 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
47
48         * device/include/asm/default/features.h,
49         * device/include/asm/ds390/features.h,
50         * device/include/mcs51/at89s53.h,
51         * device/include/ser.h,
52         * device/include/ser_ir.h,
53         * device/include/serial.h: changed keywords to double underscore variants,
54           fixes bug 1590261 some more, thanks Steven Borley
55
56 2006-12-01 Raphael Neider <rneider AT web.de>
57
58         * src/pic/pcode.c (register_reassign): do not crash on recursive code
59           but emit warning (recursion is not supported for pic14)
60
61 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
62
63         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
64         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
65
66 2006-11-30 Raphael Neider <rneider AT web.de>
67
68         * src/pic/device.c (dump_sfr): always emit symbols
69         * src/pic/glue.c (pic14printPublics): fixed typo
70
71 2006-11-30 Raphael Neider <rneider AT web.de>
72
73         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
74           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
75           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
76            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
77            a sharebank, use a non-shared bank for the stack if none available
78         * src/pic/device.h (struct memRange): added linked list next field,
79           added prototypes for above functions
80         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
81           (typeRegWithIdx): accept fixed and unfixed stack registers
82         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
83           the stack, handle shared and banked stack (except for WSAVE),
84           (insertBankSel): removed useless optimization (will never fire),
85           (FixRegisterBanking): added optimization for devices with only one
86           possibly aliased bank of memory, like 16f84
87         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
88           devices have no SHAREBANK in the linker script
89         * device/include/pic/pic14devices.txt: documented memmap
90         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
91
92 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
93
94         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
95           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
96           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
97           genhc08Code): switched most of the D (debug) macros to DD (detailed
98           debug) macros to better control clutter in the generated .asm file.
99         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
100           genRightShift): fixed bug with non-constant bit shift stored to
101           a volatile result (SF Open Discussion forum thread #1616749).
102           Single byte case is not yet optimized.
103
104 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
105
106         * device/include/asm/mcs51/features.h,
107         * device/include/malloc.h,
108         * device/include/stdio.h: changed keywords to double underscore variants,
109           fixes bug 1590261
110
111 2006-11-27 Borut Razem <borut.razem AT siol.net>
112
113         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
114           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
115           support/cpp2/output.h, support/cpp2/cppinit.c,
116           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
117           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
118           support/cpp2/cppdefault.c, support/cpp2/system.h,
119           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
120           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
121           support/cpp2/prefix.c, support/cpp2/except.h,
122           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
123           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
124           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
125           support/cpp2/version.c, support/cpp2/cppmain.c,
126           support/cpp2/version.h, support/cpp2/hashtable.c,
127           support/cpp2/cpperror.c:
128           synchronized with GCC CPP release version 3.3.6,
129           the latest where cppmain.c still exists.
130         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
131           support/cpp2/sdcppinit.c: added
132
133 2006-11-27 Borut Razem <borut.razem AT siol.net>
134
135         * support/cpp2/cpplex.c:
136           fixed _asm ... _endasm handling bug, introduce with GCC CPP
137           synchronization
138         * support/cpp2/cpplib.c: removed definitions of unused variables
139
140 2006-11-26 Borut Razem <borut.razem AT siol.net>
141
142         * support/cpp2/libiberty.h: commented out x*alloc() declarations
143           since they are redefined by macros in support/cpp2/sdcc.h
144         * support/cpp2/sdcc.h: x*alloc macro redefinition
145
146 2006-11-25 Borut Razem <borut.razem AT siol.net>
147
148         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
149           support/cpp2/configure, support/cpp2/Makefile.in,
150           support/cpp2/cppfiles.c, support/cpp2/output.h,
151           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
152           support/cpp2/config.h, support/cpp2/cpplib.h,
153           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
154           support/cpp2/cppdefault.c, support/cpp2/config.in,
155           support/cpp2/system.h, support/cpp2/cpplex.c,
156           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
157           support/cpp2/cppdefault.h, support/cpp2/prefix.c
158           support/cpp2/hwint.h, support/cpp2/mbchar.h,
159           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
160           support/cpp2/configure.in, support/cpp2/intl.h,
161           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
162           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
163           support/cpp2/version.c, support/cpp2/cppmain.c,
164           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
165           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
166           support/cpp2/cpperror.c,
167           support/cpp2/libiberty/safe-ctype.c,
168           support/cpp2/libiberty/safe-ctype.h,
169           support/cpp2/libiberty/splay-tree.c,
170           support/cpp2/libiberty/obstack.c,
171           support/cpp2/libiberty/lbasename.c,
172           support/cpp2/libiberty/splay-tree.h,
173           support/cpp2/libiberty/obstack.h:
174           synchronized with GCC CPP release version 3.2.3,
175           the latest before integration of cpp into gcc
176         * support/cpp2/except.h, support/cpp2/line-map.c,
177           support/cpp2/line-map.h,
178           support/cpp2/libiberty/hex.c,
179           support/cpp2/libiberty/concat.c,
180           support/cpp2/libiberty/filenames.h: added
181         * support/cpp2/intl.c: deleted
182
183 2006-11-24 Borut Razem <borut.razem AT siol.net>
184
185         * src/SDCC.y: enabled compilation of empty source file
186         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
187           "ISO C forbids an empty source file"
188         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
189           if all the code is ifdefed out.
190
191 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
192
193         * src/hc08/gen.c (genPcall): fix for bug #1601032
194
195 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
196
197         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
198         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
199         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
200         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
201         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
202         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
203         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
204         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
205         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
206         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
207         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
208         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
209         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
210         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
211         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
212           Renamed to all upper case as per the standard set by SiLabs
213
214 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
215
216         * device/include/mcs51/C8051F520.h: new, added
217         * device/include/mcs51/compiler.h: added link about predefined macros
218
219 2006-11-23 Raphael Neider <rneider AT web.de>
220
221         * src/regression/Makefile: add -L path to fresh library
222         * src/regression/simulate: emphasize FAILED output
223         * src/regression/create_stc: output _failures from gpsim
224         * src/regression/compare4.c,
225         * src/regression/rotate6.c: fixed char literals,
226           all compile, all run =8-D
227
228         * src/pic/pcode.h: added isPCASMDIR macro
229         * src/pic/gen.c (genAnd): fixed bit offset
230         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
231           packBits): unified register numbering schemes,
232           (newReg): do not insert stack registers into hash table,
233           (initStack): unpinned pseudo stack, simplified,
234           (typeRegWithIdx): fixed retrieval of stack registers,
235         * src/pic/pcode.c (addpCodeComment,sameBank): added,
236           (pCodeReplace): removed invalid assertion,
237           (insertPCodeInstruction): fixed newly added labels,
238           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
239           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
240           DumpFlow): removed unsed (broken?) code,
241           (insertBankSel): prevent STATUS from being BANKSELed,
242           (FixRegisterBanking): rewritten from scratch, implemented generic
243             optimizations (suppress BANKSELs to same register and to registers
244             present in all banks),
245           (AnalyzeBanking): update flow after BANKSELection
246
247         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
248             sharebank, let linker place it, mark STKxx symbols as emitted
249
250 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
251
252         * src/regression/arrays.c,
253         * src/regression/bank1.c,
254         * src/regression/bool2.c,
255         * src/regression/compare7.c,
256         * src/regression/compare8.c,
257         * src/regression/compare9.c,
258         * src/regression/compare10.c,
259         * src/regression/configword.c,
260         * src/regression/for.c,
261         * src/regression/mult1.c,
262         * src/regression/pointer1.c,
263         * src/regression/rotate6.c,
264         * src/regression/string1.c,
265         * src/regression/struct1.c,
266         * src/regression/Makefile: make PIC14 regression tests run again
267           (3 fail, 6 won't compile)
268
269 2006-11-21 Raphael Neider <rneider AT web.de>
270
271         * device/include/pic16/pic18f4550.h,
272         * device/include/pic16/pic18f4455.h,
273         * device/lib/pic16/libdev/pic18f4550.c,
274         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
275         * configure.in: removed superfluous closing bracket
276
277 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
278
279         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
280           always positive.
281
282 2006-11-21 Raphael Neider <rneider AT web.de>
283
284         * src/pic/device.{c,h}: added pic14_getPIC()
285         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
286           (genAnd): added PIC code for one case, fixes #1597044
287         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
288           SFRs that are present in all banks (e.g., STATUS)
289
290 2006-11-20 Raphael Neider <rneider AT web.de>
291
292         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
293           INCFSZ/INCFSZW and declared them as changing Z bit,
294           (insertPCodeInstruction): correctly invert the above instructions,
295           fixes #1599333,
296           (DoBankSelect): don't panic on po_immediates
297
298 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
299
300         * as/link/aslink.h,
301         * as/link/mcs51/lkihx.c (newArea),
302         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
303         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
304
305 2006-11-11 Raphael Neider <rneider AT web.de>
306
307         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
308           bitfield symbols, fixes #1579535 (once more...).
309
310 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
311
312         * support/regression/generate-cases.py,
313         * support/regression/fwk/include/testfwk.h,
314         * support/regression/fwk/lib/testfwk.c: used code pointers,
315           (about 50kByte less code generated for mcs51)
316
317 2006-11-06 Borut Razem <borut.razem AT siol.net>
318
319         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
320           debugger/mcs51/configure: fixed failed check because the function
321           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
322           who submitted the patch for gpsim.
323         * debugger/mcs51/configure.in: removed the result message
324         * debugger/mcs51/Makefile.in: fixed the config.status warning
325           "... seems to ignore the --datarootdir setting"
326
327 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
328
329         * device/include/mcs51/c8051f020.h,
330         * device/include/mcs51/c8051f040.h,
331         * device/include/mcs51/c8051f060.h,
332         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
333         * src/z80/gen.c (gencjneshort),
334         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
335
336 2006-10-31 Borut Razem <borut.razem AT siol.net>
337
338         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
339           debugger/mcs51/configure: get readline version
340
341 2006-10-30 Borut Razem <borut.razem AT siol.net>
342
343         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
344         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
345           debugger/mcs51/configure: locate readline even when cross compiling
346         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
347
348 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
349
350         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
351           serial port.
352
353 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
354
355         * device/include/malloc.h,
356         * device/lib/calloc.c,
357         * device/lib/free.c,
358         * device/lib/malloc.c,
359         * device/lib/realloc.c: moved definition of struct into sources
360         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
361
362 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
363
364         * as/asx8051.dsp: corrected output directories
365         * as/link/hc08: new directory for hc08 linker
366         * as/hc08/aslink.h,             as/link/aslink.h,
367         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
368         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
369         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
370         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
371         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
372         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
373         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
374         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
375         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
376         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
377         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
378         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
379         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
380         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
381         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
382         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
383         * as/link/hc08/conf.mk,
384         * configure,
385         * configure.in,
386         * Makefile.in,
387         * sdcc.dsw: moved hc08 linker to as/link/hc08
388         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
389         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
390         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
391         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
392         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
393         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
394         * as/link/mcs51/aslink.dsp,
395         * as/link/mcs51/Makefile.in: factored out the common files
396         * as/hc08/lkstore.c: deleted, use the one already in as/link/
397         * as/clean.mk: extra cleaning common files
398         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
399         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
400         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
401
402 2006-10-29 Raphael Neider <rneider AT web.de>
403
404         * src/pic/ralloc.c (newReg): create aliases for registers with
405           multiple names to fix #1579535 and #1584001,
406           (regWithIdx,dirregWithName): resolve aliases on lookup
407         * src/pic/pcode.c (DoBankSelect): die with error message on failing
408           bankselect
409         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
410           to prevent build errors on small devices
411
412 2006-10-28 Raphael Neider <rneider AT web.de>
413
414         * src/pic/gen.c (genFunction,genCall): drop "same code page"
415           assumption within interrupt handlers, fixes #1584940
416         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
417           "emitted" to avoid emitting them again in udata
418
419 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
420
421         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
422         Removed.
423
424 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
425
426         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
427         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
428         on/off CR to CRLF conversion.
429
430 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
431
432         * doc/sdccman.lyx: updated IRQ section
433
434 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
435
436         * device/lib/serial_io.c: removed
437         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
438         replacements for serial_io.c
439
440 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
441
442         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
443
444 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
445
446         * device/lib/serial_io.c: Default putchar() and getchar() for
447           mcs51 uses serial port.
448
449 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
450
451         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
452
453 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
454
455         * support/regression/ports/mcs51/support.c: smaller
456         _sdcc_external_startup()
457         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
458
459 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
460
461         * device/lib/gbz80/crt0.s,
462         * device/lib/gbz80/crt0_rle.s,
463         * device/lib/gbz80/div.s,
464         * device/lib/gbz80/fstubs.s,
465         * device/lib/gbz80/heap.s,
466         * device/lib/gbz80/mul.s,
467         * device/lib/gbz80/putchar.s,
468         * device/lib/gbz80/stubs.s,
469         * device/lib/z80/crt0.s,
470         * device/lib/z80/crt0_rle.s,
471         * device/lib/z80/div.s,
472         * device/lib/z80/fstubs.s,
473         * device/lib/z80/heap.s,
474         * device/lib/z80/mul.s,
475         * device/lib/z80/putchar.s,
476         * device/lib/z80/stubs.s: reverted, I was mistaken
477
478 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
479
480         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
481         * support/regression/ports/mcs51/support.c: removed race
482         condition on TI in _putchar allowing to use serial port mode 0
483
484 2006-10-20 Borut Razem <borut.razem AT siol.net>
485
486         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
487
488 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
489
490         * device/lib/gbz80/crt0.s,
491         * device/lib/gbz80/crt0_rle.s,
492         * device/lib/gbz80/div.s,
493         * device/lib/gbz80/fstubs.s,
494         * device/lib/gbz80/heap.s,
495         * device/lib/gbz80/mul.s,
496         * device/lib/gbz80/putchar.s,
497         * device/lib/gbz80/stubs.s,
498         * device/lib/z80/crt0.s,
499         * device/lib/z80/crt0_rle.s,
500         * device/lib/z80/div.s,
501         * device/lib/z80/fstubs.s,
502         * device/lib/z80/heap.s,
503         * device/lib/z80/mul.s,
504         * device/lib/z80/putchar.s,
505         * device/lib/z80/stubs.s: removed all leading underscores from area names
506
507 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
508
509         * support/regression/ports/mcs51/support.c: use highest baudrate so the
510           regression tests are not waiting in the simulator for simulated
511           transmission of debug output
512
513 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
514
515         * device/lib/printf_large.c: slightly smaller
516         * doc/sdccman.lyx: do not use spaces within html links
517
518 2006-10-16 Borut Razem <borut.razem AT siol.net>
519
520         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
521           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
522           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
523           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
524           debugger/mcs51/configure:
525           [ 1185668 ] add gnu readline support to sdcdb - enabled
526
527 2006-10-16 Raphael Neider <rneider AT web.de>
528
529         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
530           fixes #1577882, removes close to all banking optimizations
531
532 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
533
534         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
535           variables in code memory
536         * support/regression/tests/absolute.c: added test for this
537
538 2006-10-15 Raphael Neider <rneider AT web.de>
539
540         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
541           devices,
542           (BankSelect): emit BANKSEL before touching linker-placed regs,
543           fixes #1570934
544
545 2006-10-10 Raphael Neider <rneider AT web.de>
546
547         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
548         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
549         * src/pic/main.c (_pic14_parseOptions),
550         * src/pic/main.h: mostly reverted to previous state, now use results
551             from SDCCmain.c's argument parsing
552
553 2006-10-10 Borut Razem <borut.razem AT siol.net>
554
555         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
556           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
557           [ 1185668 ] add gnu readline support to sdcdb -
558           prepared for READLINE, not enabled yet,
559           thanks to <tal.bav AT gmail.com>
560
561 2006-10-10 Raphael Neider <rneider AT web.de>
562
563         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
564         * src/pic16/devices.inc,
565         * device/include/pic16 (pic18f[24]620.h),
566         * device/include/pic18fregs.h,
567         * device/lib/pic16/pics.all,
568         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
569             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
570             Gary Plumbridge and Anton Strobl
571
572 2006-10-10 Raphael Neider <rneider AT web.de>
573
574         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
575           --stack-siz=NUM options to configure the argument passing stack
576         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
577         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
578           (pic14_getSharebankSize): obey --stack-siz=NUM,
579           (pic14_getSharebankAddress): obey --stack-loc=NUM
580
581 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
582
583         * doc/sdccman.lyx: added to the manual
584         * doc/figures/ddd_example.png: added (neither pdflatex nor
585         most browsers seem to like the .eps file)
586
587 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
588
589         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
590         to /tmp and /var/tmp acc. LSB
591         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
592         RESULT_TYPE_IFX
593         * support/regression/tests/onebyte.c: added test
594
595 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
596
597         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
598
599 2006-10-05 Borut Razem <borut.razem AT siol.net>
600
601         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
602           thanks to dfulab:
603           - sdcc.dsw: changed property eol-style to CRLF
604           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
605
606 2006-10-04 Raphael Neider <rneider AT web.de>
607
608         * device/include/pic/{pic16f84.h,pic16f84a.h},
609         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
610           from patch #1522504, thanks to Robas Teodor
611
612 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
613
614         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
615           fixes bug 1566015
616
617 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
618
619         * src/pic16/glue.c (pic16emitMaps),
620         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
621         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
622         * device/lib/pic16/libc/string/memcpypgm2ram.c,
623         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
624           Philipp Krause
625         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
626         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
627
628 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
629
630         * support/librarian/sdcclib.c: Added option -l.
631         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
632           usage totals.
633         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
634           using Windows command prompt.
635
636 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
637
638         * device/lib/libsdcc.lib: added module rand
639         * src/ds390/ralloc.c (rematStr),
640         * src/hc08/ralloc.c (rematStr),
641         * src/mcs51/ralloc.c (rematStr),
642         * src/z80/ralloc.c (rematStr): made output more consistent
643         * src/mcs51/gen.c: cosmetic changes
644
645 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
646
647         * src/port.h: added mem.cabs_name to PORT
648         * src/ds390/main.c,
649         * src/hc08/main.c,
650         * src/mcs51/main.c,
651         * src/pic16/main.c,
652         * src/pic/main.c,
653         * src/xa51/main.c,
654         * src/z80/main.c: added cabs_name initializers
655         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
656           constants
657           (emitMaps): emit absolutes in code memory into cabs_name
658         * src/SDCCmem.c,
659         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
660         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
661         * support/regression/fwk/include/testfwk.h: added define for at
662         * support/regression/tests/absolute.c: added, new
663
664 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
665
666         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
667           optimizations, see also patch 887161 by Stas Sergeev
668         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
669           to be necessary anymore,
670           (102, 103, 104, 127): renamed all occurances of bp to _bp
671
672 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
673
674         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
675           thanks Weston T. Schmidt for patch 1555221
676         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
677         * src/SDCCicode.c(geniCodeMultiply): small optimization
678
679 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
680
681         * device/include/stdlib.h: added rand prototypes
682         * device/lib/rand.c: new, added
683         * device/lib/Makefile.in: added rand.c
684         * src/z80/peeph.def,
685         * src/z80/peeph-gbz80.def,
686         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
687
688 2006-09-20 Raphael Neider <rneider AT web.de>
689
690         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
691
692 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
693
694         * as/link/aslink.h: cosmetic changes
695         * as/link/mcs51/Makefile.in,
696         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
697
698 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
699
700         * as/link/aslink.h,
701         * as/link/mcs51/aslink.h,
702         * as/link/z80/aslink.h: merged and moved to as/link/
703         * as/link/lkstore.c,
704         * as/link/mcs51/lkstore.c: moved to as/link/
705         * as/link/clean.mk: remove *.o
706         * as/link/mcs51/alloc.h: deleted
707         * as/link/mcs51/lkarea.c: added lnksect prototype
708         * as/link/mcs51/lkdata.c,
709         * as/link/mcs51/lklex.c,
710         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
711         * as/link/mcs51/lkmem.c,
712         * as/link/mcs51/lknoice.c: removed include strcmpi.h
713         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
714         * as/link/mcs51/aslink.dsp,
715         * as/link/mcs51/Makefile.aslink,
716         * as/link/mcs51/Makefile.bcc,
717         * as/link/mcs51/Makefile.in: updated for moved files
718         * as/link/z80/lkarea.c,
719         * as/link/z80/lkhead.c,
720         * as/link/z80/lklex.c,
721         * as/link/z80/lklibr.c,
722         * as/link/z80/lklist.c,
723         * as/link/z80/lkmain.c,
724         * as/link/z80/lkrloc.c,
725         * as/link/z80/lksym.c: synced with mcs51
726         * as/link/z80/lkdata.c,
727         * as/link/z80/lkeval.c,
728         * as/link/z80/lkihx.c,
729         * as/link/z80/lks19.c: cosmetic changes
730         * as/link/z80/Makefile.in,
731         * as/link/z80/linkgbz80.dsp,
732         * as/link/z80/linkz80.dsp: updated for moved files
733
734 2006-09-16 Borut Razem <borut.razem AT siol.net>
735
736         * debugger/mcs51/sdcdb.c: partially fixed
737           [ 1203664 ] sdcdb fails to open files w. two "." periods
738         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
739           debugger/mcs51/symtab.h: fixed indenting
740         * configure.in, configure: up to date with latest Maarten's changes
741
742 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
743
744         as/link/mcs51
745         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
746         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
747         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
748         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
749         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
750         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
751         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
752         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
753         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
754         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
755         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
756         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
757         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
758         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
759         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
760         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
761         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
762         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
763         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
764         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
765         as/link/mcs51/alloc.h,
766         as/link/mcs51/clean.mk,
767         as/link/mcs51/conf.mk,
768         as/link/mcs51/Makefile.bcc,
769         as/link/mcs51/Makefile.in,
770         as/link/mcs51/readme.390,
771         as/link/mcs51/strcmpi.c,
772         as/link/mcs51/strcmpi.h,
773         as/mcs51/clean.mk,
774         as/mcs51/Makefile.bcc,
775         as/mcs51/Makefile.in,
776         configure,
777         Makefile.in,
778         sdcc.dsw: moved mcs51 linker to as/link/mcs51
779
780 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
781
782         * as/link,
783         * as/link/Makefile.in,
784         * as/link/z80/linkgbz80.dsp,
785         * as/link/z80/linkz80.dsp,
786         * configure,
787         * link,
788         * link/clean.mk,
789         * link/Makefile.in,
790         * link/README,
791         * link/z80,
792         * link/z80/aslink.h,
793         * link/z80/clean.mk,
794         * link/z80/conf.mk,
795         * link/z80/linkgbz80.dsp,
796         * link/z80/linkz80.dsp,
797         * link/z80/lkarea.c,
798         * link/z80/lkdata.c,
799         * link/z80/lkeval.c,
800         * link/z80/lkgb.c,
801         * link/z80/lkgg.c,
802         * link/z80/lkhead.c,
803         * link/z80/lkihx.c,
804         * link/z80/lklex.c,
805         * link/z80/lklibr.c,
806         * link/z80/lklist.c,
807         * link/z80/lkmain.c,
808         * link/z80/lkrloc.c,
809         * link/z80/lks19.c,
810         * link/z80/lksym.c,
811         * link/z80/Makefile.in,
812         * Makefile.in,
813         * sdcc.dsw: moved link/ to as/link/
814
815 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
816
817         * as/mcs51/i51mch.c (machine): fixed warning
818
819 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
820
821         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
822
823 2006-09-09 Borut Razem <borut.razem AT siol.net>
824
825         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
826           sdcdb WIN32 native port
827         * src/clean.mk: fixed
828
829 2006-09-08 Borut Razem <borut.razem AT siol.net>
830
831         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
832
833 2006-09-08 Raphael Neider <rneider AT web.de>
834
835         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
836         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
837             to gplink to disable processor mismatch warning and to allow
838             the use of devices with only aliased (shared) memory banks,
839           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
840
841 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
842
843         * doc/sdccman.lyx: Some re-formating plus example on using
844           #pragma preproc_asm +/-
845
846 2006-09-07 Borut Razem <borut.razem AT siol.net>
847
848         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
849           section
850
851 2006-09-06 Borut Razem <borut.razem AT siol.net>
852
853         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
854           line at sdcc.nsi:153
855         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
856
857 2006-09-05 Borut Razem <borut.razem AT siol.net>
858
859         * configure.in, configure: support for winsock2
860         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
861           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
862           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
863           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
864           debugger/mcs51/symtab.h: sdcdb WIN32 native port
865
866 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
867
868         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
869           and OP_DEFS
870         * support/regression/tests/bug1551947.c: new, added
871         * src/SDCCsymt.h: strings are char* not byte*
872
873 2006-09-05 Raphael Neider <rneider AT web.de>
874
875         * device/lib/pic16/libdev/pic18f4550.c,
876           device/include/pic16/pic18f4550.h: added PORTD/TRISD
877             declarations/definitions from patch #1520949
878
879 2006-09-05 Raphael Neider <rneider AT web.de>
880
881         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
882           byte-aligned bitfields, fixes #1539278
883
884 2006-09-05 Raphael Neider <rneider AT web.de>
885
886         * src/pic/gen.c (genReceive): skip unreferenced arguments,
887           fixes #1544120
888
889 2006-09-04 Borut Razem <borut.razem AT siol.net>
890
891         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
892         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
893           -mno-cygwin is a part of the compiler name
894         * support/scripts/sdcc_mingw32: don't disable ucsim
895
896 2006-09-03 Borut Razem <borut.razem AT siol.net>
897
898         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
899         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
900
901 2006-09-03 Raphael Neider <rneider AT web.de>
902
903         * src/pic/ralloc.c,
904         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
905           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
906           fixes #1550049
907
908 2006-09-01 Borut Razem <borut.razem AT siol.net>
909
910         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
911           to make ppc-osx happy
912
913 2006-08-31 Borut Razem <borut.razem AT siol.net>
914
915         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
916         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
917         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
918         * support/regression/ports/ds390/spec.mk,
919           support/regression/ports/mcs51/spec.mk,
920           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
921           To run regression tests in mingw environment:
922           make DEV_NULL=NUL CC=gcc
923
924 2006-08-30 Borut Razem <borut.razem AT siol.net>
925
926         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
927           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
928           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
929           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
930           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
931           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
932           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
933           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
934           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
935           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
936           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
937           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
938           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
939           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
940           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
941           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
942           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
943           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
944           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
945           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
946           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
947           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
948           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
949           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
950           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
951           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
952           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
953           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
954           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
955           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
956           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
957           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
958           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
959           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
960           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
961           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
962           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
963           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
964           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
965           ucsim WIN32 native port
966
967 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
968
969         * doc/sdccman.lyx: added note on dynamic memory heap initialization
970
971 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
972
973         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
974         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
975
976 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
977
978         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
979         * support/regression/tests/bug1546986.c: new, added
980         * as/mcs51/.cvsignore,
981         * debugger/mcs51/.cvsignore,
982         * src/.cvsignore: deleted
983
984 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
985
986         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
987           definitions)
988
989 2006-08-20 Borut Razem <borut.razem AT siol.net>
990
991         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
992           removed cl_listen_console::match(), cl_console::match(),
993           restructured cl_commander::proc_input()
994
995 2006-08-16 Borut Razem <borut.razem AT siol.net>
996
997         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
998           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
999           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
1000
1001 2006-08-14 Borut Razem <borut.razem AT siol.net>
1002
1003         * support/regression/Makefile.in,
1004           support/regression/ports/pic14/gpsim.cmd,
1005           support/regression/ports/pic14/spec.mk,
1006           support/regression/ports/pic14/support.c:
1007           added pic14 regression test
1008
1009 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
1010
1011         * as/doc/asxhtm.html: documented changed ABS behaviour
1012         * as/doc/README: fixed some typos
1013
1014 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
1015
1016         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
1017           not defined on host
1018
1019 2006-08-12 Borut Razem <borut.razem AT siol.net>
1020
1021         * support/regression/fwk/include/testfwk.h,
1022           support/regression/fwk/lib/testfwk.c,
1023           support/regression/generate-cases.py,
1024           support/regression/Makefile.in:
1025           regression test framework does not depend on function pointers and
1026           variable arguments
1027
1028 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
1029
1030         * device/include/stddef.h: c temporary hack to fix bug 1518273
1031
1032 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1033
1034         * device/include/mcs51/cc2510fx.h: added
1035         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
1036           to projects.
1037
1038 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
1039
1040         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
1041         * as/z80/Makefile.in: added strcmpi.c
1042         * as/z80/z80adr.c: added upper case registers and lower case conditionals
1043         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
1044
1045 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
1046
1047         * device/lib/gbz80/asm_strings.s,
1048         * device/lib/gbz80/crt0_rle.s,
1049         * device/lib/gbz80/div.s,
1050         * device/lib/gbz80/mul.s,
1051         * device/lib/gbz80/shift.s,
1052         * device/lib/z80/asm_strings.s,
1053         * device/lib/z80/crt0_rle.s,
1054         * device/lib/z80/div.s,
1055         * device/lib/z80/mul.s,
1056         * device/lib/z80/shift.s: changed to all lower case menmonics except the
1057           flags which are all upper case
1058
1059 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1060
1061         * as/z80/asm.h: made CASE_SENSITIVE 1
1062         * link/z80/aslink.h: made CASE_SENSITIVE 1
1063         * src/z80/gen.c (throughout): made all conditionals upper case
1064         * support/regression/tests/bug1503067.c: new
1065
1066 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1067
1068         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
1069           (shiftIntoPair): added case 2 for PAIR_IY,
1070           (setupToPreserveCarry): replaced parameters with iCode and check if
1071            PAIR_DE is in use to fix bug 1399290,
1072           (genPlus, genMinus): updated call to setupToPreserveCarry
1073         * support/regression/tests/bug1399290.c: new
1074
1075 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
1076
1077         * device/lib/Makefile.in (Z80SOURCES): enabled float support
1078         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
1079         * src/ds390/gen.c (shiftRLong),
1080         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
1081         * src/mcs51/gen.c (sameReg): changed to sameByte,
1082           (xch_a_aopGet): new,
1083           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
1084            shiftRLong): fixed bug 1533966
1085         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
1086           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
1087         * support/regression/Makefile.in: disabled z80, enabled ucz80
1088         * support/regression/tests/float_trans.c: enabled test for z80 and host
1089         * support/regression/tests/shifts2.c: new, for testing bug 1533966
1090
1091 2006-08-01 Borut Razem <borut.razem AT siol.net>
1092
1093         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
1094           comparison is always false due to limited range of data type
1095           on PPC64 machine (openpower-linux1) where "char = unsigned char"
1096
1097 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
1098
1099         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
1100         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
1101         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
1102         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
1103
1104 2006-07-31 Borut Razem <borut.razem AT siol.net>
1105
1106         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
1107           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
1108           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
1109           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
1110           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
1111           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
1112           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
1113           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
1114           enable ucsim mingw compilation. Serial port is disabled,
1115           since it uses termios.h API, which is not available on native
1116           WIN32
1117
1118 2006-07-31 Borut Razem <borut.razem AT siol.net>
1119
1120         * Small Device C Compiler 2.6.0 released
1121         * support/scripts/sdcc.nsi: added FULL_DOC option
1122         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
1123
1124 2006-07-28 Borut Razem <borut.razem AT siol.net>
1125
1126         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
1127         * doc/INSTALL.txt: updated
1128
1129 2006-07-27 Borut Razem <borut.razem AT siol.net>
1130
1131         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
1132           device/lib/pic/libdev/Makefile.in: fixed bug
1133           [ 1438354 ] pic libsdcc: distclean doesn't work
1134         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
1135           device/lib/pic16/libio/Makefile.in: fixed bug
1136           [ 1438344 ] pic16 lib: clean doesn't work properly
1137         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
1138
1139 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
1140
1141         * device/lib/pic/libsdcc/fsdiv.c,
1142         * device/lib/pic/libsdcc/fsmul.c,
1143         * device/lib/pic16/libsdcc/float/fsdiv.c,
1144         * device/lib/pic16/libsdcc/float/fsmul.c,
1145         * device/lib/_fsdiv.c,
1146         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
1147         * support/regression/tests/bug1520966.c: added
1148         * doc/knownbugs.html: removed [ 1520966 ] from the list
1149
1150 2006-07-25 Borut Razem <borut.razem AT siol.net>
1151
1152         * configure.in, configure, sdccconf_in.h: fixed bug
1153           [ 1519095 ] regression test onebyte.c fails on ppc64 host
1154         * doc/knownbugs.html: removed [ 1519095 ] from the list
1155
1156 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
1157
1158         * doc/knownbugs.html: added, contains list of known bugs at release
1159         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
1160
1161 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
1162
1163         * device/include/mcs51/compiler.h: added SFRX for xdata based special
1164           function registers and corrected defaults with additional warning
1165         * device/lib/malloc.c: cosmetic changes
1166         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
1167         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
1168           (fillGaps): and used it
1169
1170 2006-07-20 Raphael Neider <rneider AT web.de>
1171
1172         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
1173           output unless SDCCPICDEBUG is set
1174         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
1175           output if SILENT is set
1176
1177 2006-07-11 Borut Razem <borut.razem AT siol.net>
1178
1179         * doc/README.txt: updated
1180
1181 2006-07-10 Borut Razem <borut.razem AT siol.net>
1182
1183         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
1184           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
1185           in WIN32 installation
1186         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
1187           release candidate 1
1188
1189 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
1190
1191         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
1192         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
1193
1194 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
1195
1196         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
1197
1198 2006-07-06 Borut Razem <borut.razem AT siol.net>
1199
1200         * support/regression/tests/bitfields.c:
1201           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
1202         * support/regression/tests/constantRange.c:
1203           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
1204
1205 2006-07-04 Borut Razem <borut.razem AT siol.net>
1206
1207         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
1208           src/port.mk,
1209           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1210           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1211           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1212           reverted changes from 2006-07-03
1213         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
1214         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
1215           added CPPFLAGS, used by the host port
1216
1217 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
1218
1219         * support/regression/valdiag/tests/switch.c,
1220         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
1221         * support/regression/tests/libmullong.c: fixed for host
1222         * support/regression/ports/host/spec.mk: disable all warnings for host,
1223         SDCC runs with --less-pedantic too
1224
1225 2006-07-03 Borut Razem <borut.razem AT siol.net>
1226
1227         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
1228           defined CPPFLAGS
1229         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
1230         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1231           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1232           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1233           include ../port.mk
1234         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
1235           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1236           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
1237           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
1238
1239 2006-07-02 Raphael Neider <rneider AT web.de>
1240
1241         * src/pic16/devices.inc,
1242         * device/include/pic16/pic18fregs.h,
1243         * device/include/pic16/pic18f4550.h,
1244         * device/lib/pic16/pics.all,
1245         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
1246
1247 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
1248
1249         * as/hc08/lkaomf51.c (OutputName),
1250         * as/mcs51/lkaomf51.c (OutputName),
1251         * as/z80/asmain.c (asmbl),
1252         * src/ds390/main.c (asmLineNodeFromLineNode),
1253         * src/hc08/ralloc.c (hc08_assignRegisters),
1254         * src/mcs51/main.c (asmLineNodeFromLineNode),
1255         * src/xa51/ralloc.c (checkRegMask),
1256         * src/xa51/gen.c (emitcode),
1257         * src/z80/gen.c (_emit2),
1258         * src/SDCCast.c (searchLitOp),
1259         * src/SDCCglobl.h,
1260         * support/packihx/packihx.c,
1261         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
1262         * src/ds390/gen.c (aopPutUsesAcc),
1263         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
1264         * support/regression/tests/libmullong.c (mullong_wrapper),
1265         * src/SDCCsymt.c (powof2),
1266         * src/SDCCast.c,
1267         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
1268         * src/SDCCsymt.h: added TYPE_TARGET_*
1269         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
1270         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
1271         SDCCast because 1) header problems 2) this is the right place
1272         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
1273         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
1274         prototype
1275
1276 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
1277
1278         * src/SDCCicode.h: removed buggy semicolon in unused macro
1279         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
1280         search for previous definiton of auto symbols too,
1281         (findPrevUse): fixed logic of emitWarnings
1282
1283 2006-06-26 Raphael Neider <rneider AT web.de>
1284
1285         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
1286           PCLATH and PCLATU on interrupts, potentially fixes #1505141
1287
1288 2006-06-25 Raphael Neider <rneider AT web.de>
1289
1290         * device/lib/pic/libm: NEW, added math library functions
1291         * device/lib/pic/libsdcc: NEW; added float support functions
1292         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
1293         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
1294           NEW, added math related headers
1295         * device/include/asm/pic/features.h: NEW
1296         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
1297           (popGet): allow larger offsets for AOP_PCODE,
1298           (genDataPointerSet): handle literals explicitly, more debug output,
1299           (genAssign): fixed for float using aopLiteral ;-)
1300         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
1301           GOTO initialisation routine
1302         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
1303           flag on registers, fixes #1469043 (local variables do not work)
1304         * src/pic/main.c (_pic14_do_link),
1305         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
1306           available
1307
1308 2006-06-25 Borut Razem <borut.razem AT siol.net>
1309
1310         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
1311           characters printed (not including the trailing '\0' used to end
1312           output to strings). Problem detected in regression test bug-927659.c.
1313           NOTE: printf() family functions should return int instead
1314           unsigned int!
1315         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
1316           specifier are printed as themselves
1317         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
1318           support flags, width and precision specifiers
1319
1320 2006-06-24 Borut Razem <borut.razem AT siol.net>
1321
1322         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
1323           to the list of sdcc tagrets not supporting bit type
1324         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
1325           testfor pic16 due to bug:
1326           [ 1511794 ] pic16: regression test bug-895992.c fails
1327
1328 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
1329
1330         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
1331         * src/SDCCglue.c (initPointer), fixed bug 1496419
1332         * support/regression/tests/bug1496419.c: new, added
1333
1334 2006-06-22 Borut Razem <borut.razem AT siol.net>
1335
1336         * support/regression/ports/pic16/support.c: use gpsim usart module from
1337           libgpsim_modules library
1338
1339 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1340
1341         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
1342         IP0H to IPH0.
1343
1344 2006-06-19 Raphael Neider <rneider AT web.de>
1345
1346         * src/pic/glue.h,src/pic16/glue.h: added prototypes
1347         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
1348           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
1349           (pic14printExterns,pic14printPublics,pic16printPublics,
1350           pic16_printExterns): use new functions to emit symbols
1351           (picglue,pic16glue): emit publics before emitting externs
1352         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
1353           locally defined functions to avoid bug #1443651
1354         * support/regression/tests/bug-716242.c: removed pic16 workaround
1355         * support/regression/ports/pic16/spec.mk: ignore errors during build
1356
1357 2006-06-19 Raphael Neider <rneider AT web.de>
1358
1359         * src/pic/glue.h: added pic14aopLiteral prototype
1360         * src/pic/glue.c (pic14aopLiteral): return unsigned int
1361         * src/pic/gen.c: removed stdint.h dependency
1362           (aopGet): use Safe_strdup()
1363           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
1364           (genDataPointerSet): use pic14aopLiteral()
1365         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
1366           for pic16; thanks to Bernhard and Maarten
1367
1368 2006-06-18 Borut Razem <borut.razem AT siol.net>
1369
1370         * support/regression/tests/structflexarray.c: flexible array members
1371           not supported by gcc < 3
1372         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
1373           GUI tool by default
1374         * src/pic/gen.c: don't include [p]strdin.h on solaris
1375         * support/Util/pstdint.h: addad svn attributes
1376         * support/regression/tests/constantRange.c,
1377           support/regression/tests/rotate.c: include inttypes.h instead
1378           stdint.h on solaris, addad svn attributes
1379
1380 2006-06-18 Raphael Neider <rneider AT web.de>
1381
1382         * src/SDCCsymt.c (initCSupport): change return type of divschar to
1383           int for PIC16
1384         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
1385           (pic16_genMinusBits): simplified sign-extension
1386           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
1387             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
1388             adjusted to correctly handle mixed-signed operands, disabled
1389             now unused multiplciation routines
1390         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
1391           (assignResultValue): added argument denoting the size of the result
1392             as returned by the function (fixes upcasts in assigning from
1393             function calls: char foo(); int i = foo();)
1394           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
1395             function result to assignResultValue
1396           (genMult): disabled inlined multiplication code
1397           (genDiv): augmented to also handle the modulus operator, fixed to
1398             handle mixed-signed operands correctly
1399           (genMod): simply call genDiv, disabled unused code
1400           (genAssign): fixed missing (sign-)extension on result
1401         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
1402             valid char operands, allow signed operands for native code, added
1403             division and modulo operator handling
1404         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
1405
1406         As a consequence, onebyte.c (if split into two files) and muldiv.c
1407         pass regression tests.
1408
1409 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1410
1411         * doc/Makefile.in: two runs of makeindex seem needed to get
1412         correct page references in the index of sdccman.pdf
1413         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
1414
1415 2006-06-17 Borut Razem <borut.razem AT siol.net>
1416
1417         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
1418
1419 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1420
1421         * doc/sdccman.lyx: updated, added (porting source code, debugging),
1422         mentioned ec2drv and paulmon
1423
1424 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
1425
1426         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
1427           consecutive abs areas
1428           (find_empty_space, allocate_space): added map to handle codemap or
1429            xdatamap,
1430           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
1431            absolute idata and xdata
1432         * as/mcs51/lkmem.c (summary2): updated legend
1433
1434 2006-06-16 Raphael Neider <rneider AT web.de>
1435
1436         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
1437
1438 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
1439
1440         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
1441           1208515
1442         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
1443
1444 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
1445
1446         * src/port.h (struct PORT): added field gp_tags, to hold the tag
1447         value of generic pointers,
1448         * src/avr/main.c,
1449           src/ds390/main.c,
1450           src/hc08/main.c,
1451           src/izt/i186.c,
1452           src/izt/tlcs900h.c,
1453           src/mcs51/main.c,
1454           src/pic/main.c,
1455           src/pic16/main.c,
1456           src/xa51/main.c,
1457           src/z80/main.c: PORT structure, added elements for gp_tags field,
1458         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
1459         fields in the PORT structure of each port,
1460         * src/SDCCast.c (decorateType): allow processing of generic pointers
1461         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
1462         S_FIXED symbols
1463
1464 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
1465
1466         * link/z80/lkgb.c,
1467         * link/z80/lkgg.c,
1468         * src/pic16/gen.c,
1469         * src/pic16/main.c,
1470         * src/pic16/pcode.c,
1471         * src/pic/main.c,
1472         * src/pic/pcoderegs.c,
1473         * src/SDCCicode.c,
1474         * src/SDCCmain.c,
1475         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
1476           bug 1504689 on minGW
1477
1478 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1479
1480         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
1481
1482 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
1483
1484         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
1485
1486 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
1487
1488         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
1489           for optimization
1490
1491 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
1492
1493         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
1494         to a char variable. Fixed bug #1504211
1495         * device/include/pic16/adc.h,
1496         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
1497         and fixed bug #1364390
1498
1499 2006-06-10 Borut Razem <borut.razem AT siol.net>
1500
1501         * CVSROOT: removed the CVS left-over
1502
1503 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1504
1505         * as/hc08/asmain.c (asexit),
1506         * as/hc08/lkmain.c (lkexit),
1507         * as/mcs51/asmain.c (asexit),
1508         * as/mcs51/lkmain.c (lkexit),
1509         * src/SDCCglue.c (DEFSETFUNC),
1510         * src/SDCCmain.c (linkEdit, assemble),
1511         * support/librarian/sdcclib.c (AddRel),
1512           replaced unlink() by standard C remove()
1513         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
1514         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
1515           gatherImplicitVariables): new, added to fix bug 608752,
1516           (createFunction): added gatherImplicitVariables()
1517         * src/SDCCast.h: added createRMW prototype
1518         * src/SDCCsymt.h (struct symbol): added infertype
1519         * support/regression/tests/bug608752.c: new, added
1520
1521 2006-06-10 Raphael Neider <rneider AT web.de>
1522
1523         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
1524           multibyte dummy reads (fixes #1503234)
1525
1526 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1527
1528         * device/include/mcs51/compiler.h: new, added header file to enable
1529           creating common sfr definition header files for different compilers
1530
1531 2006-06-05 Raphael Neider <rneider AT web.de>
1532
1533         * src/pic16/{pcode.h,genarith.c}:
1534           introduced pCodeOp combining any two pCodeOps (previously only
1535           two register operands could be combined), removed pcop2 from
1536           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
1537         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
1538         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
1539           rewritten to use new PO_TWO_OPS
1540         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
1541         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
1542           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
1543           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
1544           (pic16_get_op): embraced return arg to allow #define return(x),
1545             added new case for combined opcodes
1546           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
1547           (pic16_pCode2str,pic16_getRegFrompCodeOp,
1548            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
1549
1550 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
1551
1552         * src/SDCCval.c (checkConstantRange): added
1553         * src/SDCCval.h: added checkConstantRange
1554         * support/Util/SDCCerr.c,
1555         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
1556         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
1557         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
1558         * src/SDCCast.c (decorateType): added checkConstantRange,
1559         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
1560         can be emitted with the correct always true/false warning,
1561         added optimization for double '!';
1562         result of decorateType() must be assigned back to the tree, because
1563         decorateType() can change the tree
1564         * src/SDCCicode.c (geniCodeLogic),
1565         (geniCodeAssign): replaced new checkConstantRange, added warnings,
1566         (checkConstantRange): removed, it was only a fragment which never
1567         emitted a warning
1568         * src/SDCCsymt.c (computeType): fixed promotion for
1569         "-1 < (unsigned bit) b"
1570         * src/pic/ralloc.c (packRegsForAssign),
1571         * src/pic16/ralloc.c (packRegsForAssign),
1572         * src/hc08/ralloc.c (packRegsForAssign),
1573         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
1574         from mcs51
1575         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
1576         * support/regression/tests/constantRange.c: added
1577         * support/valdiag/tests/constantRange.c: added
1578         * support/valdiag/valdiag.py: added -DPORT_HOST=1
1579
1580 2006-06-02 Borut Razem <borut.razem AT siol.net>
1581
1582         * support/regression/ports/pic16/support.c: increase stack size
1583           to 255 bytes
1584         * support/regression/Makefile.in: sort tests by name so that the
1585           resutlts can be compared on different machines / platforms
1586
1587 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1588
1589         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
1590         * src/ds390/gen.c (emitLabel): new, added,
1591           (genDjnz): fixed stack overflow bug,
1592           (throughout): cosmetic changes to sync with mcs51/gen.c,
1593           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
1594         * src/mcs51/gen.c (genEndFunction): small optimization,
1595           (throughout): cosmetic changes to sync with ds390/gen.c
1596
1597 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1598
1599         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
1600           (_print_format): fixed printing pointers
1601         * src/mcs51/gen.c (emitLabel, movb): new, added,
1602           (genAssign): small optimization,
1603           (genDjnz): fixed stack overflow bug,
1604           (throughout): replaced sprintf with SNPRINTF,
1605           replaced mcs51_regWithIdx with REG_WITH_INDEX,
1606           replaced emitcode("mov", "b,...") with MOVB(...),
1607           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
1608           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1609         * src/mcs51/peeph.def: added rules 140 and 264
1610         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
1611           so they may get optimized into registers
1612
1613 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
1614
1615         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
1616           immediately when encountered,
1617           (printUsage): always use stderr even on windows
1618
1619 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
1620
1621         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
1622         (processParms): fixed bug #1247551
1623         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
1624         parseCmdLine, main): print '--version' to stdout,
1625         print 'help' to stdout if --help is given,
1626         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
1627         arguments are given; fixed --help
1628
1629 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
1630
1631         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
1632         * support/regression/tests/bug-1493710.c: added
1633
1634 2006-05-27 Borut Razem <borut.razem AT siol.net>
1635
1636         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
1637           static instead auto
1638         * support/regression/ports/pic16/support.c: increase stack size
1639           from default 64 bytes to 128 bytes
1640         * support/regression/tests/staticinit.c,
1641           support/regression/tests/float.c: regression tests fully enabled
1642           for pic16 port by putting the initialized data arrays into the code
1643           section
1644         * support/regression/ports/pic16/spec.mk: don't link default libraries.
1645           This was changed by mistake in the previous version.
1646
1647 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
1648
1649         * src/pic16/gen.c (genFunction, genEndFunction): some
1650         beautifications, fixed bug with falsely restoring FSR2 in large
1651         stack model, thanks to Beau E. Cox for reporting the bug
1652
1653 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1654
1655         * debugger/mcs51/break.c,
1656         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
1657           use %p to print pointers, made address variables unsigned
1658         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
1659         * debugger/mcs51/symtab.c (parseSymbol): must return something
1660         * src/mcs51/gen.c (aopForSym): small optimization,
1661            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
1662           (freeAsmop): added missing break,
1663           (aopPut): removed parameter bvolatile, determine it inside the function,
1664           (saveRegisters, unsaveRegisters): small optimization,
1665           (genIpush): removed pointless check,
1666           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
1667           replaced sprintf with SNPRINTF,
1668           replaced strcpy with strncpyz,
1669           updated aopPut calls,
1670           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1671         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
1672
1673 2006-05-24 Borut Razem <borut.razem AT siol.net>
1674
1675         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
1676           modification of test for the pic16 port, put the array to the code
1677           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
1678
1679 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1680
1681         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
1682         * support/Util/pstdint.h: added
1683
1684 2006-05-22 Borut Razem <borut.razem AT siol.net>
1685
1686         * src/regression/Makefile: removed bool2.c test, added -q linker option
1687         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
1688           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
1689           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
1690           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
1691           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
1692           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
1693           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
1694           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
1695           define SUPPORT_BIT_TYPES 0, removed unused bit variables
1696
1697 2006-05-22 Raphael Neider <rneider AT web.de>
1698
1699         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
1700           bug #1492360 (problematic due to generic pointers, see code)
1701
1702 2006-05-22 Borut Razem <borut.razem AT siol.net>
1703
1704         * support/regression/ports/pic16/specs.mk: removed stack size linker
1705           directive
1706         * support/regression/tests/array.c,
1707           support/regression/tests/bitopcse.c,
1708           support/regression/tests/bug-908454.c,
1709           support/regression/tests/malloc.c: modified for pic16 regression test
1710         * support/regression/tests/bitfields.c:
1711           pic16 - excluded bitfileds of size > 8
1712         * support/regression/tests/bp.c: pic16 - reduced data size
1713         * support/regression/tests/bug-221100.c: pic16 - reduced data size
1714         * support/regression/tests/bug-460010.c:
1715           pic16 - used the absolute address the fits in memory
1716         * support/regression/tests/bug-716242.c:
1717           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
1718         * support/regression/tests/float.c:
1719           pic16 - excluded - data size too big
1720         * support/regression/tests/onebyte.c:
1721           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
1722         * support/regression/tests/shifts.c:
1723           pic16 - function names probably have to differ in first X characters
1724           (gpasm limitation?)
1725         * support/regression/tests/staticinit.c:
1726           pic16 - excluded some tests due error: no target memory available for
1727           section ".idata"
1728
1729 2006-05-22 Borut Razem <borut.razem AT siol.net>
1730
1731         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1732           second try. Thanks Stas Sergeev once more.
1733
1734 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1735
1736         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
1737           (genLeftShift, genRightShift): fixed bug 1491627
1738         * src/hc08/peeph.def (rules 7, 8.x): added
1739         * support/regression/tests/shifts.c (ShiftLeftByParam,
1740           ShiftRightByParam, testShiftByParam): added to test variable shifting
1741
1742 2006-05-20 Raphael Neider <rneider AT web.de>
1743
1744         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
1745         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
1746           (allocReg): add only new registers to dynAllocRegs,
1747           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
1748             #1489055, #1445850, and probably #1483693
1749
1750 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
1751
1752         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
1753         bug in for-loop that didn't emit the last of CONFIG and ID registers
1754
1755 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
1756
1757         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
1758           with offset
1759         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
1760           1489016, 1434401 and 1490124
1761         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
1762           1489016, 1434401 and 1490124
1763
1764 2006-05-17 Borut Razem <borut.razem AT siol.net>
1765
1766         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1767           thanks Stas Sergeev
1768
1769 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1770
1771         * device/include/mcs51/P89c51RD2.h,
1772         * device/include/mcs51/P89LPC901.h,
1773         * device/include/mcs51/P89LPC922.h,
1774         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
1775
1776 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1777
1778         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
1779         to fix missing stack pragma in compiled binary object file,
1780
1781 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
1782
1783         * support/packihx/configure.in,
1784         * support/packihx/configure: removed warning, autoconf >= 2.5x can
1785         determine sizeof basic types even while cross compiling
1786
1787 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
1788
1789         * src/avr/gen.c (aopop),
1790         * src/ds390/gen.c (aopOp),
1791         * src/hc08/gen.c (aopOp),
1792         * src/mcs51/gen.c (aopop),
1793         * src/pic16/gen.c (pic16_aopOp),
1794         * src/pic/gen.c (aopOp),
1795         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
1796         if size of operand is smaller than spill location
1797
1798 2006-05-12 Borut Razem <borut.razem AT siol.net>
1799
1800         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
1801           have to have CR/LF line endings even if they are checked out on *nix
1802           or on WIN32 in cygwin binmode
1803
1804 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
1805
1806         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
1807         * device/include/ds80c390.h: added sfr16 definitions
1808         * src/ds390/gen.c,
1809         * src/ds390/gen.h,
1810         * src/ds390/main.c,
1811         * src/ds390/ralloc.c,
1812         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
1813           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
1814           bit returning functions
1815         * support/regression/tests/sfr16.c: enabled test on ds390
1816
1817 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1818
1819         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
1820         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
1821
1822 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1823
1824         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
1825         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
1826           (cl_address_space constructor): removed expensive initialization,
1827           (cl_address_space::get_cell): extended for late initialization,
1828           (cl_address_space::*): use late initialization,
1829           (cl_address_decoder::activate): removed expensive initialization,
1830           This reduced regression test running time by 25%
1831
1832 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
1833
1834         * packihx/,
1835         * configure.in,
1836         * configure,
1837         * sdcc.dsw,
1838         * Makefile.bcc,
1839         * Makefile.in,
1840         * support/packihx/Makefile.in,
1841         * support/packihx/clean.mk,
1842         * support/packihx/Makefile.bcc,
1843         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
1844
1845 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1846
1847         * src/SDCCval.c (valNot): fix for regression test failure
1848           of not.c on big endian hosts
1849
1850 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1851
1852         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
1853
1854 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1855
1856         * device/lib/mcs51/Makefile.in: changed string comparison operator
1857           to = for POSIX compliance; == is bash extension
1858
1859 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1860
1861         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
1862           kosmonaut_pirx
1863
1864 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
1865
1866         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
1867         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
1868         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
1869         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
1870         bug report #1478657,
1871
1872 2006-05-05 Borut Razem <borut.razem AT siol.net>
1873
1874         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
1875           making the html
1876
1877 2006-05-02 Borut Razem <borut.razem AT siol.net>
1878
1879         * doc/Makefile.in: removed *.ind dependency since there is no rule to
1880           create *.ind, which made make to fail if invoked with -j 2
1881
1882 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
1883
1884         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
1885           Hubert Sack for patch 1479782
1886
1887 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
1888
1889         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
1890
1891 2006-05-01 Raphael Neider <rneider AT web.de>
1892
1893         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
1894           (create_pic): store only prefix-free device name,
1895           (init_pic): check for device names with "16" prefix,
1896           (list_valid_pics),
1897         * src/pic/device.h (struct PIC_device),
1898         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
1899             stored device name,
1900         * device/include/pic/pic12f{635,675,629,683}.h,
1901         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
1902         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
1903         * device/include/pic/pic16f505.h,
1904         * device/lib/pic/libdev/pic16f505.c: removed
1905         * device/include/pic/pic14devices.txt: added support for pic12f
1906             devices, removed unsupported non 16-bit devices
1907             [above changes provided by patch from Zik Saleeba]
1908         * src/pic/*, src/pic16/*, device/include/pic16/*,
1909           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
1910
1911 2006-05-01 Borut Razem <borut.razem AT siol.net>
1912
1913         * configure.in, configure, doc/Makefile.in:
1914           sync with nightly build makefile - latex, dvipdf and dvips
1915           not needed any more
1916
1917 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
1918
1919         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
1920         in the library source
1921
1922 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
1923
1924         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
1925
1926 2006-04-28 Raphael Neider <rneider AT web.de>
1927
1928         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
1929         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
1930           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
1931         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
1932
1933 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
1934
1935         * device/lib/pic/libdev/Makefile.in,
1936         * device/lib/hc08/Makefile.in,
1937         * device/lib/gbz80/Makefile.in,
1938         * device/lib/z80/Makefile.in,
1939         * device/lib/ds390/Makefile.in,
1940         * device/lib/ds400/Makefile.in: added srcdir to include search path,
1941         thanks to Borut for the bug report
1942         * configure.in,
1943         * configure: always create doc/Makefile independent from --enable-doc
1944         * Makefile.in: always install from directory doc independent from
1945         --enable-doc
1946         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
1947         removed
1948         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
1949         * doc/Makefile.in: install *.txt if present
1950         * device/include/Makefile.in (install): added installation of pic/*.inc
1951         and pic/*.txt files again, they were erroneously removed
1952
1953 2006-04-28 Raphael Neider <rneider AT web.de>
1954
1955         * src/pic/{gen.c,main.h,pcode.c},
1956         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
1957             concerning signedness with casts
1958
1959 2006-04-28 Raphael Neider <rneider AT web.de>
1960
1961         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
1962             definition of an interrupt handler,
1963         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
1964             interrupt handler stuff from picglue() to separate routine,
1965           (picglue): enabled definition of intr handlers in files w/o main()
1966
1967 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1968
1969         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
1970           compilation with MSVC 2005 Express Edition (VC8)
1971
1972 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
1973
1974         * device/lib/Makefile: fixed build of gbz80 lib
1975
1976 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1977
1978         * support/regression/tests/bug-460010.c,
1979         * support/regression/tests/bug-524691.c,
1980         * support/regression/tests/bug-716242.c: removed conditional defines
1981           that are already in testfwk.h
1982
1983 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1984
1985         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
1986           (AccAXRsh1): added, shift right by 1,
1987           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
1988            AccAXLrl1
1989         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
1990
1991 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
1992
1993         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
1994         remove cast to same type
1995         * src/SDCCast.c (decorateType): fix for RFE 1475742,
1996         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
1997         * as/z80/Makefile,
1998         * link/z80/Makefile: removed, they have moved to
1999         Makefile.in files
2000         * configure,
2001         * configure.in: replaced duplicate message about ucsim by missing sdcpp
2002         * install-sh: fix bug #1204398 by setting umask 0022
2003         * device/lib/Makefile: separate build of z80 and gbz80 lib
2004
2005 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
2006
2007         Enabled VPATH feature: changed nearly all Makefiles (149 files).
2008         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
2009
2010         One basic decision: e.g. src/clean.mk includes further files. In order
2011         to make this work there are two solutions:
2012         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
2013           run configure on them. This way they can use
2014           'include $(srcdir)/port-clean.mk'
2015         - always include clean.mk by the Makefile at the same level. To avoid
2016           that `make clean` tries to include and build Makefile.dep the
2017           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
2018           implemented, because now even `make uninstall` doesn't create
2019           Makefile.in. clean.mk could be eliminated by pasting it in
2020           Makefile.in.
2021
2022         * debugger/mcs51/Makefile.in: build own objects from library sources
2023         (SLIB, SDCC) in current directory
2024
2025         * configure, configure.in: renamed --disable-device-lib-build in
2026         --disable-device-lib; added --enable-doc, the required tools are
2027         searched by configure; added result message; the toolchain for the
2028         belonging ports are now only built, if the port is enabled.
2029
2030         * support/regression/*: all output is written in directory gen, because
2031         the fwk and ports directories don't livet in the build tree using vpath
2032
2033         * doc/sdccman.lyx: renamed --disable-device-lib-build to
2034         --disable-device-lib, added --enable-doc, added section VPATH
2035
2036         * sim/ucsim/configure.in,
2037         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
2038         z80 are enabled by default
2039
2040 2006-04-24 Raphael Neider <rneider AT web.de>
2041
2042         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
2043             to config word, "pic14_"-prefixed some extern functions
2044           (pic14_emitConfigWord): emit __config directive(s) if assignment to
2045             config word has been found
2046         * src/pic/device.h: added prototypes
2047         * src/pic/pcode.c: added "pic14_"-prefix where needed
2048         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
2049             fixup
2050         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
2051             words,
2052           (pic14emitRegularMap): ignore config words,
2053           (pic14createInterruptVect): moved generating __config directives away
2054           (picglue): have __config directives emitted
2055
2056 2006-04-24 Borut Razem <borut.razem AT siol.net>
2057
2058         * doc/Makefile: sync with nightly build makefile
2059
2060 2006-04-24 Raphael Neider <rneider AT web.de>
2061
2062         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
2063             registers that have not been assigned proper liveranges,
2064             fixes #1469504 and #1474602,
2065           (pCodeRegOptimizeRegUsage): fixed typo in comment
2066
2067 2006-04-24 Borut Razem <borut.razem AT siol.net>
2068
2069         * device/examples/main8051.c: deleted - it was removed from CVS
2070           24.mar.2000 and after that modified 18.feb.2001, so it reappered
2071           after the transition to Subversion
2072         * src/SDCCalloc.h: deleted - it was removed  from CVS
2073           3.feb.2001 and after that modified 18.feb.2001, so it reappered
2074           after the transition to Subversion
2075         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
2076           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
2077           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
2078           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
2079
2080 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
2081
2082         * as/asx8051.dsp: added mcs51/strcmpi.h
2083         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
2084         * as/hc08/aslink.h: updated lnksect prototype
2085         * as/hc08/asm.h,
2086         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
2087         * as/hc08/asmain.c,
2088         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
2089           (newdot): handle A_ABS
2090         * as/hc08/asout.c,
2091         * as/mcs51/asout.c (outarea): output address
2092         * as/hc08/lkaomf51.c,
2093         * as/mcs51/lkaomf51.c: disabled unused array UsageType
2094         * as/hc08/m08pst.c,
2095         * as/mcs51/i51pst.c,
2096         * as/z80/z80pst.c: "ABS" is not A_OVR
2097         * as/hc08/lkarea.c (newarea): read a_addr,
2098           (lnkarea): added codemap array, sort absolute areas to the front,
2099            combine all GSINITx/GSFINAL,
2100           (find_empty_space, allocate_space): new functions,
2101           (lnksect): return next address, handle absolute sections
2102         * as/mcs51/lkarea.c (newarea): read a_addr,
2103           lnksect2 prototype changed,
2104           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
2105           (find_empty_space, allocate_space): new, factored out of lnksect2,
2106           (lnksect2): return next address, handle absolute sections
2107         * as/hc08/lkhead.c,
2108         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
2109         * as/hc08/lklibr.c (addfile, fndsym),
2110         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
2111           index out of range and detect both '\' and '/'
2112         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
2113         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
2114           regression tests (ds390 cannot return bool yet)
2115         * doc/sdccman.lyx: changed version number, document changed --no-peep,
2116           document critical interrupts on z80, document changed SDCC define
2117         * src/asm.c (_asxxxx_mapping): fixed .org directive,
2118           (_a390_mapping): added .org directive
2119         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
2120           (genMultOneByte): fixed warnings
2121         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
2122           ones
2123         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
2124         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
2125           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
2126         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
2127         * src/pic16/main.c: removed newReg prototype
2128         * src/pic16/pcode.c,
2129         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
2130           warnings
2131         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
2132           ones
2133         * src/pic16/ralloc.c
2134         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
2135           to fix warnings
2136         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
2137           from short to PIC_OPTYPE
2138         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
2139         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
2140           optype from short to PIC_OPTYPE
2141         * src/port.h: made int_size unsigned to fix warnings
2142         * src/SDCC.y: fixed warning on MSVC
2143         * src/SDCCicode.c (getArraySizePtr): return unsigned int
2144         * src/SDCCopt.c (convertToFcall): fixed warnings
2145         * src/SDCCsymt.h: removed double prototype for genSymName
2146         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
2147           offset int to fix warnings
2148
2149 2006-04-22 Borut Razem <borut.razem AT siol.net>
2150
2151         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2152           references to CVS replaced with Subversion
2153
2154 2006-04-21 Borut Razem <borut.razem AT siol.net>
2155
2156         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2157           references to CVS replaced with Subversion
2158
2159 2006-04-19 Borut Razem <borut.razem AT siol.net>
2160
2161         * src/version.awk: adapted for svn
2162         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
2163           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
2164           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
2165           /binutils-avr/etc/*.vi, *.jin: removed all properties
2166           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
2167
2168 2006-04-19 Borut Razem <borut.razem AT siol.net>
2169
2170         * CVS to Subversion migration completed
2171
2172 2006-04-18 Borut Razem <borut.razem AT siol.net>
2173
2174         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
2175           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
2176
2177 2006-04-17 Borut Razem <borut.razem AT siol.net>
2178
2179         * device/include/Makefile.in: added pic/*.inc to the installation
2180
2181 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
2182
2183         * support/regression/collate-results.py: fixed output in case of
2184         a valdiag error
2185         * support/regression/generate-cases.py: fixed splitting of pathnames
2186         with dots
2187         * as/hc08/lklibr.c (addfile),
2188         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
2189
2190 2006-04-11 Raphael Neider <rneider AT web.de>
2191
2192         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
2193         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
2194         * src/pic16/pcode.c (assignValnums): fixed #1460578
2195
2196 2006-04-11 Raphael Neider <rneider AT web.de>
2197
2198         * device/lib/pic/libdev/*.c,
2199         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
2200           fixes #1468739, enables compilation in --std-c99 mode
2201         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
2202
2203 2006-04-11 Raphael Neider <rneider AT web.de>
2204
2205         * src/pic/device.c (find_device): removed debug output
2206           (list_valid_pics): enabled verbose listing of supported devices
2207         * device/include/stdbool.h: define bool as char for pic14/16 as well
2208
2209 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2210
2211         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
2212
2213 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2214
2215         * .version: bumped version to 2.5.6
2216         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
2217
2218 2006-04-06 Raphael Neider <rneider AT web.de>
2219
2220         * .version: bumped version to 2.5.6 (pic14 ABI changed)
2221         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
2222         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
2223           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
2224             pic14_constructAbsMap
2225           (pic14printPublics): declare absolute global symbols as global
2226           (pic14createInterruptVect),
2227         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
2228           (newReg): assume new registers unused, use correct name in
2229             hashtable (reg->name instead of name), more debugLog output
2230         * src/pic/device.h (PIC_device): added fields for verbose output
2231         * src/pic/device.c: moved device definition to pic14devices.txt,
2232             added routines for runtime parsing of pic14devices.txt,
2233             added support for second config word
2234         * src/pic/main.c (_process_pragma): removed #pragma maxram,
2235           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
2236           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
2237           (_pic14_parseOptions): moved pCodeInitRegisters here
2238           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
2239         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
2240           (pCodeInitRegisters): rewrapped comments, perpared new approach to
2241             handling the pseudo stack
2242         * device/lib/Makefile.in: ignore failures in objects-pic16,
2243         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
2244         * device/lib/pic/NEWS: document new dependency on picXXX.lib
2245         * device/lib/pic/Makefile.subdir,
2246         * device/lib/pic16/Makefile.subdir: improved clean rules
2247         * device/lib/pic/libdev/: NEW, pic14 device libraries
2248         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
2249         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
2250         * device/include/Makefile.in: create subdir and install pic14 headers
2251         * device/include/pic/p16f_common.inc: removed unused declarations
2252         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
2253             PICs from inc2h.pl v1.6,
2254             replaced BIT_AT macros with struct declarations
2255         * device/include/pic/pic14devices.txt: definition of supported devices,
2256             all above improvements contributed by Zik Saleeba, thanks
2257         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
2258         * support/scripts/sdcc.nsi: also install pic14 device libraries and
2259             headers
2260
2261 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2262
2263         * device/include/mcs51/c8051f410.h: added interrupt numbers,
2264         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
2265           thanks to Charles Olds
2266
2267 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2268
2269         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
2270
2271 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2272
2273         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
2274         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
2275         * support/regression/bug1464657.c: added, new test
2276
2277 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2278
2279         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
2280           version number
2281
2282 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2283
2284         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
2285           --no-peep and --peep-file <file> are used don't use default rules but
2286           do use the <file>
2287
2288 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2289
2290         * src/mcs51/gen.c (genCall): fixed bug 1457608
2291
2292 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2293
2294         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
2295         changes seem to cause (trigger?) problems with the build system.
2296
2297 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
2298
2299         * src/SDCCpeeph.c (operandsLiteral): new, added,
2300           (callFuncByName): inserted operandsLiteral
2301         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
2302
2303 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2304
2305         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
2306         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
2307
2308 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2309
2310         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
2311           implemented patch 1120823 Thanks to Willy De la Court (normal
2312           interrupts need an interrupt number now if they are made critical),
2313           and enabled nesting of critical functions though not for gbz80
2314           (genCritical, genEndCritical): added functions
2315           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
2316         * src/z80/mappings.i: added "ei" to all mappings
2317
2318 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2319
2320         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
2321         submitted by the Debian SDCC maintainer Aurelien Jarno:
2322         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
2323         archive with gcc 4.1 on mips and wrote the patch"
2324
2325 2006-03-16 Raphael Neider <rneider AT web.de>
2326
2327         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
2328           the left operand is shorter than the result (c* = lit-c* + int),
2329           fixes bug #1450796
2330         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
2331           OP_SYMBOL
2332
2333 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2334
2335         * src/.version: increased version number to 2.5.5
2336         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
2337         linking is done manually in pic16 port's _linkEdit,
2338         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
2339         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
2340         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
2341         allocate asmop as AOP_ACC,
2342         (aopForRemat): added parameter 'bool result' in function declaration,
2343         (pic16_aopGet): return AOP_ACC when accessing WREG,
2344         (pic16_popGetTempReg): minor modification,
2345         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
2346         'pic16_allocWithIdx',
2347         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
2348         calling function in absolute addresses,
2349         (genAssign): take into account AOP_ACC asmop,
2350         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
2351         * src/pic16/pcoderegs.c: some debug functions and lines added,
2352         * src/pic16/ralloc.c (decodeRegType): added but commented out,
2353         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
2354         register too,
2355         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
2356         call to allocReg, not by manually allocating a new one,
2357         (pic16_assignRegisters): now before going through the register
2358         allocating functions mark all registers as free. This eliminates some
2359         side effects resulting from peephole parser done earlier in the backbone
2360
2361 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
2362
2363         * src/SDCCicode.c (geniCodeLogic),
2364         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
2365
2366 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
2367
2368         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
2369           (genSend): bugfix, do not allocate and free twice,
2370           (shiftRLong): handle partially overlapping aops
2371         * support/regression/tests/bitopcse.c: fixed warning redefined idata
2372
2373 2006-03-08 Borut Razem <borut.razem AT siol.net>
2374
2375         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
2376           for pic16
2377
2378 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
2379
2380         * support/regression/tests/bug1409955.c: new, added
2381         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
2382         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
2383           (aopForSym, aopOp): increment asmop.allocated if reused,
2384           (freeAsmop): decrement asmop.allocated and check for zero instead of
2385           using asmop.freed,
2386           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
2387           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
2388            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
2389            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
2390            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
2391            genSignedRightShift, genRightShift, genDataPointerGet,
2392            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
2393            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
2394             in reverse order from allocation,
2395           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
2396             added swappedLR to keep track
2397         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
2398           pdata & code for GCC, z80, gbz80 & hc08
2399         * support/regression/tests/zeropad.c: moved defines to testfwk.h
2400
2401 2006-03-08 Raphael Neider <rneider AT web.de>
2402
2403         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
2404
2405 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
2406
2407         * device/include/mcs51/c8051f410.h: new SiLabs mcu
2408         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
2409         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
2410
2411 2006-03-06 Borut Razem <borut.razem AT siol.net>
2412
2413         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
2414           made the linker quiet
2415
2416 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
2417
2418         * src/pic16/gen.c (genPcall): fixed bug #1443644
2419         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
2420         which dumps before the function entry point a data byte which represents
2421         the number of the local variables used by the specified function, added
2422         'xinst' for initial support for Extended Instruction Support,
2423         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
2424         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
2425         port->fun_prefix anymore (may change later),
2426         (genFunction, genEndFunction): do not store/restore local registers for
2427         _main (this should take care the --main-return command line option in
2428         the future),
2429         (genOr): removed some legacy pic-port instructions,
2430         * src/pic16/genarith.c (genAddLit): re-enabled old code because
2431         performing operations with SFR's causes data to be written more than
2432         once to each SFR. Perhaps SFRs should be handled in special cases...
2433         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
2434         pcode.h
2435         * src/pic16/main.c (_process_pragma): stack bound checking did not take
2436         into account for stack starting position,
2437         (struct OPTIONS pic16_optionsTable): added command line argument
2438         --extended or -y for Extended Instruction Support,
2439         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
2440         (deassignLRs): *** perhaps the most important change, old 'for' code
2441         (commented out for reference), didn't account for some registers which
2442         were left marked 'not free' after a pointer operation. The change
2443         reduces register usage a lot in some cases
2444
2445 2006-03-04 Borut Razem <borut.razem AT siol.net>
2446
2447         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
2448           _clean
2449         * support/regression/tests/bug-524697.c: decreased array size for
2450           mcs51 to fit into the internal RAM
2451         * support/regression/Makefile.in: a little bit more verbose
2452
2453 2006-03-03 Borut Razem <borut.razem AT siol.net>
2454
2455         * support/regression/fwk/lib/testfwk.c,
2456           support/regression/fwk/include/testfwk.h: introduced function
2457           _prints(), nonrecursive _printn(), call _initEmu() from main()
2458         * support/regression/ports/gbz80/support.asm,
2459           support/regression/ports/ucz80/support.asm,
2460           support/regression/ports/z80/support.asm,
2461           support/regression/ports/ds390/support.c,
2462           support/regression/ports/hc08/support.c,
2463           support/regression/ports/host/support.c,
2464           support/regression/ports/mcs51/support.c,
2465           support/regression/ports/xa51/support.c: added empty _initEmu()
2466           function
2467         * support/regression/ports/pic16/gpsim.cmd,
2468           support/regression/ports/pic16/spec.mk,
2469           support/regression/ports/pic16/support.c,
2470           support/regression/Makefile.in: added pic16 regression test
2471
2472 2006-03-01 Raphael Neider <rneider AT web.de>
2473
2474         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
2475           genConstPointerGet): use safe way of generating MOVFF to cover
2476             literals as well as registers, fixes bug #1440527
2477         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
2478             dereference
2479           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
2480             more correctly, fixes bug #1232186
2481           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
2482         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
2483             gplink guess the correct processor in more cases, applied patch
2484             from Till Riedel attached to and fixing bug #1436552
2485
2486 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2487
2488         * support/regression/tests/array.c: added, contains check for #1434401
2489         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
2490
2491 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
2492
2493         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
2494         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
2495         * device/include/mcs51/c8051f326.h,
2496         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
2497         * device/include/mcs51/c8051f000.h,
2498         * device/include/mcs51/c8051f018.h,
2499         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
2500           PCON_IDLE,PCON_STOP and added sfr16 definitions
2501
2502 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2503
2504         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
2505           genGetWord): fixed bug 1409955
2506
2507 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2508
2509         * device/include/hc08/mc68hc908gp32.h,
2510         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
2511
2512 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
2513
2514         * src/SDCCast.c (constExprValue): return NULL if not a value
2515         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
2516         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
2517         * support/regression/tests/bitfields.c: enabled signed bitfield for all
2518
2519 2006-02-13 Borut Razem <borut.razem AT siol.net>
2520
2521         * src/regression/ptrarg.c: added, fails due to bug #1430967
2522         * src/regression/Makefile: ptrarg.c added, ...
2523
2524 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2525
2526         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
2527         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
2528
2529 2006-02-11 Borut Razem <borut.razem AT siol.net>
2530
2531         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
2532           print "Processor: xxx" message to stdout only if --verbose
2533
2534 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2535
2536         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
2537         * support/regression/tests/bug1426356.c: added
2538         * support/regression/tests/bitfields.c: removed 2 tests
2539
2540 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2541
2542         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
2543         * device/include/mcs51/c8051f330.h,
2544         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
2545           PCON_IDLE,PCON_STOP and added sfr16 definitions
2546         * device/lib/_divsint.c,
2547         * device/lib/_divuint.c,
2548         * device/lib/_divulong.c,
2549         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
2550           register bank bug for small stackauto
2551
2552 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2553
2554         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
2555
2556 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
2557
2558         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
2559         * all.dsp: corrected several bin paths
2560         * device/include/mcs51/c8051f120.h,
2561         * device/include/mcs51/c8051f300.h,
2562         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
2563           to PCON_IDLE,PCON_STOP
2564         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
2565         * device/lib/printf_large.c (output_float): fixed bug 1388703
2566         * support/regression/tests/bug1057979.c: added test for bug 1388703
2567
2568 2006-02-08 Raphael Neider <rneider AT web.de>
2569
2570         * src/pic/pcode.c (pciTRIS): fixed typo,
2571           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
2572           (LinkFlow): fixed handling of flows that end in a call,
2573           (ReuseReg): perform safety check earlier
2574         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
2575             to work with flows at the beginning of a pBlock,
2576             fixes #1426557 (Symbol not previously defined),
2577           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
2578             usage information
2579           (RemoveUnusedRegisters): update register usage info
2580         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
2581             created, reuse existing ones instead
2582         * src/pic/gen.c (genPcall): fixed #1424719
2583
2584 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
2585
2586         * link/z80/lkmain.c,
2587         * link/z80/lklex.c,
2588         * link/z80/lkdata.c,
2589         * link/z80/aslink.h: fixed build on current cygwin:
2590         replaced getline() by lk_getline()
2591
2592 2006-02-01 Borut Razem <borut.razem AT siol.net>
2593
2594         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
2595           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
2596           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
2597           src/regression/bool1.c, src/regression/bool2.c,
2598           src/regression/bool3.c, src/regression/call1.c,
2599           src/regression/compare.c, src/regression/compare10.c,
2600           src/regression/compare2.c, src/regression/compare3.c,
2601           src/regression/compare4.c, src/regression/compare5.c,
2602           src/regression/compare6.c, src/regression/compare7.c,
2603           src/regression/compare8.c, src/regression/compare9.c,
2604           src/regression/configword.c, src/regression/for.c,
2605           src/regression/inline.c, src/regression/mult1.c,
2606           src/regression/nestfor.c, src/regression/or1.c,
2607           src/regression/pointer1.c, src/regression/ptrfunc.c,
2608           src/regression/rotate1.c, src/regression/rotate2.c,
2609           src/regression/rotate3.c, src/regression/rotate4.c,
2610           src/regression/rotate5.c, src/regression/rotate6.c,
2611           src/regression/rotate7.c, src/regression/string1.c,
2612           src/regression/struct1.c, src/regression/sub.c,
2613           src/regression/sub2.c, src/regression/switch1.c,
2614           src/regression/while.c, src/regression/xor.c,
2615           src/regression/create_stc, src/regression/simulate,
2616           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
2617           regression tests
2618         * src/regression/gpsim_assert.h: added
2619
2620 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
2621
2622         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
2623         ((void (code *) (void)) 0) ();
2624         * as/hc08/aslex.c,
2625         * as/hc08/aslink.h,
2626         * as/hc08/asm.h,
2627         * as/hc08/asmain.c,
2628         * as/hc08/lkdata.c,
2629         * as/hc08/lklex.c,
2630         * as/hc08/lkmain.c,
2631         * as/mcs51/aslex.c,
2632         * as/mcs51/aslink.h,
2633         * as/mcs51/asm.h,
2634         * as/mcs51/asmain.c,
2635         * as/mcs51/lkdata.c,
2636         * as/mcs51/lklex.c,
2637         * as/mcs51/lkmain.c,
2638         * as/z80/aslex.c,
2639         * as/z80/asm.h,
2640         * as/z80/asmain.c: fixed build on current cygwin:
2641         replaced getline() by as_getline()
2642
2643 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
2644
2645         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
2646         declarator in the symbol chain
2647         * src/SDCCsymt.h,
2648         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
2649         parameter list for function pointers
2650         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
2651         * support/regression/tests/bug-716242.c: added
2652
2653 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
2654
2655         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
2656         offset if possible
2657         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
2658
2659 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
2660
2661         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
2662         inifinitely recurseable, added static
2663         * support/regression/tests/bug-1408066.c: added
2664
2665 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
2666
2667         * src/SDCCicode.h,
2668         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
2669         renamed, added possibility to create "postLoopLbl"-labels
2670         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
2671         newiTempLoopHeaderLabel
2672         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
2673         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
2674         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
2675         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
2676         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
2677         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
2678         (basicInduction): fixed bug #136564, made static,
2679         (loopInduction): changed parameter of basicInduction, made static,
2680         (addPostLoopBlock): added
2681         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
2682         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
2683         findLoopEndSeq
2684         * support/regression/tests/bug-136564.c: added
2685         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
2686         --std-sdcc99 to LIBSDCCFLAGS
2687
2688 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
2689
2690         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
2691         while loop
2692         * support/regression/tests/bug-1406131.c: added
2693
2694 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
2695
2696         * src/SDCCast.c (decorateType): fix promotion of unary minus
2697         * src/SDCCsymt.c (computeType): beautified
2698         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
2699         (valUnaryPM, valComplement): fix sign and promotion,
2700         (valNot): ANSI: result type is int (SDCC: unsigned char)
2701         * support/regression/tests/uminus.c: speedup by removing superflous
2702         test case 'int'
2703         * support/regression/tests/onebyte.c: added promotion and signedness
2704         tests for unary minus
2705         * support/regressions/tests/bug-477927.c: disable warning about
2706         uninitialized variables
2707         * support/regression/tests/not.c: added
2708
2709 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
2710
2711         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
2712         * src/mcs51/gen.c (gen51Code): show final register usage after
2713         fillGaps in asm with --i-code-in-asm
2714         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
2715         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
2716         incUsed, rliveClear, adjustIChain): made static,
2717         (setFromRange): excluded because it's unused,
2718         (findPrevUseSym, markWholeLoop): added,
2719         (findPrevUse): rewritten; fixes bug 895992; now a complete search
2720         through all branches of predecessors enables sdcc to emit the warning
2721         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
2722         (rlivePoint): made static, added parameter emitWarnings which is only
2723         true during the first run out of two,
2724         (findRecursiveSucc, findRecursivePred): removed,
2725         (computeLiveRanges): made static, added parameter emitWarnings,
2726         (dumpIcRlive): added for debugging only
2727         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
2728         removed prototype of setFromRange()
2729         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
2730         in call of computeLiveRanges()
2731         * support/regression/tests/bug-895992.c: added
2732         * support/regression/tests/bug-971834.c: added
2733         * support/valdiag/tests/bug-895992.c: added
2734         * support/valdiag/tests/bug-971834.c: added
2735
2736 2005-12-18 Raphael Neider <rneider AT web.de>
2737
2738         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
2739           (genUnpackBits): improved code for direct operands,
2740           (genPackBits): improved code for literal assignment to bitfields
2741             and for direct destination operands (no FSR indirection),
2742             prevented redundant AND, fixes #1362800,
2743           (AccLsh): added parameter to disable masking of the result
2744         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
2745           skip instructions with side-effects (like incfsz),
2746           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
2747         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
2748         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
2749           fixes #1375263
2750
2751 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
2752
2753         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
2754         volatile variables as spill location
2755
2756 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
2757
2758         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
2759         replacing literals
2760         * support/regression/tests/bug-1376320.c: added
2761
2762 2005-12-08 Raphael Neider <rneider AT web.de>
2763
2764         * src/pic/device.c: renamed is_shared to pic14_is_shared
2765         * src/pic/gen.c (genIfx): re-enabled handling of sbits
2766         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
2767           (is_valid_identifier): added for above workaround
2768
2769 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
2770
2771         * device/lib/Makefile.in: fixed to enable port-specific-objects
2772         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
2773           char, thanks Hubert Sack
2774         * doc/sdccman.lyx: documented --xstack-loc,
2775           elaborated a bit more on interrupts and pitfalls,
2776           removed "setjmp/longjmp unsupported",
2777           documented some unsupported C99 features
2778         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
2779         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
2780           if, thanks Hubert Sack
2781         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
2782         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
2783           make make_library
2784         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
2785           regression tests can report resource usage (rfe 700441)
2786         * support/regression/collate-results.py: report resource usage
2787         * support/regression/ports/ds390/spec.mk,
2788         * support/regression/ports/hc08/spec.mk,
2789         * support/regression/ports/mcs51/spec.mk,
2790         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
2791         * support/regression/ports/ds390/uCsim.cmd,
2792         * support/regression/ports/hc08/uCsim.cmd,
2793         * support/regression/ports/mcs51/uCsim.cmd,
2794         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
2795         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
2796           library, use the default one
2797         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
2798           building the library
2799
2800 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2801
2802         * config.dsp: added dependency on .version and configure_vc.awk
2803         * device/include/setjmp.h: updated for --stack-auto and --xstack
2804         * device/include/mcs51/at89c51snd1c.h: corrected line endings
2805         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
2806         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
2807         * device/lib/libsdcc.lib: added _setjmp
2808         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
2809           (decorateType): fixed bug 1372851,
2810           (optimizeGetHbit): fixed warning
2811         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
2812           array initialisation
2813         * support/regression/tests/bug1057979.c: added test for bug 1358192
2814         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
2815
2816 2005-12-03 Borut Razem <borut.razem AT siol.net>
2817
2818         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
2819           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
2820
2821 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2822
2823         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
2824         createIval): implement symbol independant "flexible array member",
2825         (createIvalCharPtr): implemented flexible array initialisation with a
2826         string
2827         * src/SDCCsymt.c (copyStruct): removed,
2828         (getSize): fixed misleading comment,
2829         (getAllocSize): removed, the additional allocation size is now in
2830         sym->flexArrayLength,
2831         (checkStructFlexArray): new, syntax checks for flexible array members,
2832         (compStructSize): added syntax checks for "flexible array members"
2833         (copyStruct): removed,
2834         (copyLinkChain): removed inefficient fix for bug 770487
2835         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
2836         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
2837         symbol->flexArrayLength
2838         * src/SDCCerr.c,
2839         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
2840         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
2841         * support/regression/tests/structflexarray.c: added
2842         * support/valdiag/tests/structflexiblearray.c: added
2843
2844 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2845
2846         * src/SDCCast.c (decorateType): fixed bug 1368489
2847         * support/Util/SDCCerr.c,
2848         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
2849
2850 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2851
2852         * device/include/mcs51/at89c51snd1c.h: added file submitted by
2853           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
2854
2855 2005-11-27 Borut Razem <borut.razem AT siol.net>
2856
2857         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
2858           support/cpp2/mkdeps.h: added command line option
2859           -obj-ext=<extension> to SDCPP to define object file externion, used
2860           for generation of make dependencies (-M)
2861         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
2862
2863 2005-11-26 Borut Razem <borut.razem AT siol.net>
2864
2865         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
2866           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
2867           added pic and pic16 libraries
2868
2869 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2870
2871         * device/include/float.h: Corrected typo in prototype of __fsgt
2872
2873 2005-11-25 Borut Razem <borut.razem AT siol.net>
2874
2875         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
2876           added creation of model-mcs51-stack-auto libraries
2877
2878 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
2879
2880         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
2881         and fields-list too
2882         * src/SDCCast.c (createIvalArray): removed obsolete comment
2883
2884 2005-11-24 Borut Razem <borut.razem AT siol.net>
2885
2886         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
2887           added missing device/lib/mcs51/crt*.asm sources
2888
2889 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
2890
2891         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
2892
2893 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
2894
2895         * device/lib/_fs2schar.c,
2896         * device/lib/_fs2sint.c,
2897         * device/lib/_fs2slong.c: optimized inline asm
2898
2899 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2900
2901         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2902           Better handling of floats between -1.0 and 0.0.
2903
2904 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2905
2906         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
2907           (the missing "if"s prohibited removal of redundant labels)
2908
2909 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2910
2911         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2912           Properly convert floats between -1.0 and 0.0 to long, int, and char
2913           types (max integer value of negative floats tends to zero).
2914         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2915           Removed changes made so to work properly with floats between
2916           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
2917           and _fs2char.c
2918
2919 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2920
2921         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
2922         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
2923         (genCast) cosmetic change
2924         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
2925         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
2926         from mcs51
2927         * support/regression/tests/bitfields (testSignedBitfields): added
2928
2929 2005-11-18 Borut Razem <borut.razem AT siol.net>
2930
2931         * sdcc/device/lib/Makefile.in: remove all unnecessary files
2932         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
2933           introduced SILENT option to make building of pic16 libraries less
2934
2935 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2936
2937         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2938           Now they work properly with floats between -1.0 and 0.0
2939         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
2940
2941 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2942
2943         * src/SDCCicode.c (printOperand): added missing else
2944
2945 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2946
2947         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
2948         reformatted for better readability
2949         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
2950         signed bitfields
2951
2952 2005-11-17 Borut Razem <borut.razem AT siol.net>
2953
2954         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
2955           introduced SILENT option to make building of pic16 libraries less
2956           verbose - used for nightly snapshot build
2957         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
2958           available on Win32 platforms.
2959         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
2960           medium, large, pic and pic16
2961
2962 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2963
2964         * device/lib/printf_large.c: Temporary patch for bug 1358192:
2965           printf("%f"...) sets fraction to zero.
2966
2967 2005-11-16 Raphael Neider <rneider AT web.de>
2968
2969         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
2970           fixes #1357221
2971         * src/pic/gen.c (genIfx): implemented for CARRY bit
2972         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
2973           to generic pointers, fixes #1357332,
2974           (pic16_movLit2f): NEW,
2975           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
2976
2977 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2978
2979         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
2980
2981 2005-11-11 Raphael Neider <rneider AT web.de>
2982
2983         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
2984         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
2985           compute pointer's type from operand,
2986           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
2987           improved single bit reads, fixes bug #1353379
2988
2989 2005-11-09 Borut Razem <borut.razem AT siol.net>
2990
2991         * support/scripts/sdcc.nsi: added lib/pic to the package
2992
2993 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
2994
2995         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
2996
2997 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2998
2999         * support/regression/tests/bug1348008.c: added
3000         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
3001         * support/regression/tests/bug1337835.c: updated comment
3002
3003 2005-11-06 Borut Razem <borut.razem AT siol.net>
3004
3005         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
3006           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
3007           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3008           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
3009           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
3010           dynamic construction of cl_error_class and derivates - 2.nd try
3011
3012 2005-11-05 Borut Razem <borut.razem AT siol.net>
3013
3014         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
3015           bug, which caused Bus Errors on sparc solaris
3016
3017 2005-11-04 Borut Razem <borut.razem AT siol.net>
3018
3019         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
3020           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
3021           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3022           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
3023           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
3024           and derivates to resolve the initialization problem on OSX
3025
3026 2005-11-02 Borut Razem <borut.razem AT siol.net>
3027
3028         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
3029           corrected typo - #include <winsock2.h>
3030
3031 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
3032
3033         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
3034           (_asxxxx_mapping): added org directive for future enhancements
3035
3036 2005-11-01 Borut Razem <borut.razem AT siol.net>
3037
3038         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
3039           enabled sockets on WIN32
3040         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
3041
3042 2005-10-31 Borut Razem <borut.razem AT siol.net>
3043
3044         * support/regression/generate-cases.py: escape backslashes in {testcase}:
3045           WIN32 backslash path delimiters should be escaped when used in C strings
3046         * support/regression/tests/bitfields.c: exclude failing assertions for
3047           __CYGWIN32__ and __MINGW32__ hosts
3048
3049 2005-10-30 Borut Razem <borut.razem AT siol.net>
3050
3051         * src/SDCCutil.c: corrected double comparison typo
3052
3053 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
3054
3055         * device/lib/medium/Makefile: added for new memory model medium
3056         * device/include/asm/mcs51/features.h: updated for medium/pdata
3057         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
3058           added Multiply & Accumulate sbit's and MAC0_PAGE define
3059         * device/include/mcs51/c8051f300.h: added sfr16 definitions
3060         * device/include/mcs51/c8051f310.h: added sfr16 definitions
3061         * device/lib/_mullong.c: update for medium model
3062         * device/lib/incl.mk: added medium model
3063         * doc/sdccman.lyx: documented medium model
3064         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
3065         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
3066         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
3067         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
3068           (allocParms): set SCLS and OCLS to pdata for medium model
3069         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
3070           for pdata,
3071           (powof2): return <0 if not power of 2
3072         * src/avr/gen.c (genBitWise): use updated powof2
3073         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
3074           (shiftR2Left2Result): small optimization in setup, save acc when storing,
3075           (shiftLLeftOrResult): use B if necessary
3076         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
3077         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
3078         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
3079         * support/regression/Makefile.in: added test-mcs51-medium
3080         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
3081
3082 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
3083
3084         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
3085         specifier unsigned
3086         * device/lib/time.c (mktime): fixed bug 1334315
3087
3088 2005-10-28 Raphael Neider <rneider AT web.de>
3089
3090         * device/include/pic/p16f_common.inc: added common declarations
3091         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
3092
3093 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3094
3095         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
3096           (aopPutUsesAcc): added to predict accumulator use,
3097           (assignResultValue): save acc if necessary,
3098           (genMinusDec): store result if indirectly addressed,
3099           (genDivOneByte):  save acc if necessary,
3100           (movLeft2Result): bugfix if left already in acc,
3101           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
3102             attention to accumulator use (esp. pdata),
3103           (genReceive): receive pdata correctly
3104         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
3105         * src/SDCCicode.h: added isOperandInPagedSpace prototype
3106
3107 2005-10-27 Raphael Neider <rneider AT web.de>
3108
3109         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
3110
3111 2005-10-27 Raphael Neider <rneider AT web.de>
3112
3113         * .version: changed version to 2.5.4
3114         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
3115         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
3116           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
3117             arithmetics support routines
3118         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
3119         * device/lib/Makefile.in: also create installdir for pic
3120
3121         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
3122           pic14 port as well
3123         * src/pic/device.c (dump_sfr): rewritten to delegate register
3124           placement to the linker (use `extern sym' rather than sym EQU addr),
3125           (validAddress): fixed to check last specified address
3126         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
3127           (popGetLit): truncate literal value to 8 bit,
3128           (popGet): moved assert to more appropriate place
3129           (popGetExternal): create pCode operand from and mark the according
3130             symbol as being `extern'
3131           (popGetAddr): added sanity check on immediate's offset, provide
3132             GPOINTER tag on demand
3133           (aopPut): fixed for immediates,
3134           (mov2w_op): move operand's address or contents to WREG (depending on
3135             operand type), safer variant of mov2w,
3136           (movwf,call_libraryfunc): NEW, handy abbreviations,
3137           (get_argument_pcop,get_return_val_pcop,pass_argument,
3138           get_returnvalue): interface for accessing function parameters and
3139             return values,
3140           (assignResultValuei,genRet): use new parameter/return value interface
3141           (pic14_getDataSize): back to old version handling generic pointers,
3142           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
3143             provided implementation and/or fixed old one,
3144           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
3145             calls, removed legacy 8051 reference code
3146           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
3147           (loadSignToC): NEW, move the operands sign bit to CARRY,
3148           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
3149             genRightShiftSigned, accepts negative shift counts,
3150           (setup_fsr): load FSR and adjust IRP (indirect memory access),
3151           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
3152             generic pointers, __data pointers and __code pointers,
3153           (genUnpackBits,genPackBits): rewritten to work with generic pointers
3154             and signed bitfields, limit bitfields to 8 bit,
3155           (genDataPointerGet): fixed number of bytes read,
3156           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
3157           (genPointerGet,genPointerSet): fixed handling of __code pointers,
3158             pointers to constant data are no longer assumed to point to __code
3159             space, removed invalid pointer types,
3160           (bitpatternFromVal): retrieve the PICs representation of an integer
3161             or float literal,
3162           (genDataPointerSet): fixed assigning to po_immediate operands,
3163           (genGenPointerSet): implemented as library call,
3164           (genIfx): fixed incorrect condition,
3165           (genAddrOf): limit generic pointers' addresses to 2 bytes,
3166             provide GPOINTER tag according to destination's storage class,
3167           (genCast): added code to handle casting to generic pointers, added
3168             sign-/zero extension of the result
3169           (aop_isLitLike,op_isLitLike): fixed handling of immediates
3170         * src/pic/gen.h: added macros to access IRP bit in STATUS register
3171         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
3172           extend the result
3173         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
3174           address/register resides in the shared banks
3175           (emitSymbolToFile): improved to handle global and `pinned' symbols,
3176             put all variables into separate sections (have the linker arrange
3177             them)
3178           (picglue): put init code and interrupt handlers in separate sections
3179         * src/pic/main.c: added port specific options table, modified to PORT
3180           structure to make GPOINTERs 3 byte, added pic14_options
3181           (_pic14_do_link): private linking routine (update paths to libraries,
3182             add libsdcc.lib by default)
3183         * src/pic/main.h: declare pic14_options
3184         * src/pic/pcode.c: fixed instructions i/o relations,
3185           (RegCond): reverted to correct version,
3186           (newpCodeOpLit): truncate literals to 8 bit,
3187           (genericPrint): added debug output,
3188           (getRegFromInstruction): fixed for various operand types, simplified
3189           (BuildFlow): fixed broken handling of isntructions with labels
3190           (LinkFlow): start at last instruction in flow (skip trailing comments),
3191             pass the flow on to the next instruction after CALL
3192           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
3193           (insertPCodeInstruction): fixed inserting after a skip instruction,
3194           (DoBankSelect): fixed for labeled instructions
3195           (OptimizepBlock): honor --nopeep switch
3196           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
3197         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
3198         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
3199           (pCodeOptime2pCodes): allow disabling this optimization via
3200             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
3201             but is still buggy), started implementation of a dataflow based
3202             pCode optimization (CSE + dead code elimination)
3203           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
3204         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
3205           names are independant of the stack location and therefore portable across
3206           devices
3207
3208 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3209
3210         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
3211           (selectSpil): fixed bug 1337835 by not spilling bit variables
3212         * support/regression/tests/bug1337835.c: added test for this bug
3213         * src/mcs51/peeph.def: restart after rule 3.c,
3214           addded rules 263.x to optimize loading constants
3215
3216 2005-10-26 Raphael Neider <rneider AT web.de>
3217
3218         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
3219         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
3220           (genAssign): emit warning when casting literals to generic pointer
3221             type, also applies when taking the address of a fixed variable,
3222           (genCast): improved casting to generic pointers
3223         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
3224           extern variables, added verbose error message
3225         * device/include/pic16/{string.h,errno.h}: added #pragma library c
3226
3227 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
3228
3229         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
3230         carry must be complemented too
3231         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
3232         could be emitted by genMinus
3233         * src/SDCCval.c (constVal): fixed bug 1305065
3234
3235 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
3236
3237         * src/SDCCast.c (addCast): added promotion for bit variables
3238         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
3239         promotion casts + optimisation
3240         (optimizeGetWord): fix warning 'i' might be used uninitialized
3241         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
3242         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
3243
3244 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
3245
3246         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
3247         all chars are promoted to int; promotion should be handled in SDCCast.c
3248
3249 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3250
3251         * device/lib/_strcmp.c: Fixed bug 1326457
3252
3253 2005-10-11 Raphael Neider <rneider AT web.de>
3254
3255         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
3256         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
3257
3258 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3259
3260         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
3261         * support/regression/tests/sfr16.c: added test for the sfr32 bug
3262
3263 2005-10-04 Raphael Neider <rneider AT web.de>
3264
3265         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
3266           device/lib/pic16/pics.all: added pic18f1320
3267         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
3268
3269 2005-09-30 Raphael Neider <rneider AT web.de>
3270
3271         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
3272         * src/pic16/devices.inc: NEW, provides device descriptions
3273         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
3274
3275 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
3276
3277         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
3278           GETHBIT
3279
3280 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
3281
3282         * doc/sdccman.lyx: updated Highest Order Bit documentation,
3283           documented Any Order Bit, Higher Order Byte and Higher Order Word
3284         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
3285         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
3286           (optimizeGetAbit): new, to get any bit, not only the high bit,
3287           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
3288           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
3289           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
3290           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
3291             RIGHT_OP: also try GETBYTE, GETWORD optimization,
3292             GETABIT, GETBYTE, GETWORD: decorate them,
3293           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
3294           (ast_print): added GETABIT, GETBYTE, GETWORD
3295         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
3296         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
3297           (geniCodeBinary): new generic binary icode,
3298           (ast2iCode): added GETABIT, GETBYTE, GETWORD
3299         * src/port.h: updated comment for PORT.hasExtBitOp
3300         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
3301           (genGetByte): new, to get a single byte,
3302           (genGetWord): new, to get a word from a long,
3303           (gen51Code): added GETABIT, GETBYTE, GETWORD
3304         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
3305
3306 2005-09-23 Raphael Neider <rneider AT web.de>
3307
3308         * configure.in, configure: have device/lib/pic configured
3309         * device/lib/Makefile.in: added model-pic14
3310         * device/lib/clean.mk: added pic/ to clean rule
3311         * device/lib/pic: added rudimentary pic14 library providing support
3312           functions for multiplication/division/generic pointer access
3313         * src/SDCCopt.c (convilong): mark support functions as extern
3314           for pic14 port as well
3315         * src/pic/gen.c (genMult): added assertions,
3316           (genpic14Code): emit warning on unhandled iCodes
3317         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
3318         * src/pic/pcode.c (pCodeOpCopy),
3319         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
3320           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
3321           SFR_REGISTER}), made safe for future extensions
3322         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
3323           instructions even if preceeded by SKIP instructions (also remove
3324           them); removed unused code
3325         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
3326           prevents leaving parts of the structure uninitialized after copying
3327
3328 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
3329
3330         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
3331           ago by me
3332         * support/regression/tests/addsub.c: added test for the bug
3333
3334 2005-09-21 Raphael Neider <rneider AT web.de>
3335
3336         * device/include/pic16/pic18f1220.h,
3337           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
3338         * device/lib/pic16/Makefile.rules: added missing opening paren
3339         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
3340           are provided in genutils.c,
3341           (genUminusFloat,genUminus,genCmpEq): added asserts on different
3342           operand/result sizes,
3343           (genCmp): assert on NULL pointers first, then check deref'ed values
3344         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
3345           result size
3346
3347 2005-09-18 Raphael Neider <rneider AT web.de>
3348
3349         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
3350           as these are now unused,
3351           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
3352         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
3353           local, avoids uninitialized pointer dereference on r->name
3354         * src/pic16/ralloc.c (newReg): fixed indentation
3355
3356 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
3357
3358         * src/SDCCval.c (constVal): fixed bug 730366
3359         * support/Util/SDCCerr.c,
3360         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
3361
3362 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
3363
3364         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
3365
3366 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
3367
3368         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
3369
3370 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3371
3372         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
3373           (hex2dec): made hex_digit unsigned char, removed ascii dependance
3374         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
3375           (hex2dec): made hex_digit unsigned char, removed ascii dependance
3376         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
3377         * packihx/packihx.c (hexDigit): made c unsigned char
3378         * as/mcs51/lklibr.c (fndsym),
3379         * link/z80/lkgb.c (gb),
3380         * link/z80/lklibr.c (fndsym),
3381         * link/z80/lkrloc.c (relr),
3382         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
3383         * src/SDCC.lex (checkCurrFile, process_pragma),
3384         * src/SDCCglue.c (spacesToUnderscores),
3385         * src/SDCCmain.c (setParseWithComma, processFile),
3386         * src/asm.c (tvsprintf, printCLine),
3387         * src/avr/gen.c (emitcode, aopPut),
3388         * src/ds390/gen.c (emitcode),
3389         * src/hc08/gen.c (emitcode, emitinline),
3390         * src/mcs51/gen.c (emitcode, genInline),
3391         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
3392           tokenizeLineNode),
3393         * src/pic/ralloc.c (debugLog),
3394         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
3395           tokenizeLineNode),
3396         * src/pic16/ralloc.c (debugLog),
3397         * src/z80/main.c (_process_pragma):
3398            made all ctype.h function calls safe
3399         * src/SDCCopt.c: include math.h for fabs
3400         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
3401           and used them throughout the code to make ctype.h function calls safe
3402         * src/ds390/main.c (asmLineNodeFromLineNode),
3403         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
3404         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
3405            unsigned char*
3406         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
3407           (newpCodeAsmDir): made ctype.h function calls safe
3408         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
3409           pic16_emitcode):  made lbp unsigned char*
3410         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
3411           (pic16_newpCodeAsmDir): made ctype.h function calls safe
3412         * src/xa51/gen.c (emitcode),
3413         * src/z80/gen.c (_emit2): made lbp unsigned char*
3414         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
3415            char*
3416
3417 2005-09-05 Raphael Neider <rneider AT web.de>
3418
3419         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
3420           access bank splitpoint
3421
3422 2005-09-05 Raphael Neider <rneider AT web.de>
3423
3424         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
3425
3426 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
3427
3428         * .version: changed to version 2.5.3
3429         * doc/sdccman.lyx: changed version to 2.5.3,
3430           documented --codeseg and --constseg and pragma codeseg and constseg,
3431           documented bit parameters (reentrant) and bit returning
3432         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
3433            currFunc->recvSize, but is this ok for all ports?
3434           (ast2iCode): result of ~ on unsigned char must be cast to int for
3435            bool to work
3436         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
3437           function pointers in bit space
3438         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
3439           (processFuncArgs): call port.reg_parm() with reentrancy info
3440         * src/port.h,
3441         * src/avr/main.c,
3442         * src/ds390/main.c,
3443         * src/hc08/main.c,
3444         * src/pic/main.c,
3445         * src/pic16/main.c,
3446         * src/xa51/main.c,
3447         * src/z80/main.c: port.reg_parm prototype extended with
3448           "bool reentrant" parameter
3449         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
3450           options.stackAuto for allocating bit register parameters
3451         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
3452           (genSend): set BitBankUsed if it is,
3453           (selectRegBank): factored out of genCall for use in genPcall,
3454           (genCall): removed redundant dtype assignmen, use selectRegBank,
3455           (genPcall): handle returning in Carry properly, save in F0 if needed,
3456           (genReceive): handle bit register parameters
3457         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
3458           (mcs51_assignRegisters): enable bit registers for all reentrant
3459            functions and don't set BitBankUsed unconditionally
3460         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
3461         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
3462         * support/regression/tests/funptrs.c: added tests for BOOL and for return
3463
3464 2005-08-27 Borut Razem <borut.razem AT siol.net>
3465
3466         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
3467         ppc-osx (Darwin) does not support -u option. It seems that it is
3468         supported only on Linux - GNU cp
3469
3470 2005-08-25 Borut Razem <borut.razem AT siol.net>
3471
3472         * sim/ucsim/gui.src/serio.src/Makefile.in,
3473           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
3474           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3475           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
3476           install and strip, since the strip at /usr/ccs/bin should be used
3477           on solaris
3478
3479 2005-08-24 Borut Razem <borut.razem AT siol.net>
3480
3481         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
3482
3483 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
3484
3485         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
3486         ffffffffu
3487
3488 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
3489
3490         * as/mcs51/aslink.h: completed lkrloc.c prototypes
3491         * as/mcs51/lkmain.c (link_main): fixed warning
3492         * device/include/stdbool.h: ds390 has no advanced bit support yet
3493         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
3494         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
3495         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
3496           and updated their macros
3497         * src/SDCCval.c (constVal): updated comment for renamed b_long
3498
3499 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
3500
3501         * as/mcs51/asdata.c: changed ctype['['] to BINOP
3502         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
3503           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
3504           (oprio): set priority for '['
3505         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
3506            and adb_24_bit
3507         * as/mcs51/asm.h: added defines R_BIT and S_BIT
3508         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
3509         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
3510         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
3511           added overlayable BIT_BANK area
3512         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
3513           (summary2): explain 'T' in legenda
3514         * as/mcs51/lkrloc.c: replaced old K&R style,
3515           (relr): added R_BIT processing,
3516           (errmsg): added "Bit-addressable relocation error",
3517           (adb_bit): added for converting from byte- to bit-addressable space,
3518           (adb_24_bit): added for converting from byte- to bit-addressable space
3519         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
3520            used in reentrant functions now even as return value
3521         * device/lib/_gptrput.c (_gptrput): removed obsolete code
3522         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
3523           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
3524         * src/SDCCglobl.h: added indicator BitBankUsed
3525         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
3526            the bit registers b0-b7
3527         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
3528           (geniCodeCast): fixed bug 1263853,
3529           (geniCodeLogicAndOr): put result in bool or char,
3530           (geniCodeReceive): added parameter func for accessing the return type,
3531           (geniCodeFunctionBody): pass func to geniCodeReceive
3532         * src/SDCCmain.c: added indicator BitBankUsed
3533         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
3534         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
3535           (checkSClass): don't put automatic bool/bit on stack,
3536           (checkFunction): removed check on function cannot return bit
3537         * src/SDCCsymt.h: added newBoolLink prototype
3538         * src/mcs51/gen.c (rb1regs): added bit registers,
3539           (movc): created for assigning to carry,
3540           (pushReg, popReg): created for pushing registers,
3541           (sameRegs): check both AOP_REG and AOP_CRY types,
3542           (aopOp): handle bit registers,
3543           (aopPut): optimization no self-assign,
3544           (saveRegisters): push reg->base (bits) only once for bit registers,
3545            and use pushReg,
3546           (unsaveRegisters): pop reg->base only once and use popReg,
3547           (assignResultValue): added parameter func and return in carry for bits,
3548           (genIpush): optimization no reload in A if not changed,
3549           (genSend): bit parameters in reentrant functions are passed in bit
3550            registers by first assigning to bits in B, then save registers and
3551            copy B to bits,
3552           (genCall): handle returning in Carry properly, save it in F0 if needed,
3553           (genPcall): updated assignResultValue call, this is not safe yet for bit
3554            returning function !!!
3555           (genFunction): don't generate equ's for bit registers and use pushReg,
3556           (genEndFunction): take care of bit returning functions and use popReg,
3557           (genRet): return bit in Carry,
3558           (genIfx): optimize bit registers and other directly addressable bits,
3559           (genReceive): updated assignResultValue call
3560         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
3561           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
3562            registers when using stack-auto
3563         * src/mcs51/ralloc.c (_G): added allBitregs,
3564           (regs8051): added the bit registers,
3565           (createStackSpil): use macro IS_BIT,
3566           (getRegBit): added to allocate a bit register, else spill,
3567           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
3568           (updateRegUsage): factored out to ease stepping while debugging,
3569           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
3570            also allocate bit registers,
3571           (fillGaps): handle bit registers,
3572           (findAllBitregs): added to create bit vector with all bit registers,
3573           (mcs51_allBitregs): returns this bit vector,
3574           (mcs51_assignRegisters): when using stack-auto use bit registers for
3575            passing parameters and creating local variables
3576         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
3577
3578 2005-08-22 Borut Razem <borut.razem AT siol.net>
3579
3580         * device/lib/Makefile.in: replaced find option -or with -o
3581           to make it run on solaris
3582
3583 2005-08-22 Raphael Neider <rneider AT web.de>
3584
3585         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
3586           fixes #1265442 (crash on Solaris)
3587
3588 2005-08-20 Borut Razem <borut.razem AT siol.net>
3589
3590         * configure, configure.in: added tests for libsocket and libnsl libraries,
3591           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
3592           from support/regression/Makefile.in
3593         * support/regression/Makefile.in: added
3594         * device/lib/pic16/Makefile.common.in: force make to use bash shell
3595         * sim/ucsim/libtool: regenerated on sparc-solaris
3596         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3597           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
3598           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
3599           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
3600           sparc-solaris, which doesn't use GNU ld linker
3601         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
3602         * as/Makefile: find on sparc-solaris does not support -maxdepth option
3603
3604 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
3605
3606         * src/mcs51/peeph.def: updated comments
3607
3608 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3609
3610         * device/lib/_gptrget.c,
3611         * device/lib/_gptrput.c: slightly shorter
3612         * doc/sdccman.lyx: incremented version
3613         * src/mcs51/peeph.def: moved peephole comments to the line of first
3614           change to better keep line correlation, reanimated 186.e
3615         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
3616
3617 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3618
3619         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
3620           David Saxton with quotes around file name.
3621
3622 2005-08-15 Borut Razem <borut.razem AT siol.net>
3623
3624         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
3625           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
3626           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
3627           make tests run on x86_64 platform
3628
3629 2005-08-13 Raphael Neider <rneider AT web.de>
3630
3631         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
3632           as it might be executed DURING a build (parallel make is wonderful)
3633
3634 2005-08-13 Raphael Neider <rneider AT web.de>
3635
3636         * device/lib/Makefile.in (port-specific-objects-pic16):
3637           revert to cp $(PORT)/bin/*.* $(PORTDIR)
3638         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
3639           dependency
3640         * device/lib/pic16/Makefile.rules: build subdirs before creating
3641           the library, removed builddir rule, create $(builddir) early in
3642           recurse rule, use empty recurse rule for leaf directories
3643         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
3644           mkdir errors (race condition), removed duplicate suffix "hex"
3645           from clean rules
3646         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
3647         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
3648           prevents mkdir -p from aborting on Alpha
3649
3650 2005-08-12 Raphael Neider <rneider AT web.de>
3651
3652         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
3653           db-statements in order to allow for arrays of pointers in code
3654           sections to be placed without interspersed 0-padding, fixes
3655           bug #1256215
3656         * (emitStatistics): fixed division by zero for pic18f1220
3657         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
3658           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
3659         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
3660         * (pic16_pCodeConstString): keep track of already emitted string
3661           literals to prevent "duplicate definitions of symbol _str_NR"
3662         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
3663           debug message
3664         * device/lib/Makefile.in: ignore failing PIC16 library builds
3665         * device/lib/pic16/Makefile: do not build if gputils are missing
3666         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
3667
3668 2005-08-10 Raphael Neider <rneider AT web.de>
3669
3670         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
3671           my last commit)
3672
3673 2005-08-10 Raphael Neider <rneider AT web.de>
3674
3675         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
3676           Rokas' patch to add the new fixed point type "__fixed16x16"
3677         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
3678           functions for __fixed16x16 arithmetics
3679         * device/lib/pic16: reimplemented the build system to support
3680           a separate build directory, better handling of libio (create
3681           the library in a separate subdir for each architecture) and
3682           easier configuration (centralized in Makefile.common)
3683
3684 2005-08-07 Raphael Neider <rneider AT web.de>
3685
3686         * src/pic16/gen.c (genrshTwo): fixed sign extension
3687         * src/pic16/device.c: added pic18f2320, 4220 and 4320
3688         * device/include/pic16/pic18f2220.h: changed some bit definitions,
3689           added T0CONbits
3690         * device/include/pic16/pic18f4220.h: NEW, header for
3691           pic18f4220 and pic18f4320
3692         * device/include/pic16/pic18fregs.h: added new devices,
3693           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
3694         * device/include/pic16/signal.h: resolved name clashes
3695           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
3696           to also allow testing for interrupt enable bits, added
3697           comments on how to use the macros
3698         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
3699         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
3700           register definitions for the devices
3701         * device/lib/pic16/pics.all: added new devices
3702         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
3703           allocated memory
3704         * device/lib/pic16/libc/stdlib/memfree: do not count
3705           the block header as free memory
3706         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
3707           simplified and added missing end-of-blocklist-marker
3708           (reported by Peter Onion, fixes #1252814)
3709         * (_mergeHeapBlock): fixed loop condition
3710         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
3711           len==0, restructured code
3712         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
3713           up a bit, reduced bitfield accesses, prevent endless loops
3714           in case of heap corruption
3715         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
3716           "unreferenced arguments/must return a value" warnings
3717         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
3718           replaced BAUDREG with SPBRG
3719         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
3720           device/lib/pic16/debug/gstack/gstack.c: replaced
3721           _naked, _asm, _endasm with __naked, __asm, __endasm
3722
3723 2005-08-05 Raphael Neider <rneider AT web.de>
3724
3725         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
3726           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
3727
3728 2005-08-05 Borut Razem <borut.razem AT siol.net>
3729
3730         * device/lib/Makefile.in: added missing ';'
3731         * configure: removed ^M characters
3732
3733 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3734
3735         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
3736           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
3737           License
3738
3739 2005-08-04 Borut Razem <borut.razem AT siol.net>
3740
3741         * configure.in: pic16 libraries build 2nd try - enable running
3742           configure in device/lib/pic16
3743         * configure: regenerated from configure.in
3744         * device/lib/Makefile.in: create $(PORT)/bin directory
3745
3746 2005-08-03 Raphael Neider <rneider AT web.de>
3747
3748         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
3749           to get/set values via pointers
3750         * (genUnpackBits,genPackBits): changed detection of
3751           ptr->bitfield vs. sym.bitfield, fixed access via generic
3752           pointers, removed dead (wrong) code for multibyte bitfields
3753         * (genNearPointerGet, genGenPointerGet): removed useless code,
3754           fixed bitfield detection, fixes #1250594
3755         * (genNearPointerSet): removed useless code
3756         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
3757           and introduced macro pic16_emitpcode that conditionally emits
3758           the origin of the following pCode (useful for debugging SDCC)
3759         * src/pic16/pcode.c: changed (and disabled) some debug outputs
3760         * (createDefmap): fixed handling of LFSR for --optimize-df
3761
3762 2005-08-02 Borut Razem <borut.razem AT siol.net>
3763
3764         * device/lib/Makefile.in: pic16 libraries build enabled since
3765           gputils-0.13.2 are now localy installed at sourceforge's compile farm
3766
3767 2005-08-02 Raphael Neider <rneider AT web.de>
3768
3769         * src/pic16/gen.c (genPackBits): removed deprecated warning
3770         * (genGenPointerSet): fixed bitfield detection
3771
3772 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3773
3774         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
3775
3776 2005-07-31 Raphael Neider <rneider AT web.de>
3777
3778         * device/lib/pic16/libdev/pic18f458.c,
3779           device/include/pic16/pic18f458.h: added missing T0CONbits
3780
3781 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3782
3783         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
3784
3785 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
3786
3787         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
3788
3789 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3790
3791         * device/include/mcs51/at89c51ed2.h: added.
3792
3793 2005-07-23 Raphael Neider <rneider AT web.de>
3794
3795         * src/pic/gen.h: added emitpcode macro for debugging
3796         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
3797           and replace by macro adding debug information on demand
3798         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
3799         * (gencjne): tried to fix; replaced with correct (slower) code
3800         * (gen{Unp,P}ackBits): fixed single bit access
3801         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
3802         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
3803           previous instruction
3804         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
3805           register has to be handled with care (forbidding movement
3806           of assignments/uses, removing assignments completely, ...)
3807         * (pCodeOptime2pCodes): make use of regIsSpecial
3808         * added lots of debugging output (commented out)
3809         * src/pic/rallloc.c (deassignLRs): prevent operand registers
3810           from being reused as result UNLESS it is known to work
3811
3812 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3813
3814         * support/Util/dbuf.h: include <stddef.h> for size_t
3815         * .version: changed to version 2.5.2
3816
3817 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3818
3819         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
3820
3821 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3822
3823         * src/hc08/gen.c (genMinus): fixed bug #1241835,
3824           (genModOneByte): removed needless psha/pula
3825
3826 2005-07-22 Raphael Neider <rneider AT web.de>
3827
3828         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
3829           have PIC14 handled like PIC16, fixes broken pic14 linker calls
3830         * src/pic/gen.c (resolveIfx): do not "invent" labels
3831         * (genSkipc): changed to positive logic
3832         * (genSkipCond): removed as no longer needed
3833         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
3834           backport from PIC16
3835         * (genLeftShift): check operands are in different registers
3836         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
3837           INCF does not update CARRY...
3838         * src/pic/main.c: fixed _linkCmd
3839         * src/pic/pcode.c (unlinkpCode): added inactive code
3840         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
3841           alive (do not assign result and operand overlapping registers)
3842
3843 2005-07-22 Raphael Neider <rneider AT web.de>
3844
3845         * src/pic/device.c (dump_sfr): replaced register declaration with
3846           call to emitSymbolToFile() to avoid duplicate symbols
3847         * (assignRelocatableRegisters): do not declare external symbols
3848         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
3849           right (take size of type, not etype)
3850         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
3851         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
3852         * (packRegsForAccUse): disabled assignment of WREG as
3853           the result reg to prevent occurence of just fixed #1235003,
3854           fixes #1242954
3855         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
3856           symbols (avoids duplicate symbols in .asm file)
3857         * (pic14emitRegularMap): use emitSymbolToFile()
3858         * src/pic/gen.c (aopOp): fixed spillLocation handling
3859         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
3860         * (genDataPointerSet): removed unneccessary variables/output
3861
3862 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
3863
3864         * as/mcs51/lkarea.c: enlarged codemap for banked memory
3865         * device/lib/mcs51/crtbank.asm: added # to 0x0F
3866
3867 2005-07-21 Raphael Neider <rneider AT web.de>
3868
3869         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
3870           architecture cannot handle them efficiently, fixes bug #1235003
3871         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
3872           check for empty sets before using them (fixes bug #1232190)
3873
3874 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
3875
3876         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
3877           (lnksect2): generate warnings for memory overlap
3878         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
3879           constseg to set the name of these segments so you can instruct the linker
3880           to place them in banks
3881         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
3882         * src/SDCCglobl.h: added MODEL_HUGE to enum,
3883           added code_seg and const_seg to options
3884         * src/SDCCglue.c (emitMaps): use options.const_seg,
3885           (createInterruptVect): put interrupt vectors in segment HOME,
3886           (glue): put HOME before static segment and put the main glue in HOME,
3887           (glue): use options.code_seg
3888         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
3889         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
3890           these segments so you can instruct the linker to place them in banks
3891           (linkEdit): use code_loc for HOME segment which should be the first
3892           segment in code memory now
3893         * src/SDCCmem.c: fixed more stuff like bug 1238386
3894         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
3895           (changePointer): don't change function pointers to code pointers for
3896           banked functions,
3897           (compareType): added exceptional check for banked function pointers
3898         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
3899         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
3900           after static in code memory
3901         * src/mcs51/gen.c: added aopLiteralLong prototype,
3902           (aopForSym): use getSize for functions,
3903           (genCall): generate banked calls over one trampoline __sdcc_banked_call
3904           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
3905           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
3906           the segment,
3907           (genPcall): use call for literal function pointers and generate banked
3908           calls over the one trampoline so there's only one place for the user to
3909           modify according to his/hers hardware,
3910           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
3911           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
3912         * src/mcs51/main.c: added keyword banked,
3913           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
3914         * support/Util/SDCCerr.c,
3915         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
3916           needed for passing the bank and address to the trampoline
3917         * device/lib/mcs51/crtbank.asm: added for bankswitching
3918         * device/lib/mcs51/Makefile: added crtbank
3919
3920 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3921
3922         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
3923           for fields at offset 0 of a struct or union as reported
3924           on 2005-07-07 in the developer mailing list.
3925
3926 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
3927
3928         * src/SDCCmem.c: fixed bug 1238386
3929
3930 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3931
3932         * src/mcs51/peeph.def: added labelrefcounting for peepholes
3933           (patch #1144962), added peephole 300, enabled 259.x
3934         * doc/sdccman.lyx: removed screenshot and provided link instead
3935
3936 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3937
3938         * doc/sdccman.lyx: added section about debugging with ddd
3939         * doc/figures/ddd_example.eps: screenshot of debugging session
3940
3941 2005-07-04 Raphael Neider <rneider AT web.de>
3942
3943         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
3944           like CODE pointers, fixes #1115683
3945         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
3946           call, fixes bugs #1232211, #1228110,
3947           fixed wrong casts to pCodeFlow from pCodeInstructions
3948
3949 2005-07-04 Raphael Neider <rneider AT web.de>
3950
3951         * src/pic/gen.c (popGet): changed assert to allow for
3952           bit operands
3953         * (popGetAddr): changed signature to provide
3954           an additional index, patched all call sites
3955         * (genCmpEq): handle literal-like operands correctly
3956         * (genAddrOf): added sanity checks on __code/__data pointers
3957         * (genAssign): added handling of symbols from __code section
3958         * (gencjne): do not generate code for comparisons whose result
3959           is neither stored nor used, fixes bug #1171114
3960         * (AccLsh, AccRsh): operate on operand instead of WREG
3961         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
3962           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
3963           by known count
3964         * rewrote complete shift-by-literal logic, commented unused
3965           functions out
3966         * (genConstPointerGet): get multiple bytes (if result size > 1),
3967           fixed handling of non-immediate addresses
3968         * (genPointerGet): handle CODE pointers like CONST pointers
3969         * (genpic14Code): insert C-SRC lines as Cource-pCodes
3970         * ({aop,op}_isLitLike): NEW, single place to decide whether an
3971           operand is to be treated as a literal or not
3972         * (mov2w,genPcall,genCmpEq),
3973           src/pic/genarith.c: use aop_isLitLike() to decide between
3974           literal/register contents
3975         * (addSign): added missing offset
3976         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
3977           only emit comment in debug-mode,
3978           use {aop,op}_isLitLike throughout the file
3979         * src/pic/glue.c: fix initializers for pointers (work in progress)
3980         * src/pic/pcode.c (get_op): honor index on _const symbols
3981         * ({reset,dump}pCodeStatistics): NEW, estimate code size
3982         * (dumppBlock): added pCode size estimation
3983         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
3984           check for IS_SYMOP before OP_SYMBOL'ing
3985         * fixed indentation, compacted switch-statements
3986         * (allocReg): find free register and allocate it instead of
3987           allocating new registers all the time
3988         * (deassignLRs): prevent POINTER_GET's from being assigned the same
3989           registers as its operands (necessary only for multibyte GETs)
3990
3991 2005-07-01 Raphael Neider <rneider AT web.de>
3992
3993         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
3994           debugging .asm-output macros FENTRY + FEXIT
3995         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
3996           way... I wonder...
3997         * (emitpComment): NEW, printf to pCode
3998         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
3999           offset handling
4000         * (popGetAddr): NEW, variant of popGet to access an immediates
4001           high(er) bytes instead of the n'th byte of memory they reference,
4002           replaced popGet with popGetAddr where neccessary
4003         * (genDataPointerGet): reactivated and fixed implementation
4004         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
4005           accesses
4006         * (genDataPointerSet): fixed multibyte assignments
4007         * (genpic14Code): fixed --i-code-in-asm handling
4008         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
4009         * (genPlus): fixed index-out-of-bounds error
4010         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
4011         * src/pic/ralloc.c: added debugging output macro FENTRY2
4012         * (spillThis): fixed indentation, enbraced for-body for clarity
4013         * (rematStr): commented out as now unused
4014         * (regTypeNum): commented out special spill case (overwrites
4015           arbitrary values)
4016         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
4017
4018 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
4019
4020         * doc/sdccman.lyx: documented sfr16/sfr32,
4021           added example for using storage class with function pointers
4022         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
4023
4024 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
4025
4026         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
4027         * device/lib/_itoa.c,
4028         * device/lib/_ltoa.c: optimized codesize
4029         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
4030           but don't know how to suppress the double warning.
4031         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
4032         * support/Util/SDCCerr.c,
4033         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
4034
4035 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
4036
4037         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
4038           fixed old K&R prototypes
4039         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
4040         * device/lib/_gptrget.c,
4041         * device/lib/_gptrgetc.c,
4042         * device/lib/_gptrput.c: changed versions for new memory indicator values,
4043           also new versions for small generic pointers and banked generic pointers
4044         * src/port.h: added const_name
4045         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
4046         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
4047         * src/SDCCcse.c (findPrevIc): check all associative operators
4048         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
4049         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
4050         * src/SDCCmem.c: updated comments,
4051           set far-space to 0 for pdata, results in optimized code
4052         * src/SDCCmem.h: added macro CONST_NAME
4053         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
4054           moving the info into the highest bits, see also gptrget/gptrput
4055         * src/src.dsp: added sdcc.ico to project files
4056         * src/avr/gen.c (genCast): fixed bug 0x%d
4057         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
4058         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
4059           relation between ptr_type and DCL_TYPE,
4060           (genCast): fixed bug 0x%d
4061         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
4062           (CODE)" for const_name
4063         * src/hc08/gen.c (genCast): fixed bug 0x%d
4064         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
4065           (hc08_port): added "CONST (CODE)" for const_name
4066         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
4067           (aopForRemat, adjustArithmeticResult): disconnected direct relation
4068           between ptr_type and DCL_TYPE,
4069           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
4070           operand* and took AOP() inside function so sfr-ness can be checked,
4071           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
4072           new prototype,
4073           (genFunction, genEndFunction): optimized stack setup,
4074           (genMinus): optimized for literals with ending zeroes (in bytes),
4075           (genCast): fixed bug 0x%d
4076         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
4077           (mcs51_port): added "CONST (CODE)" for const_name
4078         * src/mcs51/peeph.def: made rule 226 more generic
4079         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
4080         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
4081         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
4082         * src/z80/main.c (z80_port): added NULL for const_name,
4083           (gbz80_port): added NULL for const_name
4084         * support/regression/tests/bug663539.c,
4085         * support/regression/tests/sfr16.c: new tests
4086
4087 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4088
4089         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
4090
4091 2005-06-24 Raphael Neider <rneider AT web.de>
4092
4093         * device/lib/pic16/libdev/pic18f[68][567]20.c:
4094           corrected typos...
4095         * device/include/pic16/signal.h: added USBIF
4096           and SIG_USB
4097
4098 2005-06-24 Raphael Neider <rneider AT web.de>
4099
4100         * device/lib/pic16/libdev/pic18f2455.c,
4101           device/include/pic16/pic18f2455.h: NEW
4102         * device/include/pic16/pic18fregs.h,
4103           device/lib/pic16/pics.all,
4104           src/pic16/device.c: added 18f2455
4105         * device/lib/pic16/libdev/pic18f[68][567]20.c,
4106           device/include/pic16/{pic18f[68][567].h,usart.h}:
4107           replaced MULTIPLE_USARTS define with more relaible
4108           compatibility sfrs (for USART access)
4109
4110 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
4111
4112         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
4113           and the output asm file line is printed on two lines.
4114
4115 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4116
4117         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
4118           BGT, BLE, BHI, and BLS instructions
4119         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
4120           genCmpEq): removed
4121         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
4122           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
4123           fixes bug #1216342
4124         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
4125
4126 2005-06-15 Raphael Neider <rneider AT web.de>
4127
4128         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
4129         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
4130         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
4131           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
4132           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
4133
4134 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4135
4136         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
4137           Marcel Telka in bug #1215704
4138
4139 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
4140
4141         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
4142           located in shared memory bank.
4143
4144 2005-05-31 Raphael Neider <rneider AT web.de>
4145
4146         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
4147           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
4148           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
4149
4150 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
4151
4152         * device/lib/_strncpy.c: fixed the fix
4153
4154 2005-05-26 Raphael Neider <rneider AT web.de>
4155
4156         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
4157           initializers with \0, bug #1208187
4158         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
4159           intializers with \0, bug #1208187
4160
4161 2005-05-26 Raphael Neider <rneider AT web.de>
4162
4163         * src/pic16/glue.c (pic16_printIvalChar): fixed string
4164           initializers with \0, bug #1208187
4165         * src/pic16/main.c (_process_pragma): added sanity checks
4166           for stack position and size, emit warnings when appropriate
4167
4168 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
4169
4170         * device/lib/_strncpy.c: fixed not filling with \0
4171
4172 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4173
4174         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
4175           createFunction),
4176         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
4177           compound_statement),
4178         * src/SDCCsymt.h,
4179         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
4180
4181 2005-05-24 Raphael Neider <rneider AT web.de>
4182
4183         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
4184
4185 2005-05-24 Raphael Neider <rneider AT web.de>
4186
4187         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
4188           TRISE definitions, closes bug #1162453
4189
4190 2005-05-22 Raphael Neider <rneider AT web.de>
4191
4192         * src/pic16/main.c (_process_pragma): check for missing
4193           arguments to pragmas code and udata
4194         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
4195           consistency fixes to match other headers (thanks to Jim Paris)
4196         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
4197
4198 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
4199
4200         * src/SDCCicode.c (isOperandEqual): fixed missing ;
4201
4202 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
4203
4204         * support/regression/tests/bug1198642.c: new test
4205         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
4206         * src/SDCCcse.c (findPrevIc): added comment, please have a look
4207         * support/scripts/resource.h,
4208         * support/scripts/resource.rc,
4209         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
4210         * support/scripts/sdcc.ico: added 32x32 icon
4211
4212 2005-05-18 Raphael Neider <rneider AT web.de>
4213
4214         * device/lib/pic16/libdev/pic18f*.c,
4215         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
4216           keywords to "__sfr" and "__at (X)"
4217         * device/include/pic16/pic18fregs.h: added pic18f4520
4218         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
4219           #1203088 (MPLAB compatibility)
4220
4221 2005-05-17 Raphael Neider <rneider AT web.de>
4222
4223         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
4224         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
4225         * device/lib/pic16/pics.all: added new devices
4226         * src/pic16/device.c: added support for pic18f4520
4227
4228 2005-05-16 Raphael Neider <rneider AT web.de>
4229         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
4230         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
4231         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
4232           convenience function for bit access
4233
4234 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4235
4236         * device/lib/printf_large.c: fixed bug 1193299
4237         * support/regression/tests/bug1057979.c: added test %3.3s
4238
4239 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4240
4241         * device/include/mcs51/8051.h,
4242         * device/include/mcs51/8052.h: made parseable with lint
4243         * device/include/mcs51/lint.h: added include file for (sp)lint
4244         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
4245         * doc/cdbfileformat.lyx,
4246         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
4247
4248 2005-05-14 Raphael Neider <rneider AT web.de>
4249
4250         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
4251         * device/lib/pic16/libc/stdlib/itoa.c (new)
4252         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
4253         * device/lib/pic16/libio/Makefile: exclude subdir according to
4254           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
4255         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
4256         * src/pic16/gen.c (genFunction): prevent annoying warning
4257         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
4258           nameclashes on BeOS
4259         * support/cpp2/cppmain.c (cpp_output_string): new
4260         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
4261           fixes bug 1116802
4262
4263 2005-05-13 Borut Razem <borut.razem AT siol.net>
4264
4265         * src/SDCCmain.c (linkEdit): fixed bug 1195202
4266
4267 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4268
4269         * .version: changed to version 2.5.1; back to bleeding edge development
4270
4271 2005-05-11 Borut Razem <borut.razem AT siol.net>
4272
4273         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
4274           generate PDF version 1.3 documents
4275
4276 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4277
4278         * .version: changed to version 2.5.0
4279
4280 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4281
4282         * doc/sdccman.lyx: updated weblinks, index and smaller updates
4283
4284 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4285
4286         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
4287         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
4288         well as many smaller updates.
4289         * .version: changed to version 2.5.0-pre1
4290
4291 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4292
4293         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
4294
4295 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4296
4297         * support/regression/tests/bug1185672.c: added
4298         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
4299           bug 1185672
4300         * src/mcs51/gen.c (genCall): added comments, made it look safer
4301         * src/mcs51/gen.c (genEndFunction): simplified
4302
4303 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
4304
4305         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
4306
4307 2005-04-14 Borut Razem <borut.razem AT siol.net>
4308
4309         * fixed bug 1045046 - SIGSEGV with really simple code?:
4310           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
4311           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
4312
4313 2005-04-14 Borut Razem <borut.razem AT siol.net>
4314
4315         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
4316           src/pic16/device.h: temporarily disabled experimental #inline pragma
4317           for 2.5.0 release
4318
4319 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
4320
4321         * device/include/z80/stdio.h,
4322         * device/include/z80/string.h: removed these highly incomplete files so
4323           SDCC can use the default ones in device/include/
4324
4325 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4326
4327         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
4328         gcc warning.
4329         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
4330         fix sdcpp warnings.
4331
4332 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4333
4334         * device/include/malloc.h: removed redundant __reentrant prototypes
4335         * device/lib/_mullong.c: added working xstack variant in asm (C version
4336           doesn't pass regression tests)
4337         * device/lib/bpx.c: used __data and made bpx char for mcs51
4338         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
4339           (createFunction): fixed bug with xstackPtr
4340         * src/SDCCcse.c: corrected comments
4341         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
4342           (killDeadCode, eBBlockFromiCode): removed unused code
4343         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
4344           corrected comments
4345         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
4346           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
4347           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
4348           (genModOneByte): fixed warning in MSVC
4349         * src/mcs51/main.c (): added comments
4350         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
4351
4352 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4353
4354         * src/SDCCmain.c (linkEdit): oops, changed one line too many
4355
4356 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
4357
4358         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
4359
4360 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
4361
4362         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
4363         characters arrays of larger size than the declared one.
4364
4365 2005-04-10 Borut Razem <borut.razem AT siol.net>
4366
4367         * src/pic/gen.c (genInline),
4368           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
4369           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
4370           (findNextInstruction), (findPrevInstruction),
4371           (findInstructionUsingLabel),
4372           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
4373         * src/pic/pcode.c (findLabel): added missing '\n'
4374         * src/src.dsp: added SDCCdwarf2.c to the project
4375
4376 2005-04-09 Borut Razem <borut.razem AT siol.net>
4377
4378         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
4379
4380 2005-04-08 Raphael Neider <rneider AT web.de>
4381
4382         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
4383           into the chain after a given one) and mergeDefmapSymbols (combine
4384           defmap entries for each symbol per pcode)
4385         * (createDefmap): have defmap entries merged in the end
4386         * (defmapReplaceSymRef): split defmap entries covering two accesses to
4387           a symbol before replacing one access type's symbol, merge symbols in
4388           the end (replacement symbol might already have an entry)
4389         * (assignValnums): keep reference to written WREG intact
4390
4391 2005-04-08 Raphael Neider <rneider AT web.de>
4392
4393         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
4394           Alpha)
4395
4396 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
4397
4398         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
4399         bytes
4400
4401 2005-04-07 Raphael Neider <rneider AT web.de>
4402
4403         * device/include/pic16/usart.h: added compatibility defines for
4404           devices with more than one USART
4405         * device/include/pic16/pic18f[68][567]20.h: activated above defines
4406
4407 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4408
4409         * device/lib/Makefile.in: updated for port specific include
4410
4411 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4412
4413         * support/regression/ports/mcs51/spec.mk: added mcs51 include
4414
4415 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4416
4417         * device/include/8051.h,
4418         * device/include/8052.h,
4419         * device/include/at89S8252.h,
4420         * device/include/at89c55.h,
4421         * device/include/at89x051.h,
4422         * device/include/at89x51.h,
4423         * device/include/at89x52.h,
4424         * device/include/mcs51reg.h,
4425         * device/include/reg51.h,
4426         * device/include/reg764.h,
4427         * device/include/regc515c.h,
4428         * device/include/sab80515.h: (re)moved these 12 files
4429         * device/include/mcs51/8051.h,
4430         * device/include/mcs51/8052.h,
4431         * device/include/mcs51/at89S8252.h,
4432         * device/include/mcs51/at89c55.h,
4433         * device/include/mcs51/at89x051.h,
4434         * device/include/mcs51/at89x51.h,
4435         * device/include/mcs51/at89x52.h,
4436         * device/include/mcs51/mcs51reg.h,
4437         * device/include/mcs51/reg51.h,
4438         * device/include/mcs51/reg764.h,
4439         * device/include/mcs51/regc515c.h,
4440         * device/include/mcs51/sab80515.h: and added them here
4441
4442 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4443
4444         * device/include/stdarg.h: changed SDCC specific keywords to double
4445           underlined form.
4446         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
4447           mcs51 and ds390.
4448         * device/include/hc08/mc68hc908gp32.h,
4449         * device/include/hc08/mc68hc908jb8.h,
4450         * device/include/hc08/mc68hc908jkjl.h,
4451         * device/include/hc08/mc68hc908qy.h: fixed comments
4452         * device/include/mcs51/README: updated
4453         * device/include/mcs51/c8051f120.h: added PINRSF
4454         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
4455         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
4456           amidst code. Also inline is not supported.
4457
4458 2005-04-06 Raphael Neider <rneider AT web.de>
4459
4460         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
4461         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
4462           callers stack/frame pointers
4463
4464 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4465
4466         * device/include/pic16/usart.h: added, missing in previous commit,
4467         * device/include/pic16/adc.h: fixed typo,
4468         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
4469         commit,
4470         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
4471         <p18fxxx.inc>
4472         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
4473         uninitialized because a bug appears with gplink
4474         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
4475         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
4476         complains for unrecognised option
4477
4478 2005-04-05 Raphael Neider <rneider AT web.de>
4479
4480         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
4481           structs as well (using memcpy)
4482         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
4483           on ISRs (GOTO has no label)
4484         * src/pic16/device.h: added OF_OPTIMIZE_DF
4485         * src/pic16/main.c: added compiler switch --optimize-df to enable the
4486           new data flow analysis/optimization
4487         * src/pic16/pcode.c: added (prototypes for and implementation of)
4488           dataflow analysis functions, fixed pCodeInstructions' inCond and
4489           outCond values, made RCALL a branch instruction
4490         * (pic16_unlinkpCode): keep C line if possible
4491         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
4492           C line moved if possible
4493         * (pic16_getRegFrompCodeOp): NEW, improved version of...
4494         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
4495           to use new pic16_getRegFrompCodeOp (works for more SFRs)
4496         * (pic16_BuildFlow): fixed skip instructions with label (did not start
4497           new flow)
4498         * (pic16_getJumptabpCode): NEW, needed in...
4499         * (LinkFlow): fixed handling of jumptables, calls and conditional
4500           branches
4501         * (pic16_InsertCommentAfter): NEW
4502         * (pic16_pCodeReplace): made verbose and flow preserving
4503         * (AnalyzeFlow): added call to data flow analysis
4504         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
4505         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
4506         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
4507
4508 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4509
4510         * src/SDCCast.c (decorateType): fixed bug #1105626
4511
4512 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
4513
4514         * device/include/asm/pic16/features.h,
4515         * pic18f*.h headers,
4516         * device/include/pic16/adc.h,
4517         * device/include/pic16/delay.h,
4518         * device/include/pic16/i2c.h,
4519         * device/include/pic16/malloc.h,
4520         * device/include/pic16/stdio.h,
4521         * device/include/pic16/stdlib.h,
4522         * device/include/pic16/string.h,
4523         * device/lib/pic16/libc/stdio/printf_tiny.c,
4524         * device/lib/pic16/libc/stdio/printf_small.c,
4525         * device/lib/pic16/libc/stdio/strmgpsim.c,
4526         * device/lib/pic16/libc/stdio/strmmssp.c,
4527         * device/lib/pic16/libc/stdio/strmusart.c,
4528         * device/lib/pic16/libc/stdio/vfprintf.c,
4529         * device/lib/pic16/libc/stdlib/ltoa.c,
4530         * device/lib/pic16/libc/stdlib/putchar.c,
4531         * device/lib/pic16/libc/stdlib/x_ftoa.c,
4532         * device/lib/pic16/libc/stdlib/memchrpgm.c,
4533         * device/lib/pic16/libc/stdlib/memchrram.c,
4534         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
4535         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
4536         * device/lib/pic16/libio/adc/adcbusy.c,
4537         * device/lib/pic16/libio/adc/adcread.c,
4538         * device/lib/pic16/libio/adc/adcsetch.c,
4539         * device/lib/pic16/libio/usart/ubaud.c,
4540         * device/lib/pic16/libio/usart/ubusy.c,
4541         * device/lib/pic16/libio/usart/udrdy.c,
4542         * device/lib/pic16/libio/usart/uopen.c,
4543         * device/lib/pic16/libio/usart/uputc.c,
4544         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
4545         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
4546         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
4547         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
4548         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
4549         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
4550         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
4551         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
4552         specific keywords to double underlined form,
4553         * device/lib/pic16/libc/Makefile.rules,
4554         * device/lib/pic16/libsdcc/Makefile.rules,
4555         * device/lib/pic16/libm/Makefile,
4556         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
4557         to compile with C standard set in Makefile.common
4558         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
4559         rand.c and crc.c in compilation process,
4560         * device/lib/pic16/libsdcc/int/divuint.c,
4561         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
4562         `c' from signed to unsigned,
4563         * device/lib/pic16/startup/crt0.c,
4564         * device/lib/pic16/startup/crt0i.c,
4565         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
4566         keywords to double underlined form, bug fixes in _do_cinit function
4567         which prevented the correct initialization of the .idata segment,
4568         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
4569         core to enter a infinite loop
4570         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
4571
4572 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4573
4574         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
4575
4576 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4577
4578         * device/include/Makefile.in: add support for hc08 subdirectory
4579         * device/include/hc08/: new subdirectory
4580         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
4581         Lucas Loizaga, thanks!
4582         * device/include/hc08/mc68hc908qy.h,
4583         * device/include/hc08/mc68hc908gp32.h,
4584         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
4585         their own directory. Changed internal macro names to use the compiler
4586         reserved namespace. Changed SDCC specific keywords to double
4587         underlined form.
4588         * device/include/math.h,
4589         * device/include/malloc.h,
4590         * device/include/stdarg.h,
4591         * device/include/stdbool.h
4592         * device/include/string.h,
4593         * device/include/tinibios.h,
4594         * device/include/ds400rom.h,
4595         * device/include/8051.h,
4596         * device/include/8052.h,
4597         * device/include/80c51xa.h,
4598         * device/include/at89c55.h,
4599         * device/include/at89S8252.h,
4600         * device/include/at89x51.h,
4601         * device/include/at89x52.h,
4602         * device/include/ds80c390.h,
4603         * device/include/reg764.h,
4604         * device/include/regc515c.h,
4605         * device/include/sab80515.h,
4606         * device/include/mcs51/c8051f000.h,
4607         * device/include/mcs51/c8051f018.h,
4608         * device/include/mcs51/c8051f020.h,
4609         * device/include/mcs51/c8051f040.h,
4610         * device/include/mcs51/c8051f060.h,
4611         * device/include/mcs51/c8051f120.h,
4612         * device/include/mcs51/c8051f300.h,
4613         * device/include/mcs51/c8051f310.h,
4614         * device/include/mcs51/c8051f320.h,
4615         * device/include/mcs51/c8051f330.h,
4616         * device/include/mcs51/c8051f350.h,
4617         * device/include/z180.h: Changed SDCC specific keywords to double
4618         underlined form.
4619
4620 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
4621
4622         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
4623         18F4455,
4624         * (pic16_assignConfigWordValue): disable testing of configuration
4625         register value with config mask,
4626         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
4627         function with port->fun_prefix,
4628         * (genFunction): when generating a naked interrupt function never
4629         create an absolute segment placed in interrupt vector address, place
4630         the actual interrupt function at IVA instead, when an interrupt
4631         function is generated with unspecified interrupt then do not create
4632         the absolute section,
4633         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
4634         code for generating a call to generic pointer get/put function with
4635         a call to function pic16_callGenericPointer(),
4636         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
4637         the call to the generic pointer get/put functions with prefixing the
4638         function name with port->fun_prefix,
4639         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
4640         * src/pic16/main.c (_process_pragma): prefix function with
4641         port->fun_prefix,
4642         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
4643         calling assembler, old 18Fxxxx macro is deprecated,
4644         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
4645         PC_ASMDIR in while condition,
4646         * (findInstruction): add PC_ASMDIR in while condition,
4647         * (buildCallTree): prefix main with port->fun_prefix,
4648         * (pic16_pCode2str): fixed bug that didn't emit the memory access
4649         identifier for variable with banked access in instructions BTFSS,
4650         BTFSC, BCF, BSF, BTG
4651         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
4652         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
4653         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
4654         perform optimization when enviroment variable NO_REG_OPT is set,
4655         * (insideLRBlock): NEW, return 1 if register is inside an
4656         INF_LOCALREGS block,
4657         * (RemoveRegFromLRBlock): remove a register that is completely
4658         eliminated by register optimization, but it is still left in local
4659         register store/restore in/from stack block,
4660         * (Remove2pcodes): after removing register, check to see if it
4661         should be removed from local register store/restore in/from stack
4662         block,
4663         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
4664         DUMMY_READ_VOLATILE,
4665
4666         * device/include/pic16/adc.h: minor prototype modifications and
4667         update,
4668         * device/include/pic16/malloc.h: added GPL notice various
4669         modifications,
4670         * device/include/pic16/stdint.h: NEW, standard header for ints
4671         * device/include/pic16/delay.h: NEW, header for delay functions,
4672         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
4673         delay1mtcy,
4674         * device/include/pic16/signal.h: NEW, header providing helper macros
4675         for implementing signal handlers,
4676         * device/include/pic16/stdio.h: added prototypes for functions,
4677         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
4678         prototypes for stdin and stdout, added macro PUTCHAR to
4679         automatically implement putchar function prototype,
4680         * device/include/pic16/usart.h: modified and updated USART library,
4681         * device/lib/pic16/libio/adc/,
4682         * device/lib/pic16/libio/i2c: some modifications to improve library
4683         performance,
4684         * device/lib/pic16/libc/stdio/: modifications for the new printf*
4685         family of functions,
4686         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
4687         family of functions and other sources,
4688         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
4689         of the PIC18Fxx[28] devices,
4690         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
4691         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
4692         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
4693         _do_cinit function, because the previous failed when local variables
4694         where not placed in the same memory bank,
4695         * device/lib/pic16/libsdcc/char/: various modifications to improve
4696         library performance,
4697         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
4698         information on the new functions of the c library and more...
4699
4700 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4701
4702         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
4703
4704 2005-03-26 Raphael Neider <rneider AT web.de>
4705
4706         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
4707           if condition == CARRY)
4708         * (genCmp): adapted to new genSkipc semantics
4709         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
4710           on rIfx (genCmp was broken)
4711
4712 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4713
4714         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
4715         * src/z80/main.c (_keywords[]),
4716         * src/SDCCglobal.h (struct options),
4717         * src/SDCC.y,
4718         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
4719         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
4720         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
4721         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
4722         always available in leading double underscore form. The C99 support is
4723         mostly missing, but it's a start.
4724         * support/regression/tests/bug-227710.c: fixed nonconforming use of
4725         reserved identifier "__data".
4726
4727 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4728
4729         * src/mcs51/peeph.def: fixed bug 1170013
4730
4731 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
4732
4733         * device/include/mcs51reg.h: fixed bug 842007
4734
4735 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4736
4737         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
4738         last time.
4739
4740 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4741
4742         * src/port.h (struct PORT),
4743         * src/avr/ralloc.c (avr_assignRegisters),
4744         * src/avr/main.c,
4745         * src/ds390/ralloc.c (ds390_assignRegisters),
4746         * src/ds390/main.c,
4747         * src/hc08/ralloc.c (hc08_assignRegisters),
4748         * src/hc08/main.c,
4749         * src/mcs51/ralloc.c (mcs51_assignRegisters),
4750         * src/mcs51/main.c,
4751         * src/pic/ralloc.c (pic14_assignRegisters),
4752         * src/pic/main.c,
4753         * src/pic16/ralloc.c (pic16_assignRegisters),
4754         * src/pic16/main.c,
4755         * src/xa51/ralloc.c (xa51_assignRegisters),
4756         * src/xa51/main.c,
4757         * src/z80/ralloc.c (z80_assignRegisters),
4758         * src/z80/ralloc.h,
4759         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
4760         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
4761         * src/SDCCcse.h,
4762         * src/SDCCdflow.c (computeDataFlow),
4763         * src/SDCCdflow.h,
4764         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
4765         * src/SDCCloop.h,
4766         * src/SDCCcflow.c (*),
4767         * src/SDCCcflow.h,
4768         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
4769         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
4770         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
4771         immedDom() returning wrong block; probably fixes bug #1160833)
4772
4773 2005-03-20 Borut Razem <borut.razem AT siol.net>
4774
4775         * support/scripts/inc2h.pl: WIN32 port
4776
4777 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
4778
4779         * device/lib/makefile.in: added abs.c and labs.c
4780
4781 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
4782
4783         * device/include/stdint.h: added
4784         * device/lib/abs.c: added
4785         * device/lib/labs.c: added
4786         * device/include/stdlib.h: added abs() and labs() prototypes
4787         * device/lib/libsdcc.lib: added abs and labs
4788         * device/include/float.h,
4789         * device/lib/_fsmul.c,
4790         * device/lib/printf_fast.c,
4791         * device/lib/printf_tiny.c: updated comments
4792
4793 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4794
4795         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
4796         bug #1164313
4797
4798 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4799
4800         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
4801         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
4802
4803 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
4804
4805         * device/lib/printf_large.c: removed inline assembly for portability and
4806           readability. Use printf_fast if speed or size are more important.
4807         * src/pic16/gen.c: removed conditions around use of DEBUGpc
4808         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
4809
4810 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
4811
4812         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
4813         prevent compiler warning
4814
4815 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4816
4817         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
4818         moved to level 0 and declared as static. Also they are explicit
4819         placed in access bank. This was necessery because some times they
4820         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
4821         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
4822         optimizations. Currently only compare to unsigned char is implemented,
4823         * src/pic16/gen.c: added fReturnIdx array,
4824         * (struct resolvedIfx) is moved to gen.h and made public,
4825         * (struct _G): added sregsAlloc and sregsAllocSet fields,
4826         * (aopForSym): added an optimization to directly store in stack of
4827         the operand of a SEND iCode,
4828         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
4829         but as registers instead (AOP_REG) using the fReturnIdx array,
4830         * (pic16_freeAsmop): remove the freed register from the
4831         _G.sregsAlloc field,
4832         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
4833         a compare of 'WREG',
4834         * (pic16_popGetTempRegCond): changed function prototype, now
4835         function takes also a bitVector argument v which holds the current
4836         set of registers that are allocated for stack access by aopForSym,
4837         registers allocated in aopForSym for accessing stack symbols are not
4838         any more part of the functions usedRegs field,
4839         * (genCall): some times aopOp is called for a stack variable to be
4840         send, aopForSym might perform the push, if this is true make sure
4841         that genCall doesn't push the variable twice by testing _G.resDirect,
4842         * (genFunction): changed testing for unspecified interrupt number
4843         from 256 to INTNO_UNSPEC,
4844         * modified selection scheme of frame pointer generation. Previously
4845         if function did use local registers a frame pointer was generated,
4846         now a frame pointer is generated only if function has arguments
4847         (that need PLUSW2 register access), or has stack arguments, or the
4848         compiler is not instructed to omit the frame pointer,
4849         * (genEndFunction): before restoring local registers that were saved
4850         in the function preamble, also restore the registers that *might*
4851         have been allocated for stack access,
4852         * (genRet): removed some old comments,
4853         * (genCmp, the active (RN's) version): added a call to the
4854         pic16_genCmp_special function to perform the compare with a more
4855         robust and optimized way,
4856         * (genInline): a feature has been added in inline code generation,
4857         which allows a wildcard variable substitution when writing inline
4858         assembly. Code is incomplete and experimental therefore undocumented,
4859         * (genCast): changed order of aopOp for result and right to allow
4860         aopForSym to directly load the result if possible,
4861         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
4862         perform an optimized compare on some selected special occasions,
4863         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
4864         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
4865         generate an IVT any more,
4866         * src/pic16/main.c (pic16_optionsTable): added command line option
4867         --optimize-cmp,
4868         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
4869         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
4870         macros,
4871         * src/pic16/NOTES: Raphael Neider added in list of active developers
4872         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
4873         jumptable_end to prevent bug #,
4874         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
4875         inCond and outCond fields,
4876         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
4877         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
4878         turn off register spilling,
4879         * (packRegsForOneUse): synced with other ports' versions although it
4880         is not used currently,
4881         * (pic16_packRegisters): added an optimization while reading
4882         structure bitfields, some registers may be saved (malloc code is
4883         decreased by 80 bytes)
4884
4885 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
4886
4887         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
4888         left is a bitfield, if yes, then don't optimize assignment. Perhaps
4889         this can be optimized more?
4890
4891 2005-03-10 Raphael Neider <rneider AT web.de>
4892
4893         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4894           genNearPointerGet): (hopefully) fixed access to bitfields via
4895           pointers (p->bitN = x; and x = p->bitN; failed)
4896
4897 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
4898
4899         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
4900
4901 2005-03-09 Raphael Neider <rneider AT web.de>
4902
4903         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
4904
4905 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
4906
4907         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
4908         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
4909           (regTypeNum): set REG_BIT type if necessary
4910         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
4911         * support/regression/tests/critical.c: check bug 1144613
4912
4913 2005-03-02 Raphael Neider <rneider AT web.de>
4914
4915         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
4916
4917 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4918
4919         * src/avr/ralloc.c (serialRegAssign),
4920         * src/ds390/ralloc.c (serialRegAssign),
4921         * src/hc08/ralloc.c (serialRegAssign),
4922         * src/mcs51/ralloc.c (serialRegAssign),
4923         * src/pic/ralloc.c (serialRegAssign),
4924         * src/pic16/ralloc.c (serialRegAssign),
4925         * src/xa51/ralloc.c (serialRegAssign),
4926         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
4927
4928 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
4929
4930         * src/SDCCast.c (decorateType): fixed bug 1124787
4931
4932 2005-02-20 Hubert Sack <sack AT digiplan.de>
4933         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4934
4935         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
4936         patch #1121755
4937
4938 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4939
4940         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
4941         to keep the correct label reference count when adding/removing references
4942         to labels. A peephole file using this is appended to patch #1144962.
4943
4944 2005-02-14 Raphael Neider <rneider AT web.de>
4945
4946         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
4947         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
4948         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
4949           retrievals of result operand's value on assignment
4950
4951 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
4952
4953         * device/include/pic16/string.h: modified prototype for memccpy()
4954         to memccpy(void *, void *, char, size_t)
4955         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
4956         check whether to omit frame pointer or not,
4957         * (genInline): convert all occurences of "\n" to LF in inline
4958         assembler blocks, this helps formatting the inline text,
4959         * (pic16_loadFSR0): modified prototype,
4960         * (genNearPointerGet, genNearPointerSet): reorganization of code,
4961         removed some 8051 legacy code,
4962         * (genPackBits): enabled handling bitfields exceeding one byte in size,
4963         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
4964         before allocating temporary registers in functions,
4965
4966 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4967
4968         * support/regression/tests/bitvars.c: corrected the "fix"
4969
4970 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4971
4972         * support/regression/tests/bitvars.c,
4973         * support/regression/tests/bitwise.c,
4974         * support/regression/tests/rotate.c: "fixed" problems on Alpha
4975
4976 2005-02-10 Raphael Neider <rneider AT web.de>
4977
4978         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
4979           different size for Alpha
4980         * src/pic16/gen.c (genCmpEq) : improved compare with 0
4981
4982 2005-02-09 Raphael Neider <rneider AT web.de>
4983
4984         * src/SDCC.lex(doPragma) : save and restore warning options as well
4985           (also added new stack plus clone- and copyAndFreeSDCCERRG())
4986         * have #pragma less_pedantic set the errorlevel to WARNING
4987           (fixes #1117001)
4988         * (cloneOptimize) : fixed wrong malloc's size
4989         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
4990           facilitate correct handling of #pragma (save|restore)
4991
4992 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4993
4994         * src/mcs51/gen.c: removed non-standard C nameless struct/union
4995
4996 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
4997
4998         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
4999
5000 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
5001
5002         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
5003
5004 2005-02-02 Raphael Neider <rneider AT web.de>
5005
5006         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
5007         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
5008         * (pic16_storeForReturn): fixed to allow returning function pointers
5009         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
5010         * device/include/pic16/{stddef.h,stdbool.h}: added
5011
5012 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
5013
5014         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
5015
5016 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
5017
5018         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
5019         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
5020          appeared to be required
5021
5022 2005-01-31 Borut Razem <borut.razem AT siol.net>
5023
5024         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
5025           include/mcs51 and include/z80 directories to the package
5026
5027 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5028
5029         * src/hc08/gen.c (genFunction): fixed bug #1112752
5030
5031 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5032
5033         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
5034
5035 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5036
5037         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
5038
5039 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
5040
5041         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
5042
5043 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
5044
5045         * device/include/c8051fxxx.h: removed these 6 files
5046         * device/include/mcs51/c8051fxxx.h: added these 11 new files
5047
5048 2005-01-26 Raphael Neider <rneider AT web.de>
5049
5050         * src/pic16/gen.c (genAssign): fixed assignment from longs
5051           in codespace (were cut to three bytes)
5052         * (genDummyRead): implemented (except for CODESPACE...),
5053           fixed bug #1108575
5054         * src/pic16/glue.c (emitStatistics): beautified
5055         * device/lib/pic16/libm/Makefile: added include path
5056
5057 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5058
5059         * src/z80/gen.c (aopPut): fixed bug #1103902
5060
5061 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5062
5063         * device/lib/expf.c: fixed bug #1095792
5064
5065 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
5066
5067         * device/lib/pic16/libm: added Math library sources
5068
5069 2005-01-24 Raphael Neider <rneider AT web.de>
5070
5071         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
5072           to enable upcast to pCodeOpReg2 (there is no type tag to
5073           differenciate the two and pic16_popGet2p cast into PCOR2)
5074         * src/pic16/main.c (_process_pragma): fixed another malloc bug
5075           (sizeof(sectNames) changed to sizeof(sectName))
5076           Both patches fix segfaults under MinGW.
5077
5078 2005-01-23 Raphael Neider <rneider AT web.de>
5079
5080         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
5081           Safe_[mc]?alloc()'ed variables
5082         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
5083           of (byte sized) temporaries (assign them to WREG for now)
5084         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
5085           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
5086           this might fix SIGSEGVs on MinGW...
5087         * src/SDCCopt.c (killDeadCode): restored original behaviour
5088           (volatile operands might get thrown away though)
5089
5090 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
5091
5092         * src/pic16/gen.c: fixed bug #1106975,
5093         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
5094         pointer update, INTCON is saved, global interrupts are disabled and
5095         restored after updateing TOS.
5096         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
5097         * added function attribute 'shadowregs' to take advantage of shadow
5098         registers,
5099         * added function attribute 'wparam' as an alternative to the wparam
5100         pragma,
5101         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
5102         user declares a non-ISR function as 'shadowregs',
5103         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
5104
5105 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
5106
5107         * .version: bumped version number to 2.4.8
5108         * device/lib/pic16/pics.all: list of PIC18F devices supported by
5109         pic16 port,
5110         * device/lib/pic16/libio/i2c/: I2C module support library,
5111         * device/include/pic16/i2c.h: I2C support library header,
5112         * device/lib/pic16/libc/stdio/: standard IO support sources,
5113         * (printf_small.c): printf_small() source, supports float print,
5114         * (printf_tiny.c): printf_tiny() source, does not support floats,
5115         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
5116         enable global optimizations for entire library source, other
5117         Makefiles in the source tree are also modified to reflect this,
5118         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
5119         function,
5120         * doc/sdccman.lyx: updated to reflect new changes,
5121         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
5122         sym->onStack if-case,
5123         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
5124         sbit, idata, _idata, xdata, _xdata,
5125         * added pragma library, to link an external library, (see doc),
5126         * removed command line options, --pomit-config-words, --pomit-ivt,
5127         --pleave-reset-vector,
5128         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
5129         when calling assembler to reflect memory model used, also define
5130         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
5131         reflect stack model used,
5132         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
5133         on stack return NULL,
5134
5135 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5136
5137         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
5138           of the operands is volatile. Fixes #1020220
5139
5140 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5141
5142         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
5143         * (OptimizeRegUsage): make sure that there is really no other flow where
5144           the first pCode is used
5145
5146 2005-01-22 Raphael Neider <rneider AT web.de>
5147
5148         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
5149           to fix #1106967 (pCode->seq are not set up correctly)
5150
5151 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5152
5153         * src/SDCCglue.c (glue): make sure code area is declared before the
5154         static initialization area.
5155
5156 2005-01-21 Raphael Neider <rneider AT web.de>
5157
5158         * device/lib/Makefile.in: fixed test for pic16 install dir
5159         * device/lib/pic16/*/Makefile*: modified compile flags to enable
5160           optimizations
5161         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
5162           added --optimize-goto compiler switch and pragma wparam documentation
5163         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
5164         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
5165           and PRODH closing bug #1071770 (peephole optimizer)
5166
5167 2005-01-19 Raphael Neider <rneider AT web.de>
5168
5169         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
5170           cmdLine buffers (used when calling sdcpp...) are large enough
5171           (MAX_PATH=256 truncates arguments leading to system halts when
5172           used in MinGW...)
5173         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
5174         * (genUminus): rewritten to for efficiency
5175         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
5176           used uninitialized in some cases)
5177         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
5178           copy the third byte from the int -- now assumes 0x80 (data memory)
5179         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
5180           operands (genAddLit expects the iCode's operands to swapped as
5181           well), fixed leftover bytes (crashed for short left operands)
5182         * (pic16_genMinusDec): performance improvements, removed false
5183           PIC14 emitSKPNCs
5184         * (pic16_genMinus): fixed to cope with differently sized operands
5185         * src/pic16/glue.c (pic16_glue): added new banksel optimization
5186           for --obanksel > 1
5187         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
5188         * src/pic16/graph.[ch]: implementation of directed graphs, used by
5189           new banksel optimization
5190         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
5191           analysis for temporary registers (segfaults...)
5192         * src/pic16/peeph.def: added rule
5193
5194 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
5195
5196         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
5197         which converts a float number to its ASCII representation
5198         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
5199         functions to convert the fractional and integer part of a float to ASCII,
5200         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
5201         realloc.c): added _MALLOC_SPEC to explicit place variables in data
5202         ram
5203         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
5204         _STATMEM macros,
5205         * device/include/pic16/adc.h: added GPL info,
5206         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
5207         a pCodeOp as tested operand,
5208         * (genNearPointerGet): optimized bit testing, does not use
5209         intermediate register for bit value, test directly instead with
5210         BTFSS, BTFSC, works only for single bits,
5211         * (genpic16Code): dump the name of the iCode in the asm,
5212         * src/pic16/ralloc.c (decodeOp): removed static declaration and
5213         renamed to pic16_decodeOp,
5214         * (serialRegAssign): do not allocate a temporary register for iCode
5215         sequences that test a single bit for 1/0
5216
5217 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
5218
5219         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
5220         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
5221         access stack and frame pointers. They are initially assigned to
5222         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
5223         accessing SFRs. Updated all occurences of modification of stack or
5224         frame pointer in gen.c and pcode.c,
5225         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
5226         assigning of a literal value to pointers,
5227         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
5228         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
5229         selected
5230
5231 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
5232
5233         * doc/sdccman.lyx: update documentation about stack pragma, added
5234         some info for stack memory models
5235
5236 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5237
5238         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
5239
5240 2005-01-08 Raphael Neider <rneider AT web.de>
5241
5242         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
5243           udata sections to fix bug #1097823
5244
5245 2005-01-05 Raphael Neider <rneider AT web.de>
5246
5247         * src/pic16/gen.c (genGenericShift): added handling of differently
5248           sized left operand and result
5249
5250 2005-01-04 Raphael Neider <rneider AT web.de>
5251
5252         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
5253         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
5254           to hold the condition bit)
5255         * added new version of genCmp (old code available via #define)
5256         * added new version of genShiftLeft/genShiftRight in a generic
5257           way, now supports shifting by negative values
5258         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
5259           shiftCount (expected by genGenericShift)
5260         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
5261         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
5262           dump
5263         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
5264           is an invalid literal too...)
5265
5266 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
5267
5268         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
5269         from Raphael Neider,
5270         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
5271         for 8-bit literals. This fixes some literal operands which are sign
5272         extended to 16-bits ints when instruction needs only 8-bits.
5273
5274 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
5275
5276         * device/lib/logf.c: added mcs51 assembly version
5277         * device/lib/expf.c: added mcs51 assembly version
5278         * device/lib/_logexpf.c: new shared asm code for expf and logf
5279         * device/include/math.h: add defines for assembly math library
5280         * device/lib/Makefile.in: build new _logexpf.c
5281         * device/lib/libfloat.lib: use new _logexpf.c
5282
5283 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
5284
5285         * src/pic/device.c
5286         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
5287           device types which have less than 0x7f registers.
5288
5289 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
5290
5291         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
5292
5293 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
5294
5295         * device/lib/printf_fast.c: only build on supported arch.
5296         * device/lib/printf_tiny.c: only build on supported arch.
5297         * device/lib/printf_fast_f.c: only build if asm float lib
5298         * device/lib/_fsget1arg.c: only build if asm float lib
5299         * device/lib/_fsget2args.c: only build if asm float lib
5300         * device/lib/_fsnormalize.c: only build if asm float lib
5301         * device/lib/_fsreturnval.c: only build if asm float lib
5302         * device/lib/_fsrshift.c: only build if asm float lib
5303         * device/lib/_fsswapargs.c: only build if asm float lib
5304         * device/include/stdio.h: don't provide print_fast,
5305           print_fast_f, print_tiny prototypes if --xstack used
5306
5307 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
5308
5309         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
5310         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
5311           to the SOURCES
5312
5313 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
5314
5315         * device/lib/printf_fast_f.c: same as printf_fast, but
5316           with floating point enabled
5317         * device/lib/printf_fast.c: minor tweaks
5318         * device/include/stdio.h: add printf_fast_f
5319
5320 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5321
5322         * src/SDCCmain.c: make --float-reent default for mcs51
5323         * device/lib/_fsadd.c: added mcs51 assembly version
5324         * device/lib/_fssub.c: added mcs51 assembly version
5325         * device/lib/_fsmul.c: added mcs51 assembly version
5326         * device/lib/_fsdiv.c: added mcs51 assembly version
5327         * device/lib/_fseq.c: added mcs51 assembly version
5328         * device/lib/_fsneq.c: added mcs51 assembly version
5329         * device/lib/_fsgt.c: added mcs51 assembly version
5330         * device/lib/_fslt.c: added mcs51 assembly version
5331         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
5332         * device/lib/Makefile.in: add _fscmp to build
5333         * device/lib/libfloat.lib: add _fscmp to build
5334
5335 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5336
5337         * device/lib/_fs2slong.c: added mcs51 assembly version
5338         * device/lib/_fs2sint.c: added mcs51 assembly version
5339         * device/lib/_fs2schar.c: added mcs51 assembly version
5340         * device/lib/_fs2ulong.c: added mcs51 assembly version
5341         * device/lib/_fs2uint.c: added mcs51 assembly version
5342         * device/lib/_fs2uchar.c: added mcs51 assembly version
5343         * device/lib/_slong2fs.c: added mcs51 assembly version
5344         * device/lib/_sint2fs.c: added mcs51 assembly version
5345         * device/lib/_schar2fs.c: added mcs51 assembly version
5346         * device/lib/_ulong2fs.c: added mcs51 assembly version
5347         * device/lib/_uint2fs.c: added mcs51 assembly version
5348         * device/lib/_uchar2fs.c: added mcs51 assembly version
5349         * device/include/float.h: added #define to select asm vs c
5350
5351 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
5352
5353         * device/lib/printf_fast.c: improvements to float output
5354         * device/include/float.h: add defines for assembly float library
5355         * device/lib/_fsget1arg.c: receive 1 float arg
5356         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
5357         * device/lib/_fsnormalize.c: normalize a float
5358         * device/lib/_fsreturnval.c: return float, various helper routines
5359         * device/lib/_fsrshift.c: right shift a float's mantissa
5360         * device/lib/_fsswapargs.c: swap 2 floats
5361         * device/lib/Makefile.in: build these 6 new files for mcs51
5362         * device/lib/libfloat.lib: add these 6 files to the library
5363
5364 2004-12-26 Borut Razem <borut.razem AT siol.net>
5365
5366         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
5367           built by gcc 3.4.2
5368
5369 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
5370
5371         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
5372           and fully reentrant and register bank neutral.
5373         * device/lib/printf_fast.c: added float (not enabled by default),
5374           added compact/slower integer (also not enabled by default),
5375           improved size/speed of fast integer code, other minor changes
5376         * device/include/stdio.h, device/lib/Makefile.in,
5377           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
5378
5379 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
5380
5381         * src/pic16/pcode.c: declaring variables other than at the start of a
5382           block is not supported in C by VC6.
5383
5384 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
5385
5386         * applied a previous patch from Raphael Neider that wasn't included
5387         in the previous commits, which fixes infinite loops within jumptable
5388         improvements,
5389         * made some fixes that previous patches introduced
5390
5391 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
5392
5393         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
5394         that fixes an issue with AOP_PCODE asmop's offset,
5395         * (pic16_popCopyReg): update instance field too,
5396         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
5397         function of pic port,
5398         * (genCmp, genAnd, genAssign),
5399         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
5400
5401 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
5402
5403         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
5404         variables initial values to idata section,
5405         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
5406         variables in some functions. This utilizes parmBytes field of iCode
5407         structure to hold the offset of the variable in stack. (might be
5408         able to use the stack field too?)
5409         * applied patch from Raphael Neider # ### , # ###
5410         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
5411         variable initial values in idata section,
5412         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
5413         for static variables with initial value
5414         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
5415         applied fix in while loop from Raphael Neider.
5416
5417 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
5418
5419         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
5420         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
5421         * src/ds390/ralloc.c (serialRegAssign): spill bits
5422         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
5423         * support/Util/SDCCerr.c,
5424         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
5425         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
5426         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
5427
5428 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
5429
5430         * device/include/sdcc-lib.h: inserted LGPL, added includes
5431           asm/ds390/features.h and asm/mcs51/features.h
5432         * device/include/asm/default/features.h,
5433         * device/include/asm/gbz80/features.h,
5434         * device/include/asm/z80/features.h: added empty _AUTOMEM
5435           and _STATMEM
5436         * device/include/asm/ds390/features.h,
5437         * device/include/asm/mcs51/features.h: added files with defines for
5438           _AUTOMEM and _STATMEM indicating automatic and static storage class
5439         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
5440         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
5441         * src/SDCCicode.c (geniCodeCast),
5442         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
5443         * src/SDCCloop.c (loopInduction): removed unused variable lr
5444         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
5445           to convertToFcall to include char modulo (RFE 1065037), added check
5446           if left operand is unsigned and use abs of literal value
5447         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
5448           as it doesn't work after conversion from peephole.def to peephole.rul
5449         * src/mcs51/gen.c (toBoolean): added check for size,
5450           (genModOneByte): optimized code for signed char modulo a literal
5451           power of 2 (thanks to Hubert Sack),
5452           (genRRC): removed unnecessary "clr c",
5453           (genRLC): replaced "add a,acc" with cheaper "rlc a"
5454         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
5455           jump optimization,
5456           swapped rules 256.c and 256.d,
5457           extended 256.d by using new multiple checks (thanks Erik),
5458           added rules 256.e and 256.f,
5459           updated rule 261.a and 261.b to new generated code
5460         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
5461
5462 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5463
5464         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
5465           induction related bugs, including first part of bug #1074377
5466
5467 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
5468
5469         * applied patch from bug-report #1076292,
5470         * applied patches for genAnd and Goto-optimizations for Raphael
5471         Neider,
5472         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
5473         dump a less iCode information,
5474         * src/pic16/device.h (pic16_options_t): added field debgen,
5475         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
5476         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
5477         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
5478         puclic,
5479         * (various functions): added macros FENTRY and FENTRY2 to functions,
5480         to emit function prologue,
5481         * (various functions): fixed indentation,
5482         * (genNearPointerGet): fixed loading of FSR0,
5483         * (genPackBits): applied patch from Raphael Neider to fix updating
5484         of FSR0 and touching only the modified bits,
5485         * src/pic16/genarith.c (various functions): added macros FENTRY to
5486         emit function prologue in comments,
5487         * src/pic16/pcode.h: added functions debugf2, debugf3,
5488         * src/pic16/ralloc.c: partial fix for packForPush caused
5489         segmentation fault,
5490
5491 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5492
5493         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
5494           <stsp AT users.sourceforge.net> with reversed byte order
5495         * support/regression/tests/rotate.c: added (ds390 skips some tests)
5496
5497 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5498
5499         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
5500           bug #1074377
5501         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
5502         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
5503
5504 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5505
5506         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
5507
5508 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5509
5510         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
5511           conditions,
5512           (setFromConditionArgs): friendly operand parser for peephole rules,
5513           (operandBaseName, operandsNotRelated): new peephole condition
5514           "operandsNotRelated" -- similar to "operandsNotSame", but takes
5515           architecture specific register naming into account, handles n-way
5516           comparisons, and supports quoted literals
5517         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
5518
5519 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5520
5521         * src/mcs51/peeph.def: fixed bug #1076940
5522
5523 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5524
5525         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
5526
5527 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5528
5529         Adding support for replacing ljmps with sjmps in jumptables
5530         generated for switch statements. For now you need to set the
5531         environment variable SDCC_SJMP_JUMPTABLE to enable this.
5532         Now 4 algorithms for mcs51 jumptable generation are used:
5533         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
5534         addresses loaded pc-relative for up to 112 cases and stack-pushing
5535         target addresses loaded with offset from dptr for up to 256 cases.
5536
5537         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
5538         * src/mcs51/main.c: adapted constants for switch table generation
5539         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
5540
5541 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
5542
5543         * device/lib/printf_large.c (_print_format): fixed bug 1073386
5544         * support/regression/tests/bug1057979.c: added test for bug 1073386
5545
5546 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5547
5548         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
5549         compilers
5550
5551 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5552
5553         * src/pic16/device.h,
5554         * src/pic16/genarith.c,
5555         * src/pic16/glue.c,
5556         * src/pic16/main.c,
5557         * src/pic16/pcode.c: applied patches #1068154 and #1070213
5558
5559 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
5560
5561         Large cummulative patch for pic16 port.
5562         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
5563         to call when a stack overflow occurs,
5564         * (malloc.h): added CVS Id tag,
5565         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
5566         variable,
5567         * added libc directory. The current version of LibC contains string
5568         functions, ctype functions and macros and some functions of the
5569         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
5570         be extensively tested in the future. Standard disclaimer here.
5571         Library is not automatically build yet. But one can build it by
5572         invoking 'make' inside the libc directory.
5573         * added ADC library under libio. Preliminary version yet.
5574
5575         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
5576         * src/pic16/gen.c (aopForRemat): asmop size is filled by
5577         aopForRemat() now and not by pic16_aopOp(),
5578         * (pic16_popGetTempReg): removed warning messgae when allocating
5579         temporary registers, its a buggy feature and will be removed,
5580         * (pic16_popGet): set register instance field in AOP_CRY,
5581         * (pic16_outBitC): fixed for results in size greater than 1,
5582         * (genUminusFloat): fixed for pic16, ported code from mcs51,
5583         * (pic16_storeForReturn): optimized return of 0,
5584         * (genCmp): experimental code for new genCmp which uses PIC18's
5585         special compare&skip instructions. Initial tests fail some times
5586         with variables grater than 1 byte in size, so new code is disabled,
5587         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
5588         a single bit,
5589         * (genCast): began a fix to optimize the casting of a bit to another
5590         bit, now assigning a bitfield to another bitfield will fail, sorry,
5591         * src/pic16/main.c: disabled the use of lr-support feature,
5592         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
5593         * added some function prototypes, added function _debugf prototype,
5594         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
5595         bits with offset (case PO_GPR_BIT),
5596         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
5597         command line,
5598         * (isBankInstruction): modified to return 0 for no banking instruction,
5599         and 1 for banking instruction,
5600         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
5601         caused stop processing pCodes after a inline assembly block,
5602         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
5603         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
5604         registers when it shouldn't,
5605         * src/pic16/ralloc.c (allocReg): add preliminary support for
5606         supporting a limited set of temporary registers,
5607
5608 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5609
5610         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
5611           genDataPointerSet): ensure assignments always copy in MSB to LSB
5612           order,
5613           (loadRegFromAop): recognize CLRH optimization,
5614           (genFunction): optimize RECEIVE iCodes in reentrant functions
5615
5616 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5617
5618         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
5619           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
5620           selected.
5621         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
5622         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
5623           contiguous with data
5624
5625 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5626
5627         * device/lib/_gptrget.c (_gptrget),
5628         * device/lib/_gptrgetc.c (_gptrgetc),
5629         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
5630           instead of sjmp to ret
5631         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
5632           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
5633
5634 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5635
5636         * .version: bumped version to 2.4.7
5637         * device/lib/_gptrget.c (_gptrget): is now _naked
5638         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
5639         * device/lib/_gptrput.c (_gptrput): is now _naked
5640         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
5641           (createFunction): fixed xstack
5642         * src/SDCCglue.c (emitMaps): set allocation required for bit area
5643         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
5644           or bit either,
5645           (geniCodeCritical): store original interrupt state in an iTemp bit
5646           var unless stack-auto
5647         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
5648         * src/SDCCmain.c (setIncludePath): added include/target to search path
5649         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
5650         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
5651           prototype,
5652           (processFuncArgs): put bit vars in bit area
5653         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
5654           unsaveRBank): fixed xstack,
5655           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
5656           (genFunction, genEndFunction): fixed xstack,
5657           (genAssign): optimization don't walk backwards through mem
5658         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
5659         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
5660         * support/regression/Makefile: also make library (for stack-auto) when
5661           making "all" and added "test-mcs51-xstack-auto"
5662         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
5663         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
5664         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
5665         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
5666         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
5667           make-library by MAKE_LIBRARY
5668         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
5669           regression tests for xstack
5670         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
5671         * support/regression/tests/critical.c: test for critical on mcs51
5672
5673 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5674
5675         * support/regression/ports/ucz80/spec.mk: use include and lib files from
5676           built version of sdcc instead of installed version
5677
5678 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5679
5680         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
5681         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
5682           vprintf.c now
5683         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
5684         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
5685           WARNING: remove device/lib/build/z80/printf.o by hand when
5686           updating from previous build!
5687         * device/lib/z80/printf.c: updated comment
5688         * support/regression/tests/bug1057979.c: test all ports now
5689         * support/regression/tests/bug1065458.c: file added
5690
5691 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5692
5693         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
5694           *_start and *_end symbols for static functions
5695
5696 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
5697
5698         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
5699           and search crt0.o in all library paths,
5700           (setIncludePath): proper handling of --nostdinc,
5701           (setLibPath): proper handling of --nostdlib
5702         * support/regression/Makefile,
5703         * support/regression/ports/ds390/spec.mk,
5704         * support/regression/ports/gbz80/spec.mk,
5705         * support/regression/ports/hc08/spec.mk,
5706         * support/regression/ports/mcs51/spec.mk,
5707         * support/regression/ports/mcs51-large/spec.mk,
5708         * support/regression/ports/mcs51-stack-auto/spec.mk,
5709         * support/regression/ports/z80/spec.mk: use include and lib files from
5710           built version of sdcc instead of installed version
5711         * doc/sdccman.lyx: fixed typo in --nostdinc
5712
5713 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
5714
5715         * src/pic/pcode.c,
5716         * src/pic/device.c,
5717         * src/pic/ralloc.c,
5718         * src/pic/gen.c : added support to generate code for struct bit fields.
5719
5720 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5721
5722         * as/xa51/xa_version.h,
5723         * device/include/errno.h,
5724         * device/include/regc515c.h,
5725         * device/lib/_itoa.c,
5726         * device/lib/_ltoa.c,
5727         * device/lib/ser_ir_cts_rts.c,
5728         * sim/ucsim/xa.src/glob.cc,
5729         * sim/ucsim/xa.src/inst_gen.cc,
5730         * sim/ucsim/xa.src/xa_bit.cc,
5731         * sim/ucsim/xa.src/xa_sfr.cc,
5732         * sim/ucsim/z80.src/inst_dd.cc,
5733         * sim/ucsim/z80.src/inst_fdcb.cc,
5734         * support/scripts/keil2sdcc.pl,
5735         * src/pic16/pic16.dsp,
5736         * src/pic16/pic16a.dsp: corrected cvs line endings
5737         * device/lib/printf_large.c: fixed bug 1057979
5738         * src/pic16/gen.c: fixed non-C standard code
5739         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
5740         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
5741         * support/regression/ports/mcs51/support.c: reload T1 asap
5742         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
5743           pdata use and clear idata startup behaviour
5744         * support/regression/tests/bug1057979.c: added
5745
5746 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
5747
5748         * device/examples/ds390/ow390/ad26.h,
5749         * device/examples/ds390/ow390/cnt1d.h,
5750         * device/examples/ds390/ow390/crcutil.c,
5751         * device/examples/ds390/ow390/ownet.h,
5752         * device/examples/ds390/ow390/owsesu.c,
5753         * device/examples/ds390/ow390/swt12.h,
5754         * device/examples/ds390/ow390/swtoper.c,
5755         * device/examples/ds390/ow390/temp10.h,
5756         * device/examples/ds390/ow390/thermodl.c,
5757         * device/examples/ds390/tinitalk/tinitalk.dsp,
5758         * device/examples/ds390/tinitalk/tinitalk.dsw,
5759         * device/examples/mcs51/clock/hw.h,
5760         * device/examples/mcs51/simple2/go.bat,
5761         * device/examples/serialcomm/windows/serial.h,
5762         * device/examples/xa51/dummy.c,
5763         * device/examples/xa51/hello.c,
5764         * device/include/80c51xa.h,
5765         * device/include/at89x051.h: corrected cvs line endings
5766
5767 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
5768
5769         * src/pic16/main.c (options): added command line --gstack, to trace
5770         stack over/under flows,
5771         * added pragma 'wparam' to allow passing first byte of function
5772         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
5773         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
5774         call to __gstack_test function and sets up the symbol as extern,
5775         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
5776         * popaop): added call to pic16_testStackOverflow,
5777         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
5778         wparamList list,
5779         * (genCall, genPcall): now all parameters are passed via stack
5780         except in functions that are pass to wparam pragma in which WREG is
5781         used too,
5782         * (genPcall): REENTRANT flag is checked to see if variable prototype
5783         contains reentrant keyword, don't call a non-reentrant function, via
5784         a reentrant function pointer or vice versa, functions are never
5785         passed via WREG,
5786         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
5787         D.Winkler,
5788         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
5789         SIGSEGV when accessing a NULL register stucture,
5790         * (pic16_printGPointerType): modified to handle UPPER modifier for
5791         function initializers, changed prototype of function to simpler one,
5792         * (pic16_printIvalFuncPtr): check to see if function is already
5793         added in externs list,
5794         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
5795         optimized a move from W to SFR with a move to the same register
5796         later after a CALL,
5797         * device/lib/pic16/debug: NEW directory, contains debug features
5798         which are enabled when linking with libdebug.lib, currently command
5799         line option --gstack enables stack pointer tracing for over/under
5800         flow, corresponding sources are in debug/gstack
5801
5802 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
5803
5804         * doc/sdccman.lyx: updated SDCC version,
5805         * (PIC16 port): update list of command line options,
5806         * src/pic16/device.h (structure pic16_options_t): added field gstack
5807         to enable stack overflow tracing on push/pops,
5808         * src/pic16/device.c (statistics structure): added statistics
5809         structure,
5810         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
5811         pic16_dump_int_registers): increase statistics counters for each
5812         * variable which is encountered
5813         * (pic16_dump_usection): emit each .udata variable to its own udata
5814         section,
5815         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
5816         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
5817         parameters via stack, otherwise use old scheme,
5818         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
5819         assembler output file,
5820         * src/pic16/main.c: added command line options --gstack to enable
5821         push/pop tracing for stack overflow,
5822         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
5823         instructions): added size of each instruction,
5824         * (pic16_countInstruction): estimate size of instructions in
5825         the_pFile list, inline assembly blocks are not counted,
5826         * (pic16_FixRegisterBanking): trace previous register usage, when
5827         banksel optimizations is greater than 0, don't emit a redudant
5828         banksel directive,
5829
5830 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
5831
5832         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
5833         * src/pic16/ralloc.c : applied same fix for pic16.
5834         * src/pic/gen.c : tidied it up a little.
5835
5836 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5837
5838         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
5839         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
5840
5841 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5842
5843         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
5844
5845 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5846
5847         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
5848         non-reentrant function __modsint in the interrupt function (thus
5849         corrupting math operations during serial I/O)
5850         * device/lib/ser_ir.c: as above, changed buffersize
5851         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
5852         256.c,d for zeroing
5853         * doc/Makefile: added option -t for rsync
5854
5855 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5856
5857         * src/SDCCast.h (struct ast),
5858         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
5859
5860 2004-10-20 Borut Razem <borut.razem AT siol.net>
5861
5862         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
5863         package
5864
5865 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
5866
5867         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
5868         makefile targets,
5869         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
5870         support functions to replace long sequences of MOVFF's from access
5871         bank registers to stack and vice versa,
5872         * src/pic16/device.h: added new field opt_flags, where optimization
5873         flags can be set to enable certain features,
5874         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
5875         * pBlock, (genFunction, genEndFunction): surroung loop for
5876         saving/loading used registers in stack with PC_INFO pCodes,
5877         INF_LREGS. Code in between can then be optimized by pCode optimizer
5878         to support function calls,
5879         * (genDataPointerSet): fixed bug which loaded float fields in
5880         structures with corrupt data,
5881         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
5882         in a standard way debug info on stderr. Feature used for developing
5883         and debugging only,
5884         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
5885         obsolete chunks of code,
5886         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
5887         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
5888         * pic16/src/pcode.c (pic16_newpCodeInfo,
5889         * (pic16_newpCodeOpLocalRegs),
5890         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
5891         feature,
5892         * (pic16_pCodeConstString): printing of the initial value of a
5893         symbol as a comment is inhibited since parsing was already done by
5894         copyStr and output is corrupt,
5895         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
5896
5897 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5898
5899         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
5900
5901 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
5902
5903         * as/mcs51/lkarea.c: removed old K&R style,
5904           (lnksect): changed check on boundary error,
5905           (lnksect2): changed check on boundary error,
5906           (lnksect2): extend XSTK to end of page if size = 1
5907         * as/mcs51/lkmain.c: removed old K&R style,
5908           (Areas51): create l_IRAM symbol
5909         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
5910         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
5911           model-mcs51-stack-auto, added model-mcs51-xstack-auto
5912         * device/lib/_mullong.c: added version to be compiled with xstack
5913         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
5914         * device/lib/mcs51/crtxclear.asm: clear pdata as well
5915         * device/lib/mcs51/crtxstack.asm: fixed comment
5916         * src/SDCCglue.c: maxInterrupts defaults to 0,
5917           (emitMaps): added pdata,
5918           (createInterruptVect): (re)moved default,
5919           (glue): added pdata,
5920           (glue): moved __start__xstack to XSTK with default size 1
5921         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
5922           and options.float_rent when options.stackAuto is set,
5923           (linkEdit): only write XDATA_NAME if provided on command line
5924         * src/SDCCmem.h,
5925         * src/SDCCmem.c: added pdata
5926         * src/port.h: added pdata_name to PORT
5927         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
5928           (saveRegisters, unsaveRegisters): removed usage of B,
5929           (genMinus): fixed accumulator clash,
5930           (genJumpTab): added comment, this needs another look
5931         * src/mcs51/gen.c: added check for "B in use" paranoia,
5932           added pushB() and popB()
5933         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
5934           chance
5935         * src/avr/main.c,
5936         * src/ds390/main.c,
5937         * src/hc08/main.c,
5938         * src/mcs51/main.c,
5939         * src/pic/main.c,
5940         * src/pic16/main.c,
5941         * src/xa51/main.c,
5942         * src/z80/main.c: (reset_regparms) made void parameter explicit and
5943           added PSEG (PAG,XDATA) or NULL to port specifier
5944         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
5945         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
5946           (_mcs51_genInitStartup): removed __start__xstack equ,
5947           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
5948         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
5949         * src/z80/gen.c (_rleAppend): fixed warnings
5950         * support/regression/tests/zeropad.c: added pdata test
5951         * .version: bumped to 2.4.6
5952
5953 2004-10-17 Borut Razem <borut.razem AT siol.net>
5954
5955         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
5956         as a part of nightly build
5957
5958 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
5959
5960         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
5961         WREG holds the first byte function parameters,
5962         * (aopForSym): take special case for symbols which are in FARSPACE
5963         but in CODESPACE too,
5964         * (assignResultValue): modified to take into account _G.useWreg,
5965         * (genCall): don't use wreg for parameter passing when function is
5966         declared as reentrant, too, added optimization INCF to stack
5967         pointer when stack parameter count is 1,
5968         * (genFunction, genEndFunction): refurnished and fixed to not using
5969         wreg for passing parameters when function has varargs or is
5970         reentrant, fixed bug with symbol name compare for generating
5971         functions in absolute address,
5972         * (pic16_storeForReturn): refurnished,
5973         * (genCmp): began writing a new version of the function, not ready
5974         yet, therefore it is disabled,
5975         * (genAssign): do not read code memory when assigning a function to
5976         a pointer function,
5977         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
5978         array of characters, not pointer,
5979         * (pic16initialComments): in debug mode emit an .ident directive for
5980         the assembler,
5981         * (_process_pragma): emit a new warning type (internal to pic16)
5982         when setting stack to default length, emit a similar warning when
5983         placing a function at absolute address and address is not word aligned
5984         * (_pic16_parseOptions): added 'return TRUE' statement,
5985         * (_pic16_linkEdit): if compiling a source, then add the source's
5986         file object, first in the list of objects to link,
5987
5988 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
5989
5990         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
5991         * src/pic/main.c : removed VC warning.
5992         * src/pic/gen.c : changed comment.
5993
5994 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
5995
5996         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
5997         reference to a deprecated symbol _GPTRREG was causing failure to
5998         link. Thanks G. M. Gallant for the info.
5999
6000 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
6001
6002         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
6003         comments for Bugs item #954788.
6004
6005 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
6006
6007         * src/pic16/device.c (pic16_dump_gsection,
6008         * pic16_groupRegistersInSection): handle symbols declared to be in
6009         access bank differently,
6010         * src/pic16/gen.c (struct _G): added field resDirect,
6011         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
6012         send values read from stack directly to result and don't allocate
6013         temporary values,
6014         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
6015         same registers,
6016         * (pic16_sameRegsOfs): NEW,
6017         * (freeAsmop): if _G.resDirect is set then do not mark registers as
6018         free because they were not allocated from temporary pool,
6019         * pic16_popRegFromString): workaround to fix a problem with
6020         allocating variables twice or never,
6021         * (genGenPointerGet): using PRODL instead of FSR0H,
6022         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
6023         instead of FSR0H,
6024         * (genAssign): take advantage of the _G.resDirect flag,
6025         * (genCast): around line 11844, use mov2f instead of directly
6026         MOVFF'ing between operands to account for literal values,
6027         * src/pic16/genutils.c: some new debug functions for gpsim have been
6028         added,
6029         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
6030         float with integer part only,
6031         * src/pic16/main.c (_process_pragma): handle pragma udata access to
6032         place variables in access bank
6033         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
6034         updated sources to reflect recent changes in gen.c
6035
6036 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
6037
6038         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
6039         sources that searched for headers in installation path, now the
6040         device/include/pic16 is used,
6041         * src/pic16/glue.c (pic16glue),
6042         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
6043         .line directives if not in debug mode, this suppresses assembler's
6044         warnings for ignored directives
6045
6046 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
6047
6048         * src/port.h: made reset_regparms prototype void parameter explicit.
6049         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
6050         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
6051         * doc/sdccman.lyx: documented warning disabling and how to use
6052           printf_large to make it print floats.
6053         * device/include/stdbool.h: NEW
6054         * device/lib/_atof.c,
6055         * device/lib/_divuint.c,
6056         * device/lib/_divulong.c,
6057         * device/lib/expf.c,
6058         * device/lib/printf_large.c,
6059         * device/lib/sincosf.c,
6060         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
6061         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
6062           a completely reentrant lib.
6063
6064 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
6065
6066         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
6067         * device/include/pic16/stdio.h: fixed bug with colon
6068
6069 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
6070
6071         * device/include/pic16/stdio.h,
6072         * device/include/pic16/stdlib.h,
6073         * device/include/pic16/math.h: NEW
6074         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
6075         declared as _naked to reduce overhead
6076         * device/lib/Makefile.in (target port-specific-objects-pic16):
6077         changed * to *.* so to ignore the CVS directory,
6078         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
6079         stacked variables back in stack,
6080         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
6081         corruption
6082
6083 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
6084
6085         * .version: bumped version number to 2.4.5
6086         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
6087         * support/Util/SDCCerr.c (messages structure): added entry for
6088         W_POSSBUG2
6089
6090         Large cumulative patch for pic16 port and libraries.
6091         * device/include/pic16/sdcc-lib.h,
6092         * device/include/pic16/stdarg.h,
6093         * device/include/asm/pic16/features.h,
6094         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
6095         * device/include/pic16/float.h: changes reentrant keyword with
6096         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
6097         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
6098         updated target build-libraries to include objects from gptr,
6099         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
6100         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
6101         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
6102         all function headings,
6103         * src/SDCCmain.c: added global parameter userIncDirsSet,
6104         * (parseCmdLine): when option -I is encountered add directory to
6105         userIncDirsSet too,
6106         * src/version.awk: added space between control and long,
6107         * src/pic16/NOTES: added some notes for the port,
6108         * src/pic16/gen.c: added prototype for mov2fp function,
6109         * (fReturnpic16[]): properly named return value registers,
6110         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
6111         * (aopForSym): added code to handle symbols with onStack flag set,
6112         symbols onStack are allocated PTRSIZE bytes,
6113         * (aopFreeAsmop): handles special case where asmops are stack objects,
6114         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
6115         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
6116         added argument lock to trace flaws in allocating temporary registers
6117         when developing port,
6118         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
6119         * (pic16_popRegFromString): reenabled allocating a direct register
6120         from string,
6121         * (assignResultValue): various beautifications,
6122         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
6123         referenced function argument,
6124         * (genIpush): reenabled to allow stacked arguments, handles only
6125         ic->parmPush iCodes,
6126         * (genCall, genPcall): major changes to allow for variable argument
6127         functions, fixed a bug with falsely restoring stack pointer after
6128         returning from call,
6129         * (genFunction): pending code for critical function,
6130         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
6131         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
6132         * (genNearPointerGet): fixed bug with indirect reading, was always
6133         reading from INDF0
6134         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
6135         pointers,
6136         * (genAddrOf): rewrote code to take address of a stacked function parameter
6137         * (genCast): fixed casting to generic pointer type,
6138         * src/pic16/gen.h: added AOP_STA,
6139         * (struct asmop): added field stk,
6140         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
6141         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
6142         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
6143         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
6144         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
6145         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
6146         generic pointers,
6147         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
6148         and library paths,
6149         * (pic16_port structure): generic pointer size is set to 3,
6150         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
6151         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
6152         compiler warning,
6153         * src/pic16/ralloc.c (allocReg): prevent allocating register when
6154         operand is an iTemp,
6155
6156 2004-09-24 Martin Helmling <mh AT octo-soft.de>
6157
6158         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
6159         * debugger/mcs51/simi.c: addapt new syntax of s51
6160
6161 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
6162
6163         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
6164         * src/pic16/pcode.c: commented out some calls to free() in order to
6165         fix bug #989576,
6166
6167 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6168
6169         * src/SDCCicode.h,
6170         * src/SDCCicode.c (isiCodeInFunctionCall),
6171         * src/avr/ralloc.c (selectSpil),
6172         * src/pic/ralloc.c (selectSpil),
6173         * src/pic16/ralloc.c (selectSpil),
6174         * src/ds390/ralloc.c (selectSpil),
6175         * src/hc08/ralloc.c (selectSpil),
6176         * src/xa51/ralloc.c (selectSpil),
6177         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
6178         stack in the middle of a function call sequence (fixes bug #1020268)
6179         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
6180         costs associated with the minimum switch case.
6181
6182 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6183
6184         * src/SDCC.lex: fixed bug #1030549
6185
6186 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6187
6188         * src/SDCCcse.h (struct cseDef),
6189         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
6190         over a function call if the CSE is derived from a symbol whose
6191         address has been taken (fixes bug #1029883)
6192         * support/regression/tests/bug-1029883: a new regression test for
6193         this bug
6194
6195 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6196
6197         * src/hc08/gen.c (emitinline): fixed bug #1029778
6198         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
6199         to a cast object is no longer a syntax error ("fixes" bug #1030006,
6200         and starts toward RFE #905167)
6201
6202 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
6203
6204         * src/pic16/gen.c (mov2f): New function to move an operand to
6205         another without considering if it is a literal or a register,
6206         * (pic16_sameRegs): don't check if they are both AOP_REG,
6207         * (AccRsh): removed andmask=0 lines,
6208         * (genLeftShift): duplicated to be improved in future versions,
6209         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
6210         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
6211         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
6212         * (pic16initMnemonics): added initialization for POC_INFSNZW,
6213         * (insertBankSwitch): fixed inserting banksel directives algorithm
6214         for instructions that follow a skip instruction, this fixes a report
6215         for broken subtraction code generation,
6216         * src/pic16/ralloc.c (deassignLRs): do not free register if current
6217         iCode is a left op, just in case result and right share the same
6218         registers
6219
6220 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6221
6222         * src/hc08/main.c,
6223         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
6224         preservation of HX
6225         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
6226         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
6227         on 2004-09-12; it was buggy
6228
6229 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
6230
6231         * src/SDCCsymt.h: removed RESULT_CHECK
6232         * src/SDCCast.c,
6233         * src/SDCCglue.c,
6234         * src/SDCCval.c,
6235         * src/pic/glue.c,
6236         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
6237
6238 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
6239
6240         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
6241         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
6242         configuration values no more rejected by compiler, they are assigned
6243         to configuration registers with a warning message instead,
6244         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
6245         the for-loop so last conf register is emitted too,
6246         * (_pic16_initPaths): link library libsdcc.lib by default,
6247         * (_hasNativeMulFor): modified test for multiplication according to
6248         Raphael Neider's remarks. Integer multiplication is also done with
6249         support functions,
6250         * device/include/pic16/pic18fregs.h: corrected type error in while
6251         testing and including 18f6720 header file
6252
6253 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
6254
6255         * src/pic16/device.h (pic16_options): removed field use_crt,
6256         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
6257         until an optimization to handle single bits is added,
6258         * (pic16_loadFSR0): moved before genUnpackBits,
6259         * (genAnd): some white lines removed,
6260         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
6261         leave_reset flags in pic16_options when using crt modules,
6262
6263 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
6264
6265         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
6266           for bugs 898889 & 979599. Also used some safer print instructions.
6267
6268 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
6269
6270         * src/pic16/device.h (pic16_options_t): added field use_crt,
6271         crt_name, no_crt,
6272         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
6273         catch a probable future bug,
6274         * src/pic16/gen.c: aopIdx function commented out,
6275         * (genAssign): commented out old code which used aopIdx,
6276         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
6277         code, added if conditionals to take into account the --use-crt
6278         command line options,
6279         * src/pic16/main.c (pic16_optionsTable): added new command line
6280         options, --use-crt= and --no-crt,
6281         * (_pic16_linkEdit): now the proper crt object is added in the
6282         linker command line except than when --no-crt is specified,
6283         * src/pic16/pcode.c,
6284         * src/pic16/pcode.h: added some structures and functions for a new
6285         optimization scheme to compansate for instruction overhead between
6286         same iCodes, this scheme is currently under development and is not
6287         working in any way,
6288         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
6289         to && operator,
6290         * device/lib/pic16/startup/crt0i.c,
6291         * device/lib/pic16/startup/crt0iz.c: added global char variable
6292         __uflags to force the generation of an idata section
6293
6294 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
6295
6296         * doc/Makefile,
6297         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
6298         * doc/sdccman.lyx: updated sdcc version to 2.4.4
6299
6300 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6301
6302         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
6303         Frieder) and clarified the default code optimization mode
6304
6305 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6306
6307         * src/SDCC.lex (doPragma, process_pragma),
6308         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
6309         "opt_code_size", and "opt_code_balanced"
6310         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
6311         regrouped options by category, added support for category headers
6312         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
6313         and "--opt-code-size"
6314         * doc/sdccman.lyx: documented these new options and pragmas
6315         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
6316         preference into account
6317
6318 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6319
6320         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
6321           geniCodePreDec): Fixed bug 904237 by generating a warning
6322         * src/SDCCerr.h,
6323         * src/SDCCerr.c: added warning W_SIZEOF_VOID
6324
6325 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
6326
6327         * src/pic/device.c : When no max ram set validate full memory range.
6328         * src/pic/pcode.c,
6329         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
6330
6331 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6332
6333         * device/lib/_gptrget.c,
6334         * device/lib/_gptrput.c: updated comment
6335         * device/lib/calloc.c,
6336         * device/lib/free.c,
6337         * device/lib/malloc.c,
6338         * device/lib/realloc.c: added LGPL, made them reentrant-safe
6339         * src/SDCCcse.c (cseBBlock),
6340         * src/SDCCicode.c (printOperand, geniCodeArray),
6341         * src/SDCCicode.h (struct operand): fixed bug 868103
6342         * support/regression/tests/bug-868103.c: added
6343         * src/SDCCast.c (searchLitOp),
6344         * src/SDCCcse.h (struct cseDef),
6345         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
6346         * src/SDCCicode.h (struct operand),
6347         * src/SDCCsymt.h (struct sym_link),
6348         * src/avr/gen.c (hasInc),
6349         * src/ds390/gen.c (hasInc),
6350         * src/hc08/gen.c (genPlusIncr, hasInc),
6351         * src/mcs51/gen.c (hasInc),
6352         * src/pic16/glue.c (pic16_printIvalChar),
6353         * src/pic16/ralloc.c (regWithIdx),
6354         * src/xa51/gen.c (hasInc) : removed warnings
6355         * src/SDCCast.c (createBlock): added comment ???
6356         * src/hc08/ralloc.c: updated comments
6357
6358 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6359
6360         * doc/sdccman.lyx: updated section on switch statements, added
6361         section about semaphore locking
6362         * doc/Makefile: added option -info for latex2html
6363         * device/lib/_gptrget.c,
6364         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
6365
6366 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
6367
6368         * src/pic/device.h,
6369         * src/pic/device.c,
6370         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
6371          maxram is less than 0x100.
6372
6373 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
6374
6375         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
6376
6377 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6378
6379         * src/port.h,
6380         * src/mcs51/main.c,
6381         * src/ds390/main.c,
6382         * src/z80/main.c,
6383         * src/hc08/main.c,
6384         * src/pic/main.c,
6385         * src/pic16/main.c,
6386         * src/avr/main.c,
6387         * src/xa51/main.c
6388         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
6389         a jump table is the best form for a switch statement, including
6390         automatic insertion of missing cases to make the case range
6391         continuous. Developed in collaboration with Frieder Ferlemann.
6392
6393 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6394
6395         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
6396         accumulator result if it needs sign extension
6397
6398 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6399
6400         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
6401
6402 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6403
6404         * device/lib/gbz80/printf.c,
6405         * device/lib/z80/printf.c: removed define for NULL
6406
6407 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6408
6409         * as/xa51/xa_link.c,
6410         * device/examples/ds390/ow390/ad26.c,
6411         * device/examples/ds390/ow390/cnt1d.c,
6412         * device/examples/ds390/ow390/counter.c,
6413         * device/examples/ds390/ow390/ds2480.h,
6414         * device/examples/ds390/ow390/ds2480ut.c,
6415         * device/examples/ds390/ow390/findtype.c,
6416         * device/examples/ds390/ow390/gethumd.c,
6417         * device/examples/ds390/ow390/owllu.c,
6418         * device/examples/ds390/ow390/ownetu.c,
6419         * device/examples/ds390/ow390/swt12.c,
6420         * device/examples/ds390/ow390/swtloop.c,
6421         * device/examples/ds390/ow390/temp.c,
6422         * device/examples/ds390/ow390/temp10.c,
6423         * device/examples/ds390/ow390/thermo21.c,
6424         * device/examples/ds390/ow390/tinilnk.c,
6425         * device/examples/ds390/ow390/tstfind.c,
6426         * device/examples/serialcomm/windows/serial.cpp,
6427         * device/examples/serialcomm/windows/test_serialcomm.cpp,
6428         * device/include/reg51.h: fixed line endings for cvs
6429
6430 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6431
6432         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
6433         packRegsForAccUse, packRegisters): new accumulator register
6434         packing algorithm
6435         * support/regression/ports/hc08/support.c (_putchar): suppress
6436         warning of unused variable
6437         * src/SDCCicode.c: added SWAP entry to codeTable
6438
6439 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
6440
6441         * device/lib/sprintf.c: forgot to add this file before previous commit
6442
6443 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
6444
6445         * src/pic16/gen.c (genPackBits): added operand right in function
6446         parameters, load result directly if p_type is POINTER (that is
6447         called by genNearPointerSet)
6448         * (genUnPackBits): added operand left in function parameters,
6449         * (genNearPointerGet, genNearPointerSet): prevent the loading of
6450         FSR0 if accessing bitfields,
6451
6452 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
6453
6454         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
6455           _print_format; updated printf, sprintf, vsprintf
6456         * device/include/asm/default/features.h: corrected comment/define
6457         * device/lib/Makefile.in: added sprintf.c
6458         * device/lib/libsdcc.lib: added sprintf module
6459         * device/lib/printf_large.c,
6460         * device/lib/vprintf.c,
6461         * device/lib/sprintf.c: totally refactored printf_large and vprintf
6462           into these 3 files
6463         * support/regression/Makefile: changed ALL_PORTS into a usefull default
6464         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
6465         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
6466           hc08 test
6467         * support/regression/tests/zeropad.c: define idata as data for hc08
6468
6469 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6470
6471         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
6472         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
6473         labels are referenced at least once (even if a reference is not found)
6474         * src/hc08/gen.c (emitcode): set isComment flag for comments
6475         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
6476         loads), rules 6a..6b (optimize jumps to return)
6477
6478 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6479
6480         * device/lib/acosf.c (acosf),
6481         * device/lib/asinf.c (asinf),
6482         * device/lib/atanf.c (atanf),
6483         * device/lib/ceilf.c (ceilf),
6484         * device/lib/cosf.c (cosf),
6485         * device/lib/coshf.c (coshf),
6486         * device/lib/cotf.c (cotf),
6487         * device/lib/fabsf.c (fabsf),
6488         * device/lib/floorf.c (floorf),
6489         * device/lib/log10f.c (log10f),
6490         * device/lib/logf.c (logf),
6491         * device/lib/sinf.c (sinf),
6492         * device/lib/sinhf.c (sinhf),
6493         * device/lib/sqrtf.c (sqrtf),
6494         * device/lib/tanf.c (tanf),
6495         * device/lib/tanhf.c (tanhf),
6496         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
6497         replaced all instances of "reentrant" in the library functions
6498         defined in math.h with this macro.
6499         * support/regression/tests/float_trans.c: reenabled test for hc08
6500
6501 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
6502
6503         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
6504         erroneously deleted
6505
6506 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6507
6508         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
6509         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
6510         multi-byte volatile operands are used
6511         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
6512         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
6513         initialization to area GSINIT0 so that it would always precede
6514         any static initializers in GSINIT
6515         * support/regression/tests/zeropad.c: fixed idata define for hc08
6516         * support/regression/tests/bug-927659.c,
6517         * support/regression/tests/float_trans.c: disabled tests for hc08
6518         pending missing library routines
6519         * .version: increased version number to 2.4.4 - hc08 port now passes
6520         regression tests
6521
6522
6523 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
6524
6525         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
6526         * Makefile.common.in,
6527         * as/Makefile,
6528         * as/hc08/Makefile.in,
6529         * as/mcs51/Makefile.in,
6530         * as/z80/Makefile.in,
6531         * debugger/mcs51/Makefile.in,
6532         * device/include/Makefile.in,
6533         * device/lib/Makefile.in,
6534         * doc/Makefile,
6535         * link/Makefile,
6536         * link/z80/Makefile.in,
6537         * packihx/Makefile.in,
6538         * sim/ucsim/main_in.mk,
6539         * sim/ucsim/avr.src/Makefile.in,
6540         * sim/ucsim/doc/Makefile.in,
6541         * sim/ucsim/gui.src/serio.src/Makefile.in,
6542         * sim/ucsim/hc08.src/Makefile.in,
6543         * sim/ucsim/s51.src/Makefile.in,
6544         * sim/ucsim/xa.src/Makefile.in,
6545         * sim/ucsim/z80.src/Makefile.in,
6546         * src/Makefile.in,
6547         * support/cpp2/Makefile.in,
6548         * support/librarian/Makefile,
6549         * support/makebin/Makefile: added DESTDIR to the install path proposed
6550         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
6551         * doc/sdccman.lyx: added DESTDIR documentation
6552
6553 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
6554
6555         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
6556         instruction for interrupt handlers, use fast returns when returning
6557         from high priority interrupts
6558
6559 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6560
6561         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
6562         code generation
6563         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
6564         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
6565         bugs, ported much of Bernhard's code from mcs51
6566         * src/mcs51/gen.c (genSend),
6567         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
6568         than one when calling a reentrant function
6569         * device/lib/_mullong.c: defined an alternate struct layout for big
6570         endian ports (hc08)
6571
6572 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6573
6574         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
6575         test
6576
6577 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6578
6579         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
6580         are sane and complete before asking the port its prefered parameter
6581         passing method (fixes bug #1017633)
6582         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
6583         and _ret3
6584
6585 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6586
6587         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
6588         problem in bitfields >= 8 bits.
6589
6590 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6591
6592         * src/SDCCsymt.c: undid changes that were not meant to be committed
6593
6594 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6595
6596         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
6597
6598 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6599
6600         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
6601           copied and wrong bit got inverted
6602
6603 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6604
6605         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
6606         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
6607         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
6608         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
6609         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
6610         assignments to bitfields at known addresses
6611         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
6612         reads from bitfields at known addresses
6613         * src/hc08/ralloc.c (packRegisters),
6614         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
6615         genhc08Code): optimize pointer get values used as conditionals
6616         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
6617         and branch
6618
6619 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6620
6621         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
6622         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
6623         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
6624         as conditionals
6625
6626 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6627
6628         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
6629
6630 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6631
6632         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
6633         related problems
6634
6635 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
6636
6637         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
6638
6639 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6640
6641         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
6642         mcs51 port
6643
6644 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6645
6646         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
6647
6648 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6649
6650         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
6651         cases use more compact code.
6652
6653 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
6654
6655         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
6656
6657 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6658
6659         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
6660
6661 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6662
6663         * src/SDCCsymt.h,
6664         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
6665         parameter of changePointer() from symbol* to sym_link*
6666         * src/SDCCast.c (decorateType): call changePointer() for CAST op
6667         * src/SDCCsymt.c (compareType): void* type is castable to other
6668         pointers, but not necesarily an exact match.
6669         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
6670         is no longer blindly treated as an exact match.
6671         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
6672
6673 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
6674
6675         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
6676
6677 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
6678
6679         * src/pic/gen.c,
6680         * src/pic/pcode.c,
6681         * src/pic/ralloc.h,
6682         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
6683
6684 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
6685
6686         * src/pic/device.c,
6687         * src/pic/device.h,
6688         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
6689
6690 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6691
6692         * src/mcs51/gen.c (emitcode): fixed bug #992819
6693
6694 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
6695
6696         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
6697           there's no need to make it worse
6698
6699 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6700
6701         * src/mcs51/ralloc.c (deassignLR),
6702         * src/ds390/ralloc.c (deassignLR),
6703         * src/hc08/ralloc.c (deassignLR),
6704         * src/z80/ralloc.c (deassignLR),
6705         * src/pic/ralloc.c (deassignLR),
6706         * src/pic16/ralloc.c (deassignLR),
6707         * src/avr/ralloc.c (deassignLR),
6708         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
6709         rlivePoint): fixed another part of bug #971834
6710
6711 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6712
6713         * src/z80/main.c: enabled "critical" keyword
6714         * src/z80/mappings.i,
6715         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
6716         functions (fixes bug #979646)
6717         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
6718
6719 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6720
6721         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
6722           such as c:\mydir.
6723
6724 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
6725
6726         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
6727           doesn't disable too much optimizations
6728
6729 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6730
6731         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
6732
6733 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
6734
6735         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
6736
6737 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6738
6739         * src/pic/gen.c tidied up tabs
6740         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
6741         * src/pic/main.c tidied up tabs
6742         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
6743         * src/pic/pcoderegs.c tidied up tabs
6744         * src/pic/ralloc.c tidied up tabs
6745
6746 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
6747
6748         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
6749         to S_FIXED for pic16 port and when symbol is not in level 0,
6750         allocate for S_REGISTER storage class and pic16 port, too,
6751         * src/pic16/device.h: prototype for checkSym,
6752         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
6753         * (pic16_assignConfigWordValue): test the value and the mask to
6754         validate that the value is suitable for the configuration word,
6755         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
6756         collect extern declared symbols, don't emit symbol twice, check
6757         first if symbol is in publics set first,
6758         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
6759         * added command line '--fstack' which enables an experimental
6760         feature for stack access, too buggy to be used yet...
6761         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
6762         * (pic16_allocDirReg): when register has storage class S_REGISTER
6763         allocate in pic16_dynAccessRegs,
6764         * device/include/pic16/pic18f????.h: modified configuration word
6765         naming convention, words started as CONFIG0H but should be CONFIG1H
6766
6767 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6768
6769         * device/include/mcs51reg.h: fixed bug 970993
6770
6771 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
6772
6773         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
6774         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
6775         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
6776         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
6777         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
6778         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
6779           error/warning numbers,
6780           added function setWarningDisabled()
6781         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
6782         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
6783           _memcmp.c _memmove.c calloc.c realloc.c free.c
6784         * support/regression/tests/malloc.c: added tests for new functionality
6785         * support/regression/tests/zeropad.c: added tests for truncated initializers
6786           and initialized char arrays starting with '\x0'
6787         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
6788
6789 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
6790
6791         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
6792
6793 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6794
6795         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
6796         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
6797         peephole 177.e. Thanks to anonymous
6798
6799 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
6800
6801         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
6802         function isn't used in the source but referenced as a
6803         variable initializer then declare it as extern in .asm file
6804
6805 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
6806
6807         * .version: increased version number to 2.4.3
6808
6809         Adding version extension according to ChangeLog CVS revision
6810         * src/Makefile.in (target all): added dependency 'version.h'
6811         * (rule version.h): added rule to create version.h from ChangeLog,
6812         * (rule dep): added dependency version.h,
6813         * src/version.awk: AWK script to create version.h
6814         * src/SDCCdwarf2.c (dwWriteModule),
6815         * src/SDCCglue.c (initialComments),
6816         * src/SDCCmain.c (printVersionInfo): modified to write after
6817         version string the version extension number,
6818         * src/SDCCutil.c: included "version.h"
6819         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
6820         number,
6821         * src/SDCCutil.h: added prototype for getBuildNumber
6822
6823         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
6824         includeDirsSet, too,
6825         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
6826         const char [] is found in function prototype...
6827
6828         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
6829         moving to WREG with source is already in WREG,
6830         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
6831         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
6832         * (aopForSym): stack'ed symbols are partially supported, added
6833         if-clause to support symbols in FARSPACE,
6834         * (sameRegs): added test for AOP_ACC to see if registers are same,
6835         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
6836         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
6837         * (pic16_popRegFromString): will not allocate a new register if it
6838         doesn't find one by name, bug may have introduced...
6839         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
6840         * (genIpush): revived to use pic16 port's stack,
6841         * (genAddrOf): added incomplete case for stack'ed operand,
6842         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
6843         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
6844         can handle multibyte operands,
6845         * src/pic16/glue.c (pic16_printIval*): some debug info added,
6846         * (pic16initialComments): added message for MPLAB compatibility
6847         mode enabled,
6848         * src/pic16/main.h: prototype for pic16_mplab_comp,
6849         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
6850         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
6851         * (_pic16_linkEdit): NEW, handles link stage, transferred here
6852         because of increased complexity of procedure,
6853         * (_process_pragma): stack pragma changed to format 'stack pos len',
6854         emit symbol '_stack_end' to conform with gplink,
6855         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
6856         to search for register,
6857         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
6858         PO_GPR_REGISTER,
6859         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
6860         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
6861         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6862         case for PO_GPR_REGISTER,
6863         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
6864         dies, the new era is ahead !...
6865         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
6866         pic16_dynInternalRegs,
6867         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
6868         * (pic16_allocDirReg): minor optimizations and bug fixes,
6869         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
6870
6871         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
6872         load stack and frame pointer with address of 'stack_end' symbol
6873
6874 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
6875
6876         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
6877         without source code but only variable initializers
6878
6879 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
6880
6881         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
6882         external are not declared as extern to reduce overhead while linking
6883
6884 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
6885
6886         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
6887
6888 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
6889
6890         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
6891           Yee Keat for the patch
6892         * src/SDCCast.c (decorateType): fixed bug #979599
6893         * src/ds390/gen.h: removed local fReturnSizeDS390
6894         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
6895         * src/ds390/gen.c (genAnd, genOr, genXor),
6896         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
6897
6898 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
6899
6900         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
6901         add relFilesSet to $3, manipulate $2 to handle linking of object
6902         files without source files in command line,
6903         * device/include/pic16 (all headers): added ID location macros,
6904         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
6905         entries for ID location bytes,
6906         * (pic16_assignIdByteValue): NEW,
6907         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
6908         added field dumpcalltree to pic16_options_t,
6909         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
6910         is used instead of pic16_Gstack_base_addr, check if (ifx) before
6911         emitting rFalseIfx label after check_carry label,
6912         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
6913         pic16_emitDIRegs), NEW
6914         * (pic16glue): dump .calltree file when option --calltree found,
6915         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
6916         * (_pic16_genAssemblerPreamble): emit ID locations after
6917         configuration registers,
6918         * (pic16_linkCmd): modifications of the link command,
6919         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
6920         * (pic16_pCodeInitRegisters): don't init stack registers,
6921         * (pic16_findPrevInstruction): fixed bug,
6922         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
6923         bug with immediate registers,
6924         * (buildCallTree): traces stack push and pop,
6925         * (pct2): dump also stack usage for each function,
6926         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
6927         * (pic16_allocDirReg): various modifications,
6928         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
6929         fixed to 1,
6930
6931 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
6932
6933         * src/pic16/pcode.c: removed buggy double colon
6934
6935 2004-07-01 Borut Razem <borut.razem AT siol.net>
6936
6937         * support/scripts/sdcc.nsi: added include/pic16 to setup
6938
6939 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
6940
6941         * device/lib/Makefile.in: fixed bug in target objects-pic16,
6942         * device/lib/pic16/Makefile: prefixed with dash (-) command under
6943         target 'clean',
6944         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
6945         specific command line arguments. Also added sample lkr script
6946         for placing a variable at a specific memory bank.
6947         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
6948         at a specific memory bank,
6949         * (pic16_dump_isection): fixed bug which caused string literals to
6950         be omitted when dumping idata section,
6951         * (pic16_groupRegistersInSection): added code to handle registers
6952         in specific memory banks,
6953         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
6954         public, all references are renamed too,
6955         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
6956         AOP_DPTR2,
6957         * (pic16_storeForReturn): added case to handle when dest is WREG,
6958         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
6959         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
6960         pic16_rel_udata, check to see if that register is marked as being
6961         a member of a specific memory bank,
6962         * (pic16_printIvalCharPtr): added code to add string literals either
6963         to code or the idata sections,
6964         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
6965         also accept the 'udata' pragma,
6966         * src/pic16/main.h: new structure types sectName and sectSym
6967         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
6968         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
6969         * (pic16_findPrevInstruction): fixed, it returned nothing,
6970         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
6971         instruction combinations,
6972         * (pic16_FixRegisterBanking): heavily reorganised,
6973         * (pic16_AnalyzeBanking): if generating banksel directives is
6974         disabled, then don't call FixRegisterBanking at all,
6975         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
6976         completely removed,
6977         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
6978
6979 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
6980
6981         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
6982         Phuah Yee Keat <yk.phuah AT nestac.com>
6983
6984 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6985
6986         * src/pic16/glue.c (pic16createInterruptVect): function now emits
6987         correctly the IVT even if it is relocated to some other location
6988
6989 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6990
6991         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
6992         * device/include/pic16/pic18f2220.h: NEW,
6993         * device/lib/pic16/libdev/pic18f2220.c: NEW,
6994         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
6995         * src/pic16/device.c (struct Pics16): added info for 18f2220,
6996         * src/pic16/device.h (struct pic16_options): added ivt_loc and
6997         nodefaultlibs, ivt_loc is the location of the interrupt vector
6998         table, and nodefaultlibs signs that default libraries should not be
6999         linked in link stage,
7000         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
7001         according to --ivt-loc argument,
7002         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
7003         when pragma stack is found,
7004
7005 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7006
7007         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
7008         256 (range check), 257 (do while), 258.a-f (bit banging
7009         f.e. on 3-wire SPI bus)
7010
7011 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7012
7013         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
7014         variables used exclusively within a loop
7015
7016 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
7017
7018         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
7019
7020 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7021
7022         * src/SDCClrange.c (computeClash): fixed bug #971834
7023
7024 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7025
7026         * src/mcs51/gen.c (genCmp): fixed bug #975903
7027         * src/hc08/gen.c (operandsEqu),
7028         * src/ds390/gen.c (operandsEqu),
7029         * src/z80/gen.c (operandsEqu),
7030         * src/pic/gen.c (operandsEqu),
7031         * src/pic16/gen.c (operandsEqu),
7032         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
7033         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
7034
7035 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7036
7037         * src/SDCCcse.c (cseBBlock): fixed bug #966963
7038
7039 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
7040
7041         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
7042         default case in switch statement,
7043         * glue.c (pic16_initPointer): expr is initialised via decoarteType
7044         to eliminate problem with initialisation of pointers, but problem
7045         still exists,
7046         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
7047         * (emitStaticSegment): removed various lines emitting debug info,
7048         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
7049         added processor registers for utilizing EEPROM,
7050         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
7051         configurable and set 8
7052
7053 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
7054
7055         * .version: increased version number to 2.4.2,
7056
7057         Cumulative patch for pic16 port
7058         * src/pic16/device.c: changed scheme to dump initial values for
7059         variables in idata segment, all print_idata* functions were removed,
7060         now the pic16_printIval* will be called,
7061         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
7062         * _pic16_printPointerType, pic16_printPointerType,
7063         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
7064         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
7065         NEW, similar to the respective functions in SDCCglue.c,
7066         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
7067         way, emitting hex bytes,
7068         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
7069
7070 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7071
7072         * src/avr/ralloc.c (serialRegAssign),
7073         * src/xa51/ralloc.c (serialRegAssign),
7074         * src/pic/ralloc.c (serialRegAssign),
7075         * src/pic16/ralloc.c (serialRegAssign),
7076         * src/hc08/ralloc.c (serialRegAssign),
7077         * src/z80/ralloc.c (serialRegAssign),
7078         * src/ds390/ralloc.c (serialRegAssign),
7079         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
7080
7081 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7082
7083         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
7084         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
7085
7086 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
7087
7088         Cumulative patch for pic16 port:
7089         * src/pic16/device.h (typedef PIC16_device) modified fields for
7090         defining microcontrollers,
7091         * src/pic16/device.c: added new info for all devices in Pics16 array,
7092         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
7093         to be optimised out by the pCode optimiser,
7094         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
7095         specially, bug reported by G.M. Gallant,
7096         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
7097         as force'd so that cannot be optimised out by pCode optimiser,
7098         * src/pic16/pcode.c,
7099         * src/pic16/pcodepeeph.c,
7100         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
7101         they are disabled by default, but can be enabled explicit with
7102         command argument --denable-peeps, for testing,
7103         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
7104         --pomit-ivt in COMPILE_FLAGS
7105
7106 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7107
7108         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
7109           compilation on MSVC
7110
7111 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7112
7113         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
7114
7115 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7116
7117         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
7118         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
7119
7120 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
7121
7122         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
7123         would only assign 0x300001 register.
7124
7125 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
7126
7127         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
7128         in COMPILE_FLAGS. Thanks to G. Gallant for report.
7129
7130 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7131
7132         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
7133         for ds80c400
7134         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
7135         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
7136         added peephole 254 (left shift), 255 (jump table)
7137
7138 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
7139
7140         * device/lib/Makefile.in: removed comment line with model-pic16,
7141         * (target port-specific-objects-pic16): the libraries and objects
7142         are copied to the build directory form the device/lib/pic16/bin
7143         directory
7144
7145         Cumulative patch concerning pic16 port:
7146         * library directory has been re-organized,
7147         * added support for PIC18F1220,
7148         * added headers and library sources for chips 18f1220,18f6520,
7149         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
7150
7151         * configuration registers setting has changed, now each supported
7152         device has a complete description of the registers it uses,
7153         * all initialisations are moved to idata sections, these section
7154         can be absolute or relocatable,
7155         * fixed initialisation of codespace variables,
7156         * fixed warning about PCLATU and gpsim,
7157         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
7158         * (genAssign): use table reads when assigning from variables in codespace,
7159         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
7160         char/int variables placed in codespace,
7161         * (pic16_emitConfigRegs): NEW, emits a list with configuration
7162         registers set in .asm file, no need for --pomit-config-words anymore,
7163         * (pic16glue): some 8051 legacy segments are commented out
7164         (to be removed completely),
7165         * added support for alternative assembler and linker with --asm=
7166         and --link= command line arguments,
7167         * peepholes are disabled automatically in the port, no need to
7168         specify on command line,
7169         * port supports natively char/int/long multiplication, but converts
7170         all divisions to support functions,
7171         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
7172         to the file set in variable $2,
7173         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
7174         strings in ASCII format and not in hex,
7175         * ralloc.c (serialRegAssign): added a triplet of conditional calls
7176         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
7177         allocate proper register if iCodes aren't temporary,
7178
7179 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
7180
7181         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
7182
7183 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
7184
7185         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
7186         is commented out
7187
7188 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7189
7190         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
7191         computed address is reused
7192         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
7193         multi-byte bitfields
7194
7195 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7196
7197         * src/z80/gen.c: (genArrayInit): must check for pointers too
7198
7199 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7200
7201         * support/regression/tests/zeropad.c: never meant to commit the
7202           nestedstruct test: removed, added check for GCC version
7203
7204 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
7205
7206         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
7207         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
7208         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
7209           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
7210           bugs 928906 and 954082 half-empty initializers
7211         * src/SDCCsymt.h,
7212         * src/SDCCsymt.c (getAllocSize): added for above fix
7213         * src/z80/gen.c (genArrayInit): fixed bug 741044
7214         * support/regression/tests/zeropad.c: added tests
7215
7216 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
7217
7218         * src/pic16/device.c (pic16_dump_section): corrected bug which
7219         caused some symbols of the libraries to be misplaced
7220
7221 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7222
7223         * src/pic16/glue.c,
7224         * src/pic16/ralloc.h,
7225         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
7226         to fix conflict with pic port
7227
7228 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7229
7230         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
7231         externs configuration variables,
7232         * src/pic16/ralloc.h,
7233         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
7234         prototype in header, commented out some debug messages
7235
7236 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
7237
7238         * src/pic16/glue.c,
7239         * src/pic16/main.c,
7240         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
7241         for gpasm COFF object generation. Thanks to D. Hawkins for
7242         his patch info
7243
7244 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7245
7246         * src/ds390/main.c,
7247         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
7248         Brock for spotting this)
7249         * src/ds390/gen.c (genEndFunction),
7250         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
7251         interrupt handler and critical. Disable push/pop optimizations when
7252         peephole optimizations disabled.
7253
7254 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7255
7256         Updated pic16 library sources and headers.
7257         * device/lib/pic16/pic18f*/ ,
7258         * device/include/pic16/*.h: modified to handle structured SFR
7259         definitions
7260
7261 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7262
7263         * src/port.h (PORT structure): added hook initPaths, now each
7264         port can declare its own default search paths,
7265         which can been seen with the --print-search-dirs option,
7266         see pic16 port for example,
7267         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
7268         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
7269         * (doPrintSearchDirs): NEW, replaces in a central manner the
7270         printing of search dirs which was split in set*Paths functions,
7271         * (main): added call to port->initPaths and doPrintSearchDirs,
7272         * src/avr/main.c,
7273         * src/ds390/main.c,
7274         * src/hc08/main.c,
7275         * src/izt/i186.c,
7276         * src/izt/tlcs900h.c,
7277         * src/mcs51/main.c,
7278         * src/pic/main.c,
7279         * src/pic16/main.c: modified port structures to reflect addition of
7280         initPaths hook,
7281
7282         * src/pic16/device.c (regCompare): registers are finally sorted by name,
7283         * (pic16_dump_section): for registers in same address reserve memory once,
7284         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
7285         to no_banksel,
7286         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
7287         result is greater in size than right or left,
7288         * (pic16_genUMult8X8_8): there are some cases where the result can
7289         be 16 bits size, so handle these,
7290         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
7291         * (pic16_outBitC): modified to emit pcodes,
7292         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
7293         or not,
7294         * (genDivOneByte): implemented algorithm to divide 8-bits,
7295         * (genCmp): uncommented goto, but issues still exist,
7296         * (genAnd): fixed a bug with variables >8bits,
7297         * (genPackBits): optimization added that uses BCF/BSF to change a
7298         single bit,
7299         * (genAssign): fixed bug when assigning floating point literals,
7300         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
7301         __sdcc_gsinit_startup label,
7302         * src/pic16/main.c (_pic16_init): removed search directory
7303         initialisations,
7304         * (_pic16_initPaths): NEW, used to initialise search directories,
7305         * (_hasNativeMulFor): support functions for all except char/int
7306         multiplication, and char division,
7307         * (PIC16_port struct): modified entry for native mul support,
7308         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
7309         no_banksel option,
7310         * (buildCallTree): call to register_usage is ifdef'ed out,
7311
7312 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7313
7314         * device/include/string.h: applied Stas Sergeev's patch to make this
7315         header file compatible with the preprocessor -Wundef option
7316         * src/SDCCmain.c (main): abort compilation if preprocessor reports
7317         failure (fixes bug #941458)
7318
7319 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7320
7321         * src/SDCCopt.c (killDeadCode): fixed bug #907733
7322         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
7323         that the variable, not the function, should be static
7324         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
7325         to be consistent with non-literal case
7326
7327 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7328
7329         * src/SDCCast.c (isConformingBody): fixed bug #949967
7330         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
7331         convilong): fixed bug #952086
7332
7333 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7334
7335         * src/SDCCmem.c (allocVariables): fixed bug #955321
7336
7337 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7338
7339         * src/hc08/main.c (_hc08_genAssemblerEnd),
7340         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
7341         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
7342         completely eliminated the use of a temporary file
7343         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
7344         when more than one file linked
7345         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
7346
7347 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7348
7349         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
7350         which fixes bug #543481
7351         * support/regression/tests/bug-751703.c: fixed comments left from a
7352         cut and paste error
7353         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
7354         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
7355         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
7356         scopes
7357         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
7358         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
7359         are now changed to underscores in moduleName
7360
7361 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7362
7363         * as/mcs51/lkmem.c: better fix for bug #954173
7364
7365 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
7366         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7367
7368         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
7369         * device/include/c8051f000.h,
7370         * device/include/c8051f120.h,
7371         * device/include/c8051f300.h,
7372         * device/include/c8051f310.h,
7373         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
7374         PWM16) and detab'ed
7375
7376 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7377
7378         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
7379         and mailing lists, doc'ed --no-peep-comments, removed reference
7380         to knoppix (newest version has no LyX/LaTeX), other minor changes
7381         * src/SDCCglue.c (glue): save 2 bytes stack space with
7382         option --main-return. The ljmp could probably be avoided too
7383
7384 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7385
7386         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
7387
7388 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7389
7390         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
7391         * src/SDCCopt.c (isLocalWithoutDef),
7392         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
7393         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
7394         (credit to Maarten Brock for patch #949363, on which this is based)
7395         * support/regression/tests/bug-751703.c: some test cases of extern used
7396         within inner scopes.
7397
7398 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7399
7400         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
7401         SPEC_STRUCT
7402         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
7403         struct definitions
7404         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
7405         dwWriteLabel): fix to create valid debugger symbols even when
7406         the module name has non-alphanumeric symbols in it
7407         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
7408         when a variable's allocation has been optimized away
7409
7410
7411 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7412
7413         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
7414         * src/hc08/main.c,
7415         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
7416         * src/mcs51/main.c,
7417         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
7418         * src/ds390/main.c,
7419         * src/z80/gen.c (z80_emitDebuggerSymbol),
7420         * src/z80/main.c,
7421         * src/pic/gen.c (pic14_emitDebuggerSymbol),
7422         * src/pic/main.c,
7423         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
7424         * src/pic16/main.c,
7425         * src/avr/gen.c (avr_emitDebuggerSymbol),
7426         * src/avr/main.c,
7427         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
7428         * src/xa51/main.c,
7429         * src/SDCCdebug.c (emitDebuggerSymbol),
7430         * src/SDCCdebug.h,
7431         * src/port.h: added a debugger struct to the port struct. Added a
7432         callback for defining debugger symbols
7433
7434         * src/SDCCast.c (createLabel),
7435         * src/SDCC.y (labeled_statement): mark all compiler generated labels
7436         with isitmp = 1
7437         * src/SDCCicode.h,
7438         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
7439         iCode back to the ast for the function
7440
7441         * src/hc08/ralloc.c (hc08_assignRegisters),
7442         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
7443         unneeded fields from the regs struct.
7444         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
7445         pushReg() & pullReg() functions instead of emitcode()
7446
7447         * src/hc08/gen.c (genLabel, genhc08Code),
7448         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
7449
7450         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
7451         debugger hooks
7452
7453         * src/hc08/gen.c (genEndFunction, genhc08Code),
7454         * src/hc08/gen.h,
7455         * src/mcs51/gen.c (genEndFunction, gen51Code),
7456         * src/mcs51/gen.h,
7457         * src/ds390/gen.c (genEndFunction, gen390Code),
7458         * src/ds390/gen.h,
7459         * src/z80/gen.c (genEndFunction, genZ80Code),
7460         * src/z80/gen.h,
7461         * src/z80/z80.h,
7462         * src/pic/gen.c (genEndFunction, genpic14Code),
7463         * src/pic/gen.h,
7464         * src/pic16/gen.c (genEndFunction, genpic16Code),
7465         * src/pic16/gen.h,
7466         * src/avr/gen.c (genEndFunction, genAVRCode),
7467         * src/avr/gen.h,
7468         * src/xa51/gen.c (genEndFunction, genXA51Code),
7469         * src/xa51/gen.h,
7470         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
7471         specific code to cdbFile.c and out of the backend code generators
7472
7473         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
7474         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
7475         starting address is now 0
7476
7477         * as/hc08/asm.h,
7478         * as/hc08/m08pst.c,
7479         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
7480         assembler directive for DWARF support
7481         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
7482
7483         * src/src.dsp,
7484         * src/Makefile.in,
7485         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
7486
7487 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7488
7489         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
7490         and inappropriate peephole optimization in jump tables
7491
7492 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7493
7494         * as/hc08/m08pst.c,
7495         * src/SDCCglue.c: sdccopt works for the hc08 port now
7496
7497 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
7498
7499         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
7500
7501 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7502
7503         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
7504
7505 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7506
7507         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
7508         rules
7509         * src/SDCCmain.c,
7510         * src/SDCCglobl.h,
7511         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
7512         comments from the peephole optimizer replacement rules
7513         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
7514         symbols
7515         * src/SDCCcse.c (updateSpillLocation),
7516         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
7517         equivalents
7518         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
7519         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
7520         objects far pointers
7521
7522 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7523
7524         * src/SDCCsymt.h: a missing part of my last change
7525         * src/pic/ralloc.c (regTypeNum),
7526         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
7527
7528 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7529
7530         * src/SDCCicode.h,
7531         * src/SDCCicode.c (aggrToPtrDclType),
7532         * src/SDCCptropt.h,
7533         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
7534         ptrPseudoSymConvert),
7535         * src/pic/ralloc.c (regTypeNum),
7536         * src/pic16/ralloc.c (regTypeNum),
7537         * src/hc08/ralloc.c (regTypeNum),
7538         * src/ds390/ralloc.c (regTypeNum),
7539         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
7540         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
7541
7542 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7543
7544         * link/z80/lkmain.c (afile),
7545         * as/hc08/lkmain.c (afile),
7546         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
7547         prevent a pointer problem when a filename has no directory and
7548         no extension specified.
7549
7550 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7551
7552         * link/z80/lkmain.c (afile): allow periods in directory names
7553         * link/z80/lkmain.c (afile),
7554         * as/mcs51/lkmain.c (afile),
7555         * as/hc08/lkmain.c (afile): allow linker script file to have an
7556         extension other than ".lnk"
7557         * link/z80/lklex.c (getfid),
7558         * link/z80/lkmain.c (parse),
7559         * as/mcs51/lklex.c (getfid),
7560         * as/mcs51/lkmain.c (parse),
7561         * as/hc08/lklex.c (getfid),
7562         * as/hc08/lkmain.c (parse): Support comments in the linker script
7563         file on lines by themselves and after filenames
7564
7565 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7566
7567         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
7568
7569 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7570
7571         * src/z80/peeph-z80.def: removed some peephole rules that don't
7572         work with multibyte arithmetic (fixed bug #937126)
7573         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
7574         to registers and not global variables
7575         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
7576         geniCodePreInc, geniCodePostDec, geniCodePreDec,
7577         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
7578         checking for assignments not internally generated (fixed bug #931895)
7579         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
7580         structure member (fixed bug #930072)
7581
7582 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7583
7584         * src/SDCCmain.c (linkEdit),
7585         * src/hc08/main.c (_hc08_parseOptions),
7586         * as/hc08/Makefile.in,
7587         * as/hc08/aslink.h,
7588         * as/hc08/asm.h,
7589         * as/hc08/m08pst.c,
7590         * as/hc08/lkrloc.c (relr, rele),
7591         * as/hc08/lkarea.c (lnkarea)
7592         * as/hc08/lkmain.c (afile, parse),
7593         * as/hc08/lkelf.c: support for ELF output
7594         * as/hc08/lks19.c (s19),
7595         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
7596
7597 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7598
7599         * as/mcs51/lkihx.c: Fixed bug #899105.
7600
7601 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7602
7603         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
7604         .dsp files from Unix to DOS.
7605
7606 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7607
7608         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
7609         function pointers; we have been compliant for several months now.
7610         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
7611         change that was accidently commented out
7612         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
7613         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
7614         bug #922319
7615
7616 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7617
7618         * src/hc08/gen.c: output of all of the internal debugging information
7619         is now controlled by the D() macro; it is disabled by default
7620
7621 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7622
7623         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
7624         harder to keep the same registers during a CAST iCode
7625         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
7626         long via int can be done in a single cast, if the signedness is
7627         correct.
7628         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
7629         putchar() in tinibios.c in ds390's library
7630
7631 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
7632
7633         * src/SDCCast.c (decorateType): fixed bug #898889,
7634         cast result of a literal complement too
7635         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
7636         fixed check for bitfields
7637
7638 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
7639
7640         * src/SDCCicode.c (geniCodeLogic): made it static,
7641         (geniCodeLogicAndOr): added in order to fix bug #905492,
7642         (ast2iCode): fixed bug #905492
7643         * support/regression/tests/bug-905492.c: added
7644         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
7645         (processParms): fixed bug #927659: don't copy parms, this will clear
7646         decorated flag
7647         * support/regression/tests/bug-927659.c: added
7648
7649 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
7650
7651         * src/SDCCast.c (addCast): don't cast float to char
7652         * device/lib/libsdcc.lib: added _memmove
7653
7654 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
7655
7656         * device/lib/large/Makefile: fixed parallel execution by
7657         replacing `make` by `$(MAKE)`
7658
7659 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7660
7661         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
7662         offsets (fixes bug #923936)
7663
7664 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
7665
7666         * device/lib/small/Makefile: fixed parallel execution by
7667         replacing `make` by `$(MAKE)`
7668
7669 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7670
7671         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
7672
7673 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
7674
7675         * src/pic/gen.c (genCpl): multi-byte complements were not working.
7676         * src/regression/Makefile: Regression test was not running.
7677
7678 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7679
7680         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
7681         complement if possible
7682         * src/SDCCval.c (valComplement),
7683         * src/SDCCicode.c (operandOperation): fixed complement of literal
7684         * support/regression/tests/onebyte.c (testComplement): added
7685
7686 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
7687
7688         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
7689         return an optimized tree; actually replace actParm with the new tree
7690         * src/SDCCast.h: added some parantheses to remove side effects
7691         * support/regression/tests/bug-920866.c
7692
7693 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
7694         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
7695         Bit operands were not being handled properly in the pic14 port.
7696         (now src/regression/add.c passes again).
7697
7698 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7699
7700         * src/SDCC.y (labeled_statement): case and default no longer require
7701         a following statement (RFE #893037)
7702
7703 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7704
7705         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
7706         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
7707         disabled (fixes bug #916294)
7708         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
7709         "mov a,acc"; patch provided by Lenny Story
7710         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
7711
7712 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7713
7714         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
7715         functions
7716         * src/ds390/gen.c (genFunction, genEndFunction),
7717         * src/ds390/ralloc.c (ds390_assignRegisters),
7718         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
7719         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
7720         pushed if there are parameters passed on the stack. Also, a cleaner
7721         way to decide if r0/r1 should be pushed/popped. (Together they fix
7722         bug #918693)
7723
7724 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7725
7726         * doc/sdccman.lyx,
7727         * device/lib/mcs51/crtpagesfr.asm,
7728         * device/lib/mcs51/crtxinit.asm,
7729         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
7730         to avoid confusion with Si Lab's SFRPAGE register.
7731
7732 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7733
7734         * src/SDCCglue.c (emitMaps): allow public sfr variables
7735         * src/SDCCglue.c (initialComments): include compiler build date
7736         with compiler version and put the timestamp of the generated
7737         assembly file on a serperate line to be less confusing.
7738         * src/port.h: added genInitStartup hook
7739         * src/avr/main.c,
7740         * src/ds390/main.c,
7741         * src/hc08/main.c,
7742         * src/pic/main.c,
7743         * src/pic16/main.c,
7744         * src/xa51/main.c,
7745         * src/z80/main.c: genInitStartup initialize as NULL (default to
7746         historical behaviour)
7747         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
7748         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
7749         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
7750         library instead of hard coding it into the compiler.
7751         * support/regression/ports/mcs51-stack-auto/spec.mk,
7752         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
7753         * device/lib/mcs51/Makefile,
7754         * device/lib/small/Makefile,
7755         * device/lib/large/Makefile,
7756         * device/lib/mcs51/crtpagesfr.asm,
7757         * device/lib/mcs51/crtstart.asm,
7758         * device/lib/mcs51/crtxclear.asm,
7759         * device/lib/mcs51/crtxinit.asm,
7760         * device/lib/mcs51/crtclear.asm,
7761         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
7762         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
7763         and into user configurable files.
7764         * device/lib/clean.mk: clean mcs51 directory too
7765         * support/regression/tests/longlit.c: added static to T1 declaration
7766         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
7767         accesses in the initialization code
7768
7769 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7770
7771         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
7772         OSCTRIMVAL as noted in bug #916008
7773
7774 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7775
7776         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
7777         in loops with multiple exits (reported as incorrect registers
7778         used by Martin Helmling in Sdcc-user list)
7779
7780 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7781
7782         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
7783         made ds390 register extensions look less like error messages
7784
7785 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7786
7787         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
7788         reported by Adam Wozniak in Sdcc-user list
7789
7790 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
7791
7792         * src/SDCCast.c (decorateType): fixed with bug and promotion in
7793         arithmetic optimizations, added debug output
7794
7795 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
7796
7797         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
7798         * sdcc.spec: updated and split sdcc into 3 rpms
7799         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
7800         needed for literals of LEFT_OP and '+'
7801         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
7802         introduced RESULT_TYPE_NOPROM
7803         (geniCodeMultiply): fixed logic for decision if mul is optimized to
7804         left shift
7805         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
7806         limited promotion to int only for '*'
7807         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
7808
7809 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
7810
7811         * src/pic16/gen.c (genSkip),
7812         (genc16bit2lit), (gencjneshort): commented out
7813         (is_LitOp): new helper function, checks operand type
7814         (genCmpEq): rewritten
7815
7816 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
7817
7818         * support/regression/tests/bug-908454.c: added
7819
7820 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
7821
7822         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
7823         * src/SDCCicode.c (usualBinaryConversions): op needs int type
7824         (geniCodeCast): cosmetic, don't preserve bit storage class
7825         (geniCodeLeftShift): added promotion
7826         (geniCodeLogic): fixed regression
7827         * src/SDCCsymt.c (computeTypeOr): accept bits too
7828         (compareType): 2nd part of fix for bug #908454, needed for bitfields
7829
7830 2004-03-07  Borut Razem <borut.razem AT siol.net>
7831
7832         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
7833
7834 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
7835
7836         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
7837         version of pic16_genPackRegisters which does not check if ic is a
7838         CAST operator,
7839         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
7840         function cause string1.c regression test fails
7841
7842 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
7843
7844         * sim/ucsim/configure.in,
7845         * sim/ucsim/configure,
7846         * sim/ucsim/doc/Makefile.in: use docdir
7847         * src/SDCC.y: fixed sbit atrributes
7848         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
7849         * src/SDCCast.c (decorateType): |^& need special promotion handling
7850         * src/SDCCast.h,
7851         * src/SDCCsymt.h: moved definition of RESULT_TYPE
7852         * src/SDCCsymt.h (computeType),
7853         * src/SDCCicode.c: computeType() needs op
7854         * src/SDCCsymt.c (checkTypeSanity),
7855         * doc/sddman.lyx: "plain" bitfields are unsigned
7856         * src/SDCCsymt.c (computeTypeOr): added
7857         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
7858         |^& ops
7859         * src/SDCCval.c (val*): computeType() needs op
7860         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
7861         * support/regression/tests/onebyte.c: added tests for |^&
7862
7863 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
7864
7865         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
7866         for writing icode into asm output.
7867
7868 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
7869
7870         * src/pic16/device.c: added some debug lines enabled
7871         with macro DEBUG_CHECK,
7872         * src/pic16/genarith.c: more debug in genPlus,
7873         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
7874         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
7875         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
7876         * (aopForSym): onStack symbols are re-placed in data memspace,
7877         and onStack flag is cleared,
7878         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
7879         copy temporary pcodeop,
7880         * (genPcall): added warning for not updating PCLATU,
7881         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
7882         always true for pic16 port,
7883         * (genMultOneWord): NEW, supports integer multiplication,
7884         * (genMult): modified to call genMultOneWord,
7885         * (ifxForOp): added warning when return NULL,
7886         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
7887         flag is set before call to operandFromSymbol for implicit
7888         added structures,
7889         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
7890         options.intlong_rent are set by default,
7891         * (_hasNativeMulFor): modified to allow port generation of integer
7892         multiplication,
7893         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
7894         set regtype to REG_SFR for all registers, restricting seting the
7895         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
7896
7897 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7898
7899         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
7900         more than 500 times in the regression tests
7901
7902 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7903
7904         * support/Util/SDCCerr.h,
7905         * support/Util/SDCCerr.c,
7906         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7907         enumerator_list),
7908         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
7909         for symbol conflicts.
7910         * support/valdiags/tests/enum.c,
7911         * support/valdiags/tests/tentdecl.c,
7912         * support/valdiags/tests/struct.c: expect possible error messages
7913         referring to original symbol definitions.
7914         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
7915         * src/SDCCsymt.h,
7916         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
7917
7918 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
7919
7920         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
7921
7922 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
7923
7924         * src/pic16/ralloc.c (newReg): fixed bug #908929
7925
7926 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7927
7928         * src/ds390/gen.c: added missing #include "main.h"
7929
7930 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
7931
7932         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
7933         checking if symbol is already in set,
7934         * src/pic16/device.h: prototype for checkAddSym,
7935         * src/pic16/gen.c: (_G): added entry interruptvector,
7936         * (assignResultValue): removed some commented out lines,
7937         * (genFunction): check for ISR via sym->type, absolute section for
7938         interrupt code is created via a new pBlock, the goto instruction is
7939         placed now correctly at the interrupt vector position, changed all
7940         references from ivec to _G.interruptvector,
7941         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
7942         is the interrupt is a high priority one, same for return from ISR,
7943         * src/pic16/glue.c: changed all calls of addSetHead for publics and
7944         externs to calls of checkAddSym,
7945         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
7946         pic16_pcode_verbose flag is set,
7947         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
7948         * src/pic16/pcoderegs.c: message about how many registers are saved
7949         will only be emitted if pic16_pcode_verbose flag is set,
7950
7951 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7952
7953         * src/ds390/ralloc.h,
7954         * src/ds390/ralloc.c (ds390_regWithIdx),
7955         * src/ds390/gen.c (emitcode),
7956         * src/ds390/main.h,
7957         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
7958         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7959         ds390operandCompare, getRegsRead, getRegsWritten,
7960         initializeAsmLineNode): customized instruction size calculation for
7961         ds390, started basis for some register optimizations
7962         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
7963         corresponding assembly output
7964         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
7965         missing push/pop of r0/r1. Optimized push/pops
7966
7967 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7968
7969         * src/mcs51/main.c (instructionSize): fixed ACALL size
7970         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
7971
7972 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
7973
7974         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
7975         the sorting of rlist with NULL elements
7976         * (print_idataType, print_idata): NEW to create idata sections
7977         * src/pic16/device.h: idataSymSet new variable
7978         * src/pic16/gen.c (genFunction): fixed some bugs in string
7979         comparing, improved the absolute section creation for ISRs,
7980         added FSR0L/FSR0H in registers that are saved in an ISR,
7981         * (genInline): fixed the processing of inline snippets,
7982         now they undergo no process by the peephole optimizer
7983         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
7984         are placed in idataSymSet,
7985         * (pic16emitStaticSeg): extern symbols are added in externs,
7986         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
7987         switching when aboslute variables are placed in access bank memory
7988         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
7989         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
7990         commented out with #if,
7991         * (pic16_packRegisters): reintroduce the check for CAST because some
7992         symbols are not correctly handled,
7993         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
7994         pCodeInstruction instead of pCode,
7995         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
7996         pCodeAsmDir definition,
7997         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
7998         directive, then the argument directive is emitted without the leading
7999         tab, hack for inline labels which must be in the first column,
8000         * (compareLabel,pic16_findNextInstruction),
8001         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
8002         * (insertBankSwitch): modified for the new pCodeAsmDir,
8003
8004 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8005         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
8006
8007         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
8008         instance,
8009         * (pushSide): commented out with #if,
8010         * (assignResultValue): fixed some typos in saving
8011         registers,
8012         * (genPcall): FIXED and sync'ed with genCall,
8013         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
8014         * (genNearPointerGet): fixed to handle some more cases,
8015         implementation scheme via table reads,
8016         * (genConstPointerGet): modified to access code memory correct,
8017         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
8018         and improved to handle some cases
8019         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
8020         instead of "RETLW" for init data
8021         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
8022         not IN_DIRSPACE, work around to reduce bank switching when aboslute
8023         variables are placed in access bank memory (<0x80 and >=0xf80),
8024         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
8025         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
8026         TBLWT_POSTDEC,TBLWT_PREINC
8027         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
8028         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
8029         directives
8030         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
8031         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
8032         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
8033         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
8034
8035 2004-02-29  Borut Razem <borut.razem AT siol.net>
8036
8037         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
8038         support/Util/findme.h, support/Util/system.h: enhance binary relative
8039         search for lib and include by using findProgramPath()
8040
8041 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8042
8043         * src/SDCCpeeph.h,
8044         * src/SDCCpeeph.c (pcDistance),
8045         * src/port.h,
8046         * src/mcs51/ralloc.h,
8047         * src/mcs51/ralloc.c (mcs51_regWithIdx),
8048         * src/mcs51/main.h,
8049         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
8050         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
8051         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
8052         size calculation port specific, started basis for some register
8053         optimizations
8054         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
8055         missing push/pop of r0/r1. Optimized push/pops
8056         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
8057         * device/lib/_modsint.c (_modsint),
8058         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
8059         and stack version so regression tests pass
8060
8061 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
8062
8063         * src/Makefile.in (dep): include SLIBOBJS in dependency check
8064         * src/SDCCast.c (decorateType): catch another small optimization
8065         with '?' operator
8066         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
8067         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
8068         modified to finally use computeType() all over SDCC,
8069         see Feature Request #877103
8070         * src/SDCCval.h: cosmetic
8071         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
8072         valCompare(); regression tested in muldiv.c
8073         * support/regression/tests/muldiv.c (testMod): mod sign follows
8074         dividend only
8075
8076 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
8077
8078         * src/SDCCast.c (decorateType): fixed bug #902362
8079         * doc/INSTALL.txt: fixed install instructions for win32
8080
8081 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
8082
8083         * device/include/Makefile.in (install): fixed by replacing spaces
8084         by tabs
8085         * doc/README.txt,
8086         * doc/INSTALL.txt: updated for release
8087         * doc/sdccman.lyx: added warning for --xstack being buggy
8088
8089 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
8090
8091         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
8092         to eliminate build warnings.
8093         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
8094
8095 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
8096            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8097
8098         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
8099         removed -penable-stack, added comment for stack pragma, added
8100         warning for not initializing the stack/frame registers, removed
8101         comment at interrupts section
8102
8103         Stack is made permanent, there is no ability to disable stack usage.
8104         * src/pic16/device.h,
8105         * src/pic16/device.c: removed all references to USE_STACK macro,
8106         * src/pic16/device.c (pic16_dump_section): when no elements in
8107         rlist, free rlist before return,
8108         * (pic16_dump_int_registers): NEW, internal registers are a new set
8109         of general purpose registers reused by each function,
8110         * (checkAddReg): returns 1 if registers is added to set,
8111         * (pic16_groupRegistersInSection): when a registers is of type
8112         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
8113         * src/pic16/device.h: memRange and Assigned Memory are deleted,
8114         SRCASECMP macro is moved here from device.c
8115         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
8116         PO_PCLATU, PO_PRODL, PO_PRODH,
8117         * (pic16_pCodeOpType, genMinus,
8118         changed compares to "a" register, with AOP_ACC,
8119         * (pic16_genPlus): fixed some bugs and indented properly,
8120         * (pic16_addSign): changed size to size+offset in the MOVWF
8121         instruction,
8122         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
8123         multiply 8-bit operand by literal, result is 8-bit,
8124         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
8125         multiply 2 8-bit operand, result is 8-bit,
8126         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
8127         genUMult8X*_16,
8128         * src/pic16/gen.c: changed accUse to contain WREG only,
8129         * (pic16_emitcomment): renamed to pic16_emitpcomment,
8130         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
8131         true, do not use immediate addressing any more unless sym is a
8132         pointer in codespace,
8133         * (aopForRemat): do not use immediate addressing when symbol not in
8134         codespace and when symbol's address is requested,
8135         * (aopOp): for-loop in if(sym->accUse) is modified for the new
8136         accUse size (= 1),
8137         * (aopGet): added case for AOP_ACC and don't return "accumulator
8138         bug" but WREG instead,
8139         * (popGetTempReg): pushes contents of temporary register in stack,
8140         * (popReleaseTempReg): pops contents of temporary register from
8141         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
8142         * (pic16_popGet): separated case AOP_ACC to return register WREG
8143         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
8144         or PO_IMMEDIATE and initializes their instance/offset appropriately,
8145         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
8146         the use of immediate pointers to certain cases only.
8147
8148         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
8149         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
8150         * (assignResultValue, genCall, genRet): modified to use the new
8151         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
8152         genPcall is still broken,
8153         * (genFunction): added code to create 'A' type pBlocks when
8154         interrupt functions are generated, code not extensively tested yet,
8155         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
8156         * (genEndFunction): modified so ISRs pop stored registers from stack,
8157         * (genMultOneByte): cleanup,
8158         * (AccRsh): added flag andmask, to and result with appropriate mask,
8159         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
8160         * (genDataPointerGet): fixed and reenabled its use,
8161         * (genNearDataPointerGet): bugs fixed,
8162         * (genDataPointerSet): bugs fixed,
8163         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
8164         pic16_DumpSymbol, pic16_DumpOp,
8165         * src/pic16/genutils.h: function prototypes for the above functions,
8166         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
8167         pointers,
8168         * (pic16emitRegularMap): many many many improvements, but needs a
8169         major cleanup,
8170         * src/pic16/main.c: enable_stack in pic16_options is removed,
8171         * (_pic16_parseOptions): removed command line options -penable-stack,
8172         * (_process_pragma): emit stack symbol only when stack pragma is
8173         processed,
8174         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
8175         redirected to FSR0L/FSR0H pair,
8176         * (pic16_get_op, pic16_get_op2): modifications and improvements,
8177         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8178         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
8179         for immediates,
8180         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
8181         * (dumpPicOptype): NEW,
8182         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
8183         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
8184         with movff instruction,
8185         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
8186         added pic16_int_regs, some packRegsFor* functions are commented out,
8187         because produce errors,
8188         * src/pic16/NOTES: minor modifications
8189
8190 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8191
8192         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
8193         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
8194         --pack-iram.
8195         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
8196         * as/mcs51/lkaomf51.c: fixed bug #895763
8197
8198 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
8199
8200         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
8201
8202 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8203
8204         * doc/sdccman.lyx: added details about the HC08 storage classes and
8205         interrupts, fixed the register usage info for z80 & gbz80
8206
8207 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
8208
8209         * doc/sdccman.lyx: added more pic16 port documentation
8210         * device/include/pic16/: added header pic18fregs.h
8211
8212 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
8213
8214         * doc/sdccman.lyx: added Vangelis' contribution
8215
8216 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8217
8218         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
8219         extend to the next CALL or PCALL, not just to the next CALL.
8220
8221 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
8222
8223         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
8224
8225 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8226
8227         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
8228         bug #895752 and a better fix for bug #716790
8229
8230 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8231
8232         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
8233
8234 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8235
8236         * doc/sdccman.lyx: minor changes, minor changed
8237
8238 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
8239
8240         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
8241         which can't handle SDCC_NEWONEBYTEOPS,
8242         (geniCodeMultiply): removed conversion from mult to shift for pic14
8243         and pic16
8244
8245 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8246
8247         * src/hc08/gen.h,
8248         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
8249         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
8250         thus fixing bug #895406
8251
8252 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
8253
8254         * device/lib/_modsint.c,
8255         * device/lib/_modslong.c: sign follows divisor only
8256         * src/hc08/gen.c (genMultOneByte): if result size is 1,
8257         signs or signedness can be ignored
8258         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
8259         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
8260         added optimization for IFX,
8261         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
8262         arguments;
8263         reenabled optimization for IFX, which was removed on 2004-01-11
8264         * src/SDCCast.h: added return type IFX
8265         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
8266         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
8267         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
8268         SDCC_OLDONEBYTEOPS selects the old behaviour
8269         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
8270         changed again and commented promotion rule
8271         * src/SDCCval.c (valDiv): promotion no longer necessary
8272         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
8273         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
8274         rewritten
8275         * support/regression/tests/onebyte.c: added
8276
8277 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
8278
8279         * gen.c (genInline): reverted to old code for assemnling inline
8280         code because of bug reported James Chadd
8281
8282 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
8283
8284         * ralloc.h: missing declarations from previous patch,
8285         seems that patch for ralloc.h was never applied, fixed
8286
8287 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8288            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
8289
8290         * pcode.c,
8291         * pcode.h,
8292         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
8293         indirect addressing. Marked FSR0 as deprecated
8294         * gen.c (pointerCode): commented out, not needed now
8295         (pic16_popGet2p): new MOVFF helper function
8296         (genGenPointerGet),
8297         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
8298         (shiftRLong): removed duplicate debugging info
8299
8300 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8301
8302         * src/ds390/gen.c (genNearPointerGet),
8303         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
8304         optimization with bits, but not bitfields.
8305         * src/ds390/ralloc.c (packRegisters),
8306         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
8307
8308 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
8309
8310         * src/SDCCcse.c (algebraicOpts): copy operands before modification
8311
8312 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8313
8314         * src/SDCCsymt.h,
8315         * src/SDCCicode.c (operandFromSymbol),
8316         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
8317         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
8318         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
8319         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
8320         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
8321         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
8322         bug #892038
8323         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
8324         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
8325         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
8326         * src/SDCCsymt.c (newSymbol),
8327         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
8328         enumerator_list),
8329         * src/SDCCval.h,
8330         * src/SDCCval.c (newiList): fixed bug #885705
8331
8332 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8333
8334         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
8335         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
8336
8337 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8338
8339         * device/include/c8051f120.h,
8340         * device/include/c8051f300.h,
8341         * device/include/c8051f310.h: added/updated header files for Silicon
8342         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8343         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
8344         in new section Submitting patches
8345
8346 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8347
8348         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
8349         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8350         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8351         genGenPointerSet),
8352         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
8353         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8354         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8355         genGenPointerSet),
8356         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
8357         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8358         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8359         genGenPointerSet),
8360         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
8361         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8362         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8363         genGenPointerSet): fixed bug #892400
8364         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
8365         to eliminate build warnings.
8366         * src/SDCCast.c (processParms),
8367         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
8368         fixed bug 751859
8369         * support/valdiag/valdiag.py: added GCC to the list of defines active
8370         when compiling with gcc
8371
8372 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8373
8374         * support/Util/SDCCerr.h,
8375         * support/Util/SDCCerr.c,
8376         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
8377         with an incomplete type (fixed bug #883734)
8378         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
8379
8380 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8381
8382         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
8383
8384 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8385
8386         * src/SDCCast.c (decorateType),
8387         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
8388         function pointer implementation
8389         * support/regression/tests/funptrs.c: added tests to verify both forms
8390         of function pointers work correctly. Added tests to verify parameters
8391         are passed in the correct order.
8392
8393 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
8394
8395         * device.c (regCompare): registers are sorted by ascending
8396         address and increasing size,
8397         * main.c (_pic16_finaliseOptions): removed the declaration
8398         of compiler macro MCU. Now a macro of the format pic18fxxxx
8399         will be defined from the command line
8400
8401 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8402             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
8403
8404         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
8405         PCOP_RLCF was overwritten!
8406         * gen.c (genSkip): commented out calls to pic16_emitcode,
8407         * (genCmpEQ): fixed "long" compares, only high word did get compared,
8408         * (genlshTwo),
8409         * (genRRC): added debugging info,
8410         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
8411         overwritten while shifting,
8412         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
8413         overwritten while shifting,
8414         * (AccLsh),
8415         * (AccRsh),
8416         * (shiftLLeftOrResult),
8417         * (shiftRLeftOrResult),
8418         * (shiftRLong),
8419         * (shiftLLong): Implemented with pic16_emitpcode
8420         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
8421         * (genLeftShift): Fixed bug, operand for shift by variable always
8422         was "and"ed with 0x0f,
8423         * (genLeftShiftLiteral),
8424         * (genrshTwo),
8425         * (genRightShiftLiteral): added debugging info,
8426         * (genrshFour): added comment,
8427         * (genRightShift): determined signedness from operand "left"
8428         instead of "result"
8429
8430 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8431
8432         * src/SDCCicode.c (geniCodeParms),
8433         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
8434         function pointers, fixed function pointer bugs #861242 and #861896
8435
8436 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8437
8438         * device/include/c8051f000.h,
8439         * device/include/c8051f120.h,
8440         * device/include/c8051f300.h: added header files for Silicon
8441         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8442
8443 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
8444
8445         * src/SDCCast.c (processParams): added new type flow and restructured
8446         (gatherAutoInit): added new type flow
8447         (addCast): cosmetic changes
8448         (getLeftResultType): added new type flow for array indices, patch
8449         provided by Stas, see FR #877103
8450         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
8451         array index patch by Stas
8452         * src/SDCCast.h: added prototype getResultTypeFromType()
8453         * src/SDCCval.h,
8454         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
8455         * src/pic/glue.c (pic14emitStaticSeg),
8456         * src/pic16/glue.c (pic16emitStaticSeg),
8457         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
8458         for initialization of symbols
8459         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
8460         * support/Util/SDCCerr.h:
8461         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
8462         * .version: bumped version number to 2.3.8
8463         * device/include/Makefile.in (install),
8464         * doc/Makefile (install): changed to 'rm `find ...`' construct to
8465         avoid warnings
8466
8467 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
8468
8469         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
8470         Slade Rich fixed an optimization bug
8471         * src/pic/pcodepeep.c,
8472         * src/pic/pcoderegs.c
8473         * doc/Makefile (install): added test for directory
8474
8475 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8476
8477         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
8478         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
8479         * src/pic/ralloc.c (getRegPtr, getRegGpr),
8480         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
8481         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
8482         * as/mcs51/asexpr.c (term),
8483         * as/hc08/asexpr.c (term): fixed bug #887146
8484
8485 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8486
8487         * src/z80/gen.c (genMult): handle single byte result product
8488         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
8489         DUMMY_READ_VOLATILE (fixed bug #886367)
8490
8491 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8492
8493         * support/regression/tests/libmullong.c: fixed logic, on little endian
8494         hosts we ended without a mullong_wrapper()
8495
8496 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8497
8498         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
8499         virus/worm forged address usage.
8500
8501 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8502
8503         Fixed promotion, it should be done on AST level:
8504         * src/SDCCast.c (addCast): added promotion to int
8505         (decorateType): updated call to upCast()
8506         * src/SDCCicode.c (geniCodeLeftShift): removed call to
8507         usualUnaryConversions()
8508
8509 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
8510
8511         * support/regression/tests/literalop.c (mulWrapper): Added a
8512         wrapper to remove integer overflow warnings.
8513
8514         * support/regression/tests/float_trans.c: Made work on host.
8515
8516         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
8517         location of sz80.
8518
8519         * support/regression/generate-cases.py (main): Changed from inline
8520         to a main method.
8521
8522         * doc/Makefile (install): Changed to depth first to get rid of
8523         missing directory install warning.
8524
8525         * as/Makefile (install-doc): Made work on Mac.
8526
8527 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
8528
8529         * src/SDCCast.c: added an additional type flow in decorateType() of
8530         opposite direction, see feature request #860006; it's enabled at runtime
8531         by setting the environment variable SDCC_NEWTYPEFLOW
8532         * src/SDCCast.h: changed prototype of decorateType()
8533         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
8534         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
8535         'char' to 'int' can be omitted, if both operands are 'unsigned char';
8536         see feature request #877103
8537         * src/SDCCval.c: updated call of decorateType()
8538         (valBitwise): fixed bug #882876
8539         (valMinus): added promotion
8540         (valLogicAndOr): result is unsigned
8541         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
8542         * src/SDCCsymt.c (computeType),
8543         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
8544         must not cause an unsigned operation
8545         * src/pic/glue (pic14emitRegularMap),
8546         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
8547
8548 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
8549
8550         * src/pic/pcode.c (PCodeID): commented out left over debug code
8551
8552 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
8553
8554         * support/valdiag/tests/overflow.c: added shift tests
8555         * src/pic/device.c,
8556         * src/pic/gen.c,
8557         * src/pic/gen.h,
8558         * src/pic/glue.c,
8559         * src/pic/main.c,
8560         * src/pic/pcode.c,
8561         * src/pic/pcode.h,
8562         * src/pic/pcodepeep.c,
8563         * src/pic/pcoderegs.c,
8564         * src/pic/ralloc.c,
8565         * src/pic/ralloc.h: applied patch from Slade Rich;
8566         added support for multiple code pages and multiple RAM banks on the
8567         PIC 14 port. The ASM files now no longer simply assume all the
8568         code / RAM are in the same page / bank. This means the linker can
8569         safely allocate code/RAM of separate ASM files to different pages/banks.
8570         * doc/sdccman.lyx: added Slade's tips
8571         * src/mcs51/peeph.def: fixed bug #880768
8572
8573 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8574
8575         * src/hc08/ralloc.c (rematStr): fixed bug #879282
8576         * src/SDCCast.c (decorateType): fixed bug #880197
8577
8578 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
8579
8580         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
8581         getopt.h.
8582
8583         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
8584         strtof is not part of C89 and isn't included with Mac OS X.
8585
8586 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8587
8588         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
8589         shiftL2Left2Result): fixed bug #879326
8590         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
8591         (genMultOneByte): fixed bug in signed vs unsigned multiplication
8592         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
8593         address fetch for clr instruction
8594         * device/lib/hc08/_mulint.c: created optimized assembly version
8595         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
8596
8597 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
8598
8599         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
8600         proposed in FR #877103
8601
8602 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
8603
8604         * src/SDCCval.c (cheapestVal): added missing checks
8605         * src/SDCCicode.c (usualBinaryConversions): fixed condition
8606         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
8607
8608 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
8609
8610         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
8611         equal operands
8612
8613 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
8614
8615         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
8616         loaded with the linker search paths (-L arguments) and the libraries
8617         to be linked with the current source (-l arguments). Changes
8618         currently will affect only the pic16 port.
8619         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
8620         include path the port specific paths and port specific libraries,
8621         * gplink command now contains the $3 argument,
8622         * src/pic16/device.h,
8623         * src/pic16/device.c,: structure PIC_device is made public and
8624         renamed to PIC16_device, the same for variable Pics which is renamed
8625         to Pics16. Updated all references to them.
8626         * src/pic16/glue.c (pic16glue): corrected bug with code
8627         initialization which bypassed the variable initializations block.
8628
8629         * device/lib/pic16/Makefile.rules: removed --penable-stack from
8630         COMPILE_FLAGS and added the --nostdinc option
8631
8632 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8633
8634         * device/include/mc68hc908jb8.h: Register defs for another member
8635         of the hc08 family. Contributed by Bjorn Bringert - thanks!
8636
8637 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
8638
8639         Documenting changes from previous commits.
8640         * configure.in (version 1.56),
8641         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
8642         when generating output files to configure the pic16 library,
8643         but now I've commented it out, since gputils aren't installed in the
8644         SF compile farm, so library won't compile
8645
8646         * device/lib/Makefile.in (version 1.56): initially I've added in
8647         target 'all' the prerequestive 'model-pic16' so it compiled the
8648         pic16 library, but now I've commented it out for the same reasons
8649         above,
8650         * added targets 'model-pic16' and 'objects-pic16' to compile the
8651         library
8652         * added target 'port-specific-objects-pic16' to handle the
8653         generated libraries and copy them into the build/ directory
8654         * added target 'clean-intermediate-pic16' to clean intermediate
8655         files into pic16 directory
8656         * in target 'installdirs' added line to create directory pic16 in
8657         the installation path
8658
8659         * device/include/Makefile.in (version 1.11): in target 'install'
8660         added lines to copy all header files to installation path,
8661         * in target 'installdirs' added line create directory for pic16
8662         headers in the installation path
8663
8664 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
8665
8666         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
8667          a function call
8668
8669 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
8670
8671         * configure,
8672         * device/lib/configure.in,
8673         * device/lib/configure: fixed for autoconf 2.57
8674
8675 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8676
8677         * src/z80/main.c (_parseOptions): fixed the portmode= command line
8678         option so that it actually works. Made it specific to the z80, since
8679         the gbz80 doesn't have these kinds of I/O ports.
8680
8681 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8682
8683         * device/include/z180.h,
8684         * device/lib/_memcpy.c,
8685         * device/lib/_memmove.c,
8686         * device/lib/_mulint.c,
8687         * device/lib/ser_ir.c,
8688         * device/lib/ser_ir_cts_rts.c,
8689         * device/lib/_strcmp.c,
8690         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
8691         * src/z80/main.c (_process_pragma): add support for pragmas bank and
8692         portmode; added deprecation warning for bank= and protmode= forms.
8693         Also, guard against buffer overflow.
8694         * src/z80/gen.c (aopGet): generate better code for sfr banked read
8695
8696 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8697
8698         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
8699         changed interrupt vector table generation to only emit declared vectors.
8700         * device/include/Makefile.in: added missing backslash
8701         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
8702
8703 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8704
8705         Mainly changes to support compilation of the device libraries
8706         * src/pic16/device.c: stack is allocated via symbol and not
8707         via literal number. The symbol is placed in the corresponding
8708         position of the data ram
8709         * (pic16_dump_section): relocatable and absolute uninitialized
8710         data are now emitted in sorted order to reduce section naming,
8711         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
8712         weren't marked as being in the access bank,
8713
8714 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8715
8716         Added portion of GNU PIC Library under the directory
8717         device/include/pic16 and device/lib/pic16. These files
8718         contain the declarations of SFRs for the PIC18Fxx2 devices.
8719         The directory is initialized via configure from toplevel.
8720
8721 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
8722
8723         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
8724         the spilllocations to be compared correctly
8725
8726 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8727
8728         * src/SDCCast.c (decorateType): fixed bug introduced today
8729
8730 2004-01-12  Borut Razem <borut.razem AT siol.net>
8731
8732         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
8733         doc/sdccman.lyx: upper case pragmas are deprecated
8734
8735 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8736
8737         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
8738         in simpler and even better code
8739
8740 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
8741
8742         * src/SDCCicode.c (operandOperation): fixed bug #874819
8743         * src/SDCCast.c (decorateType): fixed
8744         char foo (unsigned long ul) { return ul > 0; }
8745
8746 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8747
8748         * doc/sdccman.lyx: Moved and added some sections, small changes
8749         all over. Telling LaTeX to be less strict with word spacing
8750         to better keep the right margin. Changed some notes about
8751         maintainance of the ports in section 3.2.1 - is it OK like this?
8752
8753 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8754
8755         SDCC source changes:
8756         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
8757         convilong): modified to inform the pic16 port that builtin functions
8758         are external
8759
8760         PIC16 PORT specific changes:
8761         * src/pic16/device.c pic16_dump_equates() added,
8762         processor registers declared internally by the port are emitted in
8763         the translation as equates,
8764         * src/pic16/gen.c: inline code is passed unprocessed to the
8765         translation,
8766         * (pic16_popGetLit2): fnuction modified to take second operand as
8767         pCodeOp pointer and not as literal,
8768         * (popRegFromIdx): prefixed with pic16_,
8769         * (pic16_popCombine2): modified to receive already allocated pCode
8770         operands,
8771         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
8772         * (genFunction): initializes local stack frame and pushes on stack
8773         all the registers used by this function,
8774         * (genEndFunction): restores all registers from stack and restores
8775         stack frame,
8776         * src/pic16/glue.c (pic16emitRegularMap): various changes and
8777         improvements,
8778         * (pic16glue): changed the program startup sequence,
8779         * added new dbName code 'A' for functions placed in absolute section
8780         * src/pic16/main.c: added function attribute _naked,
8781         * added pragma 'code' to place a fnuction at an absolute address,
8782         * added command line arguments --debug-ralloc and --pcode-verbose,
8783         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
8784         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
8785         * (pic16_newpCodeOpLit2): modified to take the second operand as
8786         pCodeOp pointer,
8787         * (pic16_printpBlock): modified to emit each function in a separate
8788         section,
8789         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
8790         UPPER for immediate operands,
8791         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
8792         instruction,
8793         * src/pic16/peeph.def: all peepholes with movff are commented out,
8794         because there is a problem in the pcode peep optimizer,
8795         * src/pic16/ralloc.c: the register allocator can now reuse local
8796         function symbols for another function. This saves register usage.
8797         * src/pic16/ralloc.h: added flag isLocal in structure regs,
8798
8799         Added file src/pic16/NOTES with information about program writing on
8800         the current port version.
8801
8802 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8803
8804         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
8805         and peephole 252 (array access)
8806
8807 2004-01-09  Borut Razem <borut.razem AT siol.net>
8808
8809         * src/SDCCmain.c : fixed #872250: -l command line defined library
8810           files are scanned before standard library files
8811
8812 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8813
8814         * src/SDCCast.c (decorateType): fixed bug #874046
8815
8816 2004-01-09  Borut Razem <borut.razem AT siol.net>
8817
8818         * support/scripts/sdcc.nsi: remove previous installation
8819
8820 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8821
8822         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
8823         bytes for last interrupt vector (mcs51)
8824         * sdcc.spec: fixed typo
8825
8826 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8827
8828         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
8829         gen51Code): more efficient parameter receive for --model-large
8830         ("bug" #845294)
8831
8832 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8833
8834         * src/ds390/main.c,
8835         * src/z80/main.c: added missed needLinkerScript flags (more than
8836         one port structure defined in these file)
8837         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
8838         bug #795325
8839
8840 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
8841
8842         * src/SDCCmain.c: removed various references to DEFAULT_PORT
8843         * src/port.h: added flag needLinkerScript in port->linker
8844         structure to inform whether to create a .lnk file or not,
8845         * src/avr/main.c,
8846         * src/ds390/main.c,
8847         * src/hc08/main.c,
8848         * src/mcs51/main.c,
8849         * src/pic/main.c,
8850         * src/pic16/main.c,
8851         * src/xa51/main.c,
8852         * src/z80/main.c: changed appropriately to configure
8853         needLinkerScript flag
8854         * src/pic/gen.c,
8855         * src/pic16/gen.c (genAddrOf): fixed bug #863624
8856         * src/pic/glue.c: added variable udata_section_name to
8857         override default uninitialized data segment definition for
8858         devices only with SHAREBANK memory (reported from Erik Epetrich)
8859         * (pic14emitOverlay): modified to emit a commented overlay segment
8860         directive when no overlay data exist
8861         * (picglue): modified to emit uninitialized data segment
8862         according to udata_section_name
8863         * src/pic/main.c (_pic14_parseOptions): added command line
8864         options --udata-section-name=[name] to override default
8865         udata definition name
8866         * modified _linkCmd and _asmCmd to include compiler passed
8867         arguments via -W option
8868         * src/pic16/main.c: added $l in _asmCmd, changed extension for
8869         object file from '.rel' to '.o' in port->linker structure,
8870         changed size of fptr from 2 to 3 in port structure
8871
8872 2004-01-07  Borut Razem <borut.razem AT siol.net>
8873
8874         * support/scripts/sdcc.nsi: update PATH
8875         * support/scripts/sdcc.ico: craeted
8876
8877 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
8878
8879         * device/include/Makefile.in: fix install
8880         * doc/Makefile: fix install
8881
8882 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8883
8884         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
8885         in bug #860505
8886         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
8887         how the function variable allocation summary is displayed; also
8888         include information about variables allocated to the overlay
8889         segment
8890
8891 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8892
8893         * as/mcs51/lkmain.c: Help about -Y option
8894         * as/mcs51/lkarea.c: Fixed gcc warnings
8895
8896 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8897
8898         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
8899         fixed warning
8900         * support/valdiag/tests/overflow.c: added
8901         * src/SDCCast.c (decorateType),
8902         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
8903         LEFT_OP (left shift)
8904
8905 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8906
8907         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
8908         (default behaviour).
8909
8910 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8911
8912         A python script to validate compiler diagnostic messages. It can be
8913         used to verify that sdcc complains about bad c source code and
8914         gives a good location of the error.
8915         * support/valdiag/Makefile,
8916         * support/valdiag/valdiag.py,
8917         * support/valdiag/tests/*
8918
8919 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8920
8921         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
8922         * src/SDCCsymt.c (newEnumType),
8923         * src/SDCCsymt.h
8924         * support/Util/SDCCerr.c,
8925         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
8926         enum related bugs.
8927         * support/regression/tests/enum.c: added test for enum values that
8928         require at least 2 bytes of storage.
8929
8930 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8931
8932         * src/common.h: added ifndef/define/endif macros
8933         around the header file.
8934         Bug reported from Jesus Calvino-Fraga
8935
8936 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8937
8938         * sdcc.spec: updated
8939         * device/include/Makefile.in: don't install CVS directories
8940         * device/lib/Makefile.in: added removal of CVS directories after install
8941         * doc/Makefile: fixed install, added local_icons
8942         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
8943         * src/mcs51/gen.c (genRightShift): fixed bug #870788
8944         * src/ds390/gen.c (genRightShift): fixed bug #870788
8945         * src/SDCCast.c (decorateType): fixed bug #870781
8946
8947 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8948
8949         PIC16 port related changes:
8950         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
8951         added variable stackPos,
8952
8953         * gen.c: genCall, assignResultValue: added support for
8954         pushing/retrieving function parameters to/from stack,
8955         genFunction,genEndFunction: setup stack frame for the
8956         generated function,
8957         genAddrOf: will be changed according to bug 863624
8958
8959         * added files genutils.c and genutils.h which contain gen*
8960         debugged and optimised functions extracted from gen.c
8961
8962         * glue.c: added variable 'externs' which holds extern symbols,
8963         pic16emitRegularMap: is modified to properly handle relocatable
8964          symbols under the new scheme,
8965         pic16createInterruptVect: is modified
8966         pic16printPublics: is modified to emit 'global' assembler directives,
8967         added pic16_printExterns to print extern symbols,
8968         pic16glue: initializes stack/frame pointer in the beginning of
8969         the assembly output. Temporary hack, will be corrected later,
8970         because gplink yet does not support stack and SDCC does not
8971         yet support a type of crt0.o object to create the final binary.
8972
8973         * Removed many lines that contain 8051 legacy code.
8974         * The code is finally placed under a 'code' directive.
8975         * Added port specific options.
8976
8977         * _process_pragma: simplified since now we do not need *special*
8978         include file to define SFR registers. But a separate header
8979         will be needed. This will be developed later.
8980         * _pic16_parseOptions: added, parses port specific options:
8981         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
8982         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
8983         --preplace-udata-with=
8984
8985         * _pic16_setDefaultOptions: modified to initialize section names,
8986         but hack is temporarly out of order since it needs improvement.
8987         * _pic16_genAssemblerPreamble: configuration words are emitted by
8988         their address instead of their name. This part is incomplete and
8989         supports only the 18Fxx2 devices. Other devices will emit an error
8990         during assembly since they do not contain the same set of config
8991         registers
8992         * _pic16_genIVT: is modified,
8993
8994         * pcode.c: added definitions for some hardware registers that are needed
8995         for stack support
8996         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
8997         All PCI entries are updated. Now LFSR is supported.
8998         * Removed pic16_pciTRIS is mentioned by mdubuc in source
8999         * added pic16_newpCodeOpLit2 to support instructions with
9000         two literal arguments
9001         * pic16_pCode2str: corrected code that emits assembler instructions
9002         with two literal operands and those that have an access bit modifier
9003         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
9004         this fixes a bug which caused some labels to be lost, when an
9005         assembler directive was added, i.e. banksel,
9006         * pic16_FixRegisterBanking: improved logic that causes the insertion
9007         of bank switching,
9008         * InlineFunction: functions that are called once, are not any more
9009         inlined. This can be a port option in the future,
9010
9011         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
9012
9013         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
9014         hold the corresponding uninitialized symbols,
9015         * pic16_allocProcessorRegister: registers have explicit marked the
9016         accessBank field,
9017         * pic16_allocInternalRegister: registers are explicit marked as
9018         not used,
9019         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
9020         processing list, so bit registers were lost,
9021         *
9022
9023         * ralloc.h: added field 'accessBank' and original symbol operand
9024         in register definition,
9025         * removed the field isMapped from register definition,
9026
9027         ** Several functions have been removed from various sources:
9028         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
9029         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
9030         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
9031         pic16_assignRelocatableRegisters
9032
9033         ** others have been introduced:
9034         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
9035         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
9036
9037 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
9038
9039         * support/scripts/inc2h.pl: changed definition of BIT_AT
9040         to emit 'sbit at' instead of 'bit at'. This was a request.
9041
9042         PIC16 port related preliminary changes:
9043         * gen.c: prefixed function popRegFromString with
9044         pic16_ and all references to it corrected
9045         * pcode.c: all pic16_pc_* hardware registers prefixed
9046         with underscore (_),
9047         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
9048         * ralloc.c: newReg(): when register is REG_SFR then
9049         set address to rIdx,
9050         pic16_allocProcessorRegister(): marks register wasUsed=0
9051         pic16_writeUsedRegs(): added a call to assign processor
9052         registers via pic16_assignFixedRegisters
9053
9054 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9055
9056         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
9057         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
9058         variables in unused register banks.  Also the SSEG is placed
9059         wherever there is enough space for it, and IDATA can be anywhere
9060         in internal RAM.  For now compile using -Wl-Y[stack_size].
9061         The mem file is different for this option as well, since it
9062         makes no sense of talking about DSEG lenght.
9063
9064 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
9065
9066         * src/SDCClrange.c: fixed bug 869095 that caused segfault
9067         in certain cases, e.g. when ROM assignment, patch provided
9068         from Albert den Haan.
9069
9070 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
9071
9072         Many signedness and type propagation fixes:
9073         * src/SDCCicode.c: made geniCodeCast() static
9074         replaced SPEC_ by IS_ (cosmetic)
9075         (operandOperation): fixed div and mod operation
9076         (usualBinaryConversions): added support for promotion of char
9077         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
9078         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
9079         (geniCodeAdd): an array index will stay unsigned, even if promoted
9080         from char to int
9081         (geniCodeArray): ditto
9082         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
9083         * src/SDCCsymt.c (computeType): added more support for char;
9084         promotion of char is selectable by promoteCharToInt, fixed signedness
9085         for all cases
9086         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9087         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9088         * src/SDCCval (val*): replaced signedness calculation by
9089         computeType()
9090         rearranged if-branches (cosmetic)
9091         (valShift): added warning W_SHIFT_CHANGED
9092         (valCompare): fixed problem with different types
9093         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
9094         * support/regression/tests/literalop.c: added many cases
9095         * support/regression/tests/ast_constant_folding.c: changed finally to
9096         'unsigned int'
9097         * .version: new year, new version: 2.3.7
9098         * src/SDCCmain.c (main): applied patch #866468
9099         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
9100         provided by Scott Bronson
9101         * doc/sdccman.lyx: updated documentation for sdcdb
9102         updated and added chapter tips
9103
9104 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9105
9106         * src/SDCCsymt.h: missing from yesterday's commits
9107
9108 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9109
9110         * src/SDCC.y (struct_or_union_specifier),
9111         * support/Util/SDCCerr.c,
9112         * support/Util/SDCCerr.h: verify that struct & union tags are used
9113         as declared.
9114
9115 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9116
9117         * src/SDCCglobl.h: missing from yesterday's commits
9118
9119 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9120
9121         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
9122         sft_attributes, struct_declaration, parameter_declaration,
9123         type_name, start_block, declaration_list),
9124         * src/SDCC.lex (check_type): support redefinition of typedef names
9125
9126 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9127
9128         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
9129         aligned xdata arrays. Erik helped me with the if clause.
9130
9131 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9132
9133         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
9134         warning
9135
9136 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9137
9138         * src/SDCCast.h,
9139         * src/SDCCast.c (newAst_),
9140         * src/SDCCicode.h,
9141         * src/SDCCicode.c (ast2iCode, newiCode),
9142         * src/SDCCglobl.h,
9143         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
9144         expr, statement, expression_statement, selection_statement,
9145         iteration_statement, expr_opt, jump_statement): foundation for tracking
9146         sequence points
9147         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
9148         point code too)
9149
9150 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9151
9152         * support/Util/SDCCerr.c,
9153         * src/SDCCast.h,
9154         * src/SDCCast.c (createCase, createDefault, decorateType),
9155         * src/SDCClabel.c (labelUnreach),
9156         * src/SDCC.y (labeled_statement, jump_statement): More improvements
9157         to error messages.
9158         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
9159         (with thanks to Stas Sergeev)
9160         * device/include/time.h,
9161         * device/lib/time.c (CheckTime): suppress unreachable code warning
9162
9163 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9164
9165         * src/SDCCast.c (createIvalCharPtr),
9166         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
9167         bug #753752)
9168         * support/regression/tests/nullstring.c: tests for these two bugs
9169
9170 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9171
9172         * support/Util/SDCCerr.h,
9173         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
9174         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
9175         about storage class and 'at' used inside struct or union
9176         * src/SDCCBBlock.c (iCodeFromeBBlock),
9177         * src/SDCCcse.c (ifxOptimize),
9178         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
9179         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
9180         printIval, emitStaticSeg, emitOverlay),
9181         * src/SDCClabel.c (deleteIfx),
9182         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
9183         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
9184         gatherAutoInit, processParms),
9185         * support/Util/SDCCerr.h,
9186         * support/Util/SDCCerr.c (werrorfl): Support for better error location
9187         reporting for post-parse errors.
9188
9189 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9190
9191         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
9192         implicit casts via union; they don't work on big endian systems
9193         (possible fix for bug #861138)
9194
9195 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9196
9197         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
9198         * src/mcs51/main.c: fixed the fix for bug #737001
9199
9200 2003-12-15  Borut Razem <borut.razem AT siol.net>
9201
9202         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
9203
9204 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9205
9206         * support/makebin/makebin.c: put output in binary mode
9207
9208 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9209
9210         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
9211         xdata and data memory on startup. Set the environment variable
9212         SDCC_NOGENRAMCLEAR to disable this.
9213         * src/mcs51/peephole.def,
9214         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
9215         (allows non-interrupt and interrupt code to safely compete for a resource
9216         without the non-interrupt code having to disable interrupts)
9217
9218 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9219
9220         * src/SDCCicode.c (geniCodeAdd),
9221         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
9222         with valFromType if type might be a pointer and host is big endian).
9223         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
9224         types, not just integer types.
9225         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
9226         multiply defined with mismatching "at" address.
9227
9228 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9229
9230         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
9231         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
9232         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
9233         with embedded nulls (fixed bug #753752)
9234
9235 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9236
9237         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
9238         Apparently this did not see much testing (endless loop)
9239
9240 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9241
9242         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
9243
9244 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9245
9246         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
9247         gracefully handle NULL memmap pointers
9248
9249 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9250
9251         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
9252         instead of deleting the iCode when an operand is volatile
9253         * src/z80/gen.c (genDummyRead),
9254         * src/mcs51/gen.c (genDummyRead),
9255         * src/ds390/gen.c (genDummyRead),
9256         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
9257         not just IC_RIGHT
9258         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
9259         * src/SDCC.y: fixed bug #850420
9260
9261 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9262
9263         Applied z80 i/o port patch from Peter Townson and fixed some operators
9264         to better handle operands in A register.
9265         * device/include/z180.h
9266         * src/SDCC.y
9267         * src/SDCCglue.c
9268         * src/z80/gen.c
9269         * src/z80/gen.h
9270         * src/z80/main.c
9271         * src/z80/peeph-z80.def
9272         * src/z80/peeph.def
9273         * src/z80/z80.h
9274
9275 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9276
9277         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
9278
9279 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9280
9281         * device/lib/hc08/_mullong.c: Removed extra #endif
9282
9283 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9284
9285         * sim/ucsim/hc08.src/inst.cc,
9286         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
9287         carries from x to h
9288         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
9289         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
9290         * device/include/stdarg.h: fixed varargs for hc08
9291         * device/lib/Makefile.in,
9292         * device/lib/hc08/Makefile,
9293         * device/lib/hc08/_mulint.c,
9294         * device/lib/hc08/_mullong.c: fixed some endian problems
9295
9296 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9297
9298         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
9299         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
9300         * device/lib/_gptrget.c,
9301         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
9302
9303 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9304
9305         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
9306         * src/SDCCast.c (astErrors): fixed bug #846007
9307         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
9308
9309 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9310
9311         * src/SDCCast.c (decorateType): disabled a transformation I added in
9312         revision 1.188 (access to fields of a structure at an absolute address);
9313         it breaks with bitfields, extern declarations, and gcse analysis.
9314         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
9315         could be assigned through a pointer, so don't complain.
9316         * src/SDCCast.c (astErrors),
9317         * src/SDCCast.h,
9318         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
9319
9320 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
9321
9322         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
9323         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
9324         output of __config directives, since gpasm now supports them
9325         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
9326         pre-processor macro, i.e. -DMCU=p18f452
9327         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
9328         and modified to handle 'cast' icode similarly to '=' icode
9329         * src/pic16/device.h (typedef struct PIC_device): added field
9330         'extMIface' to indicate that chip has external memory interface
9331         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
9332         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
9333         18F8720
9334
9335 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9336
9337         * src/SDCC.y (pointer): fixed bug #846006
9338         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
9339         * src/SDCCast.c (decorateType): fixed bug #846009
9340         * src/ds390/peeph.def,
9341         * src/ds390/gen.c (genAnd, genOr),
9342         * src/mcs51/peeph.def,
9343         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
9344
9345 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9346
9347         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
9348         * src/SDCCdflow.c
9349         * src/SDCCcse.c
9350         * src/SDCCcse.h
9351         * src/SDCCBBlock.h
9352         * src/SDCCBBlock.c
9353
9354 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
9355
9356         fixed bug #845089
9357         * src/SDCCbitv.h,
9358         * src/SDCCbitv.c: added function to free a bitvector
9359         * src/SDCClrange.h,
9360         * src/SDCClrange.c: added function to recompute the liveranges
9361         * src/avr/ralloc.c,
9362         * src/ds390/ralloc.c,
9363         * src/hc08/ralloc.c,
9364         * src/mcs51/ralloc.c,
9365         * src/pic/ralloc.c,
9366         * src/pic16/ralloc.c,
9367         * src/xa51/ralloc.c,
9368         * src/z80/ralloc.c: recompute the liveranges after register packing
9369
9370 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
9371
9372         * src/SDCCloop.c (newInduction): fixed bug #845630
9373
9374 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9375
9376         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
9377         inadvertantly left behind from my 2003-11-12 change
9378
9379 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9380
9381         Updated headers I neglected to commit yesterday.
9382         * src/SDCClrange.h,
9383         * src/SDCCicode.h
9384
9385 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9386
9387         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
9388         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
9389         * src/SDCCopt.c (eBBlockFromiCode),
9390         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
9391         the creation of the key hash table from the sequencing so it can be used
9392         earlier (for some GCSE bug fixes still pending)
9393
9394 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9395
9396         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
9397         * support/regression/tests/addsub.c: testing genPlus shortcut
9398
9399 2003-11-15  Borut Razem <borut.razem AT siol.net>
9400
9401         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
9402
9403 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9404
9405         * src/SDCCcse.c (cseBBlock): fixed bug #527779
9406         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
9407         ordering is immaterial.
9408         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
9409
9410 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9411
9412         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
9413         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
9414         (SIGSEV) of bug #840381
9415         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
9416         unlink new file before rename if new and old filenames are the same)
9417
9418 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9419
9420         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
9421         uninitialized variables) for the mcs51. Set environment variable
9422         SDCC_GENRAMCLEAR to test.
9423         xdata initialization slightly shorter
9424
9425 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9426
9427         * src/SDCCsymt.h,
9428         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
9429         #838241 & 780691 (basicly the same bug)
9430         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
9431         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
9432
9433 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
9434
9435         * src/SDCCmain.c (linkEdit): "fix" #834252
9436
9437 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9438
9439         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
9440         * src/SDCCast.h,
9441         * src/SDCC.y: fixed bug #819403
9442
9443 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9444
9445         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
9446         the reentrant attribute.
9447         * src/hc08/gen.c (genPackBits): added missing stack readjustment
9448         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
9449         simulation
9450         * src/SDCCast.c (decorateType): fixed bug with storage class not being
9451         updated during pointer dereference; f.e. ~(((char *)1)*) was being
9452         erroneously reduced to a literal.
9453         * src/hc08/ralloc.c (packRegisters, rematStr),
9454         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
9455         some cases
9456
9457 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9458
9459         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
9460         * doc/sdccman.lyx: changed from 'article' to 'book'
9461         * doc/Makefile: readded test_suite_spec and cdbfileformat
9462
9463 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
9464
9465         * device/include/stdlib.h: include malloc.h to comply with ANSI
9466         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
9467
9468 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9469
9470         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
9471         * doc/clean.mk: also remove *.out files
9472         * doc/sdccman.lyx: some additions, larger top/bottom margins
9473
9474 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9475
9476         * src/SDCC.y: fixed bug #837365
9477         * support/regression/tests/bitopcse.c
9478         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
9479         a symbol (might be valop instead)
9480         * device/lib/Makefile.in: added errno.c to HC08SOURCES
9481         * device/lib/clean.mk: added hc08 to the cleaning list
9482
9483 2003-11-04  Borut Razem <borut.razem AT siol.net>
9484
9485         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
9486           made 2003-11-04
9487         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9488           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
9489           malloc is declared in standard stdlib.h
9490
9491 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9492
9493         * device/lib/hc08/Makefile: need to clean .rel not .o files
9494         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
9495
9496 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9497
9498         * src/port.h,
9499         * src/hc08/main.c,
9500         * src/mcs51/main.c,
9501         * src/ds390/main.c,
9502         * src/z80/main.c,
9503         * src/avr/main.c,
9504         * src/pic/main.c,
9505         * src/pic16/main.c,
9506         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
9507         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
9508         tests (which uses the port's oclsExpense function)
9509         * src/SDCC.y,
9510         * src/SDCCast.c,
9511         * src/SDCCicode.c,
9512         * src/hc08/gen.c,
9513         * src/ds390/gen.c,
9514         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
9515
9516 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9517
9518         * src/SDCCcse.c (ifxOptimize),
9519         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
9520         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
9521         deleting the IFX iCode.
9522         * src/hc08/ralloc.c: reduced unneeded slocs
9523         * src/hc08/gen.c: fixed bug in asmopToBoolean
9524
9525 2003-11-04  Borut Razem <borut.razem AT siol.net>
9526
9527         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
9528           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9529           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
9530           transferred to configure
9531
9532 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
9533
9534         Use headers defined in the C[++] standards:
9535         * sim/ucsim/gui.src/serio.src/fileio.cc
9536         * sim/ucsim/gui.src/serio.src/frontend.cc
9537         * sim/ucsim/gui.src/serio.src/main.cc
9538         * sim/ucsim/gui.src/serio.src/posix_signal.cc
9539         * support/Util/NewAlloc.c
9540         * as/hc08/lklibr.c
9541         * as/mcs51/lklibr.c
9542         * as/z80/aslist.c
9543         * as/z80/assym.c
9544
9545 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9546
9547         * Added MSVC projects for hc08 assembler and linker:
9548         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
9549         /as/hc08/link_hc08.dsp
9550
9551 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
9552
9553         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
9554
9555 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
9556
9557         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
9558
9559 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9560
9561         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
9562
9563 2003-10-31  Borut Razem <borut.razem AT siol.net>
9564
9565         * support/cpp2/cpplib.h,
9566           support/cpp2/cpplib.c,
9567           support/cpp2/cpplex.c,
9568           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
9569           to switch _asm block preprocessing on / off. Default is
9570           #pragma preproc_asm +
9571
9572 2003-10-31  Borut Razem <borut.razem AT siol.net>
9573
9574         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
9575           when outputting comment blocks (when executed with -C option) and
9576           _asm (SDCPP specific) blocks
9577
9578 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9579
9580         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
9581
9582 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
9583
9584         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
9585
9586 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
9587
9588         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
9589         * src/SDCCast.c (decorateType): fixed bug #832664
9590
9591 2003-10-31  Borut Razem <borut.razem AT siol.net>
9592
9593         * support/cpp2/cpplex.c: fixed for SDCPP:
9594           comments(when executed with -C option) and _asm blocks
9595           were included even if they where in skipped #if block.
9596           Applied solution from GCC cpp 3.3.2
9597
9598 2003-10-31  Borut Razem <borut.razem AT siol.net>
9599
9600         * src/SDCC.lex: sdcc now understands both formats:
9601           '# <line_number> <file_name>' and
9602           '#line <line_number> <file_name>'
9603         * support/cpp2/cppmain.c: sdcpp now generates the standard
9604           '# <line_number> <file_name>' instead of former
9605           '#line <line_number> <file_name>'
9606
9607 2003-10-30  Borut Razem <borut.razem AT siol.net>
9608
9609         * support/cpp2/cpphash.h,
9610         * support/cpp2/cpplib.h
9611         * support/cpp2/cpplex.c,
9612         * support/cpp2/cppmain.c,
9613         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
9614
9615 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9616
9617         Fixed a number of problems revealed by bug #827883.
9618         * src/SDCCloop.c (loopInvariants): Spill location of the
9619         result operand should be recomputed if extracted from
9620         a loop. Also, don't extract assignments of an iTemp
9621         from a literal.
9622         * src/SDCCast.c (isConformingBody): loop reversal should
9623         not occur if the control variable is involved with a
9624         relational operator.
9625
9626 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
9627
9628         * .version: bumped to 2.3.6 to reflect the big improvements
9629         made by Erik and Klaus. Thanks!
9630
9631 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
9632
9633         Replaced the livrange code.
9634         * src/SDCClrange.c: added new LR code
9635         * src/SDCCloop.c,
9636         * src/SDCCBBlock.h: removed remainig parts from old LR code
9637         * src/ds390/ralloc.c,
9638         * src/ds390/gen.c: minor fixes to make it work with new code
9639
9640 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9641
9642         * as/hc08/asm.h,
9643         * as/hc08/lkrloc.c,
9644         * src/hc08/gen.c,
9645         * src/hc08/ralloc.c: Fix various warnings related to the hc08
9646         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
9647         (tweaked fix for bug #818696)
9648
9649 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9650
9651         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
9652
9653 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9654
9655         * src/SDCCmain.c,
9656         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
9657         * src/mcs51/gen.c (gencjneshort),
9658         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
9659         more efficient (per Scott Bronson's suggestion)
9660
9661 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9662
9663         Extended the semantics of the critical keyword to include
9664         individual statements. See RFE #827755 and #799831
9665         * src/SDCC.y
9666         * src/SDCCicode.c
9667         * src/SDCCopt.c
9668         * src/SDCCast.c
9669         * support/Util/SDCCerr.c
9670         * support/Util/SDCCerr.h
9671         * src/mcs51/gen.c
9672         * src/ds390/gen.c
9673         * src/hc08/gen.c
9674
9675 2003-10-19  Borut Razem <borut.razem AT siol.net>
9676
9677         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
9678
9679 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9680
9681         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
9682         Fixed bug #818696
9683         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
9684         and predecrement operand is displayed
9685
9686 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9687
9688         * src/SDCCval.c (valMinus): fixed bug #826041
9689
9690 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9691
9692         Some hc08 related updates that I missed earlier
9693         * sim/ucsim/stypes.h
9694         * support/regression/ports/hc08/spec.mk
9695
9696 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9697
9698         New target "hc08" for the Motorola 68hc08 family of micros
9699
9700         * configure
9701         * configure.in
9702         * Makefile
9703         * src/hc08/*
9704         * src/SDCCmain.c
9705         * src/port.h
9706         * sim/ucsim/hc08.src/*
9707         * sim/ucsim/configure.in
9708         * src/ucsim/configure
9709         * sim/ucsim/packages_in.mk
9710         * as/hc08/*
9711         * as/Makefile
9712         * device/include/mc68hc908qy.h
9713         * device/lib/hc08/*
9714         * device/lib/Makefile.in
9715         * support/regression/ports/hc08/*
9716         * support/regression/Makefile
9717
9718 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9719
9720         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
9721         regression test
9722         * src/ds390/gen.c (genCast): fixed bug #821957
9723
9724 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9725
9726         * device/lib/logf.c: "fixed" overlay bug
9727         * support/regression/ports/host/spec.mk: added m library
9728         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
9729         * support/regression/tests/float_trans: added (for Eric)
9730
9731 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
9732
9733         * src/mcs51/gen.c (genCpl): fixed bug
9734         http://sf.net/mailarchive/message.php?msg_id=6263915
9735
9736 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
9737
9738         * src/SDCCast.c (decorateType): added extended constant folding
9739         * src/SDCCsymt.c (computeType): cleanup
9740         * src/SDCCval.c (valShift): minor optimization
9741         * support/regression/tests/ast_constant_folding.c: added
9742
9743 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9744
9745         * src/SDCCmain.c: removed some unintended changes
9746
9747 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9748
9749         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
9750         * src/z80/gen.c: fixed part of bug #817589
9751         * src/SDCCsymt.c (checkFunction): fixed bug #817895
9752
9753 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
9754
9755         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
9756         * src/SDCCcflow.c
9757         * src/SDCCcse.c
9758         * src/SDCCdflow.c
9759         * src/SDCClabel.c
9760         * src/SDCClrange.c
9761         * src/SDCCmem.c
9762         * src/SDCCopt.c
9763         * src/SDCCpeeph.c
9764         * src/SDCCset.c
9765         * src/avr/ralloc.c
9766         * src/ds390/ralloc.c
9767         * src/izt/ralloc.c
9768         * src/mcs51/ralloc.c
9769         * src/pic/ralloc.c
9770         * src/pic16/ralloc.c
9771         * src/xa51/ralloc.c
9772         * src/z80/ralloc.c
9773         * src/z80/gen.c: removed unused label "release:"
9774
9775 2003-10-06  Borut Razem <borut.razem AT siol.net>
9776
9777         * src/SDCC.lex: removed definition of unused variables
9778           save_optimize and save_options
9779
9780 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
9781
9782         * clean.mk: removed '=' in "-maxdepth=1"
9783         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
9784         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
9785
9786 2003-10-06  Borut Razem <borut.razem AT siol.net>
9787
9788         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
9789           my_unput() replaced by unput()
9790
9791 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
9792
9793         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
9794         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
9795         type-punned pointer will break strict-aliasing rules"
9796         Old LR behaviour is again default; Klaus' LR can be choosen by
9797         defining the environment variable LRKLAUS
9798         * src/SDCCBBlock.h
9799         * src/SDCCloop.c
9800         * src/SDCClrange.c
9801         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
9802         * clean.mk: fixed removal of files in bin/CVS/
9803         * device/lib/clean.mk: fixed removal of directories small and large
9804         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
9805         * src/SDCCicode.c,
9806         * src/SDCCval.c: removed superflous test for pedantic
9807
9808 2003-10-05  Borut Razem <borut.razem AT siol.net>
9809
9810         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
9811           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
9812           message "unmatched #pragma SAVE and #pragma RESTORE"
9813
9814 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9815
9816         * doc/sdccman.lyx: various additions and updates (interrupts, inline
9817           assembly, critical functions, atomic, nojtbound)
9818
9819 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
9820
9821         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
9822         * src/SDCCBBlock.h
9823         * src/SDCCloop.c
9824         * src/SDCCloop.h
9825         * src/SDCClrange.c
9826
9827 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9828
9829         * src/z80/gen.h,
9830         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9831         * src/mcs51/gen.h
9832         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9833         * src/ds390/gen.h
9834         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9835         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
9836         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
9837
9838 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9839
9840         * src/z80/gen.c (genRet): fixed bug #524753
9841         * src/z80/gen.c (genCast): fixed internal error on cast from
9842         pointer to long
9843         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
9844         fix for bug #477835 to the z80
9845         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
9846         for tracking iCodes in the peephole optimizer for z80
9847
9848 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9849
9850         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
9851         the other part of bug #814548
9852         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
9853
9854 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
9855
9856         * src/SDCCcse.c: fixed part of bug #814548
9857
9858 2003-09-28  Borut Razem <borut.razem AT siol.net>
9859
9860         * src/asm.c: rewrite of printILine() to use temporary file instead
9861           a pipe
9862         * src/xa51/main.c: commented out declaration of int rewinds
9863
9864 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9865
9866         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
9867
9868 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9869
9870         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
9871         * src/asm.c (printILine): Fixed bug #811015
9872
9873 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9874
9875         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
9876         freeing.
9877
9878 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9879
9880         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
9881         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
9882         to correctly handle general case of AOP_PAIRPTR
9883         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
9884
9885 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9886
9887         * src/mcs51/ralloc.c (fillGaps),
9888         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
9889         register positioning bug)
9890
9891 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
9892
9893         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
9894
9895 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9896
9897         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
9898         genCodePointerGet, genGenPointerGet, genFarPointerSet,
9899         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
9900         (ralloc doesn't intentionally do this now, but perhaps later)
9901         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
9902         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
9903         register positioning bugs (Fixed bug #762602 and #795325)
9904         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
9905         (Fixed bug #808779)
9906         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
9907         lines that --i-code-in-asm generates
9908
9909 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9910
9911         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
9912         trying to fclose a FILE* that was already closed.
9913
9914 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9915
9916         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
9917         of const struct should be treated as if const themselves)
9918
9919 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
9920
9921         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
9922
9923 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9924
9925         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
9926         Unix (/n) and DOS (/r/n) line terminations.
9927
9928 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9929
9930         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
9931         bug #613775
9932
9933 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9934
9935         * src/mcs51/gen.c (genFunction, genEndFunction),
9936         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
9937         and restore of EA so that stack offsets to parameters are
9938         correct when using both critical and reentrant/stack-auto.
9939         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
9940         size (can be triggered in error if sloc is shared between
9941         different sized objects)
9942         * device/include/float.h: fixed macros to explicitly use
9943         unsigned long where needed
9944
9945 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
9946
9947         Feature req. 799831: added code to allow nesting of critical functions
9948         * src/mcs51/gen.c (genFunction, genEndFunction)
9949         * src/ds390/gen.c (genFunction, genEndFunction)
9950
9951 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9952
9953         * src/SDCCsymt.c (sclsFromPtr),
9954         * src/SDCCsymt.h,
9955         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
9956         support for standard C idiom of memory mapped variables; for
9957         example, *((xdata int*)0x1234) = 1 is now internally equivalent
9958         to xdata int at 0x1234 tempvar = 1.
9959         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
9960         provided by Akiya ISHIDA
9961
9962 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
9963
9964         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
9965         * src/SDCCval.c (constVal): added reduction from int to char
9966         * src/SDCCval.c (valMult, valDiv): fixed sign handling
9967         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
9968         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
9969         to ignore the sign
9970         * support/regression/tests/shifts.c: fixed
9971
9972 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9973
9974         * src/z80/gen.c (genXor): Fixed bug #805445
9975
9976 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9977
9978         Fixed bug #621531 (const & volatile confusion in the type chain).
9979         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
9980         refer to the const or volatile state of the pointer itself.
9981
9982         * src/SDCCast.c
9983         * src/SDCCglue.c
9984         * src/SDCCicode.c
9985         * src/SDCCsymt.c
9986         * src/SDCCval.c
9987         * src/SDCC.y
9988         * src/SDCCsymt.h
9989         * src/pic/gen.c
9990         * src/pic/ralloc.c
9991         * src/pic16/gen.c
9992         * src/pic16/ralloc.c
9993         * support/regression/tests/const.c
9994
9995 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9996
9997         When checking for duplicated modules, use absolute paths
9998         instead of relative paths.  Files changed:
9999
10000         * as/mcs51/lklib.c
10001         * link/z80/lklib.c
10002
10003 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10004
10005         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
10006
10007 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10008
10009         * device/include/string.h: added size_t typedef, changed
10010         prototypes to use size_t, eliminated separate reentrant and
10011         non-reentrant declarations, added _memmove declaration
10012         * device/lib/_memcpy.c: changed to use size_t instead of int,
10013         changed /4 to >>2 to avoid division library call
10014         * device/lib/_memcmp.c,
10015         * device/lib/_memset.c,
10016         * device/lib/_strncat.c,
10017         * device/lib/_strncpy.c,
10018         * device/lib/_strncmp.c: changed to use size_t instead of int
10019         * device/lib/_memmove.c: new file (fixed bug #772294)
10020         * device/lib/Makefile.in: added _memmove.c
10021         * device/lib/z80/asm_strings.s: fixed bug #772290
10022         * support/regression/tests/bitfields.c: attempt to fix host assertion
10023         failure on amd64-unknown-linux2.2
10024
10025 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10026
10027         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
10028         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
10029         * as/z80/asmain.c (main): fixed bug #801766
10030
10031 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
10032
10033         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
10034         compilers
10035
10036 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10037
10038         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
10039         reported in bug #800609
10040
10041 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
10042
10043         * Top header beautifications in src/pic16 directory:
10044           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
10045           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
10046           pcoderegs.h, ralloc.c, ralloc.h
10047         * main.c: added top header and GPL license notice
10048         * pcode.c: fixed the if-conditional warning
10049
10050 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
10051
10052         * device/lib/_mullong.c: replaced int by short for gcc
10053
10054 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10055
10056         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
10057         and JUMPTABLE iCodes properly now (worked by accident before)
10058         * src/mcs51/gen.c (leftRightUseAcc),
10059         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
10060         iCode properly now. Use getSize instead of nRegs since a & b
10061         aren't part of the nRegs tally.
10062
10063 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
10064
10065         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
10066         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
10067           before instructions that use the _STATUS register
10068
10069 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
10070
10071         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
10072         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
10073         fetching of the pointer
10074         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
10075         copied from genNearPointerSet()
10076         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
10077         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
10078         If they pop r0/r1 they must be called in the opposite order than aopOp().
10079         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
10080         (resp. --stack-auto), prepared for --xstack
10081
10082 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10083
10084         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
10085
10086 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
10087
10088         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
10089         these ports have their own __sdcc_external_start()
10090
10091 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
10092
10093         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10094         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
10095         type for bits was changed. It resulted in bit variables becoming
10096         global, which is not permitted in PIC 14 assembly output.
10097
10098 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10099
10100         * doc/sdccman.lyx: various additions and updates. Rearranged sections
10101
10102 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10103
10104         Z80 and MCS51 linkers complaint if a public symbol is defined
10105         in more than one library module:
10106
10107         * as/mcs51/lklib.c
10108         * link/z80/lklib.c
10109         * as/mcs51/Makefile.in
10110
10111 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10112
10113         A few small changes that speed up the peephole optimizer.
10114
10115         * src/SDCCpeeph.c
10116
10117 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10118
10119         Try to make the peephole optimizer smarter by maintaining
10120         an association between the assembly source code and the
10121         iCodes that originated them. Put this information to use
10122         with a new peephole rule condition "notVolatile" so that
10123         the rules can be aggressive yet still safe.
10124
10125         * src/SDCCpeeph.c
10126         * src/SDCCpeeph.h
10127         * src/mcs51/gen.c
10128         * src/mcs51/peeph.def
10129
10130 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10131
10132         Fixed bug #741761
10133
10134         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
10135         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
10136         if the left or right operand symbols have the accuse flag set.
10137
10138 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10139
10140         Changed the type of the result of the ! (NOT) operator to char;
10141         previously it returned the same type as the source. This allows
10142         us to eliminate all the genFloatNot functions (all of its target
10143         implementations were very buggy) since !float can use the same
10144         code as !long now.
10145
10146         * src/SDCCicode.c (ast2iCode): ! returns char
10147         * src/mcs51/gen.c (genNot, genNotFloat),
10148         * src/ds390/gen.c (genNot, genNotFloat),
10149         * src/z80/gen.c (genNot, genNotFloat),
10150         * src/pic/gen.c (genNot, genNotFloat),
10151         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
10152
10153 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
10154
10155         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10156         1. Interrupt would not compile properly. Ensure PCLATH register is saved
10157            during interrupts. Ensure WSAVE is located at a shared bank address.
10158         2. Fixed page selection in some places
10159         3. Fixed BTFSS/C to where necessary use registers directly and not simply
10160            the registers name strings.
10161         4. Fixed "signed / unsigned compare" compiler warnings.
10162         5. The PIC port manages its own allocation of the general purpose
10163            registers, but makes no attempt to reuse them. As a result when
10164            compiling it soon runs out of general purpose registers. Some
10165            additional code was added to the files pcode.c and device.c to walk
10166            through the function call tree and rename the registers so that they
10167            get reused.
10168
10169         * src/pic/device.c
10170         * src/pic/gen.c
10171         * src/pic/glue.c
10172         * src/pic/pcode.c
10173         * src/pic/pcode.h
10174         * src/pic/ralloc.c
10175         * src/pic/ralloc.h
10176         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
10177         genPlus() & genMinus() when the result is the same as left or right
10178
10179 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10180
10181         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
10182
10183 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10184
10185         Made bitfield a distinct type from bit so that bitfields
10186         convert as per ANSI C and bits retain their traditional
10187         boolean style behaviour. Implemented bitfield support in
10188         the z80 port.
10189
10190         * src/SDCCsymt.h,
10191         * src/SDCCsymt.c,
10192         * src/SDCCast.c,
10193         * src/cdbFile.c,
10194         * src/mcs51/gen.c,
10195         * src/ds390/gen.c: bit v bitfield split
10196         * src/z80/gen.c: New support for bitfields
10197         * support/regression/tests/bitfields.c: reenabled z80,
10198         added more tests
10199
10200 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10201
10202         Rules 246.x, 247.x relate to bitfields, the others speed up
10203         access to xdata mapped I/O devices.
10204
10205         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
10206
10207 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10208
10209         Cleaned up genPackBits and genUnpackBits and added two helper
10210         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
10211         for literal assignments in genPackBits (thanks to Frieder for
10212         reminding me).
10213
10214         * src/mcs51/gen.c
10215         * src/ds390/gen.c
10216
10217 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10218
10219         Fixed bug #748310 (pointer to function type mishandled when the
10220         function name is omitted). Also fixed a SIGSEGV when a function
10221         attribute (reentrant, etc) is used on a non-function or on a
10222         function but misplaced before the parameter list.
10223
10224         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
10225         bug #748310
10226         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
10227         * support/Util/SDCCerr.h,
10228         * support/Util/SDCCerr.c: Added func attr misuse error msg
10229
10230 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10231
10232         Fixed bug #787649 by anonymous
10233         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
10234         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
10235
10236 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10237
10238         Fixed numerous bitfield problems.
10239
10240         * src/SDCC.y: More bitfield related error checking
10241         * src/SDCCsymt.h,
10242         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
10243         * support/Util/SDCCerr.h,
10244         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
10245         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10246         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10247         * support/regression/tests/bitfields.c: tests added
10248
10249 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10250
10251         Made the constant following the "interrupt" keyword optional. If
10252         omitted, the function will not automatically be given an entry
10253         in the interrupt vector table (similar to #pragma NOIV, but
10254         less syntacticly kludgy). The interrupt number is also now
10255         range checked. Also fixed a bug in the high order bit example
10256         in the manual.
10257
10258         * src/SDCC.y
10259         * src/SDCCmem.c
10260         * src/SDCCglue.c
10261         * src/SDCCsymt.h
10262         * support/Util/SDCCerr.c
10263         * support/Util/SDCCerr.h
10264         * doc/sdccman.lyx
10265
10266 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10267
10268         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
10269         * src/SDCCicode.c (operandOperation): rewritten some ops
10270         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
10271         * src/SDCCsymt.c (computeType): literals are handled the same way as any
10272         other type
10273         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
10274         be re-activated by defining REDUCE_LITERALS)
10275         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
10276         unsigned, but are signed by default
10277         * src/SDCCval.c (constVal): rearranged
10278         * src/SDCCval.c (valMod): preliminary fix
10279         * src/SDCCval.c (valCastLiteral): use TYPE_* types
10280         * support/regression/literalop.c: added, work in progress
10281
10282 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10283
10284         Generate warnings for useless declarations like "char data;"
10285         that don't do what new users expect.
10286
10287         * src/SDCC.y
10288         * support/Util/SDCCerr.h
10289         * support/Util/SDCCerr.c
10290
10291 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
10292
10293         * src/SDCCval.c (valMult): fix overflow detection of negative int
10294
10295 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10296
10297         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
10298
10299         Changes to support big endian targets:
10300
10301         * src/ports.h
10302         * src/SDCCglue.c
10303         * src/avr/main.c
10304         * src/ds390/main.c
10305         * src/izt/i186.c
10306         * src/mcs51/main.c
10307         * src/pic/main.c
10308         * src/pic16/main.c
10309         * src/xa51/main.c
10310         * src/z80/main.c
10311
10312 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
10313
10314         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
10315         * device/lib/time.c: fixed warning "integer overflow in expression"
10316
10317 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
10318
10319         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
10320         * src/SDCCval.c (constVal): changed default to signed; hex and octal
10321         constants are unsigned; added recognition of "u" flag for unsigned
10322         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
10323         * src/SDCCval.c (valDiv, valMod): fixed signdness
10324         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
10325         signedness of modulo, left and right shift
10326         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
10327         * support/Util/SDCCerr.h: added warning W_INT_OVL
10328         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
10329         * src/SDCCast.c (ast_print): improved output of constants
10330
10331 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10332
10333         Fixed some warnings when building with MSVC:
10334
10335         * as/mcs51/asdata.c
10336         * as/z80/asdata.c
10337         * as/mcs51/asm.h
10338         * as/z80/asm.h
10339         * link/z80/aslink.h
10340         * link/z80/lkdata.c
10341         * link/z80/lkeval.c
10342         * link/z80/lkgb.c
10343         * link/z80/lkihx.c
10344         * link/z80/lks19.c
10345         * link/z80/lksym.c
10346         * support/cpp2/cpplib.c
10347         * src/ds390/gen.c
10348         * src/mcs51/gen.c
10349
10350 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
10351
10352         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
10353
10354 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10355
10356         * support/librarian/clean.mk: Do not remove Makefile.
10357         * support/librarian/Makefile: added.
10358
10359 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10360
10361         Added librarian to MSVC build:
10362         * all.dsp
10363         * sdcc.dsw
10364         * support/librarian/librarian.dsp
10365
10366         'configure' not needed for librarian, removed:
10367         * support/librarian/configure
10368         * support/librarian/configure.in
10369         * support/librarian/config_in.h
10370         * support/librarian/Makefile.in
10371
10372         Hopefully these ones built the librarian and the rest of sdcc properly:
10373         * Makefile
10374         * Makefile.common.in
10375
10376         Messed up 'configure', so revert to previous version:
10377         * configure
10378         * configure.in
10379
10380 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
10381
10382         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
10383         there, while the mantissa of a double is "only" 53 bits wide.
10384
10385 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10386
10387         Adding sdcclib to the build.  MSVC project coming soon.
10388         Files added/changed:
10389
10390         * support/librarian/clean.mk
10391         * support/librarian/configure
10392         * support/librarian/configure.in
10393         * support/librarian/config_in.h
10394         * support/librarian/Makefile.bcc
10395         * support/librarian/Makefile.in
10396         * support/librarian/sdcclib.c
10397         * Makefile.bcc
10398         * Makefile
10399         * Makefile.common.in
10400         * configure
10401         * configure.in
10402
10403 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10404
10405         Linker now complaints if linked modules have conflicting options, for
10406         example, one compiled using --model-large and another one compiled with
10407         --model-small.  The following files were modified:
10408
10409         * as/mcs51/asdata.c
10410         * as/mcs51/aslink.h
10411         * as/mcs51/asm.h
10412         * as/mcs51/asmain.c
10413         * as/mcs51/asout.c
10414         * as/mcs51/i51pst.c
10415         * as/mcs51/lkdata.c
10416         * as/mcs51/lklibr.c
10417         * as/mcs51/lkmain.c
10418         * as/z80/asdata.c
10419         * as/z80/asm.h
10420         * as/z80/asmain.c
10421         * as/z80/asout.c
10422         * as/z80/z80pst.c
10423         * link/z80/aslink.h
10424         * link/z80/lkdata.c
10425         * link/z80/lklibr.c
10426         * link/z80/lkmain.c
10427         * src/SDCCglue.c
10428
10429 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10430
10431         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
10432         as/mcs51/lklibr.c: Generate a warning when a library is not found.
10433
10434 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
10435
10436         * src/z80/mappings.i: fix _mul[us][int,long] entries
10437
10438 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10439
10440         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
10441
10442 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10443
10444         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
10445         * support/regression/tests/bitopcse.c: added
10446         fixed warning:
10447         * src/avr/gen.c:
10448         * src/pic/gen.c:
10449         * src/pic16/gen.c:
10450         * src/z80/gen.c:
10451         * src/xa51/gen.c:
10452
10453 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10454
10455         added support for new library format to z80, gbz80 linkers:
10456         *link/z80/aslink.h
10457         *link/z80/lklex.c
10458         *link/z80/lklib.c
10459         *link/z80/lklist.c
10460
10461 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10462
10463         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
10464         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
10465
10466 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
10467
10468         added DUMMY_READ_VOLATILE:
10469         * src/SDCC.y:
10470         * src/avr/gen.c:
10471         * src/xa51/gen.c:
10472         * src/z80/gen.c:
10473         * src/pic/gen.c:
10474         * src/pic16/gen.c:
10475         * src/mcs51/gen.c:
10476         * src/ds390/gen.c:
10477         * src/SDCCcse.c (algebraicOpts): many improvements
10478         * src/SDCCcse.h: removed algebraicOpts()
10479         * src/SDCCicode.c (picDummyRead): added
10480
10481 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10482
10483         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
10484         "Insufficient space in data memory".
10485
10486 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10487
10488         * src/mcs51/gen.c: fixed bug #771358
10489         * src/z80/gen.c: fixed bug #759087
10490
10491 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
10492
10493         * src/pic16/glue.c: minor cleanup by Vangelis
10494
10495 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10496
10497         * device/include/regc515c.h: fixed #758477
10498         * device/lib/_gptrget.c: saving some cycles in generic pointer get
10499         * device/lib/_gptrput.c: saved a few bytes
10500         * my tab spacing is 8, yours too?)
10501         * device/lib/_ser.c: process RX bytes earlier than TX bytes
10502         * device/lib/serial.c: process RX bytes earlier than TX bytes
10503         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
10504
10505 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10506
10507         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
10508
10509 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10510
10511     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
10512
10513 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
10514
10515         * device/lib/Makefile.in: bad fix, reverted to 1.43
10516
10517 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
10518
10519         * device/lib/Makefile.in: added missing z80 object files
10520
10521 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
10522
10523         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
10524         pic16 progress by Vangelis:
10525         * src/SDCCglobl.h:
10526         * src/SDCCmain.c:
10527         * src/pic/Makefile:
10528         * src/pic:
10529         * pic/Makefile:
10530         * pic16/device.c:
10531         * pic16/device.h:
10532         * pic16/gen.c:
10533         * pic16/gen.h:
10534         * pic16/genarith.c:
10535         * pic16/glue.c:
10536         * pic16/main.c:
10537         * pic16/pcode.c:
10538         * pic16/pcode.h:
10539         * pic16/pcodepeep.c:
10540         * pic16/peeph.def:
10541
10542 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10543
10544     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
10545
10546 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10547
10548     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
10549     added gbz80 build to MSVC project.
10550     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
10551     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
10552     from 8051 stuff and setup so it links using a .lnk file.
10553
10554 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10555
10556     * support/librarian/sdcclib.c: sdcc librarian.
10557     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
10558     with sdcclib.
10559
10560 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10561
10562     * as/mcs51/lkmain.c: properly handle extensions in function afile.
10563
10564 2003-07-02  Borut Razem <borut.razem AT siol.net>
10565
10566         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
10567         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
10568         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
10569         src/xa51/main.c, src/z80/main.c:
10570         virtualization of glue() function: each port has it's own glue function,
10571         which is accessed by do_glue function pointer in PORT.general structure
10572
10573 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
10574
10575         * DS800C400 fun, improved ROM interface and tinibios.
10576
10577 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
10578
10579         * More support for DS80C400. Now includes beginning of interface to ROM.
10580
10581 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
10582
10583         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
10584
10585 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10586
10587         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
10588
10589 2003-06-19  Borut Razem <borut.razem AT siol.net>
10590
10591         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
10592
10593 2003-06-19  Borut Razem <borut.razem AT siol.net>
10594
10595         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
10596         fixed Z80 port - crt0.o: cannot open.
10597
10598 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
10599
10600         * support/Util/MySystem.c (merge_command): revert bad fix
10601
10602 2003-06-18  Borut Razem <borut.razem AT siol.net>
10603
10604         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
10605
10606 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10607
10608         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10609         option --use-stdout sends errors to stdout instead of stderr.
10610
10611 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
10612
10613         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
10614
10615 2003-06-15  Borut Razem <borut.razem AT siol.net>
10616
10617         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
10618         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
10619         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
10620         fixed width array of pointers replaced with sets;
10621         multiple include and lib paths ared transferred to preprocessor and linker
10622         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
10623         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
10624         fixed width array of pointers
10625         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
10626         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
10627         fixupPath(), getPathDifference()
10628         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
10629         fixed width array of pointers
10630
10631 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
10632
10633         * src/pic16/ralloc.c: fix warnings
10634         * src/pic16/pcode.c: fix warning
10635
10636 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
10637
10638          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
10639         know all the details, but essentially this set of changes enable
10640         the pic16 port to generate movff instructions and generate assembler
10641         directives,
10642         * src/SDCCmain.c:
10643         * src/pic16/gen.c:
10644         * src/pic16/glue.c:
10645         * src/pic16/pcode.c:
10646         * src/pic16/device.c:
10647         * src/pic16/main.c:
10648         * src/pic16/pcode.h:
10649         * src/pic16/pcoderegs.c:
10650         * src/pic16/ralloc.c:
10651         * src/pic16/ralloc.h:
10652
10653 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10654
10655         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10656         added option --vc, so sdcc errors and warnings are compatible with
10657         Microsoft Visual Studio.
10658
10659 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10660
10661         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
10662           device/lib/libfloat.lib: added atof function.
10663
10664 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
10665
10666         * doc/sdccman.lyx: updated to Lyx 1.3
10667         * doc/cdbfileformat.lyx: updated to Lyx 1.3
10668         * doc/test_suite_spec.lyx: updated to Lyx 1.3
10669         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
10670
10671 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
10672
10673         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
10674
10675 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10676
10677         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
10678           additions to the "related tools/documentation" section
10679
10680 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
10681
10682         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
10683
10684 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
10685
10686         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
10687         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
10688
10689 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
10690
10691         * doc/sdccman.lyx: fix double dash and other minor things
10692         * doc/Makefile: fix double dash
10693
10694 2003-05-28  Karl Bongers(patches from Martin Helmling)
10695         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
10696           condition and ignore commands.
10697
10698 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10699
10700         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
10701           is in parts still quite out of date, I did changes as far as I felt makes sense
10702           for a non-native english speaker.
10703           Please feel free to add to the manual or to correct my changes.
10704         * doc/Makefile: undid touching the date of intermediate tex files.
10705
10706 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10707
10708         * doc/sdccman.lyx: Manual has an index now
10709
10710 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
10711
10712         Finalize muluint/mulsint and mululong/mulslong merging:
10713         * device/lib/_mulint.c
10714         * device/lib/_mullong.c
10715         * device/lib/gbz80/mul.s
10716         * device/lib/gbz80/stubs.s
10717         * device/lib/z80/mul.s
10718         * device/lib/z80/stubs.s
10719         * src/SDCCsymt.c (initCSupport)
10720
10721 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10722
10723         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
10724         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
10725           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
10726           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
10727           instead of /Zm500.
10728
10729 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10730
10731         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
10732           the regression tests I'm not brave enough to enable 245.b, 245.c
10733         * doc/sdccman.lyx: added latex preamble for hyperref package.
10734           Using pdflatex this will give you a hyperlinked pdf file with
10735           bookmarks. (prepend '%' before /usepackage if this breaks something)
10736
10737 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10738
10739          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
10740
10741 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
10742
10743         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
10744
10745 2003-05-21    <johan AT balder>
10746
10747         * src/SDCCglue.c (printIval): fixed bug #739934
10748
10749 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10750
10751         Applied patch from bug 737905 (renamed yylineo to mylineno):
10752         * src/altlex.c
10753         * src/SDCCast.c
10754         * src/SDCglobl.h
10755         * src/SDCC.lex
10756         * src/SDCCsymt.c
10757         * src/SDCCval.c
10758         * src/pic16/pcode.c: Cleaned warnings
10759         * src/pic16/pcodeflow.c: Cleaned warnings
10760         * src/pic16/pcoderegs.c: Cleaned warnings
10761
10762 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
10763
10764         * src/pic16/pcode.c: Cleaned warnings
10765         * src/pic16/pcodepeep.c: Cleaned warnings
10766         * src/pic16/ralloc.c: Cleaned warnings
10767
10768 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10769
10770         * doc/sdccman.lyx: fixed bug 739745
10771         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
10772
10773 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
10774
10775         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
10776         it can be defined with CFLAGS when running configure
10777         * src/SDCCmain.c: fixed compiling + linking with object files
10778
10779 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
10780
10781         * configure.in: configure for pic16 port,
10782             added --disable-pic16-port
10783         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
10784         * src/SDCCmain.c: linkOptions is changed to set *,
10785             added if/endif conditional macros to remove options help
10786             messages from optionsTable when a port is not configured, added
10787             support for the PIc16 port in the ports table, when executing
10788             the compiler with no port specified on command line, a default
10789             port is selected with the new macro DEFAULT_PORT which is
10790             defined in port.h, in setDefaultOptions() linkOptions is removed
10791             from initialization assignment, since now it is a set,
10792             parseCmdLine uses setParseWithComma for linkOptions, in
10793             linkEdit() linkOptions are accessed with new function indexSet()
10794             which returns the i'th item of a set variable. See SDCCset.c, in
10795             linkEdit() when calling buildCmdLine(), added linkOptions as
10796             last argument. Now users can pass arguments to gplink via the
10797             -Wl option, main() uses pic16glue() to glue up pic16 programs
10798         * src/SDCCpeeph.c: various changes to support pic16
10799         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
10800             return the i'th item of the set
10801         * src/SDCCset.h: added function prototype for indexSet()
10802         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
10803         * src/clean.mk: added pic16 in CLEANALLPORTS variable
10804         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
10805             added macro DEFAULT_PORT
10806         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
10807         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
10808             generated
10809         * src/pic16/glue.c: commented out some error producing lines
10810         * src/pic16/main.c: __config directives are commented out to stop
10811             gpasm complaining and test the linkage with gplink, _linkCmd and
10812             _asmCmd changed to be more gplink and gpasm friendly
10813         * src/pic16/peeph.def: peep rule 3 is commented out, since it
10814             produced an error when parsed, peep rule 12 is added to utilize
10815             movff, but it is commented out since the pCode does not support
10816             yet a command with 2 address arguments
10817
10818 2003-05-18    <johan AT balder>
10819
10820         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10821         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10822 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
10823
10824         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
10825   Added feature to script commands from file.
10826
10827 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
10828
10829         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
10830         * src/SDCCutil.c: include ctype.h for win32
10831
10832 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
10833
10834         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
10835
10836 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
10837
10838         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
10839   Fixed so you can set breakpoints prior to run, run does not stop
10840   on entry now.  Add tbreak.  Other enhancements and fixes for use
10841   with ddd.
10842
10843 2003-05-12  Borut Razem <borut.razem AT siol.net>
10844
10845         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
10846
10847 2003-05-11  Borut Razem <borut.razem AT siol.net>
10848
10849         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
10850         the path of bin directory, so that PATH is the only env. variable, which has to be set
10851         in case of standard installation.
10852         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
10853         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
10854         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
10855
10856 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10857
10858         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
10859         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
10860         temp files are in the port dir; clean the gen/test directory when
10861         generating new test.c
10862         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
10863         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
10864         * support/regression/tests/zeropad.c: added
10865
10866 2003-05-09    <johan AT balder>
10867
10868         * src/SDCCglue.c: fixed bug #597940
10869
10870 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
10871
10872         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10873   cache sfr, optimize next,step, fix off by one sourceline,
10874   support ddd list function.
10875         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
10876
10877 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10878
10879         * support/regression/HTMLgen.py: added compare_s2f()
10880         * support/regression/Makefile: redo 1.27
10881         * support/regression/generate-cases.py: redo 1.5
10882
10883 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
10884
10885         * support/regression/tests/float.c: workaround 33 bit hex constant
10886         * support/regression/tests/simplefloat.c: fix division for host
10887
10888 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
10889
10890         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
10891         that tame's the PIC's over-aggressive optimizer.
10892
10893 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10894
10895          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
10896          support for MSVC.
10897
10898 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
10899
10900         Initial support for DS80C400. "Hello world" runs on TINIm400
10901         (with polled I/O).
10902
10903 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
10904
10905          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10906          * Some notes on ddd usage added in debugger/README
10907          Martin Helmling adding more features and fixes for ddd GUI debugger.
10908          Code added for nexti, stepi, up, down, and other adjustments.
10909
10910 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
10911
10912         * src/pic/pCodepeep.c non-wildcard asmops are now handled
10913         * src/pic/peeph.def Added two rules to optimize carry manipulation
10914         * src/pic/* removed debug printfs
10915
10916 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
10917
10918         * debugger/mcs51/cmd.c: added header newalloc.h
10919
10920 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
10921
10922         * as/Makefile: new EXEEXT
10923         * as/z80/Makefile: remove trailing slash of BUILDIR
10924         * as/z80/clean.mk: new EXEEXT
10925         * Makefile.common.in: add to CFLAGS (and others), don't replace it
10926         * support/cpp2/Makefile.in: new EXEEXT
10927         * src/pic/glue.c (pic14emitRegularMap): fixed warning
10928
10929 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
10930
10931         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
10932         EXEEXT was introduced to fix all related problems with targets
10933         "clean", "install" and "uninstall"; a couple of further flaws
10934         especially with "clean" have been fixed too
10935         * as/mcs51/Makefile.in
10936         * as/mcs51/clean.mk
10937         * as/z80/Makefile
10938         * Makefile
10939         * clean.mk
10940         * debugger/mcs51/Makefile.in
10941         * debugger/mcs51/clean.mk
10942         * link/z80/Makefile
10943         * link/z80/Makefile.in
10944         * link/z80/clean.mk
10945         * link/Makefile
10946         * packihx/Makefile.in
10947         * packihx/clean.mk
10948         * sim/ucsim/Makefile
10949         * sim/ucsim/clean.mk
10950         * sim/ucsim/avr.src/Makefile.in
10951         * sim/ucsim/avr.src/clean.mk
10952         * sim/ucsim/s51.src/Makefile.in
10953         * sim/ucsim/s51.src/clean.mk
10954         * sim/ucsim/xa.src/Makefile.in
10955         * sim/ucsim/xa.src/clean.mk
10956         * sim/ucsim/z80.src/Makefile.in
10957         * sim/ucsim/z80.src/clean.mk
10958         * sim/ucsim/main_in.mk
10959         * sim/ucsim/packages_in.mk
10960         * sim/ucsim/gui.src/Makefile.in
10961         * sim/ucsim/gui.src/serio.src/Makefile.in
10962         * sim/ucsim/gui.src/serio.src/clean.mk
10963         * src/Makefile.in
10964         * src/clean.mk
10965         * support/cpp2/Makefile.in
10966         * support/cpp2/clean.mk
10967         * support/makebin/Makefile
10968         * support/makebin/clean.mk
10969         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
10970         * doc/sdccman.lyx: --program-suffix no longer needed
10971
10972 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
10973
10974          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
10975          Martin Helmling added support for ddd GUI debugger.
10976          Code added to display assembly, set variables, and other commands
10977          to interface to ddd.
10978
10979 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
10980
10981         * as/Makefile: fix target clean
10982         * as/clean.mk: fix target clean
10983         * as/z80/clean.mk: fix target clean
10984
10985 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
10986
10987         * Makefile.common.in: added  AT EXEEXT AT
10988         * configure.in: removed all mingw32 stuff
10989         * configure: rebuilt from configure.in
10990         * doc/sdccman.lyx: updated section "installation"
10991         * support/scripts/sdcc_mingw32: adapted to configure
10992         * support/scripts/sdcc_cygwin_mingw32: added
10993
10994 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
10995
10996         * src/pic Added object file support for the PIC port
10997         * src/pic Applied patch from Craig Franklin (this started the object file support)
10998         * src/regression Updated the PIC regression tests for object files
10999
11000 2003-04-20  Borut Razem <borut.razem AT siol.net>
11001
11002         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
11003           lklex.c: In function `getfid':
11004           lklex.c:203: warning: array subscript has type `char'
11005         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
11006           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
11007         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
11008           stack handling macros
11009
11010 2003-04-19  Borut Razem <borut.razem AT siol.net>
11011
11012         * "handling space characters in file path" task:
11013         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
11014         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
11015         * support/Util/MySystem.h: make it self-sufficient
11016         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
11017           src/z80/main.c, sdcc/as/mcs51/lklex.c:
11018           handling space characters in file path
11019         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
11020           (it will be used by assemblers, which have their own includes, e.g. gpasm)
11021         * support/Util/MySystem.c: handling space characters in executable's path
11022
11023 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
11024
11025         * as/z80/Makefile: fix permanent rebuild of z80
11026         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
11027         * support/regression/tests/bitfields.c: added Johan's bitfields.c
11028
11029 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
11030
11031         * src/SDCCopt.c: add special case optimization to replace modulo by
11032           a power of two with a bitwise AND.
11033
11034 2003-04-18    <johan AT balder>
11035
11036         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
11037
11038 2003-04-17    <johan AT balder>
11039
11040         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
11041         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
11042
11043 2003-04-13  Borut Razem <borut.razem AT siol.net>
11044
11045         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
11046         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
11047           fixed mingw problem in adl_NORMALIZE_PATH
11048
11049 2003-04-12  Borut Razem <borut.razem AT siol.net>
11050
11051         * fixed "#pragma SAVE/RESTORE can not be nested":
11052         * src/SDCC.lex: reworked pragma handling functions
11053         * sdcc/src/SDCCglobl.h: reworked stack handling macros
11054         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
11055
11056 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11057
11058         * src/SDCCutil.c (pathEquivalent): defined but not used
11059         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
11060         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
11061         * configure: rebuilt from configure.in
11062         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11063         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11064         * device/include/Makefile.in: replace sdcc_datadir
11065         * device/lib/Makefile.in: replace sdcc_datadir
11066         * Makefile.common.in: add LDFLAGS from configure
11067         * packihx/Makefile.in: use LDFLAGS
11068         * src/Makefile.in: use LDFLAGS
11069         * support/cpp2/Makefile.in: add LDFLAGS from configure
11070         * support/makebin/Makefile: use LDFLAGS
11071         * .version: bumped version number to 2.3.5
11072
11073 2003-04-12  Borut Razem <borut.razem AT siol.net>
11074
11075         * completed "different paths" task:
11076         * src/SDCCmacro.c: fixed bug in handling quotes
11077         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
11078         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
11079
11080 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11081
11082         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
11083
11084 2003-04-11 kevin Vigor <kevin AT vigor.nu>
11085
11086         * ds390/gen.c ds390/peeph.def: fix bug 706781
11087
11088 2003-04-11  Borut Razem <borut.razem AT siol.net>
11089
11090         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
11091
11092 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
11093
11094         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
11095         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
11096          set - this bit used to not be set...).
11097         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
11098           bad code in PIC Port
11099         * src/regression/and2.c added to test bug 609268
11100         * src/regression/Makefile added and2.c to regression test
11101
11102
11103 2003-04-08    <johan AT CP255758-A>
11104
11105         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
11106         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
11107         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
11108
11109 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
11110
11111         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
11112         fix bug #487815
11113         * support/cpp2/Makefile.in: fix bug #487815
11114         * configure: rebuilt from configure.in
11115         * Makefile.common.in: docdir changed, new path suffixes
11116         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11117         * sdcc_vc_in.h: reflect changes from sdccconf.h
11118         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
11119         * src/SDCCutil.h: remove BINDIR hack
11120         * doc/sdccman.lyx: update new path hierarchy
11121
11122 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11123
11124         * src/SDCCpeeph.c: added okToRemoveSLOC test
11125
11126 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11127
11128         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
11129
11130 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11131
11132         * src/SDCCpeeph.c: added labelIsReturnOnly test
11133         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
11134
11135 2003-04-05    <johan AT balder>
11136
11137         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
11138         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
11139         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
11140         * src/SDCCast.c: fixed a warning
11141         * src/SDCCast.h: fixed a warning
11142         * src/SDCCicode.c (operandFromAst): fixed a warning
11143
11144 2003-04-04    <johan AT balder>
11145
11146         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
11147         * src/SDCCast.c (decorateType): fixed bug #715076
11148         * src/SDCC.y: fixed bug #702907
11149
11150 2003-04-03    <johan AT balder>
11151
11152         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
11153         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
11154         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
11155         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
11156         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
11157
11158 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
11159
11160         * _decdptr.c: fix return values
11161         * _gptrget.c: fix return values
11162         * _gptrgetc.c: fix return values
11163         * _gptrput.c: fix return values
11164         * _mulint.c: fix return values
11165         * as/z80/Makefile: fix 'make -j' problem
11166
11167 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
11168
11169         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
11170         * configure.in: big cleanup, updated to autoconf 2.5x
11171         * configure: rebuilt from configure.in
11172         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11173         * sdcc_vc_in.h: reflect changes from sdccconf.h
11174         * doc/Makefile: fixed a flaw in "make install"
11175
11176 2003-04-02    <johan AT balder>
11177
11178         * src/ds390/gen.c (genCmp): no comments
11179         * src/mcs51/gen.c (genCmp): no comments
11180         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
11181         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
11182
11183 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
11184
11185         * support/regression/generate-cases.py: place generated file in given sub directory
11186         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
11187         * support/regression/Makefile: improvements for 'make -j';
11188         side effect: it's simpler and faster now
11189
11190 2003-03-31  Borut Razem <borut.razem AT siol.net>
11191
11192         * src/z80/main.c: link-{port} and as-{port} defined without path
11193         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
11194
11195 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
11196
11197         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
11198
11199 2003-03-30  Borut Razem <borut.razem AT siol.net>
11200
11201         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
11202           changed type of list parameter to set
11203         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
11204         * src/port.h: changed type of do_assemble() parameter to set
11205         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
11206           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
11207           definition of "cppoutfilename" macro with NULL value in preProcess()
11208         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
11209         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
11210         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
11211           replaced with set *binPathSet
11212         * shash_add() deallocates the item, if allready exsists, before adding the new one
11213         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
11214
11215 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
11216
11217         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
11218           a nested for loop bug in the PIC port
11219         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
11220           for loops
11221
11222 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
11223
11224         * support/Util/dbuf.h: remove C++ stuff to make it portable
11225
11226 2003-03-28  Borut Razem <borut.razem AT siol.net>
11227
11228         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
11229           literal strings in stringLiteral()
11230         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
11231         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
11232           to the project
11233
11234 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
11235
11236         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
11237
11238 2003-03-26    <johan AT balder>
11239
11240         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
11241         * src/ds390/gen.c (saveRegisters): catched symbol abuse
11242         * src/SDCCast.c (decorateType): fixed " -v < 3"
11243
11244 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
11245
11246         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
11247         Added Lenny Story's debug infrastructure changes:
11248         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
11249         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
11250         * src/cdbFile.c: added
11251         * src/SDCCdebug.c: added
11252         * src/SDCCdebug.h: added
11253         * src/SDCCast.c (createFunction)
11254         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
11255         * src/SDCCmain.c (parseCmdLine, main)
11256         * src/SDCCmem.c (redoStackOffsets)
11257         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
11258         * src/SDCCsymt.h
11259         * src/common.h
11260         * src/avr/gen.c (genAVRCode)
11261         * src/ds390/gen.c (gen390Code)
11262         * src/mcs51/gen.c (gen51Code)
11263         * src/pic/gen.c (genpic14Code)
11264         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
11265         * src/xa51/gen.c (genXA51Code)
11266         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
11267
11268 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11269
11270         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
11271         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
11272
11273 2003-03-22    <johan AT balder>
11274
11275         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
11276
11277 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
11278
11279         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
11280         * doc/cdbfileformat.lyx: added, written by Lenny Story
11281         * doc/Makefile: added cdbfileformat.lyx
11282         * doc/clean.mk: added cdbfileformat.lyx
11283
11284 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
11285
11286         * src/mcs51/peeph.def: fix bug #705773
11287
11288 2003-03-20    <johan AT balder>
11289
11290         An sfr/sbit can have an "at #" AND an initializer
11291         * src/SDCCsymt.c (checkSClass):
11292         * src/SDCCmem.c (allocGlobal):
11293         * src/SDCCmem.c (allocLocal):
11294         * src/SDCCast.c (createBlock):
11295
11296 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
11297
11298         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
11299
11300 2003-03-16    <johan AT balder>
11301
11302         Undid the hackup of const and volatile, the problem is much bigger
11303         * src/SDCC.y:1.65
11304         * src/SDCCast.c:1.171
11305         * src/SDCCglue.c:1.138
11306         * src/SDCCicode.c:1.146
11307         * src/SDCCsymt.c:1.150
11308         * src/SDCCval.c:1.65
11309
11310 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
11311
11312         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
11313         * src/ds390/gen.c (genAddrOf): fixed bug #704087
11314
11315 2003-03-13    <johan AT balder>
11316
11317         Hackup const and volatile modifiers in type chains a bit:
11318         * src/SDCC.y:1.63
11319         * src/SDCCast.c:1.169
11320         * src/SDCCglue.c:1.136
11321         * src/SDCCicode.c:1.143
11322         * src/SDCCsymt.c1.146
11323         * src/SDCCsymt.h1.59
11324         * src/SDCCval.c:1.63
11325
11326 2003-03-12    <johan AT balder>
11327
11328         * src/SDCCBBlock.h: more LRH debugging junk
11329         * src/SDCCcflow.h: more LRH debugging junk
11330         * src/SDCCloop.c: more LRH debugging junk
11331         * src/SDCC.y (struct_declaration): fixed bug #697590
11332         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
11333         * src/ds390/gen.c (aopForRemat): fixed bug #700031
11334         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
11335
11336 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11337         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
11338         test function names must now match exactly).
11339         * src/SDCCcse.c: added special case in findCheaperOp to allow
11340         extending a short integer. Makes less awful code for bug 700121 test case.
11341
11342 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11343
11344         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
11345         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
11346
11347 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11348
11349         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
11350         actually called (operandsNotEqual() was called for all
11351         operandsNotEqualX tests).
11352
11353 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11354
11355         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
11356         with shorter literals. Fixes bug 700121.
11357
11358 2003-03-11    <johan AT balder>
11359
11360         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
11361
11362 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
11363
11364         * src/SDCCloop.c (mergeRegions): an evil beast is dead
11365         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
11366
11367 2003-03-10  Borut Razem <borut.razem AT siol.net>
11368
11369         * src/SDCCmain.c: pipe preprocessor's output
11370         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
11371         * sdcc_vc_in.h: define pclose as _pclose for WIN32
11372         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
11373         which closes all pipes in pipeSet set
11374         * src/SDCCset.c: free deleted item in function deleteSetItem()
11375         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
11376         moved from z80 to src subproject
11377         * .version: increased version number to 2.3.4
11378
11379 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
11380
11381         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
11382         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
11383         * support/regression/ports/xa51/spec.mk: fix typo
11384
11385 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
11386
11387         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
11388
11389 2003-03-09  Borut Razem <borut.razem AT siol.net>
11390
11391         * src/SDCCmain.c: pipe preprocessor's output
11392         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
11393         * sdcc_vc_in.h: define pclose as _pclose for WIN32
11394         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
11395         which closes all pipes in pipeSet set
11396         * src/SDCCset.c: free deleted item in function deleteSetItem()
11397         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
11398         moved from z80 to src subproject
11399
11400 2003-03-09  Borut Razem <borut.razem AT siol.net>
11401
11402         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
11403         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
11404         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
11405         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
11406         * src/SDCCglobl.h: unification of WIN32 native definitions
11407
11408 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11409
11410         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
11411
11412 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
11413
11414         * src/configure.in:   check for endianess (even while cross-compiling)
11415         * src/configure:      check for endianess (even while cross-compiling)
11416         * src/configure_in.h: check for endianess (even while cross-compiling)
11417         * src/avr/gen.c:        remove old endianess stuff
11418         * src/mcs51/gen.c:      remove old endianess stuff
11419         * src/ds390/gen.c:      remove old endianess stuff
11420         * src/pic/gen.c:        remove old endianess stuff
11421         * src/pic/genarith.c:   remove old endianess stuff
11422         * src/pic/glue.c:       fix endianess check
11423         * src/pic16/gen.c:      remove old endianess stuff
11424         * src/pic16/genarith.c: remove old endianess stuff
11425         * src/pic16/glue.c:     fix endianess check
11426         * src/xa51/gen.c:       remove old endianess stuff
11427         * src/z80/gen.c:        fix endianess check
11428         * src/SDCCglue.c:       fix endianess check
11429         * src/ds390/peeph.def: fix bug 700036
11430
11431 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
11432
11433         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
11434         * src/configure: find appropriate data-types on host for SDCC's int and long
11435         * src/configure.in: find appropriate data-types on host for SDCC's int and long
11436         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
11437         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
11438
11439 2003-03-07    <johan AT balder>
11440
11441         Just a big NOOP:
11442                 some minor cleanups before the big shot
11443                 OP_DEFS and OP_USES now use Kevin's protection
11444                 new option --nolabelopt
11445
11446         * src/SDCCBBlock.c:
11447         * src/SDCCast.c,:
11448         * src/SDCCcflow.c:
11449         * src/SDCCcse.c:
11450         * src/SDCCicode.c:
11451         * src/SDCCicode.h:
11452         * src/SDCClabel.c:
11453         * src/SDCCloop.c:
11454         * src/SDCCmain.c:
11455         * src/ds390/ralloc.c:
11456         * src/mcs51/ralloc.c:
11457         * src/pic/ralloc.c:
11458         * src/xa51/ralloc.c:
11459         * src/z80/ralloc.c:
11460
11461 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
11462
11463         * src/pic/pcode.c (get_op): fix 64 bit warnings
11464         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
11465         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
11466         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
11467         * support/regression/tests/malloc.c: fix 64 bit warnings
11468
11469 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
11470
11471         * src/mcs51/gen.c (genMinus): fixed bug 696436
11472
11473 2003-03-02  Borut Razem <borut.razem AT siol.net>
11474
11475         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
11476
11477 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
11478
11479         * configure.in: test for mkstemp
11480         * sdccconf_in.h: add HAVE_MKSTEMP
11481
11482 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
11483
11484         * device/include/ctype.h: removed warning while using --stack-auto
11485         * device/include/malloc.h: removed warning while using --stack-auto
11486         * device/include/string.h: removed warning while using --stack-auto
11487
11488 2003-02-23  Borut Razem <borut.razem AT siol.net>
11489
11490         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
11491         because NDEBUG is defined (see man assert)
11492         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
11493
11494 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11495
11496         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
11497         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
11498
11499 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11500
11501         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
11502         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
11503
11504 2003-02-18    <johan AT balder>
11505
11506         * as/mcs51/asmain.c (asmbl): module can start with a digit
11507         * as/z80/asmain.c (asmbl): module can start with a digit
11508
11509 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
11510
11511         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
11512         * src/asm.c: fix pipe() for Mingw32
11513
11514 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
11515
11516         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
11517         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
11518         make -V work again; --c1mode reads now from stdin
11519         * doc/sdccman.lyx: added --c1mode
11520         * support/Util/SDCCerr.c: new messages for c1 mode
11521         * support/Util/SDCCerr.h: new messages for c1 mode
11522         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
11523
11524 2003-02-15    <johan AT balder>
11525
11526         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
11527
11528 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
11529
11530         * doc/sdccman.lyx: Environment variables, -o and other minor things
11531
11532 2003-02-14    <johan AT balder>
11533
11534         * src/xa51/main.c: before anyone really tries to use it :)
11535
11536         * Install doc's in share/sdcc/doc
11537         * removed some obsolete files
11538         * Do a proper make distclean and uninstall
11539         M Makefile.common.in
11540         R sdccbuild.sh
11541         M as/Makefile
11542         M device/include/Makefile.in
11543         M device/lib/Makefile.in
11544         M doc/sdccman.lyx
11545         M link/Makefile
11546         M sim/ucsim/doc/Makefile.in
11547         M src/clean.mk
11548         R src/avr/peeph.rul
11549         R src/xa51/peeph.rul
11550         M support/cpp2/Makefile.in
11551         M support/makebin/Makefile
11552
11553
11554 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
11555
11556         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
11557
11558 2003-02-10  Borut Razem <borut.razem AT siol.net>
11559
11560         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
11561         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
11562         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
11563         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
11564         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
11565         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
11566         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
11567         src/z80/Makefile.bcc: Borland Makefile cleanup
11568         * as/z80/Makefile.bcc: Added Borland Makefile
11569         * support/cpp2/borland.h: Removed
11570
11571 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
11572
11573         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
11574         * src/SDCC.lex: new pragma NOIV
11575         * src/SDCCglobl.h: new pragma NOIV
11576         * src/SDCCmem.c: new pragma NOIV
11577
11578 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11579
11580         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
11581
11582 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11583
11584         * src/SDCCmain.c: signal handling is switched off by --debug
11585         * doc/Makefile: small fix for install; use clean.mk again
11586         * doc/clean.mk: clean *.pdf and *.html too
11587
11588 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
11589
11590         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
11591         * device/lib/printfl.c: fix a ds390 bug by making it portable
11592         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
11593         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
11594         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
11595         * debugger/mcs51/cmd.c: converted multi-line string literals
11596         * sim/ucsim/globals.cc: converted multi-line string literals
11597         * src/SDCCmain.c: introduced signal handler to remove temp files
11598         * doc/Makefile: small tweaks, implement clean
11599         * doc: removed generated files
11600
11601 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11602
11603         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
11604         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
11605         Address Record is not correctly generated for DS390."
11606
11607 2003-02-02  Borut Razem <borut.razem AT siol.net>
11608
11609         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
11610         * as/mcs51/asm.h: fixed compilation with Borland C
11611         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
11612         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
11613         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
11614         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
11615         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
11616         src/z80/Makefile.bcc: delete $(LIB) only if exist
11617         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
11618
11619 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
11620
11621         * device/include/malloc.h: introduced NULL
11622         * device/include/string.h: introduced NULL
11623         * device/include/stdlib.h: introduced NULL
11624         * device/lib/_memcpy.c: removed NULL
11625         * device/lib/_strcat.c: removed NULL
11626         * device/lib/_strchr.c: removed NULL
11627         * device/lib/_strcmp.c: removed NULL
11628         * device/lib/_strcpy.c: removed NULL
11629         * device/lib/_strcspn.c: removed NULL
11630         * device/lib/_strlen.c: removed NULL
11631         * device/lib/_strncat.c: removed NULL
11632         * device/lib/_strncmp.c: removed NULL
11633         * device/lib/_strncpy.c: removed NULL
11634         * device/lib/_strpbrk.c: removed NULL
11635         * device/lib/_strrchr.c: removed NULL
11636         * device/lib/_strspn.c: removed NULL
11637         * device/lib/_strstr.c: removed NULL
11638         * device/lib/_strtok.c: removed NULL
11639         * device/lib/malloc.c: removed NULL, include own header
11640
11641 2003-02-02    <johan AT balder>
11642
11643         * 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
11644         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
11645         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
11646         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
11647         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
11648         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
11649
11650 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11651
11652         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
11653         area 'DATA'"
11654
11655 2003-02-01    <johan AT balder>
11656
11657         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
11658
11659 2003-01-31    <johan AT CP255758-A>
11660
11661         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
11662
11663 2003-01-30    <johan AT balder>
11664
11665         * src/SDCCBBlock.c: automatic bug detection
11666         * src/SDCCicode.c: automatic bug detection
11667
11668 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11669
11670         * src/SDCCglobl.h:   now --xram-size 0 works
11671         * src/SDCCmain.c:    now --xram-size 0 works
11672
11673 2003-01-29    <johan AT balder>
11674
11675         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
11676
11677 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11678
11679         * as/mcs51/aslink.h: Added options --xram-size and --code-size
11680         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
11681         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
11682         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
11683         * src/SDCCglobl.h:   Added options --xram-size and --code-size
11684         * src/SDCCmain.c:    Added options --xram-size and --code-size
11685
11686 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
11687
11688         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
11689         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
11690
11691 2003-01-27    <johan AT balder>
11692
11693         * src/SDCC.y: fixed bug #613764
11694
11695 2003-01-26    <johan AT balder>
11696
11697         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
11698         * src/SDCCsymt.h: fixed bug #673374
11699         * src/SDCCglue.c: fixed bug #661910
11700         * src/SDCCast.c: fixed bug #458099 and 673374
11701
11702 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
11703
11704         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
11705         * as/mcs51/strcmpi.h: added
11706         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
11707         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
11708         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
11709         * as/mcs51/assym.c: strcmpi -> as_strcmpi
11710         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
11711         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
11712         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
11713         * as/mcs51/Makefile.aslink: new module strcmpi
11714         * as/mcs51/Makefile.asx8051: new module strcmpi
11715         * as/mcs51/Makefil.bcc: new module strcmpi
11716         * as/mcs51/Makefile.in: new module strcmpi
11717         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
11718
11719 2003-01-26    <johan AT balder>
11720
11721         * src/SDCCglue.c: reverted back to 1.124
11722         * src/SDCCast.c: reverted back to 1.156
11723         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
11724
11725 2003-01-25    <johan AT balder>
11726
11727         * src/SDCCglue.c: A better fix for bug #661910
11728         * src/SDCCast.c: A better fix for bug #661910
11729         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
11730
11731 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11732
11733         * src/Makefile.in: remove spawn.o
11734         * src/SDCCmain.c: remove spawn.h
11735         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
11736         * src/spawn.c: removed
11737         * src/spawn.h: removed
11738         * support/regression/ports/ds390/spec.mk: link with -r
11739
11740 2003-01-24    <johan AT CP255758-A>
11741
11742         * src/ds390/gen.c (aopOp): fixed bug #667458
11743         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
11744         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
11745         (createIvalCharPtr): an ival doesn't always have a storage class anymore
11746
11747 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11748
11749         * src/mcs51/peeph.def: better assembler identation by Frieder
11750         * src/mcs51/gen.c: better assembler identation by Frieder
11751
11752 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
11753
11754         * as/z80/string.h: removed for gcc 3.2
11755         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
11756         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
11757
11758 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11759
11760         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
11761         * src/SDCCpeeph.c (replaceRule): fix bug #663503
11762         * support/regression/Makefile: separate temp files for ports
11763         * support/regression/generate-cases.py: separate temp files for ports
11764         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11765         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11766
11767 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11768
11769         * moved tinitalk to device/examples/ds390
11770
11771 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
11772
11773         * as/mcs51/lkmem.c: rflag is for DS390
11774         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
11775         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
11776                          (linkEdit): move mem- and map-files the same way as ihx-files
11777         * src/z80/main.c (_setDefaultOptions): removed --generic
11778         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
11779         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
11780         * src/pic/glue.c (picglue): --c1mode works again
11781         * src/pic16/glue.c (pic16glue): --c1mode works again
11782         * src/asm.c (printCLine): fix #660034
11783
11784 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
11785
11786         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
11787         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
11788         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
11789         * as/mcs51/lkmem (summary): better fix for sp problem
11790         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
11791         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
11792         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
11793                                               remove --stack-after-data
11794
11795 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
11796
11797         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
11798         * src/SDCCutil.c (join): ugly bug: missing '\0'
11799         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
11800
11801 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11802
11803         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
11804         * src/port.h: typo
11805         * src/pic/main.c (_asmCmd): gpasm supports -o
11806         * src/z80/main.c: more general macros
11807         * device/lib/Makefile.in: remove intermediate files
11808
11809 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11810
11811         * .version: Bumped version number to 2.3.3
11812         * src/SDCCBBlock.c: new option -o
11813         * src/SDCCglobl.h: new option -o
11814         * src/SDCCglue.c: new option -o
11815         * src/SDCCmain.c: new option -o
11816         * src/asm.c: new option -o
11817         * src/ds390/main.c: new option -o
11818         * src/pic/glue.c: new option -o
11819         * src/pic/pcode.c: new option -o
11820         * src/pic/ralloc.c: new option -o
11821         * src/pic16/glue.c: new option -o
11822         * src/pic16/pcode.c: new option -o
11823         * src/pic16/ralloc.c: new option -o
11824         * src/z80/main.c: new option -o
11825         * device/lib/Makefile.in: use -o
11826         * support/regression/ports/ds390/spec.mk: use -o
11827         * support/regression/ports/gbz80/spec.mk: use -o
11828         * support/regression/ports/mcs51/spec.mk: use -o
11829         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
11830         * support/regression/ports/z80/spec.mk: use -o
11831         * support/regression/ports/ucz80/spec.mk: use -o
11832         * support/regression/ports/xa51/spec.mk: use -o
11833         * support/regression/fwk/lib/timeout.c: fix usage string
11834
11835 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
11836         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
11837
11838 2003-01-07    <johan AT balder>
11839
11840         * src/SDCCast.c (decorateType): fixed bug #600035
11841
11842 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
11843         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
11844         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
11845         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
11846         * src/pic/pcode.c: outcommented unused variable to remove warnings
11847         * src/pic/ralloc.c: outcommented unused variable to remove warnings
11848
11849 2003-01-06    <karl AT turbobit.com>
11850         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
11851    regression tests.
11852
11853 2003-01-06    <johan AT balder>
11854
11855         * src/SDCCicode.c: fixed array add
11856
11857 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
11858         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
11859         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
11860
11861 2003-01-04    <johan AT balder>
11862
11863         * src/SDCCval.c (getNelements): fixed the initialized array of structures
11864
11865 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11866         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
11867
11868 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11869         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
11870         * support/regression/tests/bug-524697.c: fit mem usage into 8032
11871
11872 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11873         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
11874
11875 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
11876         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
11877
11878 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
11879         * src/mcs51/main.c: removed {bindir}{sep} from aslink
11880
11881 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11882
11883     * in /sdcc/as/mcs51/ changed these files in order to create an
11884     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
11885     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
11886     following files to include the previous two files: aslink.dsp,
11887     Makefile.aslink, Makefile.bcc, and Makefile.in.
11888
11889     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
11890     .adb instead of .cdb
11891
11892 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11893
11894         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
11895         value from option --iram-size.
11896
11897 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11898
11899         * /sdcc/as/mcs51/lklist.c: added boundary check before using
11900         dram[] array.
11901
11902 2002-09-18    <wiml AT hhhh.org>
11903
11904         * SDCClrange.h: exposed setFromRange() and setToRange()
11905         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
11906           packRegsForAccUse() (bug 542397)
11907         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
11908           multiple times and emitting the fetch operations more than once
11909           added aopGetUsesAcc() function to allow binary operators to
11910           fetch their operands in the correct order; made genMinus() emit
11911           compact code for X = LITERAL - Y
11912
11913 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11914         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
11915         sprintf() in line 1267.
11916
11917 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11918         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
11919         like ports.
11920
11921 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11922         Changes to aslink (All the changes are marked with 'JCF'):
11923
11924         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
11925         summary().
11926
11927         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
11928         area BSEG.  Also moves, if possible, the DATA area down into the internal
11929         ram so more space is available.
11930
11931         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
11932         sflag.
11933
11934         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
11935         not bytes.  Function summary() which creates a memory usage summary
11936         file with extension .mem.  Reports of overlaping stack and small stack
11937         size.  If the space for the stack is less than 16 bytes aslink trows a
11938         warning.
11939
11940         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
11941         the 8051.  Option 'y' for memory summary output file.
11942
11943         Changes to sdcc (All the changes are marked with 'JCF'):
11944
11945         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
11946
11947         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
11948         overlaying area for it (uses RegBankUsed[4]).
11949
11950         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
11951         bank zero as used by default.  By default aslink locates the stack
11952         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
11953         the creation of the .mem file.  Delegates the allocation of data area
11954         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
11955         the begining of the stack area to aslink.
11956
11957         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
11958         glue() in SDCCglue.c creates an area for it.
11959
11960 2002-09-03  Borut Razem <borut.razem AT siol.net>
11961         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
11962         sdcc/src/pic/glue.c:
11963         introduced atexit() handler for teporay files removal in case of
11964         errors, assertions, ...
11965
11966 2002-08-29  Borut Razem <borut.razem AT siol.net>
11967         * sdcc/support/cpp2/auto-host_vc_in.h:
11968         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
11969         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
11970         Maybe there is a similar problem with BORLANDC? It should be checked!
11971
11972         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
11973         corrected improper use of assert: the assignment to clr variable was done inside the assert.
11974         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
11975         was not executed, and the compiler (cl) launched a warning:
11976         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
11977
11978 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11979         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
11980
11981 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
11982         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
11983
11984         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11985           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
11986           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
11987           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11988           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
11989           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
11990           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
11991         - added Release configuration in VS projects
11992         - review of compiler an linker options
11993         - VC .exe files are generated in bin_vc directory, not to interfere
11994           with binaries generated from other projects (cygwin, mingw, bcc ...)
11995
11996         * sdcc/src/yacc.dsp: added
11997
11998         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
11999         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
12000         and insert the version number definitions from .version
12001
12002         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
12003
12004         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
12005         added - genarate auto-host.h using auto-host_vc_in.h as template
12006
12007         * sdcc/sdcc_vc.h,
12008         removed from CVS, generated automatically
12009
12010 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
12011         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
12012
12013 2002-08-11  Borut Razem <borut.razem AT siol.net>
12014         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
12015
12016 2002-08-10  Borut Razem <borut.razem AT siol.net>
12017         * src/SDCCmain.c (main):
12018         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
12019         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
12020         The consequence was that some temporary files were not removed.
12021
12022         * src/SDCCglue.c:
12023         unification of code in functions tempfilename() and tempfile():
12024         function tempnam() is defined in Visual Studio 6.0 and .NET
12025
12026         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
12027
12028         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
12029           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
12030         - removed compiler command line option /WX: Treats all warnings as errors
12031         - update a list of source files, included into the project
12032
12033         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
12034           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
12035         changed project type to Generic Project so that can be correcly converted to VS.NET project
12036
12037         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
12038
12039         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
12040
12041         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
12042
12043         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
12044         added return 0 statements after assert() to make compiler happy
12045
12046         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
12047         added newline in the def file to keep MSC compiler satisfied
12048
12049         * sdcc/src/z80/gen.c:
12050         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
12051           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
12052         - solved MSC error in function aopDump()
12053
12054         * sdcc_vc.h: define PREFIX as "\\sdcc"
12055
12056 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
12057         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
12058
12059 2002-06-22  Scott Dattalo <scott AT dattalo.com>
12060         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
12061         - Rewrote the register banking algorithm.
12062         - Added pCode live-range analysis to registers (for now, only non-used and
12063         singly-used registers optimized away)
12064
12065         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
12066
12067         * 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.
12068
12069 2002-05-10  Scott Dattalo <scott AT dattalo.com>
12070         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
12071
12072 2002-04-22  Michael Hope  <michaelh AT vroom>
12073
12074         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
12075
12076         * configure.in (DD_COPT): Added include support required for gbdk.
12077
12078         * .version: Bumped version number just to increase it.
12079
12080         * src/SDCCmain.c: Added -nostdinc to the default options.
12081
12082 2002-04-15  Michael Hope  <michaelh AT vroom>
12083
12084         * device/lib/z80/printf.c (sprintf): Added.
12085
12086         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
12087
12088         * src/z80/peeph.def: Added transpose redundent load rule.
12089
12090         * src/z80/main.c: Added force callee saves for jaune.
12091
12092         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
12093
12094         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
12095
12096 2002-03-28  Johan Knol  <johan AT balder>
12097
12098         * src/SDCCval.c: fixed bug #532436
12099
12100 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12101         * /src/port.h:
12102         Added "char *Processor" field to the port structure.
12103
12104         * /src/SDCCmain.c:
12105         Added -p option. Allows port dependent processor to be specified.
12106
12107         * all ports:
12108         Initialized the new field char *Processor field to NULL in all ports
12109
12110         * /src/pic/*:
12111         Compiler generated registers for interrupt context saving
12112         were not getting allocated.
12113
12114 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
12115
12116         * /src/SDCCast.c:
12117         Fixed left shift. Will promote the left side of a left shift
12118         if a) left shifting more than size of operand or b) when assigned
12119         to something size > size of left side
12120
12121 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12122         * src/pic/*
12123         tons of changes. Register allocation has been
12124         rewritten. Added customization for the various PICs. Flow
12125         analysis is restructured. ...
12126
12127         * src/pic/device.h:
12128         Added
12129
12130         * src/pic/device.c:
12131         Added. device.c is a PIC port hack to accomodate variations
12132         in PIC devices.
12133
12134 2002-03-13  Michael Hope  <michaelh AT vroom>
12135
12136         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
12137
12138 2002-03-04  johanknol  <johanknol AT manik>
12139
12140         * /src/SDCCval.c: fixed
12141
12142         const unsigned char arr[][2] = { { 0, 1 } };
12143         t18.c:1: error: Initializer element is not constant
12144
12145 2002-03-04  bela  <bela AT manik>
12146
12147         * /device/include/mcs51reg.h:
12148         ds89c420 register definition update
12149
12150 2002-03-03    <johan AT FRIJA>
12151
12152         * support/Util/SDCCerr.c: did something, but don't no why anymore
12153
12154         * support/regression/tests/bug-524691.c: made it a little less shy
12155
12156         * src/SDCCast.c (decorateType): fixed bug #524697
12157
12158         * src/SDCCast.c: made some lineno improvements
12159
12160         * src/SDCCval.c (getNelements): changed warning to error
12161
12162         * src/SDCCglue.c (printIvalArray): changed warning to error
12163
12164         * src/SDCCicode.c: fixed a warning for mingw
12165
12166         * src/SDCCast.c (decorateType): fixed the << promotion for ops
12167
12168         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
12169
12170 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
12171
12172         * src/ds390/peeph.def:
12173         Added some more peephole rules
12174
12175         * src/ds390/gen.c: Various fixes & enhancements
12176
12177         * src/SDCClrange.c, src/SDCClrange.h:
12178         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
12179
12180         * src/ds390/ralloc.c:
12181         various fixes & enhancements (ds390) specific
12182
12183         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
12184         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
12185         from rallocs.
12186
12187         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
12188
12189 2002-03-02    <johan AT FRIJA>
12190
12191         * src/SDCCast.c (decorateType): fixed bug #524708
12192
12193         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
12194
12195         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
12196
12197 2002-03-01  Michael Hope  <michaelh AT vroom>
12198
12199         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
12200
12201         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
12202
12203 2002-03-01    <johan AT FRIJA>
12204
12205         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
12206
12207         * src/SDCCast.c (decorateType): fixed bug #524209
12208
12209         * src/SDCCval.c (valNot): fixed bug #524195
12210
12211 2002-02-26    <johan AT balder>
12212
12213         * src/xa51/gen.c: fixed a warning
12214
12215         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
12216
12217         * src/SDCCast.c (decorateType): fixed bug #522534
12218
12219 2002-02-23    <johan AT balder>
12220
12221         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
12222
12223 2002-02-22    <johan AT balder>
12224
12225         * src/SDCCast.c: fixed bug #514865
12226
12227         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
12228
12229 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
12230
12231         * sdcc/src/SDCCloop.c:
12232         Previous fix was not good. basic blocks that have "break" or "return" are
12233         not really partof a loop , but live ranges used in these blocks should
12234         be live thru the entire loop, so set partOfLoop but don't add them to
12235         loop region
12236
12237 2002-02-21    <johan AT FRIJA>
12238
12239         * src/SDCCcse.c: fixed bug #514308
12240
12241 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
12242
12243         * src/SDCCloop.c:
12244         Fixed BUG #519583. If a conditional block ended in a return/break
12245         statement inside a loop, it was not being considered part of the loop.
12246
12247         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
12248
12249 2002-02-10  Karl Bongers <karl AT turbobit.com>
12250
12251         * debugger/*:
12252         Fixed up SDCDB debugger somewhat.  Updated debugger/README
12253         with lots of comments and notes.
12254
12255         * device/examples/test2.c:
12256         Fix bug, "red" variable not being initialized(compiler complained).
12257
12258         * device/examples/Makefile, examples/test3.c:
12259         Add Makefile in device/examples folder, compiles test3.c
12260         for use as a multiple module SDCDB test case.
12261
12262         * sim/ucsim/cmd.src/cmdset.cc:
12263         Took out debug printfs in ucsim "next" command.
12264
12265         * sim/ucsim/xa.src:
12266         Karl and Johan start ucsim XA support.  Most dissassembly working,
12267         about 75% emulation done(plenty of work remaining).
12268
12269         * sim/ucsim/z80.src:
12270         Add Z80 support to ucsim, add test-ucz80 regression test,
12271         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
12272         Notice z80 compiler fails on examples/test3.c/crc code.
12273
12274 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
12275
12276         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
12277         Added support for --parms-in-bank1
12278
12279         * src/ds390/peeph.def:
12280         added a few more peephole optimzations
12281
12282         * src/ds390/main.c:
12283         1) added __builtin_inp & __builtin_outp used to read in data of given length
12284            from a memory mapped port
12285         2) added __builtin_memcmp
12286         3) added __builtin_swapw swap bytes of a short
12287
12288         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
12289         1) handle multiple send & receives from register bank1
12290         2) ralloc can now allocate DPTR1 to some liveRanges
12291
12292         * src/SDCCsymt.c, src/SDCCsymt.h:
12293         changes to handle multiple sends & receives
12294
12295         * src/SDCCptropt.h:
12296         added some pointer arithmetic optimization
12297
12298         * src/SDCCptropt.c:
12299         added some pointer arithmetic optimizations but not stable yet so not
12300         called from anywhere (will get this working shortly)
12301
12302         * src/SDCCopt.c: fixed for multiple sends & receives
12303
12304         * src/SDCCmain.c:
12305         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
12306         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
12307            set preprocessor defines (depending on options)
12308
12309         * src/SDCCicode.c, src/SDCCicode.h:
12310         changes made to handle multiple sends & receives
12311
12312         * src/SDCCglobl.h:
12313         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
12314
12315         * src/SDCCcse.c, src/SDCCcse.h:
12316         added function findbackward def (to be used in upcoming optimization)
12317
12318         * src/SDCCcflow.c, src/SDCCcflow.h:
12319         added function returnAtEnd - to determine if a basic block terminates with
12320         a RETURN iCode
12321
12322         * src/SDCCast.c, src/SDCCast.h:
12323         added option parms-in-bank1
12324
12325         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
12326         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
12327         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
12328         adjusted for --parms-in-bank1 option
12329
12330         * device/include/string.h:
12331         donot redefine "reentrant" keyword
12332
12333         * device/include/ds80c390.h: Added some more SFRs
12334
12335 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
12336
12337         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
12338
12339 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
12340
12341         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
12342
12343 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
12344
12345         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
12346
12347 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
12348
12349         * Added --xram-movc option
12350
12351 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
12352
12353         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
12354
12355 2002-01-11  Johan Knol
12356
12357         * Added math lib of Jesus Calvino-Fraga
12358
12359 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
12360
12361         * src/SDCCmain.c (processFile): fix processing of ../../src.c
12362         * support/regression/Makefile: new target test-mcs51-stack-auto
12363         * support/regression/ports/mcs51-stack-auto/spec.mk: added
12364
12365 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
12366
12367         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
12368
12369 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
12370
12371         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
12372
12373 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
12374
12375         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
12376
12377         * src/SDCCglue.h: add definition for printIvalChar()
12378
12379 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
12380
12381         * src/SDCCast.c: fix #498138 by Johan
12382
12383         * src/SDCCglue.c: fix #498138 by Johan
12384
12385 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
12386
12387         * support/regression/Makefile: fix clean
12388
12389         * support/regression/ports/ds390/support.c: fix transmission of last character
12390
12391 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
12392
12393         * /sdcc/src/ds390/gen.c:
12394         a) improved computing address of stack variable
12395         b) took out some #if 0 code
12396         c) improved parmBytes adjustment
12397         d) improved genPlusIncr & genMinusIncr
12398         e) genCmp could generate bad code (when left assigned to DPTR)
12399         f) Fixed bug in hasInc
12400
12401         * /sdcc/src/ds390/ralloc.c:
12402         a) packRegsForSupport could mess up live information (Fixed)
12403         b) packRegsDPTRuse could be incorrect for left & right shift
12404
12405         * /sdcc/src/mcs51/ralloc.c:
12406         packRegsForSupport could mess up the live information (Fixed)
12407
12408         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
12409
12410         * /sdcc/src/SDCCast.c:
12411         can reverse a loop even if function call is present as long
12412         as the loop control variable is local & is not passed as parameter
12413
12414 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12415
12416         * /sdcc/ChangeLog: *** empty log message ***
12417
12418         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
12419         More builtin function additions for TININative
12420
12421         * /sdcc/src/ds390/ralloc.c:
12422         Had broken the regression testsuite
12423
12424         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
12425
12426         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
12427         Added funcattr hasStackParms will be set for reentrant functions when there
12428         are paramteres on the stack, this helps in minimizing frame pointer generation
12429         typeFromStr can handle function pointers now
12430
12431         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
12432         *** empty log message ***
12433
12434 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12435
12436         * /src/ds390/gen.c, /src/ds390/main.c:
12437         More builtin function additions for TININative
12438
12439         * /src/ds390/ralloc.c:
12440         Had broken the regression testsuite
12441
12442         * /src/SDCCast.c: Fixed a bug in dumptree
12443
12444         * /src/SDCCsymt.c, /src/SDCCsymt.h:
12445         Added funcattr hasStackParms will be set for reentrant functions when there
12446         are paramteres on the stack, this helps in minimizing frame pointer generation
12447         typeFromStr can handle function pointers now
12448
12449         * /doc/builtins.txt, /doc/TININative.txt:
12450         *** empty log message ***
12451
12452
12453 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12454
12455         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
12456         ALPHA version for -mTININative
12457
12458         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
12459         updated to reflect changes in the port structure
12460
12461         * /src/port.h:
12462         added function do_assemble (similar to do_link) if non-null this function
12463         will be called to do assembly (-mTININative) requires a multi command
12464         assembly
12465         added function genAssemblerEnd will be called to generate assembler Epilogue
12466
12467         * /src/SDCCsymt.c:
12468         added _JavaNative to debug info printing
12469
12470         * /src/SDCCmain.c: added option --tini-libid
12471         added port->do_assemble function (-mTININative) has a multi command assemble
12472
12473         * /src/SDCCglue.c: Disabled "constExpr" check
12474         added port->genAssemblerEnd function
12475
12476         * /src/SDCCglobl.h: Added option --tini-libid value
12477
12478         * /src/SDCCast.h:
12479         tookout optimizeCompare from the header (has no external references)
12480
12481         * /src/SDCCast.c: made one more function "static"
12482
12483 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
12484
12485         * src/z80/mappings.i: Added z80asm support.
12486
12487         * src/z80/main.c: Added z80asm support on --asm=z80asm
12488
12489         * src/z80/gen.c: Fixed asm portability issues.
12490
12491         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
12492
12493         * src/SDCCglue.c (printExterns): Added global/extern split.
12494
12495 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
12496
12497         * support/regression/Makefile: added test for mcs51 model large
12498
12499         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
12500
12501         * support/regression/ports/gbz80/spec.mk: added -mgbz80
12502
12503 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
12504
12505         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
12506
12507 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
12508
12509         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
12510
12511         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
12512
12513 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
12514
12515         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
12516
12517         * support/regression/tests/simplefloat.c: Port to mcs51.
12518
12519 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
12520         * support/regression/tests/bug-485362.c: Added.
12521
12522         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
12523
12524         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
12525
12526         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
12527
12528         * src/z80/gen.c (aopDump): Added a dump function.
12529
12530 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
12531         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
12532
12533         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
12534
12535         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
12536
12537         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
12538
12539         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
12540
12541         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
12542
12543         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
12544
12545         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
12546
12547         * support/regression/ports/ds390/support.c: Use tinibios.
12548
12549         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
12550
12551 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
12552
12553         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
12554         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
12555
12556         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
12557
12558         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
12559
12560 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
12561
12562         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
12563
12564         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
12565         (packRegsForIYUse): Created and optimised.
12566
12567 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12568
12569         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
12570 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
12571
12572         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
12573
12574         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
12575
12576         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
12577
12578 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12579
12580         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
12581
12582         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
12583
12584 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12585
12586         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
12587
12588         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
12589
12590         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
12591
12592 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12593
12594         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
12595         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
12596         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
12597
12598         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
12599
12600         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
12601         (genNotFloat): Added.
12602         (genUminusFloat): Added.
12603
12604         * device/lib/z80/Makefile: Added floating pt stubs.
12605
12606         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
12607
12608         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
12609
12610         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
12611
12612 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12613
12614         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
12615
12616         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
12617
12618         * sdcc/support/regression/Makefile: Add port ds390.
12619
12620         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
12621
12622         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
12623
12624         * sdcc/support/regression/ports/ds390/spec.mk: Added.
12625
12626         * sdcc/support/regression/ports/ds390/support.c: Added.
12627
12628         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
12629
12630         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
12631
12632         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
12633
12634 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12635
12636         * device/include/malloc.h: Added z80 and gbz80 support.
12637
12638         * device/lib/gbz80/heap.s: Added.
12639
12640         * device/lib/z80/heap.s: Added.
12641
12642         * device/lib/malloc.c: Added z80 and gbz80 support.
12643
12644         * support/regression/tests/malloc.c (testMalloc): Added.
12645
12646         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
12647
12648         * support/regression/tests/bug-478094.c: Added.
12649
12650         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
12651
12652 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
12653
12654         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
12655
12656         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
12657
12658         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
12659
12660         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
12661
12662         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
12663
12664 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12665
12666         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
12667
12668 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
12669
12670         * support/regression/tests/bug-477927.c: Added.
12671
12672         * src/z80/peeph.def: Added minor rules.
12673
12674         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
12675
12676         * src/z80/peeph.def: Added jump optimisation modification.
12677
12678 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
12679
12680         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
12681
12682 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
12683
12684         * support/regression/tests/funptrs.c: Added.
12685
12686 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
12687
12688         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
12689
12690 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
12691
12692         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
12693
12694         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
12695
12696         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
12697         (movLeft2ResultLong): Created.
12698
12699         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
12700         (joinPushes): Added.  Joins two char pushes into a word push.
12701
12702 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
12703
12704         * support/cpp2/Makefile.in (install): Added creation of dest dir.
12705
12706         * support/makebin/Makefile (install): Added creation of dest dir.
12707
12708 2001-10-24 Karl Bongers <karl AT turbobit.com>
12709
12710         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
12711
12712 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
12713
12714         * src/z80/ralloc.c: Turned off faulty pack for one use.
12715
12716         * src/z80/peeph-gbz80.def: Removed redundent restart options.
12717
12718         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
12719
12720 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
12721
12722         * support/regression/Makefile: Improved clean
12723
12724         * support/regression/ports/gbz80/spec.mk: Added clean
12725
12726         * support/regression/ports/host/spec.mk: Added clean
12727
12728         * support/regression/ports/z80/spec.mk: Added clean
12729
12730         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
12731
12732         * support/regression/ports/mcs51/timeout.c: little improvements
12733
12734 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
12735
12736         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
12737
12738         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
12739
12740         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
12741
12742 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
12743
12744         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
12745
12746         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
12747
12748 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
12749         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
12750
12751         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
12752
12753         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
12754
12755         * src/mcs51/main.c (_linkCmd): Added bin path to command.
12756
12757         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
12758
12759         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
12760
12761         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
12762
12763         * support/regression/tests/longor.c: Added.
12764
12765 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
12766
12767         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
12768
12769         * as/mcs51/aslink.h: define PATH_MAX
12770
12771         * as/mcs51/asm.h: define PATH_MAX
12772
12773         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
12774
12775         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
12776
12777         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
12778
12779         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
12780
12781         * src/SDCCglobl.h: define PATH_MAX
12782
12783         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
12784
12785         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
12786
12787 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
12788
12789         * src/z80/gen.c (gencjneshort): Fixed
12790
12791         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
12792
12793 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
12794
12795         * support/regression/tests/bug-469671.c: Added.
12796
12797         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
12798
12799 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
12800
12801         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
12802
12803         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
12804
12805 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
12806
12807         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
12808
12809         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
12810
12811         * src/device/lib/_mullong.c : removed hint: nooverlay bug
12812
12813         * src/device/lib/_divuint.c : removed hint: nooverlay bug
12814
12815         * src/device/lib/_divulong.c: removed hint: nooverlay bug
12816
12817         * src/device/lib/_moduint.c : removed hint: nooverlay bug
12818
12819         * src/device/lib/_modulong.c: removed hint: nooverlay bug
12820
12821 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
12822
12823         * 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.
12824
12825         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
12826
12827         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
12828
12829 2001-10-07    <johan AT FRIJA>
12830
12831         * device/lib/gets.c (gets): fixed the return value.
12832
12833 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
12834         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
12835
12836         * 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.
12837
12838         * 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.
12839
12840         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
12841
12842         * src/pic/gen.c: Removed Safe_strdup.
12843
12844         * configure.in: Added option to enable libgc support.
12845
12846         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
12847         (bitVectUnion): Optimised.
12848         (bitVectIntersect): Optimised.
12849         (bitVectBitsInCommon): Optimised.
12850         (bitVectCplAnd): Optimised.
12851
12852         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
12853
12854 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12855
12856         * src/SDCCmain.c: distinguish between assembler debug and plain options
12857
12858         * src/avr/main.c:   remove standard assembler options
12859
12860         * src/ds390/main.c: remove standard assembler options
12861
12862         * src/mcs51/main.c: remove standard assembler options
12863
12864         * src/port.h: removed "PENDING" comment
12865
12866 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12867
12868         * src/device/lib/_mulint.c  : new, with assember functions
12869
12870         * src/device/lib/_mullong.c : new, with assember functions
12871
12872         * src/device/lib/_divuint.c : with assember functions
12873
12874         * src/device/lib/_divsint.c : with assember functions
12875
12876         * src/device/lib/_divulong.c: with assember functions
12877
12878         * src/device/lib/_divslong.c: with assember functions
12879
12880         * src/device/lib/_moduint.c : with assember functions
12881
12882         * src/device/lib/_modsint.c : with assember functions
12883
12884         * src/device/lib/_modulong.c: with assember functions
12885
12886         * src/device/lib/_modslong.c: with assember functions
12887
12888         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
12889
12890         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
12891
12892         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
12893                                       replaced _mululong.c and _mulslong.c by _mullong.c
12894
12895 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12896
12897         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
12898
12899 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12900
12901         * src/SDCCglue.c: test, if win32api is available for MINGW
12902
12903 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12904
12905         * src/SDCCsymt.c: no more _modifier in printTypeChain()
12906         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
12907         * support/regression/ports/gbz80/spec.mk: removed GENERIC
12908         * support/regression/ports/host/spec.mk: removed GENERIC
12909         * support/regression/ports/mcs51/spec.mk: removed GENERIC
12910         * support/regression/ports/z80/spec.mk: removed GENERIC
12911
12912 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
12913
12914         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
12915
12916         * support/regression/tests/bug-467035.c: Created.
12917
12918 2001-10-01    <johan AT FRIJA>
12919
12920         * src/SDCC.y: fixed bug #466586 part 1
12921
12922 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
12923
12924         * SDCCicode.c: z80 has no generic pointers
12925         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
12926
12927 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
12928
12929         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
12930
12931 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
12932
12933         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
12934
12935         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
12936
12937 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
12938
12939         * configure.in: Fixed up so that ucsim is only configured once.
12940
12941         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
12942
12943         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
12944         (getPathDifference): As above.
12945
12946         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
12947
12948         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
12949
12950 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
12951         * .version: Updated to 2.3.1
12952
12953         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
12954         Added copyright header.
12955
12956         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
12957         (assemble): Added support for macro based assembler commands.
12958         (linkEdit): Added support for macro based linker commands.
12959         (preProcess): Changed the pre-processor to use macros.
12960         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
12961         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
12962
12963         * device/lib/z80/crt0.s: Added module name for debugging.
12964
12965 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
12966
12967         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12968
12969         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
12970
12971         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
12972
12973         * src/Makefile.in: Added SDCCmacro and SDCCutil
12974
12975 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
12976
12977         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12978
12979 2001-09-16    <johan AT FRIJA>
12980
12981         * 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.
12982
12983 2001-09-15    <johan AT FRIJA>
12984
12985         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
12986         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
12987
12988 2001-09-11    <johan AT FRIJA>
12989
12990         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
12991
12992 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
12993
12994         * support/regression/tests/bug-460444.c: Added test case.
12995
12996         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
12997         (genCast): Added justification for all of the asserts.
12998
12999 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
13000
13001         * support/regression/support.c: _xdata replaced by xdata
13002
13003         * support/regression/spec.mk: removed _generic
13004
13005 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
13006
13007         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
13008
13009         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
13010         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
13011
13012         * src/z80/peeph.def: Added a rule to optimise shift then compare.
13013
13014         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
13015
13016         * support/regression/tests/bug-460010.c: Added test case.
13017
13018         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
13019
13020 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
13021
13022         * support/regression/Makefile: inter-port-clean adjusted for mcs51
13023
13024         * support/regression/testfwk.c: removed workaround for bug #436344
13025
13026         * support/regression/tests/bp.c: use less memory with mcs51
13027
13028         * support/regression/tests/bug-441448.c: use less memory
13029
13030         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
13031
13032         * support/regression/collate-results.py: typo
13033
13034 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
13035
13036         * support/regression/tests/fetchoverlap.c: Added new test case.
13037
13038         * support/regression/tests/bp.c: Added new test case.
13039
13040         * support/regression/tests/bug-448984.c: Added new test case.
13041
13042         * support/regression/tests/pow2shifts.c: Added new test case.
13043
13044         * src/z80/gen.c: Turned off the noise it normally generates for the release.
13045         (genlshTwo): Fixed right shift for count > 8.
13046
13047         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
13048
13049 2001-09-08    <johan AT FRIJA>
13050
13051         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
13052
13053 2001-09-07    <johan AT FRIJA>
13054
13055         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
13056
13057         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
13058
13059 2001-09-06    <johan AT FRIJA>
13060
13061         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
13062         * bernhard noted me at this: "() equals to (void)" (1.38)
13063
13064 2001-09-05    <johan AT FRIJA>
13065
13066         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
13067
13068 2001-09-04    <johan AT FRIJA>
13069
13070         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
13071
13072
13073 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
13074
13075         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
13076
13077 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
13078
13079         * link/z80/aslink.h: Fixed path for PATH_MAX
13080
13081 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
13082
13083         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
13084
13085         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
13086
13087         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
13088
13089         * 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.
13090
13091 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
13092
13093         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
13094         (genCmp): Fixed up genCmp for the GB with longs.
13095
13096         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
13097
13098         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
13099
13100         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
13101
13102         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
13103
13104 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
13105
13106         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
13107
13108 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
13109
13110         * 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.
13111
13112         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
13113
13114 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
13115
13116         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
13117
13118         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
13119
13120 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
13121
13122   * sim/ucsim/configure:    little improvement of Cygwin-detection
13123   * sim/ucsim/configure.in: little improvement of Cygwin-detection
13124   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
13125   * support/regression/tests/bug-221100.c: small changes for mcs51
13126   * support/regression/tests/bug-221168.c: small changes for mcs51
13127   * support/regression/tests/bug-227710.c: small changes for mcs51
13128   * support/regression/tests/staticinit.c: small changes for mcs51
13129   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
13130   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13131   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13132
13133 $Revision$