* device/include/mcs51/cc2430.h: inserted _XPAGE
[fw/sdcc] / ChangeLog
1 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * device/include/mcs51/cc2430.h: inserted _XPAGE
4
5 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
6
7         * device/include/mcs51/cc2430.h: added
8
9 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
10
11         * device/include/asm/default/features.h,
12         * device/include/asm/ds390/features.h,
13         * device/include/mcs51/at89s53.h,
14         * device/include/ser.h,
15         * device/include/ser_ir.h,
16         * device/include/serial.h: changed keywords to double underscore variants,
17           fixes bug 1590261 some more, thanks Steven Borley
18
19 2006-12-01 Raphael Neider <rneider AT web.de>
20
21         * src/pic/pcode.c (register_reassign): do not crash on recursive code
22           but emit warning (recursion is not supported for pic14)
23
24 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
25
26         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
27         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
28
29 2006-11-30 Raphael Neider <rneider AT web.de>
30
31         * src/pic/device.c (dump_sfr): always emit symbols
32         * src/pic/glue.c (pic14printPublics): fixed typo
33
34 2006-11-30 Raphael Neider <rneider AT web.de>
35
36         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
37           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
38           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
39            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
40            a sharebank, use a non-shared bank for the stack if none available
41         * src/pic/device.h (struct memRange): added linked list next field,
42           added prototypes for above functions
43         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
44           (typeRegWithIdx): accept fixed and unfixed stack registers
45         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
46           the stack, handle shared and banked stack (except for WSAVE),
47           (insertBankSel): removed useless optimization (will never fire),
48           (FixRegisterBanking): added optimization for devices with only one
49           possibly aliased bank of memory, like 16f84
50         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
51           devices have no SHAREBANK in the linker script
52         * device/include/pic/pic14devices.txt: documented memmap
53         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
54
55 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
56
57         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
58           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
59           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
60           genhc08Code): switched most of the D (debug) macros to DD (detailed
61           debug) macros to better control clutter in the generated .asm file.
62         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
63           genRightShift): fixed bug with non-constant bit shift stored to
64           a volatile result (SF Open Discussion forum thread #1616749).
65           Single byte case is not yet optimized.
66
67 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
68
69         * device/include/asm/mcs51/features.h,
70         * device/include/malloc.h,
71         * device/include/stdio.h: changed keywords to double underscore variants,
72           fixes bug 1590261
73
74 2006-11-27 Borut Razem <borut.razem AT siol.net>
75
76         * support\cpp2\cppexp.c, support\cpp2\hashtable.h,
77           support\cpp2\Makefile.in, support\cpp2\cppfiles.c,
78           support\cpp2\output.h, support\cpp2\cppinit.c,
79           support\cpp2\cpplib.c, support\cpp2\cpplib.h,
80           support\cpp2\Makefile.bcc, support\cpp2\cpphash.c,
81           support\cpp2\cppdefault.c, support\cpp2\system.h,
82           support\cpp2\cpphash.h, support\cpp2\cpplex.c,
83           support\cpp2\cppdefault.h, support\cpp2\mbchar.c,
84           support\cpp2\prefix.c, support\cpp2\except.h,
85           support\cpp2\hwint.h, support\cpp2\cppmacro.c,
86           support\cpp2\line-map.h, support\cpp2\sdcpp.dsp,
87           support\cpp2\sdcc.h, support\cpp2\mkdeps.c,
88           support\cpp2\version.c, support\cpp2\cppmain.c,
89           support\cpp2\version.h, support\cpp2\hashtable.c,
90           support\cpp2\cpperror.c:
91           synchronized with GCC CPP release version 3.3.6,
92           the latest where cppmain.c still exists.
93         * support\cpp2\cpptrad.c, support\cpp2\sdcppmain.c,
94           support\cpp2\sdcppinit.c: added
95
96 2006-11-27 Borut Razem <borut.razem AT siol.net>
97
98         * support/cpp2/cpplex.c:
99           fixed _asm ... _endasm handling bug, introduce with GCC CPP
100           synchronization
101         * support/cpp2/cpplib.c: removed definitions of unused variables
102
103 2006-11-26 Borut Razem <borut.razem AT siol.net>
104
105         * support/cpp2/libiberty.h: commented out x*alloc() declarations
106           since they are redefined by macros in support/cpp2/sdcc.h
107         * support/cpp2/sdcc.h: x*alloc macro redefinition
108
109 2006-11-25 Borut Razem <borut.razem AT siol.net>
110
111         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
112           support/cpp2/configure, support/cpp2/Makefile.in,
113           support/cpp2/cppfiles.c, support/cpp2/output.h,
114           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
115           support/cpp2/config.h, support/cpp2/cpplib.h,
116           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
117           support/cpp2/cppdefault.c, support/cpp2/config.in,
118           support/cpp2/system.h, support/cpp2/cpplex.c,
119           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
120           support/cpp2/cppdefault.h, support/cpp2/prefix.c
121           support/cpp2/hwint.h, support/cpp2/mbchar.h,
122           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
123           support/cpp2/configure.in, support/cpp2/intl.h,
124           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
125           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
126           support/cpp2/version.c, support/cpp2/cppmain.c,
127           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
128           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
129           support/cpp2/cpperror.c,
130           support/cpp2/libiberty/safe-ctype.c,
131           support/cpp2/libiberty/safe-ctype.h,
132           support/cpp2/libiberty/splay-tree.c,
133           support/cpp2/libiberty/obstack.c,
134           support/cpp2/libiberty/lbasename.c,
135           support/cpp2/libiberty/splay-tree.h,
136           support/cpp2/libiberty/obstack.h:
137           synchronized with GCC CPP release version 3.2.3,
138           the latest before integration of cpp into gcc
139         * support/cpp2/except.h, support/cpp2/line-map.c,
140           support/cpp2/line-map.h,
141           support/cpp2/libiberty/hex.c,
142           support/cpp2/libiberty/concat.c,
143           support/cpp2/libiberty/filenames.h: added
144         * support/cpp2/intl.c: deleted
145
146 2006-11-24 Borut Razem <borut.razem AT siol.net>
147
148         * src/SDCC.y: enabled compilation of empty source file
149         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
150           "ISO C forbids an empty source file"
151         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
152           if all the code is ifdefed out.
153
154 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
155
156         * src/hc08/gen.c (genPcall): fix for bug #1601032
157
158 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
159
160         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
161         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
162         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
163         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
164         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
165         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
166         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
167         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
168         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
169         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
170         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
171         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
172         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
173         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
174         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
175           Renamed to all upper case as per the standard set by SiLabs
176
177 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
178
179         * device/include/mcs51/C8051F520.h: new, added
180         * device/include/mcs51/compiler.h: added link about predefined macros
181
182 2006-11-23 Raphael Neider <rneider AT web.de>
183
184         * src/regression/Makefile: add -L path to fresh library
185         * src/regression/simulate: emphasize FAILED output
186         * src/regression/create_stc: output _failures from gpsim
187         * src/regression/compare4.c,
188         * src/regression/rotate6.c: fixed char literals,
189           all compile, all run =8-D
190
191         * src/pic/pcode.h: added isPCASMDIR macro
192         * src/pic/gen.c (genAnd): fixed bit offset
193         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
194           packBits): unified register numbering schemes,
195           (newReg): do not insert stack registers into hash table,
196           (initStack): unpinned pseudo stack, simplified,
197           (typeRegWithIdx): fixed retrieval of stack registers,
198         * src/pic/pcode.c (addpCodeComment,sameBank): added,
199           (pCodeReplace): removed invalid assertion,
200           (insertPCodeInstruction): fixed newly added labels,
201           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
202           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
203           DumpFlow): removed unsed (broken?) code,
204           (insertBankSel): prevent STATUS from being BANKSELed,
205           (FixRegisterBanking): rewritten from scratch, implemented generic
206             optimizations (suppress BANKSELs to same register and to registers
207             present in all banks),
208           (AnalyzeBanking): update flow after BANKSELection
209
210         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
211             sharebank, let linker place it, mark STKxx symbols as emitted
212
213 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
214
215         * src/regression/arrays.c,
216         * src/regression/bank1.c,
217         * src/regression/bool2.c,
218         * src/regression/compare7.c,
219         * src/regression/compare8.c,
220         * src/regression/compare9.c,
221         * src/regression/compare10.c,
222         * src/regression/configword.c,
223         * src/regression/for.c,
224         * src/regression/mult1.c,
225         * src/regression/pointer1.c,
226         * src/regression/rotate6.c,
227         * src/regression/string1.c,
228         * src/regression/struct1.c,
229         * src/regression/Makefile: make PIC14 regression tests run again
230           (3 fail, 6 won't compile)
231
232 2006-11-21 Raphael Neider <rneider AT web.de>
233
234         * device/include/pic16/pic18f4550.h,
235         * device/include/pic16/pic18f4455.h,
236         * device/lib/pic16/libdev/pic18f4550.c,
237         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
238         * configure.in: removed superfluous closing bracket
239
240 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
241
242         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
243           always positive.
244
245 2006-11-21 Raphael Neider <rneider AT web.de>
246
247         * src/pic/device.{c,h}: added pic14_getPIC()
248         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
249           (genAnd): added PIC code for one case, fixes #1597044
250         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
251           SFRs that are present in all banks (e.g., STATUS)
252
253 2006-11-20 Raphael Neider <rneider AT web.de>
254
255         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
256           INCFSZ/INCFSZW and declared them as changing Z bit,
257           (insertPCodeInstruction): correctly invert the above instructions,
258           fixes #1599333,
259           (DoBankSelect): don't panic on po_immediates
260
261 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
262
263         * as/link/aslink.h,
264         * as/link/mcs51/lkihx.c (newArea),
265         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
266         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
267
268 2006-11-11 Raphael Neider <rneider AT web.de>
269
270         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
271           bitfield symbols, fixes #1579535 (once more...).
272
273 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
274
275         * support/regression/generate-cases.py,
276         * support/regression/fwk/include/testfwk.h,
277         * support/regression/fwk/lib/testfwk.c: used code pointers,
278           (about 50kByte less code generated for mcs51)
279
280 2006-11-06 Borut Razem <borut.razem AT siol.net>
281
282         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
283           debugger/mcs51/configure: fixed failed check because the function
284           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
285           who submitted the patch for gpsim.
286         * debugger/mcs51/configure.in: removed the result message
287         * debugger/mcs51/Makefile.in: fixed the config.status warning
288           "... seems to ignore the --datarootdir setting"
289
290 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
291
292         * device/include/mcs51/c8051f020.h,
293         * device/include/mcs51/c8051f040.h,
294         * device/include/mcs51/c8051f060.h,
295         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
296         * src/z80/gen.c (gencjneshort),
297         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
298
299 2006-10-31 Borut Razem <borut.razem AT siol.net>
300
301         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
302           debugger/mcs51/configure: get readline version
303
304 2006-10-30 Borut Razem <borut.razem AT siol.net>
305
306         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
307         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
308           debugger/mcs51/configure: locate readline even when cross compiling
309         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
310
311 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
312
313         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
314           serial port.
315
316 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
317
318         * device/include/malloc.h,
319         * device/lib/calloc.c,
320         * device/lib/free.c,
321         * device/lib/malloc.c,
322         * device/lib/realloc.c: moved definition of struct into sources
323         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
324
325 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
326
327         * as/asx8051.dsp: corrected output directories
328         * as/link/hc08: new directory for hc08 linker
329         * as/hc08/aslink.h,             as/link/aslink.h,
330         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
331         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
332         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
333         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
334         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
335         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
336         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
337         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
338         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
339         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
340         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
341         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
342         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
343         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
344         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
345         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
346         * as/link/hc08/conf.mk,
347         * configure,
348         * configure.in,
349         * Makefile.in,
350         * sdcc.dsw: moved hc08 linker to as/link/hc08
351         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
352         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
353         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
354         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
355         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
356         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
357         * as/link/mcs51/aslink.dsp,
358         * as/link/mcs51/Makefile.in: factored out the common files
359         * as/hc08/lkstore.c: deleted, use the one already in as/link/
360         * as/clean.mk: extra cleaning common files
361         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
362         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
363         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
364
365 2006-10-29 Raphael Neider <rneider AT web.de>
366
367         * src/pic/ralloc.c (newReg): create aliases for registers with
368           multiple names to fix #1579535 and #1584001,
369           (regWithIdx,dirregWithName): resolve aliases on lookup
370         * src/pic/pcode.c (DoBankSelect): die with error message on failing
371           bankselect
372         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
373           to prevent build errors on small devices
374
375 2006-10-28 Raphael Neider <rneider AT web.de>
376
377         * src/pic/gen.c (genFunction,genCall): drop "same code page"
378           assumption within interrupt handlers, fixes #1584940
379         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
380           "emitted" to avoid emitting them again in udata
381
382 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
383
384         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
385         Removed.
386
387 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
388
389         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
390         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
391         on/off CR to CRLF conversion.
392
393 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
394
395         * doc/sdccman.lyx: updated IRQ section
396
397 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
398
399         * device/lib/serial_io.c: removed
400         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
401         replacements for serial_io.c
402
403 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
404
405         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
406
407 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
408
409         * device/lib/serial_io.c: Default putchar() and getchar() for
410           mcs51 uses serial port.
411
412 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
413
414         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
415
416 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
417
418         * support/regression/ports/mcs51/support.c: smaller
419         _sdcc_external_startup()
420         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
421
422 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
423
424         * device/lib/gbz80/crt0.s,
425         * device/lib/gbz80/crt0_rle.s,
426         * device/lib/gbz80/div.s,
427         * device/lib/gbz80/fstubs.s,
428         * device/lib/gbz80/heap.s,
429         * device/lib/gbz80/mul.s,
430         * device/lib/gbz80/putchar.s,
431         * device/lib/gbz80/stubs.s,
432         * device/lib/z80/crt0.s,
433         * device/lib/z80/crt0_rle.s,
434         * device/lib/z80/div.s,
435         * device/lib/z80/fstubs.s,
436         * device/lib/z80/heap.s,
437         * device/lib/z80/mul.s,
438         * device/lib/z80/putchar.s,
439         * device/lib/z80/stubs.s: reverted, I was mistaken
440
441 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
442
443         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
444         * support/regression/ports/mcs51/support.c: removed race
445         condition on TI in _putchar allowing to use serial port mode 0
446
447 2006-10-20 Borut Razem <borut.razem AT siol.net>
448
449         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
450
451 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
452
453         * device/lib/gbz80/crt0.s,
454         * device/lib/gbz80/crt0_rle.s,
455         * device/lib/gbz80/div.s,
456         * device/lib/gbz80/fstubs.s,
457         * device/lib/gbz80/heap.s,
458         * device/lib/gbz80/mul.s,
459         * device/lib/gbz80/putchar.s,
460         * device/lib/gbz80/stubs.s,
461         * device/lib/z80/crt0.s,
462         * device/lib/z80/crt0_rle.s,
463         * device/lib/z80/div.s,
464         * device/lib/z80/fstubs.s,
465         * device/lib/z80/heap.s,
466         * device/lib/z80/mul.s,
467         * device/lib/z80/putchar.s,
468         * device/lib/z80/stubs.s: removed all leading underscores from area names
469
470 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
471
472         * support/regression/ports/mcs51/support.c: use highest baudrate so the
473           regression tests are not waiting in the simulator for simulated
474           transmission of debug output
475
476 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
477
478         * device/lib/printf_large.c: slightly smaller
479         * doc/sdccman.lyx: do not use spaces within html links
480
481 2006-10-16 Borut Razem <borut.razem AT siol.net>
482
483         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
484           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
485           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
486           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
487           debugger/mcs51/configure:
488           [ 1185668 ] add gnu readline support to sdcdb - enabled
489
490 2006-10-16 Raphael Neider <rneider AT web.de>
491
492         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
493           fixes #1577882, removes close to all banking optimizations
494
495 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
496
497         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
498           variables in code memory
499         * support/regression/tests/absolute.c: added test for this
500
501 2006-10-15 Raphael Neider <rneider AT web.de>
502
503         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
504           devices,
505           (BankSelect): emit BANKSEL before touching linker-placed regs,
506           fixes #1570934
507
508 2006-10-10 Raphael Neider <rneider AT web.de>
509
510         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
511         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
512         * src/pic/main.c (_pic14_parseOptions),
513         * src/pic/main.h: mostly reverted to previous state, now use results
514             from SDCCmain.c's argument parsing
515
516 2006-10-10 Borut Razem <borut.razem AT siol.net>
517
518         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
519           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
520           [ 1185668 ] add gnu readline support to sdcdb -
521           prepared for READLINE, not enabled yet,
522           thanks to <tal.bav AT gmail.com>
523
524 2006-10-10 Raphael Neider <rneider AT web.de>
525
526         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
527         * src/pic16/devices.inc,
528         * device/include/pic16 (pic18f[24]620.h),
529         * device/include/pic18fregs.h,
530         * device/lib/pic16/pics.all,
531         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
532             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
533             Gary Plumbridge and Anton Strobl
534
535 2006-10-10 Raphael Neider <rneider AT web.de>
536
537         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
538           --stack-siz=NUM options to configure the argument passing stack
539         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
540         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
541           (pic14_getSharebankSize): obey --stack-siz=NUM,
542           (pic14_getSharebankAddress): obey --stack-loc=NUM
543
544 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
545
546         * doc/sdccman.lyx: added to the manual
547         * doc/figures/ddd_example.png: added (neither pdflatex nor
548         most browsers seem to like the .eps file)
549
550 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
551
552         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
553         to /tmp and /var/tmp acc. LSB
554         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
555         RESULT_TYPE_IFX
556         * support/regression/tests/onebyte.c: added test
557
558 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
559
560         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
561
562 2006-10-05 Borut Razem <borut.razem AT siol.net>
563
564         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
565           thanks to dfulab:
566           - sdcc.dsw: changed property eol-style to CRLF
567           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
568
569 2006-10-04 Raphael Neider <rneider AT web.de>
570
571         * device/include/pic/{pic16f84.h,pic16f84a.h},
572         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
573           from patch #1522504, thanks to Robas Teodor
574
575 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
576
577         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
578           fixes bug 1566015
579
580 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
581
582         * src/pic16/glue.c (pic16emitMaps),
583         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
584         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
585         * device/lib/pic16/libc/string/memcpypgm2ram.c,
586         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
587           Philipp Krause
588         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
589         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
590
591 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
592
593         * support/librarian/sdcclib.c: Added option -l.
594         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
595           usage totals.
596         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
597           using Windows command prompt.
598
599 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
600
601         * device/lib/libsdcc.lib: added module rand
602         * src/ds390/ralloc.c (rematStr),
603         * src/hc08/ralloc.c (rematStr),
604         * src/mcs51/ralloc.c (rematStr),
605         * src/z80/ralloc.c (rematStr): made output more consistent
606         * src/mcs51/gen.c: cosmetic changes
607
608 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
609
610         * src/port.h: added mem.cabs_name to PORT
611         * src/ds390/main.c,
612         * src/hc08/main.c,
613         * src/mcs51/main.c,
614         * src/pic16/main.c,
615         * src/pic/main.c,
616         * src/xa51/main.c,
617         * src/z80/main.c: added cabs_name initializers
618         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
619           constants
620           (emitMaps): emit absolutes in code memory into cabs_name
621         * src/SDCCmem.c,
622         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
623         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
624         * support/regression/fwk/include/testfwk.h: added define for at
625         * support/regression/tests/absolute.c: added, new
626
627 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
628
629         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
630           optimizations, see also patch 887161 by Stas Sergeev
631         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
632           to be necessary anymore,
633           (102, 103, 104, 127): renamed all occurances of bp to _bp
634
635 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
636
637         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
638           thanks Weston T. Schmidt for patch 1555221
639         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
640         * src/SDCCicode.c(geniCodeMultiply): small optimization
641
642 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
643
644         * device/include/stdlib.h: added rand prototypes
645         * device/lib/rand.c: new, added
646         * device/lib/Makefile.in: added rand.c
647         * src/z80/peeph.def,
648         * src/z80/peeph-gbz80.def,
649         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
650
651 2006-09-20 Raphael Neider <rneider AT web.de>
652
653         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
654
655 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
656
657         * as/link/aslink.h: cosmetic changes
658         * as/link/mcs51/Makefile.in,
659         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
660
661 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
662
663         * as/link/aslink.h,
664         * as/link/mcs51/aslink.h,
665         * as/link/z80/aslink.h: merged and moved to as/link/
666         * as/link/lkstore.c,
667         * as/link/mcs51/lkstore.c: moved to as/link/
668         * as/link/clean.mk: remove *.o
669         * as/link/mcs51/alloc.h: deleted
670         * as/link/mcs51/lkarea.c: added lnksect prototype
671         * as/link/mcs51/lkdata.c,
672         * as/link/mcs51/lklex.c,
673         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
674         * as/link/mcs51/lkmem.c,
675         * as/link/mcs51/lknoice.c: removed include strcmpi.h
676         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
677         * as/link/mcs51/aslink.dsp,
678         * as/link/mcs51/Makefile.aslink,
679         * as/link/mcs51/Makefile.bcc,
680         * as/link/mcs51/Makefile.in: updated for moved files
681         * as/link/z80/lkarea.c,
682         * as/link/z80/lkhead.c,
683         * as/link/z80/lklex.c,
684         * as/link/z80/lklibr.c,
685         * as/link/z80/lklist.c,
686         * as/link/z80/lkmain.c,
687         * as/link/z80/lkrloc.c,
688         * as/link/z80/lksym.c: synced with mcs51
689         * as/link/z80/lkdata.c,
690         * as/link/z80/lkeval.c,
691         * as/link/z80/lkihx.c,
692         * as/link/z80/lks19.c: cosmetic changes
693         * as/link/z80/Makefile.in,
694         * as/link/z80/linkgbz80.dsp,
695         * as/link/z80/linkz80.dsp: updated for moved files
696
697 2006-09-16 Borut Razem <borut.razem AT siol.net>
698
699         * debugger/mcs51/sdcdb.c: partially fixed
700           [ 1203664 ] sdcdb fails to open files w. two "." periods
701         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
702           debugger/mcs51/symtab.h: fixed indenting
703         * configure.in, configure: up to date with latest Maarten's changes
704
705 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
706
707         as/link/mcs51
708         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
709         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
710         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
711         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
712         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
713         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
714         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
715         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
716         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
717         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
718         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
719         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
720         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
721         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
722         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
723         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
724         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
725         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
726         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
727         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
728         as/link/mcs51/alloc.h,
729         as/link/mcs51/clean.mk,
730         as/link/mcs51/conf.mk,
731         as/link/mcs51/Makefile.bcc,
732         as/link/mcs51/Makefile.in,
733         as/link/mcs51/readme.390,
734         as/link/mcs51/strcmpi.c,
735         as/link/mcs51/strcmpi.h,
736         as/mcs51/clean.mk,
737         as/mcs51/Makefile.bcc,
738         as/mcs51/Makefile.in,
739         configure,
740         Makefile.in,
741         sdcc.dsw: moved mcs51 linker to as/link/mcs51
742
743 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
744
745         * as/link,
746         * as/link/Makefile.in,
747         * as/link/z80/linkgbz80.dsp,
748         * as/link/z80/linkz80.dsp,
749         * configure,
750         * link,
751         * link/clean.mk,
752         * link/Makefile.in,
753         * link/README,
754         * link/z80,
755         * link/z80/aslink.h,
756         * link/z80/clean.mk,
757         * link/z80/conf.mk,
758         * link/z80/linkgbz80.dsp,
759         * link/z80/linkz80.dsp,
760         * link/z80/lkarea.c,
761         * link/z80/lkdata.c,
762         * link/z80/lkeval.c,
763         * link/z80/lkgb.c,
764         * link/z80/lkgg.c,
765         * link/z80/lkhead.c,
766         * link/z80/lkihx.c,
767         * link/z80/lklex.c,
768         * link/z80/lklibr.c,
769         * link/z80/lklist.c,
770         * link/z80/lkmain.c,
771         * link/z80/lkrloc.c,
772         * link/z80/lks19.c,
773         * link/z80/lksym.c,
774         * link/z80/Makefile.in,
775         * Makefile.in,
776         * sdcc.dsw: moved link/ to as/link/
777
778 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
779
780         * as/mcs51/i51mch.c (machine): fixed warning
781
782 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
783
784         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
785
786 2006-09-09 Borut Razem <borut.razem AT siol.net>
787
788         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
789           sdcdb WIN32 native port
790         * src/clean.mk: fixed
791
792 2006-09-08 Borut Razem <borut.razem AT siol.net>
793
794         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
795
796 2006-09-08 Raphael Neider <rneider AT web.de>
797
798         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
799         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
800             to gplink to disable processor mismatch warning and to allow
801             the use of devices with only aliased (shared) memory banks,
802           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
803
804 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
805
806         * doc/sdccman.lyx: Some re-formating plus example on using
807           #pragma preproc_asm +/-
808
809 2006-09-07 Borut Razem <borut.razem AT siol.net>
810
811         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
812           section
813
814 2006-09-06 Borut Razem <borut.razem AT siol.net>
815
816         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
817           line at sdcc.nsi:153
818         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
819
820 2006-09-05 Borut Razem <borut.razem AT siol.net>
821
822         * configure.in, configure: support for winsock2
823         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
824           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
825           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
826           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
827           debugger/mcs51/symtab.h: sdcdb WIN32 native port
828
829 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
830
831         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
832           and OP_DEFS
833         * support/regression/tests/bug1551947.c: new, added
834         * src/SDCCsymt.h: strings are char* not byte*
835
836 2006-09-05 Raphael Neider <rneider AT web.de>
837
838         * device/lib/pic16/libdev/pic18f4550.c,
839           device/include/pic16/pic18f4550.h: added PORTD/TRISD
840             declarations/definitions from patch #1520949
841
842 2006-09-05 Raphael Neider <rneider AT web.de>
843
844         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
845           byte-aligned bitfields, fixes #1539278
846
847 2006-09-05 Raphael Neider <rneider AT web.de>
848
849         * src/pic/gen.c (genReceive): skip unreferenced arguments,
850           fixes #1544120
851
852 2006-09-04 Borut Razem <borut.razem AT siol.net>
853
854         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
855         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
856           -mno-cygwin is a part of the compiler name
857         * support/scripts/sdcc_mingw32: don't disable ucsim
858
859 2006-09-03 Borut Razem <borut.razem AT siol.net>
860
861         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
862         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
863
864 2006-09-03 Raphael Neider <rneider AT web.de>
865
866         * src/pic/ralloc.c,
867         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
868           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
869           fixes #1550049
870
871 2006-09-01 Borut Razem <borut.razem AT siol.net>
872
873         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
874           to make ppc-osx happy
875
876 2006-08-31 Borut Razem <borut.razem AT siol.net>
877
878         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
879         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
880         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
881         * support/regression/ports/ds390/spec.mk,
882           support/regression/ports/mcs51/spec.mk,
883           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
884           To run regression tests in mingw environment:
885           make DEV_NULL=NUL CC=gcc
886
887 2006-08-30 Borut Razem <borut.razem AT siol.net>
888
889         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
890           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
891           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
892           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
893           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
894           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
895           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
896           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
897           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
898           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
899           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
900           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
901           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
902           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
903           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
904           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
905           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
906           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
907           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
908           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
909           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
910           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
911           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
912           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
913           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
914           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
915           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
916           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
917           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
918           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
919           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
920           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
921           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
922           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
923           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
924           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
925           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
926           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
927           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
928           ucsim WIN32 native port
929
930 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
931
932         * doc/sdccman.lyx: added note on dynamic memory heap initialization
933
934 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
935
936         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
937         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
938
939 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
940
941         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
942         * support/regression/tests/bug1546986.c: new, added
943         * as/mcs51/.cvsignore,
944         * debugger/mcs51/.cvsignore,
945         * src/.cvsignore: deleted
946
947 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
948
949         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
950           definitions)
951
952 2006-08-20 Borut Razem <borut.razem AT siol.net>
953
954         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
955           removed cl_listen_console::match(), cl_console::match(),
956           restructured cl_commander::proc_input()
957
958 2006-08-16 Borut Razem <borut.razem AT siol.net>
959
960         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
961           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
962           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
963
964 2006-08-14 Borut Razem <borut.razem AT siol.net>
965
966         * support/regression/Makefile.in,
967           support/regression/ports/pic14/gpsim.cmd,
968           support/regression/ports/pic14/spec.mk,
969           support/regression/ports/pic14/support.c:
970           added pic14 regression test
971
972 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
973
974         * as/doc/asxhtm.html: documented changed ABS behaviour
975         * as/doc/README: fixed some typos
976
977 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
978
979         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
980           not defined on host
981
982 2006-08-12 Borut Razem <borut.razem AT siol.net>
983
984         * support/regression/fwk/include/testfwk.h,
985           support/regression/fwk/lib/testfwk.c,
986           support/regression/generate-cases.py,
987           support/regression/Makefile.in:
988           regression test framework does not depend on function pointers and
989           variable arguments
990
991 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
992
993         * device/include/stddef.h: c temporary hack to fix bug 1518273
994
995 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
996
997         * device/include/mcs51/cc2510fx.h: added
998         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
999           to projects.
1000
1001 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
1002
1003         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
1004         * as/z80/Makefile.in: added strcmpi.c
1005         * as/z80/z80adr.c: added upper case registers and lower case conditionals
1006         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
1007
1008 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
1009
1010         * device/lib/gbz80/asm_strings.s,
1011         * device/lib/gbz80/crt0_rle.s,
1012         * device/lib/gbz80/div.s,
1013         * device/lib/gbz80/mul.s,
1014         * device/lib/gbz80/shift.s,
1015         * device/lib/z80/asm_strings.s,
1016         * device/lib/z80/crt0_rle.s,
1017         * device/lib/z80/div.s,
1018         * device/lib/z80/mul.s,
1019         * device/lib/z80/shift.s: changed to all lower case menmonics except the
1020           flags which are all upper case
1021
1022 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1023
1024         * as/z80/asm.h: made CASE_SENSITIVE 1
1025         * link/z80/aslink.h: made CASE_SENSITIVE 1
1026         * src/z80/gen.c (throughout): made all conditionals upper case
1027         * support/regression/tests/bug1503067.c: new
1028
1029 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1030
1031         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
1032           (shiftIntoPair): added case 2 for PAIR_IY,
1033           (setupToPreserveCarry): replaced parameters with iCode and check if
1034            PAIR_DE is in use to fix bug 1399290,
1035           (genPlus, genMinus): updated call to setupToPreserveCarry
1036         * support/regression/tests/bug1399290.c: new
1037
1038 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
1039
1040         * device/lib/Makefile.in (Z80SOURCES): enabled float support
1041         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
1042         * src/ds390/gen.c (shiftRLong),
1043         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
1044         * src/mcs51/gen.c (sameReg): changed to sameByte,
1045           (xch_a_aopGet): new,
1046           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
1047            shiftRLong): fixed bug 1533966
1048         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
1049           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
1050         * support/regression/Makefile.in: disabled z80, enabled ucz80
1051         * support/regression/tests/float_trans.c: enabled test for z80 and host
1052         * support/regression/tests/shifts2.c: new, for testing bug 1533966
1053
1054 2006-08-01 Borut Razem <borut.razem AT siol.net>
1055
1056         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
1057           comparison is always false due to limited range of data type
1058           on PPC64 machine (openpower-linux1) where "char = unsigned char"
1059
1060 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
1061
1062         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
1063         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
1064         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
1065         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
1066
1067 2006-07-31 Borut Razem <borut.razem AT siol.net>
1068
1069         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
1070           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
1071           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
1072           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
1073           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
1074           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
1075           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
1076           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
1077           enable ucsim mingw compilation. Serial port is disabled,
1078           since it uses termios.h API, which is not available on native
1079           WIN32
1080
1081 2006-07-31 Borut Razem <borut.razem AT siol.net>
1082
1083         * Small Device C Compiler 2.6.0 released
1084         * support/scripts/sdcc.nsi: added FULL_DOC option
1085         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
1086
1087 2006-07-28 Borut Razem <borut.razem AT siol.net>
1088
1089         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
1090         * doc/INSTALL.txt: updated
1091
1092 2006-07-27 Borut Razem <borut.razem AT siol.net>
1093
1094         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
1095           device/lib/pic/libdev/Makefile.in: fixed bug
1096           [ 1438354 ] pic libsdcc: distclean doesn't work
1097         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
1098           device/lib/pic16/libio/Makefile.in: fixed bug
1099           [ 1438344 ] pic16 lib: clean doesn't work properly
1100         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
1101
1102 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
1103
1104         * device/lib/pic/libsdcc/fsdiv.c,
1105         * device/lib/pic/libsdcc/fsmul.c,
1106         * device/lib/pic16/libsdcc/float/fsdiv.c,
1107         * device/lib/pic16/libsdcc/float/fsmul.c,
1108         * device/lib/_fsdiv.c,
1109         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
1110         * support/regression/tests/bug1520966.c: added
1111         * doc/knownbugs.html: removed [ 1520966 ] from the list
1112
1113 2006-07-25 Borut Razem <borut.razem AT siol.net>
1114
1115         * configure.in, configure, sdccconf_in.h: fixed bug
1116           [ 1519095 ] regression test onebyte.c fails on ppc64 host
1117         * doc/knownbugs.html: removed [ 1519095 ] from the list
1118
1119 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
1120
1121         * doc/knownbugs.html: added, contains list of known bugs at release
1122         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
1123
1124 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
1125
1126         * device/include/mcs51/compiler.h: added SFRX for xdata based special
1127           function registers and corrected defaults with additional warning
1128         * device/lib/malloc.c: cosmetic changes
1129         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
1130         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
1131           (fillGaps): and used it
1132
1133 2006-07-20 Raphael Neider <rneider AT web.de>
1134
1135         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
1136           output unless SDCCPICDEBUG is set
1137         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
1138           output if SILENT is set
1139
1140 2006-07-11 Borut Razem <borut.razem AT siol.net>
1141
1142         * doc/README.txt: updated
1143
1144 2006-07-10 Borut Razem <borut.razem AT siol.net>
1145
1146         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
1147           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
1148           in WIN32 installation
1149         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
1150           release candidate 1
1151
1152 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
1153
1154         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
1155         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
1156
1157 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
1158
1159         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
1160
1161 2006-07-06 Borut Razem <borut.razem AT siol.net>
1162
1163         * support/regression/tests/bitfields.c:
1164           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
1165         * support/regression/tests/constantRange.c:
1166           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
1167
1168 2006-07-04 Borut Razem <borut.razem AT siol.net>
1169
1170         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
1171           src/port.mk,
1172           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1173           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1174           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1175           reverted changes from 2006-07-03
1176         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
1177         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
1178           added CPPFLAGS, used by the host port
1179
1180 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
1181
1182         * support/regression/valdiag/tests/switch.c,
1183         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
1184         * support/regression/tests/libmullong.c: fixed for host
1185         * support/regression/ports/host/spec.mk: disable all warnings for host,
1186         SDCC runs with --less-pedantic too
1187
1188 2006-07-03 Borut Razem <borut.razem AT siol.net>
1189
1190         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
1191           defined CPPFLAGS
1192         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
1193         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1194           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1195           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1196           include ../port.mk
1197         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
1198           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1199           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
1200           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
1201
1202 2006-07-02 Raphael Neider <rneider AT web.de>
1203
1204         * src/pic16/devices.inc,
1205         * device/include/pic16/pic18fregs.h,
1206         * device/include/pic16/pic18f4550.h,
1207         * device/lib/pic16/pics.all,
1208         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
1209
1210 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
1211
1212         * as/hc08/lkaomf51.c (OutputName),
1213         * as/mcs51/lkaomf51.c (OutputName),
1214         * as/z80/asmain.c (asmbl),
1215         * src/ds390/main.c (asmLineNodeFromLineNode),
1216         * src/hc08/ralloc.c (hc08_assignRegisters),
1217         * src/mcs51/main.c (asmLineNodeFromLineNode),
1218         * src/xa51/ralloc.c (checkRegMask),
1219         * src/xa51/gen.c (emitcode),
1220         * src/z80/gen.c (_emit2),
1221         * src/SDCCast.c (searchLitOp),
1222         * src/SDCCglobl.h,
1223         * support/packihx/packihx.c,
1224         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
1225         * src/ds390/gen.c (aopPutUsesAcc),
1226         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
1227         * support/regression/tests/libmullong.c (mullong_wrapper),
1228         * src/SDCCsymt.c (powof2),
1229         * src/SDCCast.c,
1230         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
1231         * src/SDCCsymt.h: added TYPE_TARGET_*
1232         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
1233         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
1234         SDCCast because 1) header problems 2) this is the right place
1235         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
1236         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
1237         prototype
1238
1239 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
1240
1241         * src/SDCCicode.h: removed buggy semicolon in unused macro
1242         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
1243         search for previous definiton of auto symbols too,
1244         (findPrevUse): fixed logic of emitWarnings
1245
1246 2006-06-26 Raphael Neider <rneider AT web.de>
1247
1248         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
1249           PCLATH and PCLATU on interrupts, potentially fixes #1505141
1250
1251 2006-06-25 Raphael Neider <rneider AT web.de>
1252
1253         * device/lib/pic/libm: NEW, added math library functions
1254         * device/lib/pic/libsdcc: NEW; added float support functions
1255         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
1256         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
1257           NEW, added math related headers
1258         * device/include/asm/pic/features.h: NEW
1259         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
1260           (popGet): allow larger offsets for AOP_PCODE,
1261           (genDataPointerSet): handle literals explicitly, more debug output,
1262           (genAssign): fixed for float using aopLiteral ;-)
1263         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
1264           GOTO initialisation routine
1265         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
1266           flag on registers, fixes #1469043 (local variables do not work)
1267         * src/pic/main.c (_pic14_do_link),
1268         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
1269           available
1270
1271 2006-06-25 Borut Razem <borut.razem AT siol.net>
1272
1273         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
1274           characters printed (not including the trailing '\0' used to end
1275           output to strings). Problem detected in regression test bug-927659.c.
1276           NOTE: printf() family functions should return int instead
1277           unsigned int!
1278         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
1279           specifier are printed as themselves
1280         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
1281           support flags, width and precision specifiers
1282
1283 2006-06-24 Borut Razem <borut.razem AT siol.net>
1284
1285         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
1286           to the list of sdcc tagrets not supporting bit type
1287         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
1288           testfor pic16 due to bug:
1289           [ 1511794 ] pic16: regression test bug-895992.c fails
1290
1291 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
1292
1293         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
1294         * src/SDCCglue.c (initPointer), fixed bug 1496419
1295         * support/regression/tests/bug1496419.c: new, added
1296
1297 2006-06-22 Borut Razem <borut.razem AT siol.net>
1298
1299         * support/regression/ports/pic16/support.c: use gpsim usart module from
1300           libgpsim_modules library
1301
1302 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1303
1304         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
1305         IP0H to IPH0.
1306
1307 2006-06-19 Raphael Neider <rneider AT web.de>
1308
1309         * src/pic/glue.h,src/pic16/glue.h: added prototypes
1310         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
1311           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
1312           (pic14printExterns,pic14printPublics,pic16printPublics,
1313           pic16_printExterns): use new functions to emit symbols
1314           (picglue,pic16glue): emit publics before emitting externs
1315         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
1316           locally defined functions to avoid bug #1443651
1317         * support/regression/tests/bug-716242.c: removed pic16 workaround
1318         * support/regression/ports/pic16/spec.mk: ignore errors during build
1319
1320 2006-06-19 Raphael Neider <rneider AT web.de>
1321
1322         * src/pic/glue.h: added pic14aopLiteral prototype
1323         * src/pic/glue.c (pic14aopLiteral): return unsigned int
1324         * src/pic/gen.c: removed stdint.h dependency
1325           (aopGet): use Safe_strdup()
1326           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
1327           (genDataPointerSet): use pic14aopLiteral()
1328         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
1329           for pic16; thanks to Bernhard and Maarten
1330
1331 2006-06-18 Borut Razem <borut.razem AT siol.net>
1332
1333         * support/regression/tests/structflexarray.c: flexible array members
1334           not supported by gcc < 3
1335         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
1336           GUI tool by default
1337         * src/pic/gen.c: don't include [p]strdin.h on solaris
1338         * support/Util/pstdint.h: addad svn attributes
1339         * support/regression/tests/constantRange.c,
1340           support/regression/tests/rotate.c: include inttypes.h instead
1341           stdint.h on solaris, addad svn attributes
1342
1343 2006-06-18 Raphael Neider <rneider AT web.de>
1344
1345         * src/SDCCsymt.c (initCSupport): change return type of divschar to
1346           int for PIC16
1347         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
1348           (pic16_genMinusBits): simplified sign-extension
1349           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
1350             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
1351             adjusted to correctly handle mixed-signed operands, disabled
1352             now unused multiplciation routines
1353         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
1354           (assignResultValue): added argument denoting the size of the result
1355             as returned by the function (fixes upcasts in assigning from
1356             function calls: char foo(); int i = foo();)
1357           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
1358             function result to assignResultValue
1359           (genMult): disabled inlined multiplication code
1360           (genDiv): augmented to also handle the modulus operator, fixed to
1361             handle mixed-signed operands correctly
1362           (genMod): simply call genDiv, disabled unused code
1363           (genAssign): fixed missing (sign-)extension on result
1364         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
1365             valid char operands, allow signed operands for native code, added
1366             division and modulo operator handling
1367         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
1368
1369         As a consequence, onebyte.c (if split into two files) and muldiv.c
1370         pass regression tests.
1371
1372 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1373
1374         * doc/Makefile.in: two runs of makeindex seem needed to get
1375         correct page references in the index of sdccman.pdf
1376         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
1377
1378 2006-06-17 Borut Razem <borut.razem AT siol.net>
1379
1380         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
1381
1382 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1383
1384         * doc/sdccman.lyx: updated, added (porting source code, debugging),
1385         mentioned ec2drv and paulmon
1386
1387 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
1388
1389         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
1390           consecutive abs areas
1391           (find_empty_space, allocate_space): added map to handle codemap or
1392            xdatamap,
1393           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
1394            absolute idata and xdata
1395         * as/mcs51/lkmem.c (summary2): updated legend
1396
1397 2006-06-16 Raphael Neider <rneider AT web.de>
1398
1399         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
1400
1401 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
1402
1403         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
1404           1208515
1405         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
1406
1407 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
1408
1409         * src/port.h (struct PORT): added field gp_tags, to hold the tag
1410         value of generic pointers,
1411         * src/avr/main.c,
1412           src/ds390/main.c,
1413           src/hc08/main.c,
1414           src/izt/i186.c,
1415           src/izt/tlcs900h.c,
1416           src/mcs51/main.c,
1417           src/pic/main.c,
1418           src/pic16/main.c,
1419           src/xa51/main.c,
1420           src/z80/main.c: PORT structure, added elements for gp_tags field,
1421         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
1422         fields in the PORT structure of each port,
1423         * src/SDCCast.c (decorateType): allow processing of generic pointers
1424         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
1425         S_FIXED symbols
1426
1427 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
1428
1429         * link/z80/lkgb.c,
1430         * link/z80/lkgg.c,
1431         * src/pic16/gen.c,
1432         * src/pic16/main.c,
1433         * src/pic16/pcode.c,
1434         * src/pic/main.c,
1435         * src/pic/pcoderegs.c,
1436         * src/SDCCicode.c,
1437         * src/SDCCmain.c,
1438         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
1439           bug 1504689 on minGW
1440
1441 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1442
1443         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
1444
1445 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
1446
1447         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
1448
1449 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
1450
1451         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
1452           for optimization
1453
1454 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
1455
1456         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
1457         to a char variable. Fixed bug #1504211
1458         * device/include/pic16/adc.h,
1459         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
1460         and fixed bug #1364390
1461
1462 2006-06-10 Borut Razem <borut.razem AT siol.net>
1463
1464         * CVSROOT: removed the CVS left-over
1465
1466 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1467
1468         * as/hc08/asmain.c (asexit),
1469         * as/hc08/lkmain.c (lkexit),
1470         * as/mcs51/asmain.c (asexit),
1471         * as/mcs51/lkmain.c (lkexit),
1472         * src/SDCCglue.c (DEFSETFUNC),
1473         * src/SDCCmain.c (linkEdit, assemble),
1474         * support/librarian/sdcclib.c (AddRel),
1475           replaced unlink() by standard C remove()
1476         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
1477         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
1478           gatherImplicitVariables): new, added to fix bug 608752,
1479           (createFunction): added gatherImplicitVariables()
1480         * src/SDCCast.h: added createRMW prototype
1481         * src/SDCCsymt.h (struct symbol): added infertype
1482         * support/regression/tests/bug608752.c: new, added
1483
1484 2006-06-10 Raphael Neider <rneider AT web.de>
1485
1486         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
1487           multibyte dummy reads (fixes #1503234)
1488
1489 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1490
1491         * device/include/mcs51/compiler.h: new, added header file to enable
1492           creating common sfr definition header files for different compilers
1493
1494 2006-06-05 Raphael Neider <rneider AT web.de>
1495
1496         * src/pic16/{pcode.h,genarith.c}:
1497           introduced pCodeOp combining any two pCodeOps (previously only
1498           two register operands could be combined), removed pcop2 from
1499           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
1500         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
1501         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
1502           rewritten to use new PO_TWO_OPS
1503         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
1504         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
1505           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
1506           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
1507           (pic16_get_op): embraced return arg to allow #define return(x),
1508             added new case for combined opcodes
1509           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
1510           (pic16_pCode2str,pic16_getRegFrompCodeOp,
1511            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
1512
1513 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
1514
1515         * src/SDCCval.c (checkConstantRange): added
1516         * src/SDCCval.h: added checkConstantRange
1517         * support/Util/SDCCerr.c,
1518         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
1519         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
1520         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
1521         * src/SDCCast.c (decorateType): added checkConstantRange,
1522         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
1523         can be emitted with the correct always true/false warning,
1524         added optimization for double '!';
1525         result of decorateType() must be assigned back to the tree, because
1526         decorateType() can change the tree
1527         * src/SDCCicode.c (geniCodeLogic),
1528         (geniCodeAssign): replaced new checkConstantRange, added warnings,
1529         (checkConstantRange): removed, it was only a fragment which never
1530         emitted a warning
1531         * src/SDCCsymt.c (computeType): fixed promotion for
1532         "-1 < (unsigned bit) b"
1533         * src/pic/ralloc.c (packRegsForAssign),
1534         * src/pic16/ralloc.c (packRegsForAssign),
1535         * src/hc08/ralloc.c (packRegsForAssign),
1536         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
1537         from mcs51
1538         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
1539         * support/regression/tests/constantRange.c: added
1540         * support/valdiag/tests/constantRange.c: added
1541         * support/valdiag/valdiag.py: added -DPORT_HOST=1
1542
1543 2006-06-02 Borut Razem <borut.razem AT siol.net>
1544
1545         * support/regression/ports/pic16/support.c: increase stack size
1546           to 255 bytes
1547         * support/regression/Makefile.in: sort tests by name so that the
1548           resutlts can be compared on different machines / platforms
1549
1550 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1551
1552         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
1553         * src/ds390/gen.c (emitLabel): new, added,
1554           (genDjnz): fixed stack overflow bug,
1555           (throughout): cosmetic changes to sync with mcs51/gen.c,
1556           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
1557         * src/mcs51/gen.c (genEndFunction): small optimization,
1558           (throughout): cosmetic changes to sync with ds390/gen.c
1559
1560 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1561
1562         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
1563           (_print_format): fixed printing pointers
1564         * src/mcs51/gen.c (emitLabel, movb): new, added,
1565           (genAssign): small optimization,
1566           (genDjnz): fixed stack overflow bug,
1567           (throughout): replaced sprintf with SNPRINTF,
1568           replaced mcs51_regWithIdx with REG_WITH_INDEX,
1569           replaced emitcode("mov", "b,...") with MOVB(...),
1570           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
1571           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1572         * src/mcs51/peeph.def: added rules 140 and 264
1573         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
1574           so they may get optimized into registers
1575
1576 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
1577
1578         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
1579           immediately when encountered,
1580           (printUsage): always use stderr even on windows
1581
1582 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
1583
1584         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
1585         (processParms): fixed bug #1247551
1586         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
1587         parseCmdLine, main): print '--version' to stdout,
1588         print 'help' to stdout if --help is given,
1589         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
1590         arguments are given; fixed --help
1591
1592 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
1593
1594         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
1595         * support/regression/tests/bug-1493710.c: added
1596
1597 2006-05-27 Borut Razem <borut.razem AT siol.net>
1598
1599         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
1600           static instead auto
1601         * support/regression/ports/pic16/support.c: increase stack size
1602           from default 64 bytes to 128 bytes
1603         * support/regression/tests/staticinit.c,
1604           support/regression/tests/float.c: regression tests fully enabled
1605           for pic16 port by putting the initialized data arrays into the code
1606           section
1607         * support/regression/ports/pic16/spec.mk: don't link default libraries.
1608           This was changed by mistake in the previous version.
1609
1610 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
1611
1612         * src/pic16/gen.c (genFunction, genEndFunction): some
1613         beautifications, fixed bug with falsely restoring FSR2 in large
1614         stack model, thanks to Beau E. Cox for reporting the bug
1615
1616 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1617
1618         * debugger/mcs51/break.c,
1619         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
1620           use %p to print pointers, made address variables unsigned
1621         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
1622         * debugger/mcs51/symtab.c (parseSymbol): must return something
1623         * src/mcs51/gen.c (aopForSym): small optimization,
1624            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
1625           (freeAsmop): added missing break,
1626           (aopPut): removed parameter bvolatile, determine it inside the function,
1627           (saveRegisters, unsaveRegisters): small optimization,
1628           (genIpush): removed pointless check,
1629           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
1630           replaced sprintf with SNPRINTF,
1631           replaced strcpy with strncpyz,
1632           updated aopPut calls,
1633           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1634         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
1635
1636 2006-05-24 Borut Razem <borut.razem AT siol.net>
1637
1638         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
1639           modification of test for the pic16 port, put the array to the code
1640           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
1641
1642 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1643
1644         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
1645         * support/Util/pstdint.h: added
1646
1647 2006-05-22 Borut Razem <borut.razem AT siol.net>
1648
1649         * src/regression/Makefile: removed bool2.c test, added -q linker option
1650         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
1651           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
1652           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
1653           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
1654           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
1655           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
1656           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
1657           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
1658           define SUPPORT_BIT_TYPES 0, removed unused bit variables
1659
1660 2006-05-22 Raphael Neider <rneider AT web.de>
1661
1662         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
1663           bug #1492360 (problematic due to generic pointers, see code)
1664
1665 2006-05-22 Borut Razem <borut.razem AT siol.net>
1666
1667         * support/regression/ports/pic16/specs.mk: removed stack size linker
1668           directive
1669         * support/regression/tests/array.c,
1670           support/regression/tests/bitopcse.c,
1671           support/regression/tests/bug-908454.c,
1672           support/regression/tests/malloc.c: modified for pic16 regression test
1673         * support/regression/tests/bitfields.c:
1674           pic16 - excluded bitfileds of size > 8
1675         * support/regression/tests/bp.c: pic16 - reduced data size
1676         * support/regression/tests/bug-221100.c: pic16 - reduced data size
1677         * support/regression/tests/bug-460010.c:
1678           pic16 - used the absolute address the fits in memory
1679         * support/regression/tests/bug-716242.c:
1680           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
1681         * support/regression/tests/float.c:
1682           pic16 - excluded - data size too big
1683         * support/regression/tests/onebyte.c:
1684           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
1685         * support/regression/tests/shifts.c:
1686           pic16 - function names probably have to differ in first X characters
1687           (gpasm limitation?)
1688         * support/regression/tests/staticinit.c:
1689           pic16 - excluded some tests due error: no target memory available for
1690           section ".idata"
1691
1692 2006-05-22 Borut Razem <borut.razem AT siol.net>
1693
1694         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1695           second try. Thanks Stas Sergeev once more.
1696
1697 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1698
1699         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
1700           (genLeftShift, genRightShift): fixed bug 1491627
1701         * src/hc08/peeph.def (rules 7, 8.x): added
1702         * support/regression/tests/shifts.c (ShiftLeftByParam,
1703           ShiftRightByParam, testShiftByParam): added to test variable shifting
1704
1705 2006-05-20 Raphael Neider <rneider AT web.de>
1706
1707         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
1708         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
1709           (allocReg): add only new registers to dynAllocRegs,
1710           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
1711             #1489055, #1445850, and probably #1483693
1712
1713 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
1714
1715         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
1716         bug in for-loop that didn't emit the last of CONFIG and ID registers
1717
1718 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
1719
1720         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
1721           with offset
1722         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
1723           1489016, 1434401 and 1490124
1724         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
1725           1489016, 1434401 and 1490124
1726
1727 2006-05-17 Borut Razem <borut.razem AT siol.net>
1728
1729         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1730           thanks Stas Sergeev
1731
1732 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1733
1734         * device/include/mcs51/P89c51RD2.h,
1735         * device/include/mcs51/P89LPC901.h,
1736         * device/include/mcs51/P89LPC922.h,
1737         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
1738
1739 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1740
1741         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
1742         to fix missing stack pragma in compiled binary object file,
1743
1744 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
1745
1746         * support/packihx/configure.in,
1747         * support/packihx/configure: removed warning, autoconf >= 2.5x can
1748         determine sizeof basic types even while cross compiling
1749
1750 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
1751
1752         * src/avr/gen.c (aopop),
1753         * src/ds390/gen.c (aopOp),
1754         * src/hc08/gen.c (aopOp),
1755         * src/mcs51/gen.c (aopop),
1756         * src/pic16/gen.c (pic16_aopOp),
1757         * src/pic/gen.c (aopOp),
1758         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
1759         if size of operand is smaller than spill location
1760
1761 2006-05-12 Borut Razem <borut.razem AT siol.net>
1762
1763         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
1764           have to have CR/LF line endings even if they are checked out on *nix
1765           or on WIN32 in cygwin binmode
1766
1767 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
1768
1769         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
1770         * device/include/ds80c390.h: added sfr16 definitions
1771         * src/ds390/gen.c,
1772         * src/ds390/gen.h,
1773         * src/ds390/main.c,
1774         * src/ds390/ralloc.c,
1775         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
1776           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
1777           bit returning functions
1778         * support/regression/tests/sfr16.c: enabled test on ds390
1779
1780 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1781
1782         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
1783         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
1784
1785 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1786
1787         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
1788         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
1789           (cl_address_space constructor): removed expensive initialization,
1790           (cl_address_space::get_cell): extended for late initialization,
1791           (cl_address_space::*): use late initialization,
1792           (cl_address_decoder::activate): removed expensive initialization,
1793           This reduced regression test running time by 25%
1794
1795 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
1796
1797         * packihx/,
1798         * configure.in,
1799         * configure,
1800         * sdcc.dsw,
1801         * Makefile.bcc,
1802         * Makefile.in,
1803         * support/packihx/Makefile.in,
1804         * support/packihx/clean.mk,
1805         * support/packihx/Makefile.bcc,
1806         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
1807
1808 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1809
1810         * src/SDCCval.c (valNot): fix for regression test failure
1811           of not.c on big endian hosts
1812
1813 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1814
1815         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
1816
1817 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1818
1819         * device/lib/mcs51/Makefile.in: changed string comparison operator
1820           to = for POSIX compliance; == is bash extension
1821
1822 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1823
1824         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
1825           kosmonaut_pirx
1826
1827 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
1828
1829         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
1830         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
1831         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
1832         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
1833         bug report #1478657,
1834
1835 2006-05-05 Borut Razem <borut.razem AT siol.net>
1836
1837         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
1838           making the html
1839
1840 2006-05-02 Borut Razem <borut.razem AT siol.net>
1841
1842         * doc/Makefile.in: removed *.ind dependency since there is no rule to
1843           create *.ind, which made make to fail if invoked with -j 2
1844
1845 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
1846
1847         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
1848           Hubert Sack for patch 1479782
1849
1850 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
1851
1852         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
1853
1854 2006-05-01 Raphael Neider <rneider AT web.de>
1855
1856         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
1857           (create_pic): store only prefix-free device name,
1858           (init_pic): check for device names with "16" prefix,
1859           (list_valid_pics),
1860         * src/pic/device.h (struct PIC_device),
1861         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
1862             stored device name,
1863         * device/include/pic/pic12f{635,675,629,683}.h,
1864         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
1865         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
1866         * device/include/pic/pic16f505.h,
1867         * device/lib/pic/libdev/pic16f505.c: removed
1868         * device/include/pic/pic14devices.txt: added support for pic12f
1869             devices, removed unsupported non 16-bit devices
1870             [above changes provided by patch from Zik Saleeba]
1871         * src/pic/*, src/pic16/*, device/include/pic16/*,
1872           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
1873
1874 2006-05-01 Borut Razem <borut.razem AT siol.net>
1875
1876         * configure.in, configure, doc/Makefile.in:
1877           sync with nightly build makefile - latex, dvipdf and dvips
1878           not needed any more
1879
1880 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
1881
1882         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
1883         in the library source
1884
1885 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
1886
1887         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
1888
1889 2006-04-28 Raphael Neider <rneider AT web.de>
1890
1891         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
1892         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
1893           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
1894         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
1895
1896 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
1897
1898         * device/lib/pic/libdev/Makefile.in,
1899         * device/lib/hc08/Makefile.in,
1900         * device/lib/gbz80/Makefile.in,
1901         * device/lib/z80/Makefile.in,
1902         * device/lib/ds390/Makefile.in,
1903         * device/lib/ds400/Makefile.in: added srcdir to include search path,
1904         thanks to Borut for the bug report
1905         * configure.in,
1906         * configure: always create doc/Makefile independent from --enable-doc
1907         * Makefile.in: always install from directory doc independent from
1908         --enable-doc
1909         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
1910         removed
1911         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
1912         * doc/Makefile.in: install *.txt if present
1913         * device/include/Makefile.in (install): added installation of pic/*.inc
1914         and pic/*.txt files again, they were erroneously removed
1915
1916 2006-04-28 Raphael Neider <rneider AT web.de>
1917
1918         * src/pic/{gen.c,main.h,pcode.c},
1919         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
1920             concerning signedness with casts
1921
1922 2006-04-28 Raphael Neider <rneider AT web.de>
1923
1924         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
1925             definition of an interrupt handler,
1926         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
1927             interrupt handler stuff from picglue() to separate routine,
1928           (picglue): enabled definition of intr handlers in files w/o main()
1929
1930 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1931
1932         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
1933           compilation with MSVC 2005 Express Edition (VC8)
1934
1935 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
1936
1937         * device/lib/Makefile: fixed build of gbz80 lib
1938
1939 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1940
1941         * support/regression/tests/bug-460010.c,
1942         * support/regression/tests/bug-524691.c,
1943         * support/regression/tests/bug-716242.c: removed conditional defines
1944           that are already in testfwk.h
1945
1946 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1947
1948         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
1949           (AccAXRsh1): added, shift right by 1,
1950           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
1951            AccAXLrl1
1952         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
1953
1954 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
1955
1956         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
1957         remove cast to same type
1958         * src/SDCCast.c (decorateType): fix for RFE 1475742,
1959         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
1960         * as/z80/Makefile,
1961         * link/z80/Makefile: removed, they have moved to
1962         Makefile.in files
1963         * configure,
1964         * configure.in: replaced duplicate message about ucsim by missing sdcpp
1965         * install-sh: fix bug #1204398 by setting umask 0022
1966         * device/lib/Makefile: separate build of z80 and gbz80 lib
1967
1968 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
1969
1970         Enabled VPATH feature: changed nearly all Makefiles (149 files).
1971         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
1972
1973         One basic decision: e.g. src/clean.mk includes further files. In order
1974         to make this work there are two solutions:
1975         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
1976           run configure on them. This way they can use
1977           'include $(srcdir)/port-clean.mk'
1978         - always include clean.mk by the Makefile at the same level. To avoid
1979           that `make clean` tries to include and build Makefile.dep the
1980           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
1981           implemented, because now even `make uninstall` doesn't create
1982           Makefile.in. clean.mk could be eliminated by pasting it in
1983           Makefile.in.
1984
1985         * debugger/mcs51/Makefile.in: build own objects from library sources
1986         (SLIB, SDCC) in current directory
1987
1988         * configure, configure.in: renamed --disable-device-lib-build in
1989         --disable-device-lib; added --enable-doc, the required tools are
1990         searched by configure; added result message; the toolchain for the
1991         belonging ports are now only built, if the port is enabled.
1992
1993         * support/regression/*: all output is written in directory gen, because
1994         the fwk and ports directories don't livet in the build tree using vpath
1995
1996         * doc/sdccman.lyx: renamed --disable-device-lib-build to
1997         --disable-device-lib, added --enable-doc, added section VPATH
1998
1999         * sim/ucsim/configure.in,
2000         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
2001         z80 are enabled by default
2002
2003 2006-04-24 Raphael Neider <rneider AT web.de>
2004
2005         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
2006             to config word, "pic14_"-prefixed some extern functions
2007           (pic14_emitConfigWord): emit __config directive(s) if assignment to
2008             config word has been found
2009         * src/pic/device.h: added prototypes
2010         * src/pic/pcode.c: added "pic14_"-prefix where needed
2011         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
2012             fixup
2013         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
2014             words,
2015           (pic14emitRegularMap): ignore config words,
2016           (pic14createInterruptVect): moved generating __config directives away
2017           (picglue): have __config directives emitted
2018
2019 2006-04-24 Borut Razem <borut.razem AT siol.net>
2020
2021         * doc/Makefile: sync with nightly build makefile
2022
2023 2006-04-24 Raphael Neider <rneider AT web.de>
2024
2025         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
2026             registers that have not been assigned proper liveranges,
2027             fixes #1469504 and #1474602,
2028           (pCodeRegOptimizeRegUsage): fixed typo in comment
2029
2030 2006-04-24 Borut Razem <borut.razem AT siol.net>
2031
2032         * device/examples/main8051.c: deleted - it was removed from CVS
2033           24.mar.2000 and after that modified 18.feb.2001, so it reappered
2034           after the transition to Subversion
2035         * src/SDCCalloc.h: deleted - it was removed  from CVS
2036           3.feb.2001 and after that modified 18.feb.2001, so it reappered
2037           after the transition to Subversion
2038         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
2039           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
2040           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
2041           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
2042
2043 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
2044
2045         * as/asx8051.dsp: added mcs51/strcmpi.h
2046         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
2047         * as/hc08/aslink.h: updated lnksect prototype
2048         * as/hc08/asm.h,
2049         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
2050         * as/hc08/asmain.c,
2051         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
2052           (newdot): handle A_ABS
2053         * as/hc08/asout.c,
2054         * as/mcs51/asout.c (outarea): output address
2055         * as/hc08/lkaomf51.c,
2056         * as/mcs51/lkaomf51.c: disabled unused array UsageType
2057         * as/hc08/m08pst.c,
2058         * as/mcs51/i51pst.c,
2059         * as/z80/z80pst.c: "ABS" is not A_OVR
2060         * as/hc08/lkarea.c (newarea): read a_addr,
2061           (lnkarea): added codemap array, sort absolute areas to the front,
2062            combine all GSINITx/GSFINAL,
2063           (find_empty_space, allocate_space): new functions,
2064           (lnksect): return next address, handle absolute sections
2065         * as/mcs51/lkarea.c (newarea): read a_addr,
2066           lnksect2 prototype changed,
2067           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
2068           (find_empty_space, allocate_space): new, factored out of lnksect2,
2069           (lnksect2): return next address, handle absolute sections
2070         * as/hc08/lkhead.c,
2071         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
2072         * as/hc08/lklibr.c (addfile, fndsym),
2073         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
2074           index out of range and detect both '\' and '/'
2075         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
2076         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
2077           regression tests (ds390 cannot return bool yet)
2078         * doc/sdccman.lyx: changed version number, document changed --no-peep,
2079           document critical interrupts on z80, document changed SDCC define
2080         * src/asm.c (_asxxxx_mapping): fixed .org directive,
2081           (_a390_mapping): added .org directive
2082         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
2083           (genMultOneByte): fixed warnings
2084         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
2085           ones
2086         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
2087         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
2088           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
2089         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
2090         * src/pic16/main.c: removed newReg prototype
2091         * src/pic16/pcode.c,
2092         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
2093           warnings
2094         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
2095           ones
2096         * src/pic16/ralloc.c
2097         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
2098           to fix warnings
2099         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
2100           from short to PIC_OPTYPE
2101         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
2102         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
2103           optype from short to PIC_OPTYPE
2104         * src/port.h: made int_size unsigned to fix warnings
2105         * src/SDCC.y: fixed warning on MSVC
2106         * src/SDCCicode.c (getArraySizePtr): return unsigned int
2107         * src/SDCCopt.c (convertToFcall): fixed warnings
2108         * src/SDCCsymt.h: removed double prototype for genSymName
2109         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
2110           offset int to fix warnings
2111
2112 2006-04-22 Borut Razem <borut.razem AT siol.net>
2113
2114         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2115           references to CVS replaced with Subversion
2116
2117 2006-04-21 Borut Razem <borut.razem AT siol.net>
2118
2119         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2120           references to CVS replaced with Subversion
2121
2122 2006-04-19 Borut Razem <borut.razem AT siol.net>
2123
2124         * src/version.awk: adapted for svn
2125         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
2126           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
2127           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
2128           /binutils-avr/etc/*.vi, *.jin: removed all properties
2129           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
2130
2131 2006-04-19 Borut Razem <borut.razem AT siol.net>
2132
2133         * CVS to Subversion migration completed
2134
2135 2006-04-18 Borut Razem <borut.razem AT siol.net>
2136
2137         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
2138           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
2139
2140 2006-04-17 Borut Razem <borut.razem AT siol.net>
2141
2142         * device/include/Makefile.in: added pic/*.inc to the installation
2143
2144 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
2145
2146         * support/regression/collate-results.py: fixed output in case of
2147         a valdiag error
2148         * support/regression/generate-cases.py: fixed splitting of pathnames
2149         with dots
2150         * as/hc08/lklibr.c (addfile),
2151         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
2152
2153 2006-04-11 Raphael Neider <rneider AT web.de>
2154
2155         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
2156         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
2157         * src/pic16/pcode.c (assignValnums): fixed #1460578
2158
2159 2006-04-11 Raphael Neider <rneider AT web.de>
2160
2161         * device/lib/pic/libdev/*.c,
2162         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
2163           fixes #1468739, enables compilation in --std-c99 mode
2164         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
2165
2166 2006-04-11 Raphael Neider <rneider AT web.de>
2167
2168         * src/pic/device.c (find_device): removed debug output
2169           (list_valid_pics): enabled verbose listing of supported devices
2170         * device/include/stdbool.h: define bool as char for pic14/16 as well
2171
2172 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2173
2174         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
2175
2176 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2177
2178         * .version: bumped version to 2.5.6
2179         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
2180
2181 2006-04-06 Raphael Neider <rneider AT web.de>
2182
2183         * .version: bumped version to 2.5.6 (pic14 ABI changed)
2184         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
2185         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
2186           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
2187             pic14_constructAbsMap
2188           (pic14printPublics): declare absolute global symbols as global
2189           (pic14createInterruptVect),
2190         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
2191           (newReg): assume new registers unused, use correct name in
2192             hashtable (reg->name instead of name), more debugLog output
2193         * src/pic/device.h (PIC_device): added fields for verbose output
2194         * src/pic/device.c: moved device definition to pic14devices.txt,
2195             added routines for runtime parsing of pic14devices.txt,
2196             added support for second config word
2197         * src/pic/main.c (_process_pragma): removed #pragma maxram,
2198           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
2199           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
2200           (_pic14_parseOptions): moved pCodeInitRegisters here
2201           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
2202         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
2203           (pCodeInitRegisters): rewrapped comments, perpared new approach to
2204             handling the pseudo stack
2205         * device/lib/Makefile.in: ignore failures in objects-pic16,
2206         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
2207         * device/lib/pic/NEWS: document new dependency on picXXX.lib
2208         * device/lib/pic/Makefile.subdir,
2209         * device/lib/pic16/Makefile.subdir: improved clean rules
2210         * device/lib/pic/libdev/: NEW, pic14 device libraries
2211         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
2212         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
2213         * device/include/Makefile.in: create subdir and install pic14 headers
2214         * device/include/pic/p16f_common.inc: removed unused declarations
2215         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
2216             PICs from inc2h.pl v1.6,
2217             replaced BIT_AT macros with struct declarations
2218         * device/include/pic/pic14devices.txt: definition of supported devices,
2219             all above improvements contributed by Zik Saleeba, thanks
2220         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
2221         * support/scripts/sdcc.nsi: also install pic14 device libraries and
2222             headers
2223
2224 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2225
2226         * device/include/mcs51/c8051f410.h: added interrupt numbers,
2227         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
2228           thanks to Charles Olds
2229
2230 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2231
2232         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
2233
2234 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2235
2236         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
2237         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
2238         * support/regression/bug1464657.c: added, new test
2239
2240 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2241
2242         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
2243           version number
2244
2245 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2246
2247         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
2248           --no-peep and --peep-file <file> are used don't use default rules but
2249           do use the <file>
2250
2251 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2252
2253         * src/mcs51/gen.c (genCall): fixed bug 1457608
2254
2255 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2256
2257         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
2258         changes seem to cause (trigger?) problems with the build system.
2259
2260 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
2261
2262         * src/SDCCpeeph.c (operandsLiteral): new, added,
2263           (callFuncByName): inserted operandsLiteral
2264         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
2265
2266 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2267
2268         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
2269         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
2270
2271 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2272
2273         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
2274           implemented patch 1120823 Thanks to Willy De la Court (normal
2275           interrupts need an interrupt number now if they are made critical),
2276           and enabled nesting of critical functions though not for gbz80
2277           (genCritical, genEndCritical): added functions
2278           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
2279         * src/z80/mappings.i: added "ei" to all mappings
2280
2281 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2282
2283         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
2284         submitted by the Debian SDCC maintainer Aurelien Jarno:
2285         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
2286         archive with gcc 4.1 on mips and wrote the patch"
2287
2288 2006-03-16 Raphael Neider <rneider AT web.de>
2289
2290         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
2291           the left operand is shorter than the result (c* = lit-c* + int),
2292           fixes bug #1450796
2293         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
2294           OP_SYMBOL
2295
2296 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2297
2298         * src/.version: increased version number to 2.5.5
2299         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
2300         linking is done manually in pic16 port's _linkEdit,
2301         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
2302         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
2303         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
2304         allocate asmop as AOP_ACC,
2305         (aopForRemat): added parameter 'bool result' in function declaration,
2306         (pic16_aopGet): return AOP_ACC when accessing WREG,
2307         (pic16_popGetTempReg): minor modification,
2308         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
2309         'pic16_allocWithIdx',
2310         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
2311         calling function in absolute addresses,
2312         (genAssign): take into account AOP_ACC asmop,
2313         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
2314         * src/pic16/pcoderegs.c: some debug functions and lines added,
2315         * src/pic16/ralloc.c (decodeRegType): added but commented out,
2316         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
2317         register too,
2318         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
2319         call to allocReg, not by manually allocating a new one,
2320         (pic16_assignRegisters): now before going through the register
2321         allocating functions mark all registers as free. This eliminates some
2322         side effects resulting from peephole parser done earlier in the backbone
2323
2324 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
2325
2326         * src/SDCCicode.c (geniCodeLogic),
2327         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
2328
2329 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
2330
2331         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
2332           (genSend): bugfix, do not allocate and free twice,
2333           (shiftRLong): handle partially overlapping aops
2334         * support/regression/tests/bitopcse.c: fixed warning redefined idata
2335
2336 2006-03-08 Borut Razem <borut.razem AT siol.net>
2337
2338         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
2339           for pic16
2340
2341 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
2342
2343         * support/regression/tests/bug1409955.c: new, added
2344         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
2345         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
2346           (aopForSym, aopOp): increment asmop.allocated if reused,
2347           (freeAsmop): decrement asmop.allocated and check for zero instead of
2348           using asmop.freed,
2349           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
2350           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
2351            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
2352            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
2353            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
2354            genSignedRightShift, genRightShift, genDataPointerGet,
2355            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
2356            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
2357             in reverse order from allocation,
2358           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
2359             added swappedLR to keep track
2360         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
2361           pdata & code for GCC, z80, gbz80 & hc08
2362         * support/regression/tests/zeropad.c: moved defines to testfwk.h
2363
2364 2006-03-08 Raphael Neider <rneider AT web.de>
2365
2366         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
2367
2368 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
2369
2370         * device/include/mcs51/c8051f410.h: new SiLabs mcu
2371         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
2372         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
2373
2374 2006-03-06 Borut Razem <borut.razem AT siol.net>
2375
2376         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
2377           made the linker quiet
2378
2379 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
2380
2381         * src/pic16/gen.c (genPcall): fixed bug #1443644
2382         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
2383         which dumps before the function entry point a data byte which represents
2384         the number of the local variables used by the specified function, added
2385         'xinst' for initial support for Extended Instruction Support,
2386         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
2387         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
2388         port->fun_prefix anymore (may change later),
2389         (genFunction, genEndFunction): do not store/restore local registers for
2390         _main (this should take care the --main-return command line option in
2391         the future),
2392         (genOr): removed some legacy pic-port instructions,
2393         * src/pic16/genarith.c (genAddLit): re-enabled old code because
2394         performing operations with SFR's causes data to be written more than
2395         once to each SFR. Perhaps SFRs should be handled in special cases...
2396         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
2397         pcode.h
2398         * src/pic16/main.c (_process_pragma): stack bound checking did not take
2399         into account for stack starting position,
2400         (struct OPTIONS pic16_optionsTable): added command line argument
2401         --extended or -y for Extended Instruction Support,
2402         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
2403         (deassignLRs): *** perhaps the most important change, old 'for' code
2404         (commented out for reference), didn't account for some registers which
2405         were left marked 'not free' after a pointer operation. The change
2406         reduces register usage a lot in some cases
2407
2408 2006-03-04 Borut Razem <borut.razem AT siol.net>
2409
2410         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
2411           _clean
2412         * support/regression/tests/bug-524697.c: decreased array size for
2413           mcs51 to fit into the internal RAM
2414         * support/regression/Makefile.in: a little bit more verbose
2415
2416 2006-03-03 Borut Razem <borut.razem AT siol.net>
2417
2418         * support/regression/fwk/lib/testfwk.c,
2419           support/regression/fwk/include/testfwk.h: introduced function
2420           _prints(), nonrecursive _printn(), call _initEmu() from main()
2421         * support/regression/ports/gbz80/support.asm,
2422           support/regression/ports/ucz80/support.asm,
2423           support/regression/ports/z80/support.asm,
2424           support/regression/ports/ds390/support.c,
2425           support/regression/ports/hc08/support.c,
2426           support/regression/ports/host/support.c,
2427           support/regression/ports/mcs51/support.c,
2428           support/regression/ports/xa51/support.c: added empty _initEmu()
2429           function
2430         * support/regression/ports/pic16/gpsim.cmd,
2431           support/regression/ports/pic16/spec.mk,
2432           support/regression/ports/pic16/support.c,
2433           support/regression/Makefile.in: added pic16 regression test
2434
2435 2006-03-01 Raphael Neider <rneider AT web.de>
2436
2437         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
2438           genConstPointerGet): use safe way of generating MOVFF to cover
2439             literals as well as registers, fixes bug #1440527
2440         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
2441             dereference
2442           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
2443             more correctly, fixes bug #1232186
2444           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
2445         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
2446             gplink guess the correct processor in more cases, applied patch
2447             from Till Riedel attached to and fixing bug #1436552
2448
2449 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2450
2451         * support/regression/tests/array.c: added, contains check for #1434401
2452         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
2453
2454 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
2455
2456         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
2457         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
2458         * device/include/mcs51/c8051f326.h,
2459         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
2460         * device/include/mcs51/c8051f000.h,
2461         * device/include/mcs51/c8051f018.h,
2462         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
2463           PCON_IDLE,PCON_STOP and added sfr16 definitions
2464
2465 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2466
2467         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
2468           genGetWord): fixed bug 1409955
2469
2470 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2471
2472         * device/include/hc08/mc68hc908gp32.h,
2473         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
2474
2475 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
2476
2477         * src/SDCCast.c (constExprValue): return NULL if not a value
2478         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
2479         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
2480         * support/regression/tests/bitfields.c: enabled signed bitfield for all
2481
2482 2006-02-13 Borut Razem <borut.razem AT siol.net>
2483
2484         * src/regression/ptrarg.c: added, fails due to bug #1430967
2485         * src/regression/Makefile: ptrarg.c added, ...
2486
2487 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2488
2489         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
2490         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
2491
2492 2006-02-11 Borut Razem <borut.razem AT siol.net>
2493
2494         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
2495           print "Processor: xxx" message to stdout only if --verbose
2496
2497 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2498
2499         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
2500         * support/regression/tests/bug1426356.c: added
2501         * support/regression/tests/bitfields.c: removed 2 tests
2502
2503 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2504
2505         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
2506         * device/include/mcs51/c8051f330.h,
2507         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
2508           PCON_IDLE,PCON_STOP and added sfr16 definitions
2509         * device/lib/_divsint.c,
2510         * device/lib/_divuint.c,
2511         * device/lib/_divulong.c,
2512         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
2513           register bank bug for small stackauto
2514
2515 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2516
2517         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
2518
2519 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
2520
2521         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
2522         * all.dsp: corrected several bin paths
2523         * device/include/mcs51/c8051f120.h,
2524         * device/include/mcs51/c8051f300.h,
2525         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
2526           to PCON_IDLE,PCON_STOP
2527         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
2528         * device/lib/printf_large.c (output_float): fixed bug 1388703
2529         * support/regression/tests/bug1057979.c: added test for bug 1388703
2530
2531 2006-02-08 Raphael Neider <rneider AT web.de>
2532
2533         * src/pic/pcode.c (pciTRIS): fixed typo,
2534           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
2535           (LinkFlow): fixed handling of flows that end in a call,
2536           (ReuseReg): perform safety check earlier
2537         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
2538             to work with flows at the beginning of a pBlock,
2539             fixes #1426557 (Symbol not previously defined),
2540           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
2541             usage information
2542           (RemoveUnusedRegisters): update register usage info
2543         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
2544             created, reuse existing ones instead
2545         * src/pic/gen.c (genPcall): fixed #1424719
2546
2547 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
2548
2549         * link/z80/lkmain.c,
2550         * link/z80/lklex.c,
2551         * link/z80/lkdata.c,
2552         * link/z80/aslink.h: fixed build on current cygwin:
2553         replaced getline() by lk_getline()
2554
2555 2006-02-01 Borut Razem <borut.razem AT siol.net>
2556
2557         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
2558           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
2559           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
2560           src/regression/bool1.c, src/regression/bool2.c,
2561           src/regression/bool3.c, src/regression/call1.c,
2562           src/regression/compare.c, src/regression/compare10.c,
2563           src/regression/compare2.c, src/regression/compare3.c,
2564           src/regression/compare4.c, src/regression/compare5.c,
2565           src/regression/compare6.c, src/regression/compare7.c,
2566           src/regression/compare8.c, src/regression/compare9.c,
2567           src/regression/configword.c, src/regression/for.c,
2568           src/regression/inline.c, src/regression/mult1.c,
2569           src/regression/nestfor.c, src/regression/or1.c,
2570           src/regression/pointer1.c, src/regression/ptrfunc.c,
2571           src/regression/rotate1.c, src/regression/rotate2.c,
2572           src/regression/rotate3.c, src/regression/rotate4.c,
2573           src/regression/rotate5.c, src/regression/rotate6.c,
2574           src/regression/rotate7.c, src/regression/string1.c,
2575           src/regression/struct1.c, src/regression/sub.c,
2576           src/regression/sub2.c, src/regression/switch1.c,
2577           src/regression/while.c, src/regression/xor.c,
2578           src/regression/create_stc, src/regression/simulate,
2579           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
2580           regression tests
2581         * src/regression/gpsim_assert.h: added
2582
2583 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
2584
2585         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
2586         ((void (code *) (void)) 0) ();
2587         * as/hc08/aslex.c,
2588         * as/hc08/aslink.h,
2589         * as/hc08/asm.h,
2590         * as/hc08/asmain.c,
2591         * as/hc08/lkdata.c,
2592         * as/hc08/lklex.c,
2593         * as/hc08/lkmain.c,
2594         * as/mcs51/aslex.c,
2595         * as/mcs51/aslink.h,
2596         * as/mcs51/asm.h,
2597         * as/mcs51/asmain.c,
2598         * as/mcs51/lkdata.c,
2599         * as/mcs51/lklex.c,
2600         * as/mcs51/lkmain.c,
2601         * as/z80/aslex.c,
2602         * as/z80/asm.h,
2603         * as/z80/asmain.c: fixed build on current cygwin:
2604         replaced getline() by as_getline()
2605
2606 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
2607
2608         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
2609         declarator in the symbol chain
2610         * src/SDCCsymt.h,
2611         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
2612         parameter list for function pointers
2613         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
2614         * support/regression/tests/bug-716242.c: added
2615
2616 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
2617
2618         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
2619         offset if possible
2620         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
2621
2622 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
2623
2624         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
2625         inifinitely recurseable, added static
2626         * support/regression/tests/bug-1408066.c: added
2627
2628 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
2629
2630         * src/SDCCicode.h,
2631         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
2632         renamed, added possibility to create "postLoopLbl"-labels
2633         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
2634         newiTempLoopHeaderLabel
2635         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
2636         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
2637         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
2638         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
2639         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
2640         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
2641         (basicInduction): fixed bug #136564, made static,
2642         (loopInduction): changed parameter of basicInduction, made static,
2643         (addPostLoopBlock): added
2644         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
2645         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
2646         findLoopEndSeq
2647         * support/regression/tests/bug-136564.c: added
2648         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
2649         --std-sdcc99 to LIBSDCCFLAGS
2650
2651 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
2652
2653         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
2654         while loop
2655         * support/regression/tests/bug-1406131.c: added
2656
2657 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
2658
2659         * src/SDCCast.c (decorateType): fix promotion of unary minus
2660         * src/SDCCsymt.c (computeType): beautified
2661         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
2662         (valUnaryPM, valComplement): fix sign and promotion,
2663         (valNot): ANSI: result type is int (SDCC: unsigned char)
2664         * support/regression/tests/uminus.c: speedup by removing superflous
2665         test case 'int'
2666         * support/regression/tests/onebyte.c: added promotion and signedness
2667         tests for unary minus
2668         * support/regressions/tests/bug-477927.c: disable warning about
2669         uninitialized variables
2670         * support/regression/tests/not.c: added
2671
2672 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
2673
2674         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
2675         * src/mcs51/gen.c (gen51Code): show final register usage after
2676         fillGaps in asm with --i-code-in-asm
2677         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
2678         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
2679         incUsed, rliveClear, adjustIChain): made static,
2680         (setFromRange): excluded because it's unused,
2681         (findPrevUseSym, markWholeLoop): added,
2682         (findPrevUse): rewritten; fixes bug 895992; now a complete search
2683         through all branches of predecessors enables sdcc to emit the warning
2684         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
2685         (rlivePoint): made static, added parameter emitWarnings which is only
2686         true during the first run out of two,
2687         (findRecursiveSucc, findRecursivePred): removed,
2688         (computeLiveRanges): made static, added parameter emitWarnings,
2689         (dumpIcRlive): added for debugging only
2690         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
2691         removed prototype of setFromRange()
2692         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
2693         in call of computeLiveRanges()
2694         * support/regression/tests/bug-895992.c: added
2695         * support/regression/tests/bug-971834.c: added
2696         * support/valdiag/tests/bug-895992.c: added
2697         * support/valdiag/tests/bug-971834.c: added
2698
2699 2005-12-18 Raphael Neider <rneider AT web.de>
2700
2701         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
2702           (genUnpackBits): improved code for direct operands,
2703           (genPackBits): improved code for literal assignment to bitfields
2704             and for direct destination operands (no FSR indirection),
2705             prevented redundant AND, fixes #1362800,
2706           (AccLsh): added parameter to disable masking of the result
2707         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
2708           skip instructions with side-effects (like incfsz),
2709           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
2710         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
2711         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
2712           fixes #1375263
2713
2714 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
2715
2716         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
2717         volatile variables as spill location
2718
2719 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
2720
2721         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
2722         replacing literals
2723         * support/regression/tests/bug-1376320.c: added
2724
2725 2005-12-08 Raphael Neider <rneider AT web.de>
2726
2727         * src/pic/device.c: renamed is_shared to pic14_is_shared
2728         * src/pic/gen.c (genIfx): re-enabled handling of sbits
2729         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
2730           (is_valid_identifier): added for above workaround
2731
2732 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
2733
2734         * device/lib/Makefile.in: fixed to enable port-specific-objects
2735         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
2736           char, thanks Hubert Sack
2737         * doc/sdccman.lyx: documented --xstack-loc,
2738           elaborated a bit more on interrupts and pitfalls,
2739           removed "setjmp/longjmp unsupported",
2740           documented some unsupported C99 features
2741         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
2742         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
2743           if, thanks Hubert Sack
2744         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
2745         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
2746           make make_library
2747         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
2748           regression tests can report resource usage (rfe 700441)
2749         * support/regression/collate-results.py: report resource usage
2750         * support/regression/ports/ds390/spec.mk,
2751         * support/regression/ports/hc08/spec.mk,
2752         * support/regression/ports/mcs51/spec.mk,
2753         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
2754         * support/regression/ports/ds390/uCsim.cmd,
2755         * support/regression/ports/hc08/uCsim.cmd,
2756         * support/regression/ports/mcs51/uCsim.cmd,
2757         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
2758         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
2759           library, use the default one
2760         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
2761           building the library
2762
2763 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2764
2765         * config.dsp: added dependency on .version and configure_vc.awk
2766         * device/include/setjmp.h: updated for --stack-auto and --xstack
2767         * device/include/mcs51/at89c51snd1c.h: corrected line endings
2768         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
2769         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
2770         * device/lib/libsdcc.lib: added _setjmp
2771         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
2772           (decorateType): fixed bug 1372851,
2773           (optimizeGetHbit): fixed warning
2774         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
2775           array initialisation
2776         * support/regression/tests/bug1057979.c: added test for bug 1358192
2777         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
2778
2779 2005-12-03 Borut Razem <borut.razem AT siol.net>
2780
2781         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
2782           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
2783
2784 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2785
2786         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
2787         createIval): implement symbol independant "flexible array member",
2788         (createIvalCharPtr): implemented flexible array initialisation with a
2789         string
2790         * src/SDCCsymt.c (copyStruct): removed,
2791         (getSize): fixed misleading comment,
2792         (getAllocSize): removed, the additional allocation size is now in
2793         sym->flexArrayLength,
2794         (checkStructFlexArray): new, syntax checks for flexible array members,
2795         (compStructSize): added syntax checks for "flexible array members"
2796         (copyStruct): removed,
2797         (copyLinkChain): removed inefficient fix for bug 770487
2798         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
2799         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
2800         symbol->flexArrayLength
2801         * src/SDCCerr.c,
2802         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
2803         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
2804         * support/regression/tests/structflexarray.c: added
2805         * support/valdiag/tests/structflexiblearray.c: added
2806
2807 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2808
2809         * src/SDCCast.c (decorateType): fixed bug 1368489
2810         * support/Util/SDCCerr.c,
2811         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
2812
2813 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2814
2815         * device/include/mcs51/at89c51snd1c.h: added file submitted by
2816           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
2817
2818 2005-11-27 Borut Razem <borut.razem AT siol.net>
2819
2820         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
2821           support/cpp2/mkdeps.h: added command line option
2822           -obj-ext=<extension> to SDCPP to define object file externion, used
2823           for generation of make dependencies (-M)
2824         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
2825
2826 2005-11-26 Borut Razem <borut.razem AT siol.net>
2827
2828         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
2829           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
2830           added pic and pic16 libraries
2831
2832 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2833
2834         * device/include/float.h: Corrected typo in prototype of __fsgt
2835
2836 2005-11-25 Borut Razem <borut.razem AT siol.net>
2837
2838         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
2839           added creation of model-mcs51-stack-auto libraries
2840
2841 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
2842
2843         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
2844         and fields-list too
2845         * src/SDCCast.c (createIvalArray): removed obsolete comment
2846
2847 2005-11-24 Borut Razem <borut.razem AT siol.net>
2848
2849         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
2850           added missing device/lib/mcs51/crt*.asm sources
2851
2852 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
2853
2854         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
2855
2856 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
2857
2858         * device/lib/_fs2schar.c,
2859         * device/lib/_fs2sint.c,
2860         * device/lib/_fs2slong.c: optimized inline asm
2861
2862 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2863
2864         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2865           Better handling of floats between -1.0 and 0.0.
2866
2867 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2868
2869         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
2870           (the missing "if"s prohibited removal of redundant labels)
2871
2872 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2873
2874         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2875           Properly convert floats between -1.0 and 0.0 to long, int, and char
2876           types (max integer value of negative floats tends to zero).
2877         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2878           Removed changes made so to work properly with floats between
2879           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
2880           and _fs2char.c
2881
2882 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2883
2884         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
2885         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
2886         (genCast) cosmetic change
2887         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
2888         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
2889         from mcs51
2890         * support/regression/tests/bitfields (testSignedBitfields): added
2891
2892 2005-11-18 Borut Razem <borut.razem AT siol.net>
2893
2894         * sdcc/device/lib/Makefile.in: remove all unnecessary files
2895         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
2896           introduced SILENT option to make building of pic16 libraries less
2897
2898 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2899
2900         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2901           Now they work properly with floats between -1.0 and 0.0
2902         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
2903
2904 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2905
2906         * src/SDCCicode.c (printOperand): added missing else
2907
2908 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2909
2910         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
2911         reformatted for better readability
2912         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
2913         signed bitfields
2914
2915 2005-11-17 Borut Razem <borut.razem AT siol.net>
2916
2917         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
2918           introduced SILENT option to make building of pic16 libraries less
2919           verbose - used for nightly snapshot build
2920         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
2921           available on Win32 platforms.
2922         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
2923           medium, large, pic and pic16
2924
2925 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2926
2927         * device/lib/printf_large.c: Temporary patch for bug 1358192:
2928           printf("%f"...) sets fraction to zero.
2929
2930 2005-11-16 Raphael Neider <rneider AT web.de>
2931
2932         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
2933           fixes #1357221
2934         * src/pic/gen.c (genIfx): implemented for CARRY bit
2935         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
2936           to generic pointers, fixes #1357332,
2937           (pic16_movLit2f): NEW,
2938           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
2939
2940 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2941
2942         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
2943
2944 2005-11-11 Raphael Neider <rneider AT web.de>
2945
2946         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
2947         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
2948           compute pointer's type from operand,
2949           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
2950           improved single bit reads, fixes bug #1353379
2951
2952 2005-11-09 Borut Razem <borut.razem AT siol.net>
2953
2954         * support/scripts/sdcc.nsi: added lib/pic to the package
2955
2956 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
2957
2958         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
2959
2960 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2961
2962         * support/regression/tests/bug1348008.c: added
2963         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
2964         * support/regression/tests/bug1337835.c: updated comment
2965
2966 2005-11-06 Borut Razem <borut.razem AT siol.net>
2967
2968         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2969           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2970           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2971           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2972           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
2973           dynamic construction of cl_error_class and derivates - 2.nd try
2974
2975 2005-11-05 Borut Razem <borut.razem AT siol.net>
2976
2977         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
2978           bug, which caused Bus Errors on sparc solaris
2979
2980 2005-11-04 Borut Razem <borut.razem AT siol.net>
2981
2982         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2983           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2984           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2985           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2986           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
2987           and derivates to resolve the initialization problem on OSX
2988
2989 2005-11-02 Borut Razem <borut.razem AT siol.net>
2990
2991         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2992           corrected typo - #include <winsock2.h>
2993
2994 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
2995
2996         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
2997           (_asxxxx_mapping): added org directive for future enhancements
2998
2999 2005-11-01 Borut Razem <borut.razem AT siol.net>
3000
3001         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
3002           enabled sockets on WIN32
3003         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
3004
3005 2005-10-31 Borut Razem <borut.razem AT siol.net>
3006
3007         * support/regression/generate-cases.py: escape backslashes in {testcase}:
3008           WIN32 backslash path delimiters should be escaped when used in C strings
3009         * support/regression/tests/bitfields.c: exclude failing assertions for
3010           __CYGWIN32__ and __MINGW32__ hosts
3011
3012 2005-10-30 Borut Razem <borut.razem AT siol.net>
3013
3014         * src/SDCCutil.c: corrected double comparison typo
3015
3016 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
3017
3018         * device/lib/medium/Makefile: added for new memory model medium
3019         * device/include/asm/mcs51/features.h: updated for medium/pdata
3020         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
3021           added Multiply & Accumulate sbit's and MAC0_PAGE define
3022         * device/include/mcs51/c8051f300.h: added sfr16 definitions
3023         * device/include/mcs51/c8051f310.h: added sfr16 definitions
3024         * device/lib/_mullong.c: update for medium model
3025         * device/lib/incl.mk: added medium model
3026         * doc/sdccman.lyx: documented medium model
3027         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
3028         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
3029         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
3030         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
3031           (allocParms): set SCLS and OCLS to pdata for medium model
3032         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
3033           for pdata,
3034           (powof2): return <0 if not power of 2
3035         * src/avr/gen.c (genBitWise): use updated powof2
3036         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
3037           (shiftR2Left2Result): small optimization in setup, save acc when storing,
3038           (shiftLLeftOrResult): use B if necessary
3039         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
3040         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
3041         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
3042         * support/regression/Makefile.in: added test-mcs51-medium
3043         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
3044
3045 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
3046
3047         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
3048         specifier unsigned
3049         * device/lib/time.c (mktime): fixed bug 1334315
3050
3051 2005-10-28 Raphael Neider <rneider AT web.de>
3052
3053         * device/include/pic/p16f_common.inc: added common declarations
3054         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
3055
3056 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3057
3058         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
3059           (aopPutUsesAcc): added to predict accumulator use,
3060           (assignResultValue): save acc if necessary,
3061           (genMinusDec): store result if indirectly addressed,
3062           (genDivOneByte):  save acc if necessary,
3063           (movLeft2Result): bugfix if left already in acc,
3064           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
3065             attention to accumulator use (esp. pdata),
3066           (genReceive): receive pdata correctly
3067         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
3068         * src/SDCCicode.h: added isOperandInPagedSpace prototype
3069
3070 2005-10-27 Raphael Neider <rneider AT web.de>
3071
3072         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
3073
3074 2005-10-27 Raphael Neider <rneider AT web.de>
3075
3076         * .version: changed version to 2.5.4
3077         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
3078         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
3079           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
3080             arithmetics support routines
3081         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
3082         * device/lib/Makefile.in: also create installdir for pic
3083
3084         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
3085           pic14 port as well
3086         * src/pic/device.c (dump_sfr): rewritten to delegate register
3087           placement to the linker (use `extern sym' rather than sym EQU addr),
3088           (validAddress): fixed to check last specified address
3089         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
3090           (popGetLit): truncate literal value to 8 bit,
3091           (popGet): moved assert to more appropriate place
3092           (popGetExternal): create pCode operand from and mark the according
3093             symbol as being `extern'
3094           (popGetAddr): added sanity check on immediate's offset, provide
3095             GPOINTER tag on demand
3096           (aopPut): fixed for immediates,
3097           (mov2w_op): move operand's address or contents to WREG (depending on
3098             operand type), safer variant of mov2w,
3099           (movwf,call_libraryfunc): NEW, handy abbreviations,
3100           (get_argument_pcop,get_return_val_pcop,pass_argument,
3101           get_returnvalue): interface for accessing function parameters and
3102             return values,
3103           (assignResultValuei,genRet): use new parameter/return value interface
3104           (pic14_getDataSize): back to old version handling generic pointers,
3105           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
3106             provided implementation and/or fixed old one,
3107           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
3108             calls, removed legacy 8051 reference code
3109           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
3110           (loadSignToC): NEW, move the operands sign bit to CARRY,
3111           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
3112             genRightShiftSigned, accepts negative shift counts,
3113           (setup_fsr): load FSR and adjust IRP (indirect memory access),
3114           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
3115             generic pointers, __data pointers and __code pointers,
3116           (genUnpackBits,genPackBits): rewritten to work with generic pointers
3117             and signed bitfields, limit bitfields to 8 bit,
3118           (genDataPointerGet): fixed number of bytes read,
3119           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
3120           (genPointerGet,genPointerSet): fixed handling of __code pointers,
3121             pointers to constant data are no longer assumed to point to __code
3122             space, removed invalid pointer types,
3123           (bitpatternFromVal): retrieve the PICs representation of an integer
3124             or float literal,
3125           (genDataPointerSet): fixed assigning to po_immediate operands,
3126           (genGenPointerSet): implemented as library call,
3127           (genIfx): fixed incorrect condition,
3128           (genAddrOf): limit generic pointers' addresses to 2 bytes,
3129             provide GPOINTER tag according to destination's storage class,
3130           (genCast): added code to handle casting to generic pointers, added
3131             sign-/zero extension of the result
3132           (aop_isLitLike,op_isLitLike): fixed handling of immediates
3133         * src/pic/gen.h: added macros to access IRP bit in STATUS register
3134         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
3135           extend the result
3136         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
3137           address/register resides in the shared banks
3138           (emitSymbolToFile): improved to handle global and `pinned' symbols,
3139             put all variables into separate sections (have the linker arrange
3140             them)
3141           (picglue): put init code and interrupt handlers in separate sections
3142         * src/pic/main.c: added port specific options table, modified to PORT
3143           structure to make GPOINTERs 3 byte, added pic14_options
3144           (_pic14_do_link): private linking routine (update paths to libraries,
3145             add libsdcc.lib by default)
3146         * src/pic/main.h: declare pic14_options
3147         * src/pic/pcode.c: fixed instructions i/o relations,
3148           (RegCond): reverted to correct version,
3149           (newpCodeOpLit): truncate literals to 8 bit,
3150           (genericPrint): added debug output,
3151           (getRegFromInstruction): fixed for various operand types, simplified
3152           (BuildFlow): fixed broken handling of isntructions with labels
3153           (LinkFlow): start at last instruction in flow (skip trailing comments),
3154             pass the flow on to the next instruction after CALL
3155           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
3156           (insertPCodeInstruction): fixed inserting after a skip instruction,
3157           (DoBankSelect): fixed for labeled instructions
3158           (OptimizepBlock): honor --nopeep switch
3159           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
3160         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
3161         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
3162           (pCodeOptime2pCodes): allow disabling this optimization via
3163             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
3164             but is still buggy), started implementation of a dataflow based
3165             pCode optimization (CSE + dead code elimination)
3166           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
3167         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
3168           names are independant of the stack location and therefore portable across
3169           devices
3170
3171 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3172
3173         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
3174           (selectSpil): fixed bug 1337835 by not spilling bit variables
3175         * support/regression/tests/bug1337835.c: added test for this bug
3176         * src/mcs51/peeph.def: restart after rule 3.c,
3177           addded rules 263.x to optimize loading constants
3178
3179 2005-10-26 Raphael Neider <rneider AT web.de>
3180
3181         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
3182         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
3183           (genAssign): emit warning when casting literals to generic pointer
3184             type, also applies when taking the address of a fixed variable,
3185           (genCast): improved casting to generic pointers
3186         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
3187           extern variables, added verbose error message
3188         * device/include/pic16/{string.h,errno.h}: added #pragma library c
3189
3190 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
3191
3192         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
3193         carry must be complemented too
3194         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
3195         could be emitted by genMinus
3196         * src/SDCCval.c (constVal): fixed bug 1305065
3197
3198 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
3199
3200         * src/SDCCast.c (addCast): added promotion for bit variables
3201         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
3202         promotion casts + optimisation
3203         (optimizeGetWord): fix warning 'i' might be used uninitialized
3204         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
3205         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
3206
3207 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
3208
3209         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
3210         all chars are promoted to int; promotion should be handled in SDCCast.c
3211
3212 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3213
3214         * device/lib/_strcmp.c: Fixed bug 1326457
3215
3216 2005-10-11 Raphael Neider <rneider AT web.de>
3217
3218         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
3219         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
3220
3221 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3222
3223         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
3224         * support/regression/tests/sfr16.c: added test for the sfr32 bug
3225
3226 2005-10-04 Raphael Neider <rneider AT web.de>
3227
3228         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
3229           device/lib/pic16/pics.all: added pic18f1320
3230         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
3231
3232 2005-09-30 Raphael Neider <rneider AT web.de>
3233
3234         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
3235         * src/pic16/devices.inc: NEW, provides device descriptions
3236         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
3237
3238 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
3239
3240         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
3241           GETHBIT
3242
3243 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
3244
3245         * doc/sdccman.lyx: updated Highest Order Bit documentation,
3246           documented Any Order Bit, Higher Order Byte and Higher Order Word
3247         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
3248         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
3249           (optimizeGetAbit): new, to get any bit, not only the high bit,
3250           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
3251           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
3252           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
3253           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
3254             RIGHT_OP: also try GETBYTE, GETWORD optimization,
3255             GETABIT, GETBYTE, GETWORD: decorate them,
3256           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
3257           (ast_print): added GETABIT, GETBYTE, GETWORD
3258         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
3259         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
3260           (geniCodeBinary): new generic binary icode,
3261           (ast2iCode): added GETABIT, GETBYTE, GETWORD
3262         * src/port.h: updated comment for PORT.hasExtBitOp
3263         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
3264           (genGetByte): new, to get a single byte,
3265           (genGetWord): new, to get a word from a long,
3266           (gen51Code): added GETABIT, GETBYTE, GETWORD
3267         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
3268
3269 2005-09-23 Raphael Neider <rneider AT web.de>
3270
3271         * configure.in, configure: have device/lib/pic configured
3272         * device/lib/Makefile.in: added model-pic14
3273         * device/lib/clean.mk: added pic/ to clean rule
3274         * device/lib/pic: added rudimentary pic14 library providing support
3275           functions for multiplication/division/generic pointer access
3276         * src/SDCCopt.c (convilong): mark support functions as extern
3277           for pic14 port as well
3278         * src/pic/gen.c (genMult): added assertions,
3279           (genpic14Code): emit warning on unhandled iCodes
3280         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
3281         * src/pic/pcode.c (pCodeOpCopy),
3282         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
3283           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
3284           SFR_REGISTER}), made safe for future extensions
3285         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
3286           instructions even if preceeded by SKIP instructions (also remove
3287           them); removed unused code
3288         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
3289           prevents leaving parts of the structure uninitialized after copying
3290
3291 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
3292
3293         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
3294           ago by me
3295         * support/regression/tests/addsub.c: added test for the bug
3296
3297 2005-09-21 Raphael Neider <rneider AT web.de>
3298
3299         * device/include/pic16/pic18f1220.h,
3300           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
3301         * device/lib/pic16/Makefile.rules: added missing opening paren
3302         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
3303           are provided in genutils.c,
3304           (genUminusFloat,genUminus,genCmpEq): added asserts on different
3305           operand/result sizes,
3306           (genCmp): assert on NULL pointers first, then check deref'ed values
3307         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
3308           result size
3309
3310 2005-09-18 Raphael Neider <rneider AT web.de>
3311
3312         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
3313           as these are now unused,
3314           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
3315         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
3316           local, avoids uninitialized pointer dereference on r->name
3317         * src/pic16/ralloc.c (newReg): fixed indentation
3318
3319 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
3320
3321         * src/SDCCval.c (constVal): fixed bug 730366
3322         * support/Util/SDCCerr.c,
3323         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
3324
3325 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
3326
3327         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
3328
3329 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
3330
3331         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
3332
3333 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3334
3335         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
3336           (hex2dec): made hex_digit unsigned char, removed ascii dependance
3337         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
3338           (hex2dec): made hex_digit unsigned char, removed ascii dependance
3339         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
3340         * packihx/packihx.c (hexDigit): made c unsigned char
3341         * as/mcs51/lklibr.c (fndsym),
3342         * link/z80/lkgb.c (gb),
3343         * link/z80/lklibr.c (fndsym),
3344         * link/z80/lkrloc.c (relr),
3345         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
3346         * src/SDCC.lex (checkCurrFile, process_pragma),
3347         * src/SDCCglue.c (spacesToUnderscores),
3348         * src/SDCCmain.c (setParseWithComma, processFile),
3349         * src/asm.c (tvsprintf, printCLine),
3350         * src/avr/gen.c (emitcode, aopPut),
3351         * src/ds390/gen.c (emitcode),
3352         * src/hc08/gen.c (emitcode, emitinline),
3353         * src/mcs51/gen.c (emitcode, genInline),
3354         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
3355           tokenizeLineNode),
3356         * src/pic/ralloc.c (debugLog),
3357         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
3358           tokenizeLineNode),
3359         * src/pic16/ralloc.c (debugLog),
3360         * src/z80/main.c (_process_pragma):
3361            made all ctype.h function calls safe
3362         * src/SDCCopt.c: include math.h for fabs
3363         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
3364           and used them throughout the code to make ctype.h function calls safe
3365         * src/ds390/main.c (asmLineNodeFromLineNode),
3366         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
3367         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
3368            unsigned char*
3369         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
3370           (newpCodeAsmDir): made ctype.h function calls safe
3371         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
3372           pic16_emitcode):  made lbp unsigned char*
3373         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
3374           (pic16_newpCodeAsmDir): made ctype.h function calls safe
3375         * src/xa51/gen.c (emitcode),
3376         * src/z80/gen.c (_emit2): made lbp unsigned char*
3377         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
3378            char*
3379
3380 2005-09-05 Raphael Neider <rneider AT web.de>
3381
3382         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
3383           access bank splitpoint
3384
3385 2005-09-05 Raphael Neider <rneider AT web.de>
3386
3387         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
3388
3389 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
3390
3391         * .version: changed to version 2.5.3
3392         * doc/sdccman.lyx: changed version to 2.5.3,
3393           documented --codeseg and --constseg and pragma codeseg and constseg,
3394           documented bit parameters (reentrant) and bit returning
3395         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
3396            currFunc->recvSize, but is this ok for all ports?
3397           (ast2iCode): result of ~ on unsigned char must be cast to int for
3398            bool to work
3399         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
3400           function pointers in bit space
3401         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
3402           (processFuncArgs): call port.reg_parm() with reentrancy info
3403         * src/port.h,
3404         * src/avr/main.c,
3405         * src/ds390/main.c,
3406         * src/hc08/main.c,
3407         * src/pic/main.c,
3408         * src/pic16/main.c,
3409         * src/xa51/main.c,
3410         * src/z80/main.c: port.reg_parm prototype extended with
3411           "bool reentrant" parameter
3412         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
3413           options.stackAuto for allocating bit register parameters
3414         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
3415           (genSend): set BitBankUsed if it is,
3416           (selectRegBank): factored out of genCall for use in genPcall,
3417           (genCall): removed redundant dtype assignmen, use selectRegBank,
3418           (genPcall): handle returning in Carry properly, save in F0 if needed,
3419           (genReceive): handle bit register parameters
3420         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
3421           (mcs51_assignRegisters): enable bit registers for all reentrant
3422            functions and don't set BitBankUsed unconditionally
3423         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
3424         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
3425         * support/regression/tests/funptrs.c: added tests for BOOL and for return
3426
3427 2005-08-27 Borut Razem <borut.razem AT siol.net>
3428
3429         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
3430         ppc-osx (Darwin) does not support -u option. It seems that it is
3431         supported only on Linux - GNU cp
3432
3433 2005-08-25 Borut Razem <borut.razem AT siol.net>
3434
3435         * sim/ucsim/gui.src/serio.src/Makefile.in,
3436           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
3437           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3438           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
3439           install and strip, since the strip at /usr/ccs/bin should be used
3440           on solaris
3441
3442 2005-08-24 Borut Razem <borut.razem AT siol.net>
3443
3444         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
3445
3446 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
3447
3448         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
3449         ffffffffu
3450
3451 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
3452
3453         * as/mcs51/aslink.h: completed lkrloc.c prototypes
3454         * as/mcs51/lkmain.c (link_main): fixed warning
3455         * device/include/stdbool.h: ds390 has no advanced bit support yet
3456         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
3457         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
3458         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
3459           and updated their macros
3460         * src/SDCCval.c (constVal): updated comment for renamed b_long
3461
3462 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
3463
3464         * as/mcs51/asdata.c: changed ctype['['] to BINOP
3465         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
3466           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
3467           (oprio): set priority for '['
3468         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
3469            and adb_24_bit
3470         * as/mcs51/asm.h: added defines R_BIT and S_BIT
3471         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
3472         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
3473         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
3474           added overlayable BIT_BANK area
3475         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
3476           (summary2): explain 'T' in legenda
3477         * as/mcs51/lkrloc.c: replaced old K&R style,
3478           (relr): added R_BIT processing,
3479           (errmsg): added "Bit-addressable relocation error",
3480           (adb_bit): added for converting from byte- to bit-addressable space,
3481           (adb_24_bit): added for converting from byte- to bit-addressable space
3482         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
3483            used in reentrant functions now even as return value
3484         * device/lib/_gptrput.c (_gptrput): removed obsolete code
3485         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
3486           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
3487         * src/SDCCglobl.h: added indicator BitBankUsed
3488         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
3489            the bit registers b0-b7
3490         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
3491           (geniCodeCast): fixed bug 1263853,
3492           (geniCodeLogicAndOr): put result in bool or char,
3493           (geniCodeReceive): added parameter func for accessing the return type,
3494           (geniCodeFunctionBody): pass func to geniCodeReceive
3495         * src/SDCCmain.c: added indicator BitBankUsed
3496         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
3497         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
3498           (checkSClass): don't put automatic bool/bit on stack,
3499           (checkFunction): removed check on function cannot return bit
3500         * src/SDCCsymt.h: added newBoolLink prototype
3501         * src/mcs51/gen.c (rb1regs): added bit registers,
3502           (movc): created for assigning to carry,
3503           (pushReg, popReg): created for pushing registers,
3504           (sameRegs): check both AOP_REG and AOP_CRY types,
3505           (aopOp): handle bit registers,
3506           (aopPut): optimization no self-assign,
3507           (saveRegisters): push reg->base (bits) only once for bit registers,
3508            and use pushReg,
3509           (unsaveRegisters): pop reg->base only once and use popReg,
3510           (assignResultValue): added parameter func and return in carry for bits,
3511           (genIpush): optimization no reload in A if not changed,
3512           (genSend): bit parameters in reentrant functions are passed in bit
3513            registers by first assigning to bits in B, then save registers and
3514            copy B to bits,
3515           (genCall): handle returning in Carry properly, save it in F0 if needed,
3516           (genPcall): updated assignResultValue call, this is not safe yet for bit
3517            returning function !!!
3518           (genFunction): don't generate equ's for bit registers and use pushReg,
3519           (genEndFunction): take care of bit returning functions and use popReg,
3520           (genRet): return bit in Carry,
3521           (genIfx): optimize bit registers and other directly addressable bits,
3522           (genReceive): updated assignResultValue call
3523         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
3524           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
3525            registers when using stack-auto
3526         * src/mcs51/ralloc.c (_G): added allBitregs,
3527           (regs8051): added the bit registers,
3528           (createStackSpil): use macro IS_BIT,
3529           (getRegBit): added to allocate a bit register, else spill,
3530           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
3531           (updateRegUsage): factored out to ease stepping while debugging,
3532           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
3533            also allocate bit registers,
3534           (fillGaps): handle bit registers,
3535           (findAllBitregs): added to create bit vector with all bit registers,
3536           (mcs51_allBitregs): returns this bit vector,
3537           (mcs51_assignRegisters): when using stack-auto use bit registers for
3538            passing parameters and creating local variables
3539         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
3540
3541 2005-08-22 Borut Razem <borut.razem AT siol.net>
3542
3543         * device/lib/Makefile.in: replaced find option -or with -o
3544           to make it run on solaris
3545
3546 2005-08-22 Raphael Neider <rneider AT web.de>
3547
3548         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
3549           fixes #1265442 (crash on Solaris)
3550
3551 2005-08-20 Borut Razem <borut.razem AT siol.net>
3552
3553         * configure, configure.in: added tests for libsocket and libnsl libraries,
3554           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
3555           from support/regression/Makefile.in
3556         * support/regression/Makefile.in: added
3557         * device/lib/pic16/Makefile.common.in: force make to use bash shell
3558         * sim/ucsim/libtool: regenerated on sparc-solaris
3559         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3560           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
3561           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
3562           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
3563           sparc-solaris, which doesn't use GNU ld linker
3564         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
3565         * as/Makefile: find on sparc-solaris does not support -maxdepth option
3566
3567 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
3568
3569         * src/mcs51/peeph.def: updated comments
3570
3571 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3572
3573         * device/lib/_gptrget.c,
3574         * device/lib/_gptrput.c: slightly shorter
3575         * doc/sdccman.lyx: incremented version
3576         * src/mcs51/peeph.def: moved peephole comments to the line of first
3577           change to better keep line correlation, reanimated 186.e
3578         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
3579
3580 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3581
3582         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
3583           David Saxton with quotes around file name.
3584
3585 2005-08-15 Borut Razem <borut.razem AT siol.net>
3586
3587         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
3588           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
3589           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
3590           make tests run on x86_64 platform
3591
3592 2005-08-13 Raphael Neider <rneider AT web.de>
3593
3594         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
3595           as it might be executed DURING a build (parallel make is wonderful)
3596
3597 2005-08-13 Raphael Neider <rneider AT web.de>
3598
3599         * device/lib/Makefile.in (port-specific-objects-pic16):
3600           revert to cp $(PORT)/bin/*.* $(PORTDIR)
3601         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
3602           dependency
3603         * device/lib/pic16/Makefile.rules: build subdirs before creating
3604           the library, removed builddir rule, create $(builddir) early in
3605           recurse rule, use empty recurse rule for leaf directories
3606         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
3607           mkdir errors (race condition), removed duplicate suffix "hex"
3608           from clean rules
3609         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
3610         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
3611           prevents mkdir -p from aborting on Alpha
3612
3613 2005-08-12 Raphael Neider <rneider AT web.de>
3614
3615         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
3616           db-statements in order to allow for arrays of pointers in code
3617           sections to be placed without interspersed 0-padding, fixes
3618           bug #1256215
3619         * (emitStatistics): fixed division by zero for pic18f1220
3620         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
3621           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
3622         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
3623         * (pic16_pCodeConstString): keep track of already emitted string
3624           literals to prevent "duplicate definitions of symbol _str_NR"
3625         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
3626           debug message
3627         * device/lib/Makefile.in: ignore failing PIC16 library builds
3628         * device/lib/pic16/Makefile: do not build if gputils are missing
3629         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
3630
3631 2005-08-10 Raphael Neider <rneider AT web.de>
3632
3633         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
3634           my last commit)
3635
3636 2005-08-10 Raphael Neider <rneider AT web.de>
3637
3638         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
3639           Rokas' patch to add the new fixed point type "__fixed16x16"
3640         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
3641           functions for __fixed16x16 arithmetics
3642         * device/lib/pic16: reimplemented the build system to support
3643           a separate build directory, better handling of libio (create
3644           the library in a separate subdir for each architecture) and
3645           easier configuration (centralized in Makefile.common)
3646
3647 2005-08-07 Raphael Neider <rneider AT web.de>
3648
3649         * src/pic16/gen.c (genrshTwo): fixed sign extension
3650         * src/pic16/device.c: added pic18f2320, 4220 and 4320
3651         * device/include/pic16/pic18f2220.h: changed some bit definitions,
3652           added T0CONbits
3653         * device/include/pic16/pic18f4220.h: NEW, header for
3654           pic18f4220 and pic18f4320
3655         * device/include/pic16/pic18fregs.h: added new devices,
3656           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
3657         * device/include/pic16/signal.h: resolved name clashes
3658           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
3659           to also allow testing for interrupt enable bits, added
3660           comments on how to use the macros
3661         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
3662         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
3663           register definitions for the devices
3664         * device/lib/pic16/pics.all: added new devices
3665         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
3666           allocated memory
3667         * device/lib/pic16/libc/stdlib/memfree: do not count
3668           the block header as free memory
3669         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
3670           simplified and added missing end-of-blocklist-marker
3671           (reported by Peter Onion, fixes #1252814)
3672         * (_mergeHeapBlock): fixed loop condition
3673         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
3674           len==0, restructured code
3675         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
3676           up a bit, reduced bitfield accesses, prevent endless loops
3677           in case of heap corruption
3678         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
3679           "unreferenced arguments/must return a value" warnings
3680         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
3681           replaced BAUDREG with SPBRG
3682         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
3683           device/lib/pic16/debug/gstack/gstack.c: replaced
3684           _naked, _asm, _endasm with __naked, __asm, __endasm
3685
3686 2005-08-05 Raphael Neider <rneider AT web.de>
3687
3688         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
3689           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
3690
3691 2005-08-05 Borut Razem <borut.razem AT siol.net>
3692
3693         * device/lib/Makefile.in: added missing ';'
3694         * configure: removed ^M characters
3695
3696 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3697
3698         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
3699           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
3700           License
3701
3702 2005-08-04 Borut Razem <borut.razem AT siol.net>
3703
3704         * configure.in: pic16 libraries build 2nd try - enable running
3705           configure in device/lib/pic16
3706         * configure: regenerated from configure.in
3707         * device/lib/Makefile.in: create $(PORT)/bin directory
3708
3709 2005-08-03 Raphael Neider <rneider AT web.de>
3710
3711         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
3712           to get/set values via pointers
3713         * (genUnpackBits,genPackBits): changed detection of
3714           ptr->bitfield vs. sym.bitfield, fixed access via generic
3715           pointers, removed dead (wrong) code for multibyte bitfields
3716         * (genNearPointerGet, genGenPointerGet): removed useless code,
3717           fixed bitfield detection, fixes #1250594
3718         * (genNearPointerSet): removed useless code
3719         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
3720           and introduced macro pic16_emitpcode that conditionally emits
3721           the origin of the following pCode (useful for debugging SDCC)
3722         * src/pic16/pcode.c: changed (and disabled) some debug outputs
3723         * (createDefmap): fixed handling of LFSR for --optimize-df
3724
3725 2005-08-02 Borut Razem <borut.razem AT siol.net>
3726
3727         * device/lib/Makefile.in: pic16 libraries build enabled since
3728           gputils-0.13.2 are now localy installed at sourceforge's compile farm
3729
3730 2005-08-02 Raphael Neider <rneider AT web.de>
3731
3732         * src/pic16/gen.c (genPackBits): removed deprecated warning
3733         * (genGenPointerSet): fixed bitfield detection
3734
3735 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3736
3737         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
3738
3739 2005-07-31 Raphael Neider <rneider AT web.de>
3740
3741         * device/lib/pic16/libdev/pic18f458.c,
3742           device/include/pic16/pic18f458.h: added missing T0CONbits
3743
3744 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3745
3746         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
3747
3748 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
3749
3750         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
3751
3752 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3753
3754         * device/include/mcs51/at89c51ed2.h: added.
3755
3756 2005-07-23 Raphael Neider <rneider AT web.de>
3757
3758         * src/pic/gen.h: added emitpcode macro for debugging
3759         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
3760           and replace by macro adding debug information on demand
3761         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
3762         * (gencjne): tried to fix; replaced with correct (slower) code
3763         * (gen{Unp,P}ackBits): fixed single bit access
3764         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
3765         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
3766           previous instruction
3767         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
3768           register has to be handled with care (forbidding movement
3769           of assignments/uses, removing assignments completely, ...)
3770         * (pCodeOptime2pCodes): make use of regIsSpecial
3771         * added lots of debugging output (commented out)
3772         * src/pic/rallloc.c (deassignLRs): prevent operand registers
3773           from being reused as result UNLESS it is known to work
3774
3775 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3776
3777         * support/Util/dbuf.h: include <stddef.h> for size_t
3778         * .version: changed to version 2.5.2
3779
3780 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3781
3782         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
3783
3784 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3785
3786         * src/hc08/gen.c (genMinus): fixed bug #1241835,
3787           (genModOneByte): removed needless psha/pula
3788
3789 2005-07-22 Raphael Neider <rneider AT web.de>
3790
3791         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
3792           have PIC14 handled like PIC16, fixes broken pic14 linker calls
3793         * src/pic/gen.c (resolveIfx): do not "invent" labels
3794         * (genSkipc): changed to positive logic
3795         * (genSkipCond): removed as no longer needed
3796         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
3797           backport from PIC16
3798         * (genLeftShift): check operands are in different registers
3799         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
3800           INCF does not update CARRY...
3801         * src/pic/main.c: fixed _linkCmd
3802         * src/pic/pcode.c (unlinkpCode): added inactive code
3803         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
3804           alive (do not assign result and operand overlapping registers)
3805
3806 2005-07-22 Raphael Neider <rneider AT web.de>
3807
3808         * src/pic/device.c (dump_sfr): replaced register declaration with
3809           call to emitSymbolToFile() to avoid duplicate symbols
3810         * (assignRelocatableRegisters): do not declare external symbols
3811         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
3812           right (take size of type, not etype)
3813         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
3814         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
3815         * (packRegsForAccUse): disabled assignment of WREG as
3816           the result reg to prevent occurence of just fixed #1235003,
3817           fixes #1242954
3818         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
3819           symbols (avoids duplicate symbols in .asm file)
3820         * (pic14emitRegularMap): use emitSymbolToFile()
3821         * src/pic/gen.c (aopOp): fixed spillLocation handling
3822         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
3823         * (genDataPointerSet): removed unneccessary variables/output
3824
3825 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
3826
3827         * as/mcs51/lkarea.c: enlarged codemap for banked memory
3828         * device/lib/mcs51/crtbank.asm: added # to 0x0F
3829
3830 2005-07-21 Raphael Neider <rneider AT web.de>
3831
3832         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
3833           architecture cannot handle them efficiently, fixes bug #1235003
3834         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
3835           check for empty sets before using them (fixes bug #1232190)
3836
3837 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
3838
3839         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
3840           (lnksect2): generate warnings for memory overlap
3841         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
3842           constseg to set the name of these segments so you can instruct the linker
3843           to place them in banks
3844         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
3845         * src/SDCCglobl.h: added MODEL_HUGE to enum,
3846           added code_seg and const_seg to options
3847         * src/SDCCglue.c (emitMaps): use options.const_seg,
3848           (createInterruptVect): put interrupt vectors in segment HOME,
3849           (glue): put HOME before static segment and put the main glue in HOME,
3850           (glue): use options.code_seg
3851         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
3852         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
3853           these segments so you can instruct the linker to place them in banks
3854           (linkEdit): use code_loc for HOME segment which should be the first
3855           segment in code memory now
3856         * src/SDCCmem.c: fixed more stuff like bug 1238386
3857         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
3858           (changePointer): don't change function pointers to code pointers for
3859           banked functions,
3860           (compareType): added exceptional check for banked function pointers
3861         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
3862         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
3863           after static in code memory
3864         * src/mcs51/gen.c: added aopLiteralLong prototype,
3865           (aopForSym): use getSize for functions,
3866           (genCall): generate banked calls over one trampoline __sdcc_banked_call
3867           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
3868           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
3869           the segment,
3870           (genPcall): use call for literal function pointers and generate banked
3871           calls over the one trampoline so there's only one place for the user to
3872           modify according to his/hers hardware,
3873           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
3874           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
3875         * src/mcs51/main.c: added keyword banked,
3876           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
3877         * support/Util/SDCCerr.c,
3878         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
3879           needed for passing the bank and address to the trampoline
3880         * device/lib/mcs51/crtbank.asm: added for bankswitching
3881         * device/lib/mcs51/Makefile: added crtbank
3882
3883 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3884
3885         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
3886           for fields at offset 0 of a struct or union as reported
3887           on 2005-07-07 in the developer mailing list.
3888
3889 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
3890
3891         * src/SDCCmem.c: fixed bug 1238386
3892
3893 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3894
3895         * src/mcs51/peeph.def: added labelrefcounting for peepholes
3896           (patch #1144962), added peephole 300, enabled 259.x
3897         * doc/sdccman.lyx: removed screenshot and provided link instead
3898
3899 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3900
3901         * doc/sdccman.lyx: added section about debugging with ddd
3902         * doc/figures/ddd_example.eps: screenshot of debugging session
3903
3904 2005-07-04 Raphael Neider <rneider AT web.de>
3905
3906         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
3907           like CODE pointers, fixes #1115683
3908         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
3909           call, fixes bugs #1232211, #1228110,
3910           fixed wrong casts to pCodeFlow from pCodeInstructions
3911
3912 2005-07-04 Raphael Neider <rneider AT web.de>
3913
3914         * src/pic/gen.c (popGet): changed assert to allow for
3915           bit operands
3916         * (popGetAddr): changed signature to provide
3917           an additional index, patched all call sites
3918         * (genCmpEq): handle literal-like operands correctly
3919         * (genAddrOf): added sanity checks on __code/__data pointers
3920         * (genAssign): added handling of symbols from __code section
3921         * (gencjne): do not generate code for comparisons whose result
3922           is neither stored nor used, fixes bug #1171114
3923         * (AccLsh, AccRsh): operate on operand instead of WREG
3924         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
3925           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
3926           by known count
3927         * rewrote complete shift-by-literal logic, commented unused
3928           functions out
3929         * (genConstPointerGet): get multiple bytes (if result size > 1),
3930           fixed handling of non-immediate addresses
3931         * (genPointerGet): handle CODE pointers like CONST pointers
3932         * (genpic14Code): insert C-SRC lines as Cource-pCodes
3933         * ({aop,op}_isLitLike): NEW, single place to decide whether an
3934           operand is to be treated as a literal or not
3935         * (mov2w,genPcall,genCmpEq),
3936           src/pic/genarith.c: use aop_isLitLike() to decide between
3937           literal/register contents
3938         * (addSign): added missing offset
3939         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
3940           only emit comment in debug-mode,
3941           use {aop,op}_isLitLike throughout the file
3942         * src/pic/glue.c: fix initializers for pointers (work in progress)
3943         * src/pic/pcode.c (get_op): honor index on _const symbols
3944         * ({reset,dump}pCodeStatistics): NEW, estimate code size
3945         * (dumppBlock): added pCode size estimation
3946         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
3947           check for IS_SYMOP before OP_SYMBOL'ing
3948         * fixed indentation, compacted switch-statements
3949         * (allocReg): find free register and allocate it instead of
3950           allocating new registers all the time
3951         * (deassignLRs): prevent POINTER_GET's from being assigned the same
3952           registers as its operands (necessary only for multibyte GETs)
3953
3954 2005-07-01 Raphael Neider <rneider AT web.de>
3955
3956         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
3957           debugging .asm-output macros FENTRY + FEXIT
3958         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
3959           way... I wonder...
3960         * (emitpComment): NEW, printf to pCode
3961         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
3962           offset handling
3963         * (popGetAddr): NEW, variant of popGet to access an immediates
3964           high(er) bytes instead of the n'th byte of memory they reference,
3965           replaced popGet with popGetAddr where neccessary
3966         * (genDataPointerGet): reactivated and fixed implementation
3967         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
3968           accesses
3969         * (genDataPointerSet): fixed multibyte assignments
3970         * (genpic14Code): fixed --i-code-in-asm handling
3971         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
3972         * (genPlus): fixed index-out-of-bounds error
3973         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
3974         * src/pic/ralloc.c: added debugging output macro FENTRY2
3975         * (spillThis): fixed indentation, enbraced for-body for clarity
3976         * (rematStr): commented out as now unused
3977         * (regTypeNum): commented out special spill case (overwrites
3978           arbitrary values)
3979         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
3980
3981 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
3982
3983         * doc/sdccman.lyx: documented sfr16/sfr32,
3984           added example for using storage class with function pointers
3985         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
3986
3987 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
3988
3989         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
3990         * device/lib/_itoa.c,
3991         * device/lib/_ltoa.c: optimized codesize
3992         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
3993           but don't know how to suppress the double warning.
3994         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
3995         * support/Util/SDCCerr.c,
3996         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
3997
3998 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
3999
4000         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
4001           fixed old K&R prototypes
4002         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
4003         * device/lib/_gptrget.c,
4004         * device/lib/_gptrgetc.c,
4005         * device/lib/_gptrput.c: changed versions for new memory indicator values,
4006           also new versions for small generic pointers and banked generic pointers
4007         * src/port.h: added const_name
4008         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
4009         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
4010         * src/SDCCcse.c (findPrevIc): check all associative operators
4011         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
4012         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
4013         * src/SDCCmem.c: updated comments,
4014           set far-space to 0 for pdata, results in optimized code
4015         * src/SDCCmem.h: added macro CONST_NAME
4016         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
4017           moving the info into the highest bits, see also gptrget/gptrput
4018         * src/src.dsp: added sdcc.ico to project files
4019         * src/avr/gen.c (genCast): fixed bug 0x%d
4020         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
4021         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
4022           relation between ptr_type and DCL_TYPE,
4023           (genCast): fixed bug 0x%d
4024         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
4025           (CODE)" for const_name
4026         * src/hc08/gen.c (genCast): fixed bug 0x%d
4027         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
4028           (hc08_port): added "CONST (CODE)" for const_name
4029         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
4030           (aopForRemat, adjustArithmeticResult): disconnected direct relation
4031           between ptr_type and DCL_TYPE,
4032           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
4033           operand* and took AOP() inside function so sfr-ness can be checked,
4034           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
4035           new prototype,
4036           (genFunction, genEndFunction): optimized stack setup,
4037           (genMinus): optimized for literals with ending zeroes (in bytes),
4038           (genCast): fixed bug 0x%d
4039         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
4040           (mcs51_port): added "CONST (CODE)" for const_name
4041         * src/mcs51/peeph.def: made rule 226 more generic
4042         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
4043         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
4044         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
4045         * src/z80/main.c (z80_port): added NULL for const_name,
4046           (gbz80_port): added NULL for const_name
4047         * support/regression/tests/bug663539.c,
4048         * support/regression/tests/sfr16.c: new tests
4049
4050 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4051
4052         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
4053
4054 2005-06-24 Raphael Neider <rneider AT web.de>
4055
4056         * device/lib/pic16/libdev/pic18f[68][567]20.c:
4057           corrected typos...
4058         * device/include/pic16/signal.h: added USBIF
4059           and SIG_USB
4060
4061 2005-06-24 Raphael Neider <rneider AT web.de>
4062
4063         * device/lib/pic16/libdev/pic18f2455.c,
4064           device/include/pic16/pic18f2455.h: NEW
4065         * device/include/pic16/pic18fregs.h,
4066           device/lib/pic16/pics.all,
4067           src/pic16/device.c: added 18f2455
4068         * device/lib/pic16/libdev/pic18f[68][567]20.c,
4069           device/include/pic16/{pic18f[68][567].h,usart.h}:
4070           replaced MULTIPLE_USARTS define with more relaible
4071           compatibility sfrs (for USART access)
4072
4073 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
4074
4075         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
4076           and the output asm file line is printed on two lines.
4077
4078 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4079
4080         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
4081           BGT, BLE, BHI, and BLS instructions
4082         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
4083           genCmpEq): removed
4084         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
4085           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
4086           fixes bug #1216342
4087         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
4088
4089 2005-06-15 Raphael Neider <rneider AT web.de>
4090
4091         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
4092         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
4093         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
4094           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
4095           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
4096
4097 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4098
4099         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
4100           Marcel Telka in bug #1215704
4101
4102 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
4103
4104         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
4105           located in shared memory bank.
4106
4107 2005-05-31 Raphael Neider <rneider AT web.de>
4108
4109         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
4110           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
4111           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
4112
4113 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
4114
4115         * device/lib/_strncpy.c: fixed the fix
4116
4117 2005-05-26 Raphael Neider <rneider AT web.de>
4118
4119         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
4120           initializers with \0, bug #1208187
4121         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
4122           intializers with \0, bug #1208187
4123
4124 2005-05-26 Raphael Neider <rneider AT web.de>
4125
4126         * src/pic16/glue.c (pic16_printIvalChar): fixed string
4127           initializers with \0, bug #1208187
4128         * src/pic16/main.c (_process_pragma): added sanity checks
4129           for stack position and size, emit warnings when appropriate
4130
4131 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
4132
4133         * device/lib/_strncpy.c: fixed not filling with \0
4134
4135 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4136
4137         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
4138           createFunction),
4139         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
4140           compound_statement),
4141         * src/SDCCsymt.h,
4142         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
4143
4144 2005-05-24 Raphael Neider <rneider AT web.de>
4145
4146         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
4147
4148 2005-05-24 Raphael Neider <rneider AT web.de>
4149
4150         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
4151           TRISE definitions, closes bug #1162453
4152
4153 2005-05-22 Raphael Neider <rneider AT web.de>
4154
4155         * src/pic16/main.c (_process_pragma): check for missing
4156           arguments to pragmas code and udata
4157         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
4158           consistency fixes to match other headers (thanks to Jim Paris)
4159         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
4160
4161 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
4162
4163         * src/SDCCicode.c (isOperandEqual): fixed missing ;
4164
4165 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
4166
4167         * support/regression/tests/bug1198642.c: new test
4168         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
4169         * src/SDCCcse.c (findPrevIc): added comment, please have a look
4170         * support/scripts/resource.h,
4171         * support/scripts/resource.rc,
4172         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
4173         * support/scripts/sdcc.ico: added 32x32 icon
4174
4175 2005-05-18 Raphael Neider <rneider AT web.de>
4176
4177         * device/lib/pic16/libdev/pic18f*.c,
4178         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
4179           keywords to "__sfr" and "__at (X)"
4180         * device/include/pic16/pic18fregs.h: added pic18f4520
4181         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
4182           #1203088 (MPLAB compatibility)
4183
4184 2005-05-17 Raphael Neider <rneider AT web.de>
4185
4186         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
4187         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
4188         * device/lib/pic16/pics.all: added new devices
4189         * src/pic16/device.c: added support for pic18f4520
4190
4191 2005-05-16 Raphael Neider <rneider AT web.de>
4192         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
4193         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
4194         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
4195           convenience function for bit access
4196
4197 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4198
4199         * device/lib/printf_large.c: fixed bug 1193299
4200         * support/regression/tests/bug1057979.c: added test %3.3s
4201
4202 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4203
4204         * device/include/mcs51/8051.h,
4205         * device/include/mcs51/8052.h: made parseable with lint
4206         * device/include/mcs51/lint.h: added include file for (sp)lint
4207         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
4208         * doc/cdbfileformat.lyx,
4209         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
4210
4211 2005-05-14 Raphael Neider <rneider AT web.de>
4212
4213         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
4214         * device/lib/pic16/libc/stdlib/itoa.c (new)
4215         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
4216         * device/lib/pic16/libio/Makefile: exclude subdir according to
4217           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
4218         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
4219         * src/pic16/gen.c (genFunction): prevent annoying warning
4220         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
4221           nameclashes on BeOS
4222         * support/cpp2/cppmain.c (cpp_output_string): new
4223         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
4224           fixes bug 1116802
4225
4226 2005-05-13 Borut Razem <borut.razem AT siol.net>
4227
4228         * src/SDCCmain.c (linkEdit): fixed bug 1195202
4229
4230 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4231
4232         * .version: changed to version 2.5.1; back to bleeding edge development
4233
4234 2005-05-11 Borut Razem <borut.razem AT siol.net>
4235
4236         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
4237           generate PDF version 1.3 documents
4238
4239 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4240
4241         * .version: changed to version 2.5.0
4242
4243 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4244
4245         * doc/sdccman.lyx: updated weblinks, index and smaller updates
4246
4247 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4248
4249         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
4250         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
4251         well as many smaller updates.
4252         * .version: changed to version 2.5.0-pre1
4253
4254 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4255
4256         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
4257
4258 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4259
4260         * support/regression/tests/bug1185672.c: added
4261         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
4262           bug 1185672
4263         * src/mcs51/gen.c (genCall): added comments, made it look safer
4264         * src/mcs51/gen.c (genEndFunction): simplified
4265
4266 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
4267
4268         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
4269
4270 2005-04-14 Borut Razem <borut.razem AT siol.net>
4271
4272         * fixed bug 1045046 - SIGSEGV with really simple code?:
4273           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
4274           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
4275
4276 2005-04-14 Borut Razem <borut.razem AT siol.net>
4277
4278         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
4279           src/pic16/device.h: temporarily disabled experimental #inline pragma
4280           for 2.5.0 release
4281
4282 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
4283
4284         * device/include/z80/stdio.h,
4285         * device/include/z80/string.h: removed these highly incomplete files so
4286           SDCC can use the default ones in device/include/
4287
4288 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4289
4290         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
4291         gcc warning.
4292         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
4293         fix sdcpp warnings.
4294
4295 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4296
4297         * device/include/malloc.h: removed redundant __reentrant prototypes
4298         * device/lib/_mullong.c: added working xstack variant in asm (C version
4299           doesn't pass regression tests)
4300         * device/lib/bpx.c: used __data and made bpx char for mcs51
4301         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
4302           (createFunction): fixed bug with xstackPtr
4303         * src/SDCCcse.c: corrected comments
4304         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
4305           (killDeadCode, eBBlockFromiCode): removed unused code
4306         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
4307           corrected comments
4308         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
4309           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
4310           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
4311           (genModOneByte): fixed warning in MSVC
4312         * src/mcs51/main.c (): added comments
4313         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
4314
4315 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4316
4317         * src/SDCCmain.c (linkEdit): oops, changed one line too many
4318
4319 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
4320
4321         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
4322
4323 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
4324
4325         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
4326         characters arrays of larger size than the declared one.
4327
4328 2005-04-10 Borut Razem <borut.razem AT siol.net>
4329
4330         * src/pic/gen.c (genInline),
4331           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
4332           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
4333           (findNextInstruction), (findPrevInstruction),
4334           (findInstructionUsingLabel),
4335           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
4336         * src/pic/pcode.c (findLabel): added missing '\n'
4337         * src/src.dsp: added SDCCdwarf2.c to the project
4338
4339 2005-04-09 Borut Razem <borut.razem AT siol.net>
4340
4341         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
4342
4343 2005-04-08 Raphael Neider <rneider AT web.de>
4344
4345         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
4346           into the chain after a given one) and mergeDefmapSymbols (combine
4347           defmap entries for each symbol per pcode)
4348         * (createDefmap): have defmap entries merged in the end
4349         * (defmapReplaceSymRef): split defmap entries covering two accesses to
4350           a symbol before replacing one access type's symbol, merge symbols in
4351           the end (replacement symbol might already have an entry)
4352         * (assignValnums): keep reference to written WREG intact
4353
4354 2005-04-08 Raphael Neider <rneider AT web.de>
4355
4356         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
4357           Alpha)
4358
4359 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
4360
4361         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
4362         bytes
4363
4364 2005-04-07 Raphael Neider <rneider AT web.de>
4365
4366         * device/include/pic16/usart.h: added compatibility defines for
4367           devices with more than one USART
4368         * device/include/pic16/pic18f[68][567]20.h: activated above defines
4369
4370 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4371
4372         * device/lib/Makefile.in: updated for port specific include
4373
4374 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4375
4376         * support/regression/ports/mcs51/spec.mk: added mcs51 include
4377
4378 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4379
4380         * device/include/8051.h,
4381         * device/include/8052.h,
4382         * device/include/at89S8252.h,
4383         * device/include/at89c55.h,
4384         * device/include/at89x051.h,
4385         * device/include/at89x51.h,
4386         * device/include/at89x52.h,
4387         * device/include/mcs51reg.h,
4388         * device/include/reg51.h,
4389         * device/include/reg764.h,
4390         * device/include/regc515c.h,
4391         * device/include/sab80515.h: (re)moved these 12 files
4392         * device/include/mcs51/8051.h,
4393         * device/include/mcs51/8052.h,
4394         * device/include/mcs51/at89S8252.h,
4395         * device/include/mcs51/at89c55.h,
4396         * device/include/mcs51/at89x051.h,
4397         * device/include/mcs51/at89x51.h,
4398         * device/include/mcs51/at89x52.h,
4399         * device/include/mcs51/mcs51reg.h,
4400         * device/include/mcs51/reg51.h,
4401         * device/include/mcs51/reg764.h,
4402         * device/include/mcs51/regc515c.h,
4403         * device/include/mcs51/sab80515.h: and added them here
4404
4405 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4406
4407         * device/include/stdarg.h: changed SDCC specific keywords to double
4408           underlined form.
4409         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
4410           mcs51 and ds390.
4411         * device/include/hc08/mc68hc908gp32.h,
4412         * device/include/hc08/mc68hc908jb8.h,
4413         * device/include/hc08/mc68hc908jkjl.h,
4414         * device/include/hc08/mc68hc908qy.h: fixed comments
4415         * device/include/mcs51/README: updated
4416         * device/include/mcs51/c8051f120.h: added PINRSF
4417         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
4418         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
4419           amidst code. Also inline is not supported.
4420
4421 2005-04-06 Raphael Neider <rneider AT web.de>
4422
4423         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
4424         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
4425           callers stack/frame pointers
4426
4427 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4428
4429         * device/include/pic16/usart.h: added, missing in previous commit,
4430         * device/include/pic16/adc.h: fixed typo,
4431         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
4432         commit,
4433         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
4434         <p18fxxx.inc>
4435         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
4436         uninitialized because a bug appears with gplink
4437         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
4438         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
4439         complains for unrecognised option
4440
4441 2005-04-05 Raphael Neider <rneider AT web.de>
4442
4443         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
4444           structs as well (using memcpy)
4445         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
4446           on ISRs (GOTO has no label)
4447         * src/pic16/device.h: added OF_OPTIMIZE_DF
4448         * src/pic16/main.c: added compiler switch --optimize-df to enable the
4449           new data flow analysis/optimization
4450         * src/pic16/pcode.c: added (prototypes for and implementation of)
4451           dataflow analysis functions, fixed pCodeInstructions' inCond and
4452           outCond values, made RCALL a branch instruction
4453         * (pic16_unlinkpCode): keep C line if possible
4454         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
4455           C line moved if possible
4456         * (pic16_getRegFrompCodeOp): NEW, improved version of...
4457         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
4458           to use new pic16_getRegFrompCodeOp (works for more SFRs)
4459         * (pic16_BuildFlow): fixed skip instructions with label (did not start
4460           new flow)
4461         * (pic16_getJumptabpCode): NEW, needed in...
4462         * (LinkFlow): fixed handling of jumptables, calls and conditional
4463           branches
4464         * (pic16_InsertCommentAfter): NEW
4465         * (pic16_pCodeReplace): made verbose and flow preserving
4466         * (AnalyzeFlow): added call to data flow analysis
4467         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
4468         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
4469         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
4470
4471 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4472
4473         * src/SDCCast.c (decorateType): fixed bug #1105626
4474
4475 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
4476
4477         * device/include/asm/pic16/features.h,
4478         * pic18f*.h headers,
4479         * device/include/pic16/adc.h,
4480         * device/include/pic16/delay.h,
4481         * device/include/pic16/i2c.h,
4482         * device/include/pic16/malloc.h,
4483         * device/include/pic16/stdio.h,
4484         * device/include/pic16/stdlib.h,
4485         * device/include/pic16/string.h,
4486         * device/lib/pic16/libc/stdio/printf_tiny.c,
4487         * device/lib/pic16/libc/stdio/printf_small.c,
4488         * device/lib/pic16/libc/stdio/strmgpsim.c,
4489         * device/lib/pic16/libc/stdio/strmmssp.c,
4490         * device/lib/pic16/libc/stdio/strmusart.c,
4491         * device/lib/pic16/libc/stdio/vfprintf.c,
4492         * device/lib/pic16/libc/stdlib/ltoa.c,
4493         * device/lib/pic16/libc/stdlib/putchar.c,
4494         * device/lib/pic16/libc/stdlib/x_ftoa.c,
4495         * device/lib/pic16/libc/stdlib/memchrpgm.c,
4496         * device/lib/pic16/libc/stdlib/memchrram.c,
4497         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
4498         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
4499         * device/lib/pic16/libio/adc/adcbusy.c,
4500         * device/lib/pic16/libio/adc/adcread.c,
4501         * device/lib/pic16/libio/adc/adcsetch.c,
4502         * device/lib/pic16/libio/usart/ubaud.c,
4503         * device/lib/pic16/libio/usart/ubusy.c,
4504         * device/lib/pic16/libio/usart/udrdy.c,
4505         * device/lib/pic16/libio/usart/uopen.c,
4506         * device/lib/pic16/libio/usart/uputc.c,
4507         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
4508         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
4509         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
4510         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
4511         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
4512         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
4513         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
4514         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
4515         specific keywords to double underlined form,
4516         * device/lib/pic16/libc/Makefile.rules,
4517         * device/lib/pic16/libsdcc/Makefile.rules,
4518         * device/lib/pic16/libm/Makefile,
4519         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
4520         to compile with C standard set in Makefile.common
4521         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
4522         rand.c and crc.c in compilation process,
4523         * device/lib/pic16/libsdcc/int/divuint.c,
4524         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
4525         `c' from signed to unsigned,
4526         * device/lib/pic16/startup/crt0.c,
4527         * device/lib/pic16/startup/crt0i.c,
4528         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
4529         keywords to double underlined form, bug fixes in _do_cinit function
4530         which prevented the correct initialization of the .idata segment,
4531         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
4532         core to enter a infinite loop
4533         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
4534
4535 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4536
4537         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
4538
4539 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4540
4541         * device/include/Makefile.in: add support for hc08 subdirectory
4542         * device/include/hc08/: new subdirectory
4543         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
4544         Lucas Loizaga, thanks!
4545         * device/include/hc08/mc68hc908qy.h,
4546         * device/include/hc08/mc68hc908gp32.h,
4547         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
4548         their own directory. Changed internal macro names to use the compiler
4549         reserved namespace. Changed SDCC specific keywords to double
4550         underlined form.
4551         * device/include/math.h,
4552         * device/include/malloc.h,
4553         * device/include/stdarg.h,
4554         * device/include/stdbool.h
4555         * device/include/string.h,
4556         * device/include/tinibios.h,
4557         * device/include/ds400rom.h,
4558         * device/include/8051.h,
4559         * device/include/8052.h,
4560         * device/include/80c51xa.h,
4561         * device/include/at89c55.h,
4562         * device/include/at89S8252.h,
4563         * device/include/at89x51.h,
4564         * device/include/at89x52.h,
4565         * device/include/ds80c390.h,
4566         * device/include/reg764.h,
4567         * device/include/regc515c.h,
4568         * device/include/sab80515.h,
4569         * device/include/mcs51/c8051f000.h,
4570         * device/include/mcs51/c8051f018.h,
4571         * device/include/mcs51/c8051f020.h,
4572         * device/include/mcs51/c8051f040.h,
4573         * device/include/mcs51/c8051f060.h,
4574         * device/include/mcs51/c8051f120.h,
4575         * device/include/mcs51/c8051f300.h,
4576         * device/include/mcs51/c8051f310.h,
4577         * device/include/mcs51/c8051f320.h,
4578         * device/include/mcs51/c8051f330.h,
4579         * device/include/mcs51/c8051f350.h,
4580         * device/include/z180.h: Changed SDCC specific keywords to double
4581         underlined form.
4582
4583 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
4584
4585         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
4586         18F4455,
4587         * (pic16_assignConfigWordValue): disable testing of configuration
4588         register value with config mask,
4589         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
4590         function with port->fun_prefix,
4591         * (genFunction): when generating a naked interrupt function never
4592         create an absolute segment placed in interrupt vector address, place
4593         the actual interrupt function at IVA instead, when an interrupt
4594         function is generated with unspecified interrupt then do not create
4595         the absolute section,
4596         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
4597         code for generating a call to generic pointer get/put function with
4598         a call to function pic16_callGenericPointer(),
4599         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
4600         the call to the generic pointer get/put functions with prefixing the
4601         function name with port->fun_prefix,
4602         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
4603         * src/pic16/main.c (_process_pragma): prefix function with
4604         port->fun_prefix,
4605         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
4606         calling assembler, old 18Fxxxx macro is deprecated,
4607         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
4608         PC_ASMDIR in while condition,
4609         * (findInstruction): add PC_ASMDIR in while condition,
4610         * (buildCallTree): prefix main with port->fun_prefix,
4611         * (pic16_pCode2str): fixed bug that didn't emit the memory access
4612         identifier for variable with banked access in instructions BTFSS,
4613         BTFSC, BCF, BSF, BTG
4614         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
4615         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
4616         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
4617         perform optimization when enviroment variable NO_REG_OPT is set,
4618         * (insideLRBlock): NEW, return 1 if register is inside an
4619         INF_LOCALREGS block,
4620         * (RemoveRegFromLRBlock): remove a register that is completely
4621         eliminated by register optimization, but it is still left in local
4622         register store/restore in/from stack block,
4623         * (Remove2pcodes): after removing register, check to see if it
4624         should be removed from local register store/restore in/from stack
4625         block,
4626         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
4627         DUMMY_READ_VOLATILE,
4628
4629         * device/include/pic16/adc.h: minor prototype modifications and
4630         update,
4631         * device/include/pic16/malloc.h: added GPL notice various
4632         modifications,
4633         * device/include/pic16/stdint.h: NEW, standard header for ints
4634         * device/include/pic16/delay.h: NEW, header for delay functions,
4635         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
4636         delay1mtcy,
4637         * device/include/pic16/signal.h: NEW, header providing helper macros
4638         for implementing signal handlers,
4639         * device/include/pic16/stdio.h: added prototypes for functions,
4640         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
4641         prototypes for stdin and stdout, added macro PUTCHAR to
4642         automatically implement putchar function prototype,
4643         * device/include/pic16/usart.h: modified and updated USART library,
4644         * device/lib/pic16/libio/adc/,
4645         * device/lib/pic16/libio/i2c: some modifications to improve library
4646         performance,
4647         * device/lib/pic16/libc/stdio/: modifications for the new printf*
4648         family of functions,
4649         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
4650         family of functions and other sources,
4651         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
4652         of the PIC18Fxx[28] devices,
4653         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
4654         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
4655         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
4656         _do_cinit function, because the previous failed when local variables
4657         where not placed in the same memory bank,
4658         * device/lib/pic16/libsdcc/char/: various modifications to improve
4659         library performance,
4660         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
4661         information on the new functions of the c library and more...
4662
4663 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4664
4665         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
4666
4667 2005-03-26 Raphael Neider <rneider AT web.de>
4668
4669         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
4670           if condition == CARRY)
4671         * (genCmp): adapted to new genSkipc semantics
4672         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
4673           on rIfx (genCmp was broken)
4674
4675 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4676
4677         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
4678         * src/z80/main.c (_keywords[]),
4679         * src/SDCCglobal.h (struct options),
4680         * src/SDCC.y,
4681         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
4682         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
4683         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
4684         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
4685         always available in leading double underscore form. The C99 support is
4686         mostly missing, but it's a start.
4687         * support/regression/tests/bug-227710.c: fixed nonconforming use of
4688         reserved identifier "__data".
4689
4690 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4691
4692         * src/mcs51/peeph.def: fixed bug 1170013
4693
4694 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
4695
4696         * device/include/mcs51reg.h: fixed bug 842007
4697
4698 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4699
4700         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
4701         last time.
4702
4703 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4704
4705         * src/port.h (struct PORT),
4706         * src/avr/ralloc.c (avr_assignRegisters),
4707         * src/avr/main.c,
4708         * src/ds390/ralloc.c (ds390_assignRegisters),
4709         * src/ds390/main.c,
4710         * src/hc08/ralloc.c (hc08_assignRegisters),
4711         * src/hc08/main.c,
4712         * src/mcs51/ralloc.c (mcs51_assignRegisters),
4713         * src/mcs51/main.c,
4714         * src/pic/ralloc.c (pic14_assignRegisters),
4715         * src/pic/main.c,
4716         * src/pic16/ralloc.c (pic16_assignRegisters),
4717         * src/pic16/main.c,
4718         * src/xa51/ralloc.c (xa51_assignRegisters),
4719         * src/xa51/main.c,
4720         * src/z80/ralloc.c (z80_assignRegisters),
4721         * src/z80/ralloc.h,
4722         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
4723         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
4724         * src/SDCCcse.h,
4725         * src/SDCCdflow.c (computeDataFlow),
4726         * src/SDCCdflow.h,
4727         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
4728         * src/SDCCloop.h,
4729         * src/SDCCcflow.c (*),
4730         * src/SDCCcflow.h,
4731         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
4732         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
4733         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
4734         immedDom() returning wrong block; probably fixes bug #1160833)
4735
4736 2005-03-20 Borut Razem <borut.razem AT siol.net>
4737
4738         * support/scripts/inc2h.pl: WIN32 port
4739
4740 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
4741
4742         * device/lib/makefile.in: added abs.c and labs.c
4743
4744 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
4745
4746         * device/include/stdint.h: added
4747         * device/lib/abs.c: added
4748         * device/lib/labs.c: added
4749         * device/include/stdlib.h: added abs() and labs() prototypes
4750         * device/lib/libsdcc.lib: added abs and labs
4751         * device/include/float.h,
4752         * device/lib/_fsmul.c,
4753         * device/lib/printf_fast.c,
4754         * device/lib/printf_tiny.c: updated comments
4755
4756 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4757
4758         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
4759         bug #1164313
4760
4761 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4762
4763         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
4764         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
4765
4766 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
4767
4768         * device/lib/printf_large.c: removed inline assembly for portability and
4769           readability. Use printf_fast if speed or size are more important.
4770         * src/pic16/gen.c: removed conditions around use of DEBUGpc
4771         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
4772
4773 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
4774
4775         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
4776         prevent compiler warning
4777
4778 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4779
4780         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
4781         moved to level 0 and declared as static. Also they are explicit
4782         placed in access bank. This was necessery because some times they
4783         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
4784         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
4785         optimizations. Currently only compare to unsigned char is implemented,
4786         * src/pic16/gen.c: added fReturnIdx array,
4787         * (struct resolvedIfx) is moved to gen.h and made public,
4788         * (struct _G): added sregsAlloc and sregsAllocSet fields,
4789         * (aopForSym): added an optimization to directly store in stack of
4790         the operand of a SEND iCode,
4791         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
4792         but as registers instead (AOP_REG) using the fReturnIdx array,
4793         * (pic16_freeAsmop): remove the freed register from the
4794         _G.sregsAlloc field,
4795         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
4796         a compare of 'WREG',
4797         * (pic16_popGetTempRegCond): changed function prototype, now
4798         function takes also a bitVector argument v which holds the current
4799         set of registers that are allocated for stack access by aopForSym,
4800         registers allocated in aopForSym for accessing stack symbols are not
4801         any more part of the functions usedRegs field,
4802         * (genCall): some times aopOp is called for a stack variable to be
4803         send, aopForSym might perform the push, if this is true make sure
4804         that genCall doesn't push the variable twice by testing _G.resDirect,
4805         * (genFunction): changed testing for unspecified interrupt number
4806         from 256 to INTNO_UNSPEC,
4807         * modified selection scheme of frame pointer generation. Previously
4808         if function did use local registers a frame pointer was generated,
4809         now a frame pointer is generated only if function has arguments
4810         (that need PLUSW2 register access), or has stack arguments, or the
4811         compiler is not instructed to omit the frame pointer,
4812         * (genEndFunction): before restoring local registers that were saved
4813         in the function preamble, also restore the registers that *might*
4814         have been allocated for stack access,
4815         * (genRet): removed some old comments,
4816         * (genCmp, the active (RN's) version): added a call to the
4817         pic16_genCmp_special function to perform the compare with a more
4818         robust and optimized way,
4819         * (genInline): a feature has been added in inline code generation,
4820         which allows a wildcard variable substitution when writing inline
4821         assembly. Code is incomplete and experimental therefore undocumented,
4822         * (genCast): changed order of aopOp for result and right to allow
4823         aopForSym to directly load the result if possible,
4824         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
4825         perform an optimized compare on some selected special occasions,
4826         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
4827         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
4828         generate an IVT any more,
4829         * src/pic16/main.c (pic16_optionsTable): added command line option
4830         --optimize-cmp,
4831         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
4832         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
4833         macros,
4834         * src/pic16/NOTES: Raphael Neider added in list of active developers
4835         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
4836         jumptable_end to prevent bug #,
4837         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
4838         inCond and outCond fields,
4839         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
4840         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
4841         turn off register spilling,
4842         * (packRegsForOneUse): synced with other ports' versions although it
4843         is not used currently,
4844         * (pic16_packRegisters): added an optimization while reading
4845         structure bitfields, some registers may be saved (malloc code is
4846         decreased by 80 bytes)
4847
4848 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
4849
4850         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
4851         left is a bitfield, if yes, then don't optimize assignment. Perhaps
4852         this can be optimized more?
4853
4854 2005-03-10 Raphael Neider <rneider AT web.de>
4855
4856         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4857           genNearPointerGet): (hopefully) fixed access to bitfields via
4858           pointers (p->bitN = x; and x = p->bitN; failed)
4859
4860 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
4861
4862         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
4863
4864 2005-03-09 Raphael Neider <rneider AT web.de>
4865
4866         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
4867
4868 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
4869
4870         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
4871         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
4872           (regTypeNum): set REG_BIT type if necessary
4873         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
4874         * support/regression/tests/critical.c: check bug 1144613
4875
4876 2005-03-02 Raphael Neider <rneider AT web.de>
4877
4878         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
4879
4880 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4881
4882         * src/avr/ralloc.c (serialRegAssign),
4883         * src/ds390/ralloc.c (serialRegAssign),
4884         * src/hc08/ralloc.c (serialRegAssign),
4885         * src/mcs51/ralloc.c (serialRegAssign),
4886         * src/pic/ralloc.c (serialRegAssign),
4887         * src/pic16/ralloc.c (serialRegAssign),
4888         * src/xa51/ralloc.c (serialRegAssign),
4889         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
4890
4891 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
4892
4893         * src/SDCCast.c (decorateType): fixed bug 1124787
4894
4895 2005-02-20 Hubert Sack <sack AT digiplan.de>
4896         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4897
4898         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
4899         patch #1121755
4900
4901 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4902
4903         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
4904         to keep the correct label reference count when adding/removing references
4905         to labels. A peephole file using this is appended to patch #1144962.
4906
4907 2005-02-14 Raphael Neider <rneider AT web.de>
4908
4909         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
4910         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
4911         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
4912           retrievals of result operand's value on assignment
4913
4914 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
4915
4916         * device/include/pic16/string.h: modified prototype for memccpy()
4917         to memccpy(void *, void *, char, size_t)
4918         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
4919         check whether to omit frame pointer or not,
4920         * (genInline): convert all occurences of "\n" to LF in inline
4921         assembler blocks, this helps formatting the inline text,
4922         * (pic16_loadFSR0): modified prototype,
4923         * (genNearPointerGet, genNearPointerSet): reorganization of code,
4924         removed some 8051 legacy code,
4925         * (genPackBits): enabled handling bitfields exceeding one byte in size,
4926         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
4927         before allocating temporary registers in functions,
4928
4929 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4930
4931         * support/regression/tests/bitvars.c: corrected the "fix"
4932
4933 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4934
4935         * support/regression/tests/bitvars.c,
4936         * support/regression/tests/bitwise.c,
4937         * support/regression/tests/rotate.c: "fixed" problems on Alpha
4938
4939 2005-02-10 Raphael Neider <rneider AT web.de>
4940
4941         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
4942           different size for Alpha
4943         * src/pic16/gen.c (genCmpEq) : improved compare with 0
4944
4945 2005-02-09 Raphael Neider <rneider AT web.de>
4946
4947         * src/SDCC.lex(doPragma) : save and restore warning options as well
4948           (also added new stack plus clone- and copyAndFreeSDCCERRG())
4949         * have #pragma less_pedantic set the errorlevel to WARNING
4950           (fixes #1117001)
4951         * (cloneOptimize) : fixed wrong malloc's size
4952         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
4953           facilitate correct handling of #pragma (save|restore)
4954
4955 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4956
4957         * src/mcs51/gen.c: removed non-standard C nameless struct/union
4958
4959 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
4960
4961         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
4962
4963 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
4964
4965         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
4966
4967 2005-02-02 Raphael Neider <rneider AT web.de>
4968
4969         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
4970         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
4971         * (pic16_storeForReturn): fixed to allow returning function pointers
4972         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
4973         * device/include/pic16/{stddef.h,stdbool.h}: added
4974
4975 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
4976
4977         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
4978
4979 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
4980
4981         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
4982         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
4983          appeared to be required
4984
4985 2005-01-31 Borut Razem <borut.razem AT siol.net>
4986
4987         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
4988           include/mcs51 and include/z80 directories to the package
4989
4990 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4991
4992         * src/hc08/gen.c (genFunction): fixed bug #1112752
4993
4994 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4995
4996         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
4997
4998 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4999
5000         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
5001
5002 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
5003
5004         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
5005
5006 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
5007
5008         * device/include/c8051fxxx.h: removed these 6 files
5009         * device/include/mcs51/c8051fxxx.h: added these 11 new files
5010
5011 2005-01-26 Raphael Neider <rneider AT web.de>
5012
5013         * src/pic16/gen.c (genAssign): fixed assignment from longs
5014           in codespace (were cut to three bytes)
5015         * (genDummyRead): implemented (except for CODESPACE...),
5016           fixed bug #1108575
5017         * src/pic16/glue.c (emitStatistics): beautified
5018         * device/lib/pic16/libm/Makefile: added include path
5019
5020 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5021
5022         * src/z80/gen.c (aopPut): fixed bug #1103902
5023
5024 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5025
5026         * device/lib/expf.c: fixed bug #1095792
5027
5028 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
5029
5030         * device/lib/pic16/libm: added Math library sources
5031
5032 2005-01-24 Raphael Neider <rneider AT web.de>
5033
5034         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
5035           to enable upcast to pCodeOpReg2 (there is no type tag to
5036           differenciate the two and pic16_popGet2p cast into PCOR2)
5037         * src/pic16/main.c (_process_pragma): fixed another malloc bug
5038           (sizeof(sectNames) changed to sizeof(sectName))
5039           Both patches fix segfaults under MinGW.
5040
5041 2005-01-23 Raphael Neider <rneider AT web.de>
5042
5043         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
5044           Safe_[mc]?alloc()'ed variables
5045         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
5046           of (byte sized) temporaries (assign them to WREG for now)
5047         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
5048           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
5049           this might fix SIGSEGVs on MinGW...
5050         * src/SDCCopt.c (killDeadCode): restored original behaviour
5051           (volatile operands might get thrown away though)
5052
5053 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
5054
5055         * src/pic16/gen.c: fixed bug #1106975,
5056         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
5057         pointer update, INTCON is saved, global interrupts are disabled and
5058         restored after updateing TOS.
5059         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
5060         * added function attribute 'shadowregs' to take advantage of shadow
5061         registers,
5062         * added function attribute 'wparam' as an alternative to the wparam
5063         pragma,
5064         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
5065         user declares a non-ISR function as 'shadowregs',
5066         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
5067
5068 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
5069
5070         * .version: bumped version number to 2.4.8
5071         * device/lib/pic16/pics.all: list of PIC18F devices supported by
5072         pic16 port,
5073         * device/lib/pic16/libio/i2c/: I2C module support library,
5074         * device/include/pic16/i2c.h: I2C support library header,
5075         * device/lib/pic16/libc/stdio/: standard IO support sources,
5076         * (printf_small.c): printf_small() source, supports float print,
5077         * (printf_tiny.c): printf_tiny() source, does not support floats,
5078         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
5079         enable global optimizations for entire library source, other
5080         Makefiles in the source tree are also modified to reflect this,
5081         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
5082         function,
5083         * doc/sdccman.lyx: updated to reflect new changes,
5084         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
5085         sym->onStack if-case,
5086         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
5087         sbit, idata, _idata, xdata, _xdata,
5088         * added pragma library, to link an external library, (see doc),
5089         * removed command line options, --pomit-config-words, --pomit-ivt,
5090         --pleave-reset-vector,
5091         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
5092         when calling assembler to reflect memory model used, also define
5093         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
5094         reflect stack model used,
5095         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
5096         on stack return NULL,
5097
5098 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5099
5100         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
5101           of the operands is volatile. Fixes #1020220
5102
5103 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5104
5105         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
5106         * (OptimizeRegUsage): make sure that there is really no other flow where
5107           the first pCode is used
5108
5109 2005-01-22 Raphael Neider <rneider AT web.de>
5110
5111         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
5112           to fix #1106967 (pCode->seq are not set up correctly)
5113
5114 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5115
5116         * src/SDCCglue.c (glue): make sure code area is declared before the
5117         static initialization area.
5118
5119 2005-01-21 Raphael Neider <rneider AT web.de>
5120
5121         * device/lib/Makefile.in: fixed test for pic16 install dir
5122         * device/lib/pic16/*/Makefile*: modified compile flags to enable
5123           optimizations
5124         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
5125           added --optimize-goto compiler switch and pragma wparam documentation
5126         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
5127         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
5128           and PRODH closing bug #1071770 (peephole optimizer)
5129
5130 2005-01-19 Raphael Neider <rneider AT web.de>
5131
5132         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
5133           cmdLine buffers (used when calling sdcpp...) are large enough
5134           (MAX_PATH=256 truncates arguments leading to system halts when
5135           used in MinGW...)
5136         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
5137         * (genUminus): rewritten to for efficiency
5138         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
5139           used uninitialized in some cases)
5140         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
5141           copy the third byte from the int -- now assumes 0x80 (data memory)
5142         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
5143           operands (genAddLit expects the iCode's operands to swapped as
5144           well), fixed leftover bytes (crashed for short left operands)
5145         * (pic16_genMinusDec): performance improvements, removed false
5146           PIC14 emitSKPNCs
5147         * (pic16_genMinus): fixed to cope with differently sized operands
5148         * src/pic16/glue.c (pic16_glue): added new banksel optimization
5149           for --obanksel > 1
5150         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
5151         * src/pic16/graph.[ch]: implementation of directed graphs, used by
5152           new banksel optimization
5153         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
5154           analysis for temporary registers (segfaults...)
5155         * src/pic16/peeph.def: added rule
5156
5157 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
5158
5159         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
5160         which converts a float number to its ASCII representation
5161         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
5162         functions to convert the fractional and integer part of a float to ASCII,
5163         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
5164         realloc.c): added _MALLOC_SPEC to explicit place variables in data
5165         ram
5166         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
5167         _STATMEM macros,
5168         * device/include/pic16/adc.h: added GPL info,
5169         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
5170         a pCodeOp as tested operand,
5171         * (genNearPointerGet): optimized bit testing, does not use
5172         intermediate register for bit value, test directly instead with
5173         BTFSS, BTFSC, works only for single bits,
5174         * (genpic16Code): dump the name of the iCode in the asm,
5175         * src/pic16/ralloc.c (decodeOp): removed static declaration and
5176         renamed to pic16_decodeOp,
5177         * (serialRegAssign): do not allocate a temporary register for iCode
5178         sequences that test a single bit for 1/0
5179
5180 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
5181
5182         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
5183         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
5184         access stack and frame pointers. They are initially assigned to
5185         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
5186         accessing SFRs. Updated all occurences of modification of stack or
5187         frame pointer in gen.c and pcode.c,
5188         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
5189         assigning of a literal value to pointers,
5190         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
5191         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
5192         selected
5193
5194 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
5195
5196         * doc/sdccman.lyx: update documentation about stack pragma, added
5197         some info for stack memory models
5198
5199 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5200
5201         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
5202
5203 2005-01-08 Raphael Neider <rneider AT web.de>
5204
5205         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
5206           udata sections to fix bug #1097823
5207
5208 2005-01-05 Raphael Neider <rneider AT web.de>
5209
5210         * src/pic16/gen.c (genGenericShift): added handling of differently
5211           sized left operand and result
5212
5213 2005-01-04 Raphael Neider <rneider AT web.de>
5214
5215         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
5216         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
5217           to hold the condition bit)
5218         * added new version of genCmp (old code available via #define)
5219         * added new version of genShiftLeft/genShiftRight in a generic
5220           way, now supports shifting by negative values
5221         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
5222           shiftCount (expected by genGenericShift)
5223         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
5224         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
5225           dump
5226         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
5227           is an invalid literal too...)
5228
5229 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
5230
5231         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
5232         from Raphael Neider,
5233         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
5234         for 8-bit literals. This fixes some literal operands which are sign
5235         extended to 16-bits ints when instruction needs only 8-bits.
5236
5237 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
5238
5239         * device/lib/logf.c: added mcs51 assembly version
5240         * device/lib/expf.c: added mcs51 assembly version
5241         * device/lib/_logexpf.c: new shared asm code for expf and logf
5242         * device/include/math.h: add defines for assembly math library
5243         * device/lib/Makefile.in: build new _logexpf.c
5244         * device/lib/libfloat.lib: use new _logexpf.c
5245
5246 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
5247
5248         * src/pic/device.c
5249         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
5250           device types which have less than 0x7f registers.
5251
5252 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
5253
5254         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
5255
5256 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
5257
5258         * device/lib/printf_fast.c: only build on supported arch.
5259         * device/lib/printf_tiny.c: only build on supported arch.
5260         * device/lib/printf_fast_f.c: only build if asm float lib
5261         * device/lib/_fsget1arg.c: only build if asm float lib
5262         * device/lib/_fsget2args.c: only build if asm float lib
5263         * device/lib/_fsnormalize.c: only build if asm float lib
5264         * device/lib/_fsreturnval.c: only build if asm float lib
5265         * device/lib/_fsrshift.c: only build if asm float lib
5266         * device/lib/_fsswapargs.c: only build if asm float lib
5267         * device/include/stdio.h: don't provide print_fast,
5268           print_fast_f, print_tiny prototypes if --xstack used
5269
5270 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
5271
5272         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
5273         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
5274           to the SOURCES
5275
5276 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
5277
5278         * device/lib/printf_fast_f.c: same as printf_fast, but
5279           with floating point enabled
5280         * device/lib/printf_fast.c: minor tweaks
5281         * device/include/stdio.h: add printf_fast_f
5282
5283 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5284
5285         * src/SDCCmain.c: make --float-reent default for mcs51
5286         * device/lib/_fsadd.c: added mcs51 assembly version
5287         * device/lib/_fssub.c: added mcs51 assembly version
5288         * device/lib/_fsmul.c: added mcs51 assembly version
5289         * device/lib/_fsdiv.c: added mcs51 assembly version
5290         * device/lib/_fseq.c: added mcs51 assembly version
5291         * device/lib/_fsneq.c: added mcs51 assembly version
5292         * device/lib/_fsgt.c: added mcs51 assembly version
5293         * device/lib/_fslt.c: added mcs51 assembly version
5294         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
5295         * device/lib/Makefile.in: add _fscmp to build
5296         * device/lib/libfloat.lib: add _fscmp to build
5297
5298 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5299
5300         * device/lib/_fs2slong.c: added mcs51 assembly version
5301         * device/lib/_fs2sint.c: added mcs51 assembly version
5302         * device/lib/_fs2schar.c: added mcs51 assembly version
5303         * device/lib/_fs2ulong.c: added mcs51 assembly version
5304         * device/lib/_fs2uint.c: added mcs51 assembly version
5305         * device/lib/_fs2uchar.c: added mcs51 assembly version
5306         * device/lib/_slong2fs.c: added mcs51 assembly version
5307         * device/lib/_sint2fs.c: added mcs51 assembly version
5308         * device/lib/_schar2fs.c: added mcs51 assembly version
5309         * device/lib/_ulong2fs.c: added mcs51 assembly version
5310         * device/lib/_uint2fs.c: added mcs51 assembly version
5311         * device/lib/_uchar2fs.c: added mcs51 assembly version
5312         * device/include/float.h: added #define to select asm vs c
5313
5314 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
5315
5316         * device/lib/printf_fast.c: improvements to float output
5317         * device/include/float.h: add defines for assembly float library
5318         * device/lib/_fsget1arg.c: receive 1 float arg
5319         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
5320         * device/lib/_fsnormalize.c: normalize a float
5321         * device/lib/_fsreturnval.c: return float, various helper routines
5322         * device/lib/_fsrshift.c: right shift a float's mantissa
5323         * device/lib/_fsswapargs.c: swap 2 floats
5324         * device/lib/Makefile.in: build these 6 new files for mcs51
5325         * device/lib/libfloat.lib: add these 6 files to the library
5326
5327 2004-12-26 Borut Razem <borut.razem AT siol.net>
5328
5329         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
5330           built by gcc 3.4.2
5331
5332 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
5333
5334         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
5335           and fully reentrant and register bank neutral.
5336         * device/lib/printf_fast.c: added float (not enabled by default),
5337           added compact/slower integer (also not enabled by default),
5338           improved size/speed of fast integer code, other minor changes
5339         * device/include/stdio.h, device/lib/Makefile.in,
5340           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
5341
5342 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
5343
5344         * src/pic16/pcode.c: declaring variables other than at the start of a
5345           block is not supported in C by VC6.
5346
5347 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
5348
5349         * applied a previous patch from Raphael Neider that wasn't included
5350         in the previous commits, which fixes infinite loops within jumptable
5351         improvements,
5352         * made some fixes that previous patches introduced
5353
5354 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
5355
5356         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
5357         that fixes an issue with AOP_PCODE asmop's offset,
5358         * (pic16_popCopyReg): update instance field too,
5359         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
5360         function of pic port,
5361         * (genCmp, genAnd, genAssign),
5362         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
5363
5364 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
5365
5366         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
5367         variables initial values to idata section,
5368         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
5369         variables in some functions. This utilizes parmBytes field of iCode
5370         structure to hold the offset of the variable in stack. (might be
5371         able to use the stack field too?)
5372         * applied patch from Raphael Neider # ### , # ###
5373         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
5374         variable initial values in idata section,
5375         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
5376         for static variables with initial value
5377         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
5378         applied fix in while loop from Raphael Neider.
5379
5380 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
5381
5382         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
5383         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
5384         * src/ds390/ralloc.c (serialRegAssign): spill bits
5385         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
5386         * support/Util/SDCCerr.c,
5387         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
5388         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
5389         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
5390
5391 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
5392
5393         * device/include/sdcc-lib.h: inserted LGPL, added includes
5394           asm/ds390/features.h and asm/mcs51/features.h
5395         * device/include/asm/default/features.h,
5396         * device/include/asm/gbz80/features.h,
5397         * device/include/asm/z80/features.h: added empty _AUTOMEM
5398           and _STATMEM
5399         * device/include/asm/ds390/features.h,
5400         * device/include/asm/mcs51/features.h: added files with defines for
5401           _AUTOMEM and _STATMEM indicating automatic and static storage class
5402         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
5403         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
5404         * src/SDCCicode.c (geniCodeCast),
5405         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
5406         * src/SDCCloop.c (loopInduction): removed unused variable lr
5407         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
5408           to convertToFcall to include char modulo (RFE 1065037), added check
5409           if left operand is unsigned and use abs of literal value
5410         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
5411           as it doesn't work after conversion from peephole.def to peephole.rul
5412         * src/mcs51/gen.c (toBoolean): added check for size,
5413           (genModOneByte): optimized code for signed char modulo a literal
5414           power of 2 (thanks to Hubert Sack),
5415           (genRRC): removed unnecessary "clr c",
5416           (genRLC): replaced "add a,acc" with cheaper "rlc a"
5417         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
5418           jump optimization,
5419           swapped rules 256.c and 256.d,
5420           extended 256.d by using new multiple checks (thanks Erik),
5421           added rules 256.e and 256.f,
5422           updated rule 261.a and 261.b to new generated code
5423         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
5424
5425 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5426
5427         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
5428           induction related bugs, including first part of bug #1074377
5429
5430 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
5431
5432         * applied patch from bug-report #1076292,
5433         * applied patches for genAnd and Goto-optimizations for Raphael
5434         Neider,
5435         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
5436         dump a less iCode information,
5437         * src/pic16/device.h (pic16_options_t): added field debgen,
5438         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
5439         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
5440         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
5441         puclic,
5442         * (various functions): added macros FENTRY and FENTRY2 to functions,
5443         to emit function prologue,
5444         * (various functions): fixed indentation,
5445         * (genNearPointerGet): fixed loading of FSR0,
5446         * (genPackBits): applied patch from Raphael Neider to fix updating
5447         of FSR0 and touching only the modified bits,
5448         * src/pic16/genarith.c (various functions): added macros FENTRY to
5449         emit function prologue in comments,
5450         * src/pic16/pcode.h: added functions debugf2, debugf3,
5451         * src/pic16/ralloc.c: partial fix for packForPush caused
5452         segmentation fault,
5453
5454 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5455
5456         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
5457           <stsp AT users.sourceforge.net> with reversed byte order
5458         * support/regression/tests/rotate.c: added (ds390 skips some tests)
5459
5460 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5461
5462         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
5463           bug #1074377
5464         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
5465         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
5466
5467 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5468
5469         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
5470
5471 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5472
5473         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
5474           conditions,
5475           (setFromConditionArgs): friendly operand parser for peephole rules,
5476           (operandBaseName, operandsNotRelated): new peephole condition
5477           "operandsNotRelated" -- similar to "operandsNotSame", but takes
5478           architecture specific register naming into account, handles n-way
5479           comparisons, and supports quoted literals
5480         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
5481
5482 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5483
5484         * src/mcs51/peeph.def: fixed bug #1076940
5485
5486 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5487
5488         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
5489
5490 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5491
5492         Adding support for replacing ljmps with sjmps in jumptables
5493         generated for switch statements. For now you need to set the
5494         environment variable SDCC_SJMP_JUMPTABLE to enable this.
5495         Now 4 algorithms for mcs51 jumptable generation are used:
5496         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
5497         addresses loaded pc-relative for up to 112 cases and stack-pushing
5498         target addresses loaded with offset from dptr for up to 256 cases.
5499
5500         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
5501         * src/mcs51/main.c: adapted constants for switch table generation
5502         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
5503
5504 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
5505
5506         * device/lib/printf_large.c (_print_format): fixed bug 1073386
5507         * support/regression/tests/bug1057979.c: added test for bug 1073386
5508
5509 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5510
5511         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
5512         compilers
5513
5514 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5515
5516         * src/pic16/device.h,
5517         * src/pic16/genarith.c,
5518         * src/pic16/glue.c,
5519         * src/pic16/main.c,
5520         * src/pic16/pcode.c: applied patches #1068154 and #1070213
5521
5522 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
5523
5524         Large cummulative patch for pic16 port.
5525         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
5526         to call when a stack overflow occurs,
5527         * (malloc.h): added CVS Id tag,
5528         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
5529         variable,
5530         * added libc directory. The current version of LibC contains string
5531         functions, ctype functions and macros and some functions of the
5532         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
5533         be extensively tested in the future. Standard disclaimer here.
5534         Library is not automatically build yet. But one can build it by
5535         invoking 'make' inside the libc directory.
5536         * added ADC library under libio. Preliminary version yet.
5537
5538         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
5539         * src/pic16/gen.c (aopForRemat): asmop size is filled by
5540         aopForRemat() now and not by pic16_aopOp(),
5541         * (pic16_popGetTempReg): removed warning messgae when allocating
5542         temporary registers, its a buggy feature and will be removed,
5543         * (pic16_popGet): set register instance field in AOP_CRY,
5544         * (pic16_outBitC): fixed for results in size greater than 1,
5545         * (genUminusFloat): fixed for pic16, ported code from mcs51,
5546         * (pic16_storeForReturn): optimized return of 0,
5547         * (genCmp): experimental code for new genCmp which uses PIC18's
5548         special compare&skip instructions. Initial tests fail some times
5549         with variables grater than 1 byte in size, so new code is disabled,
5550         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
5551         a single bit,
5552         * (genCast): began a fix to optimize the casting of a bit to another
5553         bit, now assigning a bitfield to another bitfield will fail, sorry,
5554         * src/pic16/main.c: disabled the use of lr-support feature,
5555         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
5556         * added some function prototypes, added function _debugf prototype,
5557         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
5558         bits with offset (case PO_GPR_BIT),
5559         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
5560         command line,
5561         * (isBankInstruction): modified to return 0 for no banking instruction,
5562         and 1 for banking instruction,
5563         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
5564         caused stop processing pCodes after a inline assembly block,
5565         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
5566         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
5567         registers when it shouldn't,
5568         * src/pic16/ralloc.c (allocReg): add preliminary support for
5569         supporting a limited set of temporary registers,
5570
5571 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5572
5573         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
5574           genDataPointerSet): ensure assignments always copy in MSB to LSB
5575           order,
5576           (loadRegFromAop): recognize CLRH optimization,
5577           (genFunction): optimize RECEIVE iCodes in reentrant functions
5578
5579 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5580
5581         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
5582           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
5583           selected.
5584         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
5585         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
5586           contiguous with data
5587
5588 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5589
5590         * device/lib/_gptrget.c (_gptrget),
5591         * device/lib/_gptrgetc.c (_gptrgetc),
5592         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
5593           instead of sjmp to ret
5594         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
5595           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
5596
5597 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5598
5599         * .version: bumped version to 2.4.7
5600         * device/lib/_gptrget.c (_gptrget): is now _naked
5601         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
5602         * device/lib/_gptrput.c (_gptrput): is now _naked
5603         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
5604           (createFunction): fixed xstack
5605         * src/SDCCglue.c (emitMaps): set allocation required for bit area
5606         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
5607           or bit either,
5608           (geniCodeCritical): store original interrupt state in an iTemp bit
5609           var unless stack-auto
5610         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
5611         * src/SDCCmain.c (setIncludePath): added include/target to search path
5612         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
5613         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
5614           prototype,
5615           (processFuncArgs): put bit vars in bit area
5616         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
5617           unsaveRBank): fixed xstack,
5618           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
5619           (genFunction, genEndFunction): fixed xstack,
5620           (genAssign): optimization don't walk backwards through mem
5621         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
5622         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
5623         * support/regression/Makefile: also make library (for stack-auto) when
5624           making "all" and added "test-mcs51-xstack-auto"
5625         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
5626         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
5627         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
5628         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
5629         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
5630           make-library by MAKE_LIBRARY
5631         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
5632           regression tests for xstack
5633         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
5634         * support/regression/tests/critical.c: test for critical on mcs51
5635
5636 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5637
5638         * support/regression/ports/ucz80/spec.mk: use include and lib files from
5639           built version of sdcc instead of installed version
5640
5641 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5642
5643         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
5644         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
5645           vprintf.c now
5646         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
5647         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
5648           WARNING: remove device/lib/build/z80/printf.o by hand when
5649           updating from previous build!
5650         * device/lib/z80/printf.c: updated comment
5651         * support/regression/tests/bug1057979.c: test all ports now
5652         * support/regression/tests/bug1065458.c: file added
5653
5654 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5655
5656         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
5657           *_start and *_end symbols for static functions
5658
5659 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
5660
5661         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
5662           and search crt0.o in all library paths,
5663           (setIncludePath): proper handling of --nostdinc,
5664           (setLibPath): proper handling of --nostdlib
5665         * support/regression/Makefile,
5666         * support/regression/ports/ds390/spec.mk,
5667         * support/regression/ports/gbz80/spec.mk,
5668         * support/regression/ports/hc08/spec.mk,
5669         * support/regression/ports/mcs51/spec.mk,
5670         * support/regression/ports/mcs51-large/spec.mk,
5671         * support/regression/ports/mcs51-stack-auto/spec.mk,
5672         * support/regression/ports/z80/spec.mk: use include and lib files from
5673           built version of sdcc instead of installed version
5674         * doc/sdccman.lyx: fixed typo in --nostdinc
5675
5676 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
5677
5678         * src/pic/pcode.c,
5679         * src/pic/device.c,
5680         * src/pic/ralloc.c,
5681         * src/pic/gen.c : added support to generate code for struct bit fields.
5682
5683 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5684
5685         * as/xa51/xa_version.h,
5686         * device/include/errno.h,
5687         * device/include/regc515c.h,
5688         * device/lib/_itoa.c,
5689         * device/lib/_ltoa.c,
5690         * device/lib/ser_ir_cts_rts.c,
5691         * sim/ucsim/xa.src/glob.cc,
5692         * sim/ucsim/xa.src/inst_gen.cc,
5693         * sim/ucsim/xa.src/xa_bit.cc,
5694         * sim/ucsim/xa.src/xa_sfr.cc,
5695         * sim/ucsim/z80.src/inst_dd.cc,
5696         * sim/ucsim/z80.src/inst_fdcb.cc,
5697         * support/scripts/keil2sdcc.pl,
5698         * src/pic16/pic16.dsp,
5699         * src/pic16/pic16a.dsp: corrected cvs line endings
5700         * device/lib/printf_large.c: fixed bug 1057979
5701         * src/pic16/gen.c: fixed non-C standard code
5702         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
5703         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
5704         * support/regression/ports/mcs51/support.c: reload T1 asap
5705         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
5706           pdata use and clear idata startup behaviour
5707         * support/regression/tests/bug1057979.c: added
5708
5709 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
5710
5711         * device/examples/ds390/ow390/ad26.h,
5712         * device/examples/ds390/ow390/cnt1d.h,
5713         * device/examples/ds390/ow390/crcutil.c,
5714         * device/examples/ds390/ow390/ownet.h,
5715         * device/examples/ds390/ow390/owsesu.c,
5716         * device/examples/ds390/ow390/swt12.h,
5717         * device/examples/ds390/ow390/swtoper.c,
5718         * device/examples/ds390/ow390/temp10.h,
5719         * device/examples/ds390/ow390/thermodl.c,
5720         * device/examples/ds390/tinitalk/tinitalk.dsp,
5721         * device/examples/ds390/tinitalk/tinitalk.dsw,
5722         * device/examples/mcs51/clock/hw.h,
5723         * device/examples/mcs51/simple2/go.bat,
5724         * device/examples/serialcomm/windows/serial.h,
5725         * device/examples/xa51/dummy.c,
5726         * device/examples/xa51/hello.c,
5727         * device/include/80c51xa.h,
5728         * device/include/at89x051.h: corrected cvs line endings
5729
5730 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
5731
5732         * src/pic16/main.c (options): added command line --gstack, to trace
5733         stack over/under flows,
5734         * added pragma 'wparam' to allow passing first byte of function
5735         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
5736         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
5737         call to __gstack_test function and sets up the symbol as extern,
5738         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
5739         * popaop): added call to pic16_testStackOverflow,
5740         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
5741         wparamList list,
5742         * (genCall, genPcall): now all parameters are passed via stack
5743         except in functions that are pass to wparam pragma in which WREG is
5744         used too,
5745         * (genPcall): REENTRANT flag is checked to see if variable prototype
5746         contains reentrant keyword, don't call a non-reentrant function, via
5747         a reentrant function pointer or vice versa, functions are never
5748         passed via WREG,
5749         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
5750         D.Winkler,
5751         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
5752         SIGSEGV when accessing a NULL register stucture,
5753         * (pic16_printGPointerType): modified to handle UPPER modifier for
5754         function initializers, changed prototype of function to simpler one,
5755         * (pic16_printIvalFuncPtr): check to see if function is already
5756         added in externs list,
5757         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
5758         optimized a move from W to SFR with a move to the same register
5759         later after a CALL,
5760         * device/lib/pic16/debug: NEW directory, contains debug features
5761         which are enabled when linking with libdebug.lib, currently command
5762         line option --gstack enables stack pointer tracing for over/under
5763         flow, corresponding sources are in debug/gstack
5764
5765 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
5766
5767         * doc/sdccman.lyx: updated SDCC version,
5768         * (PIC16 port): update list of command line options,
5769         * src/pic16/device.h (structure pic16_options_t): added field gstack
5770         to enable stack overflow tracing on push/pops,
5771         * src/pic16/device.c (statistics structure): added statistics
5772         structure,
5773         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
5774         pic16_dump_int_registers): increase statistics counters for each
5775         * variable which is encountered
5776         * (pic16_dump_usection): emit each .udata variable to its own udata
5777         section,
5778         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
5779         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
5780         parameters via stack, otherwise use old scheme,
5781         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
5782         assembler output file,
5783         * src/pic16/main.c: added command line options --gstack to enable
5784         push/pop tracing for stack overflow,
5785         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
5786         instructions): added size of each instruction,
5787         * (pic16_countInstruction): estimate size of instructions in
5788         the_pFile list, inline assembly blocks are not counted,
5789         * (pic16_FixRegisterBanking): trace previous register usage, when
5790         banksel optimizations is greater than 0, don't emit a redudant
5791         banksel directive,
5792
5793 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
5794
5795         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
5796         * src/pic16/ralloc.c : applied same fix for pic16.
5797         * src/pic/gen.c : tidied it up a little.
5798
5799 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5800
5801         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
5802         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
5803
5804 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5805
5806         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
5807
5808 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5809
5810         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
5811         non-reentrant function __modsint in the interrupt function (thus
5812         corrupting math operations during serial I/O)
5813         * device/lib/ser_ir.c: as above, changed buffersize
5814         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
5815         256.c,d for zeroing
5816         * doc/Makefile: added option -t for rsync
5817
5818 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5819
5820         * src/SDCCast.h (struct ast),
5821         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
5822
5823 2004-10-20 Borut Razem <borut.razem AT siol.net>
5824
5825         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
5826         package
5827
5828 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
5829
5830         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
5831         makefile targets,
5832         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
5833         support functions to replace long sequences of MOVFF's from access
5834         bank registers to stack and vice versa,
5835         * src/pic16/device.h: added new field opt_flags, where optimization
5836         flags can be set to enable certain features,
5837         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
5838         * pBlock, (genFunction, genEndFunction): surroung loop for
5839         saving/loading used registers in stack with PC_INFO pCodes,
5840         INF_LREGS. Code in between can then be optimized by pCode optimizer
5841         to support function calls,
5842         * (genDataPointerSet): fixed bug which loaded float fields in
5843         structures with corrupt data,
5844         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
5845         in a standard way debug info on stderr. Feature used for developing
5846         and debugging only,
5847         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
5848         obsolete chunks of code,
5849         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
5850         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
5851         * pic16/src/pcode.c (pic16_newpCodeInfo,
5852         * (pic16_newpCodeOpLocalRegs),
5853         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
5854         feature,
5855         * (pic16_pCodeConstString): printing of the initial value of a
5856         symbol as a comment is inhibited since parsing was already done by
5857         copyStr and output is corrupt,
5858         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
5859
5860 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5861
5862         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
5863
5864 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
5865
5866         * as/mcs51/lkarea.c: removed old K&R style,
5867           (lnksect): changed check on boundary error,
5868           (lnksect2): changed check on boundary error,
5869           (lnksect2): extend XSTK to end of page if size = 1
5870         * as/mcs51/lkmain.c: removed old K&R style,
5871           (Areas51): create l_IRAM symbol
5872         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
5873         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
5874           model-mcs51-stack-auto, added model-mcs51-xstack-auto
5875         * device/lib/_mullong.c: added version to be compiled with xstack
5876         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
5877         * device/lib/mcs51/crtxclear.asm: clear pdata as well
5878         * device/lib/mcs51/crtxstack.asm: fixed comment
5879         * src/SDCCglue.c: maxInterrupts defaults to 0,
5880           (emitMaps): added pdata,
5881           (createInterruptVect): (re)moved default,
5882           (glue): added pdata,
5883           (glue): moved __start__xstack to XSTK with default size 1
5884         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
5885           and options.float_rent when options.stackAuto is set,
5886           (linkEdit): only write XDATA_NAME if provided on command line
5887         * src/SDCCmem.h,
5888         * src/SDCCmem.c: added pdata
5889         * src/port.h: added pdata_name to PORT
5890         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
5891           (saveRegisters, unsaveRegisters): removed usage of B,
5892           (genMinus): fixed accumulator clash,
5893           (genJumpTab): added comment, this needs another look
5894         * src/mcs51/gen.c: added check for "B in use" paranoia,
5895           added pushB() and popB()
5896         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
5897           chance
5898         * src/avr/main.c,
5899         * src/ds390/main.c,
5900         * src/hc08/main.c,
5901         * src/mcs51/main.c,
5902         * src/pic/main.c,
5903         * src/pic16/main.c,
5904         * src/xa51/main.c,
5905         * src/z80/main.c: (reset_regparms) made void parameter explicit and
5906           added PSEG (PAG,XDATA) or NULL to port specifier
5907         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
5908         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
5909           (_mcs51_genInitStartup): removed __start__xstack equ,
5910           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
5911         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
5912         * src/z80/gen.c (_rleAppend): fixed warnings
5913         * support/regression/tests/zeropad.c: added pdata test
5914         * .version: bumped to 2.4.6
5915
5916 2004-10-17 Borut Razem <borut.razem AT siol.net>
5917
5918         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
5919         as a part of nightly build
5920
5921 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
5922
5923         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
5924         WREG holds the first byte function parameters,
5925         * (aopForSym): take special case for symbols which are in FARSPACE
5926         but in CODESPACE too,
5927         * (assignResultValue): modified to take into account _G.useWreg,
5928         * (genCall): don't use wreg for parameter passing when function is
5929         declared as reentrant, too, added optimization INCF to stack
5930         pointer when stack parameter count is 1,
5931         * (genFunction, genEndFunction): refurnished and fixed to not using
5932         wreg for passing parameters when function has varargs or is
5933         reentrant, fixed bug with symbol name compare for generating
5934         functions in absolute address,
5935         * (pic16_storeForReturn): refurnished,
5936         * (genCmp): began writing a new version of the function, not ready
5937         yet, therefore it is disabled,
5938         * (genAssign): do not read code memory when assigning a function to
5939         a pointer function,
5940         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
5941         array of characters, not pointer,
5942         * (pic16initialComments): in debug mode emit an .ident directive for
5943         the assembler,
5944         * (_process_pragma): emit a new warning type (internal to pic16)
5945         when setting stack to default length, emit a similar warning when
5946         placing a function at absolute address and address is not word aligned
5947         * (_pic16_parseOptions): added 'return TRUE' statement,
5948         * (_pic16_linkEdit): if compiling a source, then add the source's
5949         file object, first in the list of objects to link,
5950
5951 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
5952
5953         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
5954         * src/pic/main.c : removed VC warning.
5955         * src/pic/gen.c : changed comment.
5956
5957 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
5958
5959         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
5960         reference to a deprecated symbol _GPTRREG was causing failure to
5961         link. Thanks G. M. Gallant for the info.
5962
5963 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
5964
5965         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
5966         comments for Bugs item #954788.
5967
5968 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
5969
5970         * src/pic16/device.c (pic16_dump_gsection,
5971         * pic16_groupRegistersInSection): handle symbols declared to be in
5972         access bank differently,
5973         * src/pic16/gen.c (struct _G): added field resDirect,
5974         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
5975         send values read from stack directly to result and don't allocate
5976         temporary values,
5977         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
5978         same registers,
5979         * (pic16_sameRegsOfs): NEW,
5980         * (freeAsmop): if _G.resDirect is set then do not mark registers as
5981         free because they were not allocated from temporary pool,
5982         * pic16_popRegFromString): workaround to fix a problem with
5983         allocating variables twice or never,
5984         * (genGenPointerGet): using PRODL instead of FSR0H,
5985         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
5986         instead of FSR0H,
5987         * (genAssign): take advantage of the _G.resDirect flag,
5988         * (genCast): around line 11844, use mov2f instead of directly
5989         MOVFF'ing between operands to account for literal values,
5990         * src/pic16/genutils.c: some new debug functions for gpsim have been
5991         added,
5992         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
5993         float with integer part only,
5994         * src/pic16/main.c (_process_pragma): handle pragma udata access to
5995         place variables in access bank
5996         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
5997         updated sources to reflect recent changes in gen.c
5998
5999 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
6000
6001         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
6002         sources that searched for headers in installation path, now the
6003         device/include/pic16 is used,
6004         * src/pic16/glue.c (pic16glue),
6005         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
6006         .line directives if not in debug mode, this suppresses assembler's
6007         warnings for ignored directives
6008
6009 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
6010
6011         * src/port.h: made reset_regparms prototype void parameter explicit.
6012         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
6013         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
6014         * doc/sdccman.lyx: documented warning disabling and how to use
6015           printf_large to make it print floats.
6016         * device/include/stdbool.h: NEW
6017         * device/lib/_atof.c,
6018         * device/lib/_divuint.c,
6019         * device/lib/_divulong.c,
6020         * device/lib/expf.c,
6021         * device/lib/printf_large.c,
6022         * device/lib/sincosf.c,
6023         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
6024         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
6025           a completely reentrant lib.
6026
6027 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
6028
6029         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
6030         * device/include/pic16/stdio.h: fixed bug with colon
6031
6032 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
6033
6034         * device/include/pic16/stdio.h,
6035         * device/include/pic16/stdlib.h,
6036         * device/include/pic16/math.h: NEW
6037         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
6038         declared as _naked to reduce overhead
6039         * device/lib/Makefile.in (target port-specific-objects-pic16):
6040         changed * to *.* so to ignore the CVS directory,
6041         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
6042         stacked variables back in stack,
6043         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
6044         corruption
6045
6046 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
6047
6048         * .version: bumped version number to 2.4.5
6049         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
6050         * support/Util/SDCCerr.c (messages structure): added entry for
6051         W_POSSBUG2
6052
6053         Large cumulative patch for pic16 port and libraries.
6054         * device/include/pic16/sdcc-lib.h,
6055         * device/include/pic16/stdarg.h,
6056         * device/include/asm/pic16/features.h,
6057         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
6058         * device/include/pic16/float.h: changes reentrant keyword with
6059         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
6060         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
6061         updated target build-libraries to include objects from gptr,
6062         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
6063         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
6064         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
6065         all function headings,
6066         * src/SDCCmain.c: added global parameter userIncDirsSet,
6067         * (parseCmdLine): when option -I is encountered add directory to
6068         userIncDirsSet too,
6069         * src/version.awk: added space between control and long,
6070         * src/pic16/NOTES: added some notes for the port,
6071         * src/pic16/gen.c: added prototype for mov2fp function,
6072         * (fReturnpic16[]): properly named return value registers,
6073         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
6074         * (aopForSym): added code to handle symbols with onStack flag set,
6075         symbols onStack are allocated PTRSIZE bytes,
6076         * (aopFreeAsmop): handles special case where asmops are stack objects,
6077         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
6078         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
6079         added argument lock to trace flaws in allocating temporary registers
6080         when developing port,
6081         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
6082         * (pic16_popRegFromString): reenabled allocating a direct register
6083         from string,
6084         * (assignResultValue): various beautifications,
6085         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
6086         referenced function argument,
6087         * (genIpush): reenabled to allow stacked arguments, handles only
6088         ic->parmPush iCodes,
6089         * (genCall, genPcall): major changes to allow for variable argument
6090         functions, fixed a bug with falsely restoring stack pointer after
6091         returning from call,
6092         * (genFunction): pending code for critical function,
6093         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
6094         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
6095         * (genNearPointerGet): fixed bug with indirect reading, was always
6096         reading from INDF0
6097         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
6098         pointers,
6099         * (genAddrOf): rewrote code to take address of a stacked function parameter
6100         * (genCast): fixed casting to generic pointer type,
6101         * src/pic16/gen.h: added AOP_STA,
6102         * (struct asmop): added field stk,
6103         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
6104         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
6105         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
6106         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
6107         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
6108         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
6109         generic pointers,
6110         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
6111         and library paths,
6112         * (pic16_port structure): generic pointer size is set to 3,
6113         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
6114         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
6115         compiler warning,
6116         * src/pic16/ralloc.c (allocReg): prevent allocating register when
6117         operand is an iTemp,
6118
6119 2004-09-24 Martin Helmling <mh AT octo-soft.de>
6120
6121         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
6122         * debugger/mcs51/simi.c: addapt new syntax of s51
6123
6124 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
6125
6126         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
6127         * src/pic16/pcode.c: commented out some calls to free() in order to
6128         fix bug #989576,
6129
6130 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6131
6132         * src/SDCCicode.h,
6133         * src/SDCCicode.c (isiCodeInFunctionCall),
6134         * src/avr/ralloc.c (selectSpil),
6135         * src/pic/ralloc.c (selectSpil),
6136         * src/pic16/ralloc.c (selectSpil),
6137         * src/ds390/ralloc.c (selectSpil),
6138         * src/hc08/ralloc.c (selectSpil),
6139         * src/xa51/ralloc.c (selectSpil),
6140         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
6141         stack in the middle of a function call sequence (fixes bug #1020268)
6142         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
6143         costs associated with the minimum switch case.
6144
6145 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6146
6147         * src/SDCC.lex: fixed bug #1030549
6148
6149 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6150
6151         * src/SDCCcse.h (struct cseDef),
6152         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
6153         over a function call if the CSE is derived from a symbol whose
6154         address has been taken (fixes bug #1029883)
6155         * support/regression/tests/bug-1029883: a new regression test for
6156         this bug
6157
6158 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6159
6160         * src/hc08/gen.c (emitinline): fixed bug #1029778
6161         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
6162         to a cast object is no longer a syntax error ("fixes" bug #1030006,
6163         and starts toward RFE #905167)
6164
6165 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
6166
6167         * src/pic16/gen.c (mov2f): New function to move an operand to
6168         another without considering if it is a literal or a register,
6169         * (pic16_sameRegs): don't check if they are both AOP_REG,
6170         * (AccRsh): removed andmask=0 lines,
6171         * (genLeftShift): duplicated to be improved in future versions,
6172         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
6173         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
6174         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
6175         * (pic16initMnemonics): added initialization for POC_INFSNZW,
6176         * (insertBankSwitch): fixed inserting banksel directives algorithm
6177         for instructions that follow a skip instruction, this fixes a report
6178         for broken subtraction code generation,
6179         * src/pic16/ralloc.c (deassignLRs): do not free register if current
6180         iCode is a left op, just in case result and right share the same
6181         registers
6182
6183 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6184
6185         * src/hc08/main.c,
6186         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
6187         preservation of HX
6188         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
6189         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
6190         on 2004-09-12; it was buggy
6191
6192 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
6193
6194         * src/SDCCsymt.h: removed RESULT_CHECK
6195         * src/SDCCast.c,
6196         * src/SDCCglue.c,
6197         * src/SDCCval.c,
6198         * src/pic/glue.c,
6199         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
6200
6201 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
6202
6203         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
6204         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
6205         configuration values no more rejected by compiler, they are assigned
6206         to configuration registers with a warning message instead,
6207         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
6208         the for-loop so last conf register is emitted too,
6209         * (_pic16_initPaths): link library libsdcc.lib by default,
6210         * (_hasNativeMulFor): modified test for multiplication according to
6211         Raphael Neider's remarks. Integer multiplication is also done with
6212         support functions,
6213         * device/include/pic16/pic18fregs.h: corrected type error in while
6214         testing and including 18f6720 header file
6215
6216 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
6217
6218         * src/pic16/device.h (pic16_options): removed field use_crt,
6219         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
6220         until an optimization to handle single bits is added,
6221         * (pic16_loadFSR0): moved before genUnpackBits,
6222         * (genAnd): some white lines removed,
6223         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
6224         leave_reset flags in pic16_options when using crt modules,
6225
6226 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
6227
6228         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
6229           for bugs 898889 & 979599. Also used some safer print instructions.
6230
6231 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
6232
6233         * src/pic16/device.h (pic16_options_t): added field use_crt,
6234         crt_name, no_crt,
6235         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
6236         catch a probable future bug,
6237         * src/pic16/gen.c: aopIdx function commented out,
6238         * (genAssign): commented out old code which used aopIdx,
6239         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
6240         code, added if conditionals to take into account the --use-crt
6241         command line options,
6242         * src/pic16/main.c (pic16_optionsTable): added new command line
6243         options, --use-crt= and --no-crt,
6244         * (_pic16_linkEdit): now the proper crt object is added in the
6245         linker command line except than when --no-crt is specified,
6246         * src/pic16/pcode.c,
6247         * src/pic16/pcode.h: added some structures and functions for a new
6248         optimization scheme to compansate for instruction overhead between
6249         same iCodes, this scheme is currently under development and is not
6250         working in any way,
6251         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
6252         to && operator,
6253         * device/lib/pic16/startup/crt0i.c,
6254         * device/lib/pic16/startup/crt0iz.c: added global char variable
6255         __uflags to force the generation of an idata section
6256
6257 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
6258
6259         * doc/Makefile,
6260         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
6261         * doc/sdccman.lyx: updated sdcc version to 2.4.4
6262
6263 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6264
6265         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
6266         Frieder) and clarified the default code optimization mode
6267
6268 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6269
6270         * src/SDCC.lex (doPragma, process_pragma),
6271         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
6272         "opt_code_size", and "opt_code_balanced"
6273         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
6274         regrouped options by category, added support for category headers
6275         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
6276         and "--opt-code-size"
6277         * doc/sdccman.lyx: documented these new options and pragmas
6278         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
6279         preference into account
6280
6281 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6282
6283         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
6284           geniCodePreDec): Fixed bug 904237 by generating a warning
6285         * src/SDCCerr.h,
6286         * src/SDCCerr.c: added warning W_SIZEOF_VOID
6287
6288 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
6289
6290         * src/pic/device.c : When no max ram set validate full memory range.
6291         * src/pic/pcode.c,
6292         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
6293
6294 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6295
6296         * device/lib/_gptrget.c,
6297         * device/lib/_gptrput.c: updated comment
6298         * device/lib/calloc.c,
6299         * device/lib/free.c,
6300         * device/lib/malloc.c,
6301         * device/lib/realloc.c: added LGPL, made them reentrant-safe
6302         * src/SDCCcse.c (cseBBlock),
6303         * src/SDCCicode.c (printOperand, geniCodeArray),
6304         * src/SDCCicode.h (struct operand): fixed bug 868103
6305         * support/regression/tests/bug-868103.c: added
6306         * src/SDCCast.c (searchLitOp),
6307         * src/SDCCcse.h (struct cseDef),
6308         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
6309         * src/SDCCicode.h (struct operand),
6310         * src/SDCCsymt.h (struct sym_link),
6311         * src/avr/gen.c (hasInc),
6312         * src/ds390/gen.c (hasInc),
6313         * src/hc08/gen.c (genPlusIncr, hasInc),
6314         * src/mcs51/gen.c (hasInc),
6315         * src/pic16/glue.c (pic16_printIvalChar),
6316         * src/pic16/ralloc.c (regWithIdx),
6317         * src/xa51/gen.c (hasInc) : removed warnings
6318         * src/SDCCast.c (createBlock): added comment ???
6319         * src/hc08/ralloc.c: updated comments
6320
6321 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6322
6323         * doc/sdccman.lyx: updated section on switch statements, added
6324         section about semaphore locking
6325         * doc/Makefile: added option -info for latex2html
6326         * device/lib/_gptrget.c,
6327         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
6328
6329 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
6330
6331         * src/pic/device.h,
6332         * src/pic/device.c,
6333         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
6334          maxram is less than 0x100.
6335
6336 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
6337
6338         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
6339
6340 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6341
6342         * src/port.h,
6343         * src/mcs51/main.c,
6344         * src/ds390/main.c,
6345         * src/z80/main.c,
6346         * src/hc08/main.c,
6347         * src/pic/main.c,
6348         * src/pic16/main.c,
6349         * src/avr/main.c,
6350         * src/xa51/main.c
6351         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
6352         a jump table is the best form for a switch statement, including
6353         automatic insertion of missing cases to make the case range
6354         continuous. Developed in collaboration with Frieder Ferlemann.
6355
6356 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6357
6358         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
6359         accumulator result if it needs sign extension
6360
6361 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6362
6363         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
6364
6365 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6366
6367         * device/lib/gbz80/printf.c,
6368         * device/lib/z80/printf.c: removed define for NULL
6369
6370 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6371
6372         * as/xa51/xa_link.c,
6373         * device/examples/ds390/ow390/ad26.c,
6374         * device/examples/ds390/ow390/cnt1d.c,
6375         * device/examples/ds390/ow390/counter.c,
6376         * device/examples/ds390/ow390/ds2480.h,
6377         * device/examples/ds390/ow390/ds2480ut.c,
6378         * device/examples/ds390/ow390/findtype.c,
6379         * device/examples/ds390/ow390/gethumd.c,
6380         * device/examples/ds390/ow390/owllu.c,
6381         * device/examples/ds390/ow390/ownetu.c,
6382         * device/examples/ds390/ow390/swt12.c,
6383         * device/examples/ds390/ow390/swtloop.c,
6384         * device/examples/ds390/ow390/temp.c,
6385         * device/examples/ds390/ow390/temp10.c,
6386         * device/examples/ds390/ow390/thermo21.c,
6387         * device/examples/ds390/ow390/tinilnk.c,
6388         * device/examples/ds390/ow390/tstfind.c,
6389         * device/examples/serialcomm/windows/serial.cpp,
6390         * device/examples/serialcomm/windows/test_serialcomm.cpp,
6391         * device/include/reg51.h: fixed line endings for cvs
6392
6393 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6394
6395         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
6396         packRegsForAccUse, packRegisters): new accumulator register
6397         packing algorithm
6398         * support/regression/ports/hc08/support.c (_putchar): suppress
6399         warning of unused variable
6400         * src/SDCCicode.c: added SWAP entry to codeTable
6401
6402 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
6403
6404         * device/lib/sprintf.c: forgot to add this file before previous commit
6405
6406 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
6407
6408         * src/pic16/gen.c (genPackBits): added operand right in function
6409         parameters, load result directly if p_type is POINTER (that is
6410         called by genNearPointerSet)
6411         * (genUnPackBits): added operand left in function parameters,
6412         * (genNearPointerGet, genNearPointerSet): prevent the loading of
6413         FSR0 if accessing bitfields,
6414
6415 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
6416
6417         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
6418           _print_format; updated printf, sprintf, vsprintf
6419         * device/include/asm/default/features.h: corrected comment/define
6420         * device/lib/Makefile.in: added sprintf.c
6421         * device/lib/libsdcc.lib: added sprintf module
6422         * device/lib/printf_large.c,
6423         * device/lib/vprintf.c,
6424         * device/lib/sprintf.c: totally refactored printf_large and vprintf
6425           into these 3 files
6426         * support/regression/Makefile: changed ALL_PORTS into a usefull default
6427         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
6428         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
6429           hc08 test
6430         * support/regression/tests/zeropad.c: define idata as data for hc08
6431
6432 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6433
6434         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
6435         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
6436         labels are referenced at least once (even if a reference is not found)
6437         * src/hc08/gen.c (emitcode): set isComment flag for comments
6438         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
6439         loads), rules 6a..6b (optimize jumps to return)
6440
6441 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6442
6443         * device/lib/acosf.c (acosf),
6444         * device/lib/asinf.c (asinf),
6445         * device/lib/atanf.c (atanf),
6446         * device/lib/ceilf.c (ceilf),
6447         * device/lib/cosf.c (cosf),
6448         * device/lib/coshf.c (coshf),
6449         * device/lib/cotf.c (cotf),
6450         * device/lib/fabsf.c (fabsf),
6451         * device/lib/floorf.c (floorf),
6452         * device/lib/log10f.c (log10f),
6453         * device/lib/logf.c (logf),
6454         * device/lib/sinf.c (sinf),
6455         * device/lib/sinhf.c (sinhf),
6456         * device/lib/sqrtf.c (sqrtf),
6457         * device/lib/tanf.c (tanf),
6458         * device/lib/tanhf.c (tanhf),
6459         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
6460         replaced all instances of "reentrant" in the library functions
6461         defined in math.h with this macro.
6462         * support/regression/tests/float_trans.c: reenabled test for hc08
6463
6464 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
6465
6466         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
6467         erroneously deleted
6468
6469 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6470
6471         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
6472         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
6473         multi-byte volatile operands are used
6474         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
6475         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
6476         initialization to area GSINIT0 so that it would always precede
6477         any static initializers in GSINIT
6478         * support/regression/tests/zeropad.c: fixed idata define for hc08
6479         * support/regression/tests/bug-927659.c,
6480         * support/regression/tests/float_trans.c: disabled tests for hc08
6481         pending missing library routines
6482         * .version: increased version number to 2.4.4 - hc08 port now passes
6483         regression tests
6484
6485
6486 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
6487
6488         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
6489         * Makefile.common.in,
6490         * as/Makefile,
6491         * as/hc08/Makefile.in,
6492         * as/mcs51/Makefile.in,
6493         * as/z80/Makefile.in,
6494         * debugger/mcs51/Makefile.in,
6495         * device/include/Makefile.in,
6496         * device/lib/Makefile.in,
6497         * doc/Makefile,
6498         * link/Makefile,
6499         * link/z80/Makefile.in,
6500         * packihx/Makefile.in,
6501         * sim/ucsim/main_in.mk,
6502         * sim/ucsim/avr.src/Makefile.in,
6503         * sim/ucsim/doc/Makefile.in,
6504         * sim/ucsim/gui.src/serio.src/Makefile.in,
6505         * sim/ucsim/hc08.src/Makefile.in,
6506         * sim/ucsim/s51.src/Makefile.in,
6507         * sim/ucsim/xa.src/Makefile.in,
6508         * sim/ucsim/z80.src/Makefile.in,
6509         * src/Makefile.in,
6510         * support/cpp2/Makefile.in,
6511         * support/librarian/Makefile,
6512         * support/makebin/Makefile: added DESTDIR to the install path proposed
6513         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
6514         * doc/sdccman.lyx: added DESTDIR documentation
6515
6516 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
6517
6518         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
6519         instruction for interrupt handlers, use fast returns when returning
6520         from high priority interrupts
6521
6522 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6523
6524         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
6525         code generation
6526         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
6527         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
6528         bugs, ported much of Bernhard's code from mcs51
6529         * src/mcs51/gen.c (genSend),
6530         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
6531         than one when calling a reentrant function
6532         * device/lib/_mullong.c: defined an alternate struct layout for big
6533         endian ports (hc08)
6534
6535 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6536
6537         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
6538         test
6539
6540 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6541
6542         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
6543         are sane and complete before asking the port its prefered parameter
6544         passing method (fixes bug #1017633)
6545         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
6546         and _ret3
6547
6548 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6549
6550         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
6551         problem in bitfields >= 8 bits.
6552
6553 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6554
6555         * src/SDCCsymt.c: undid changes that were not meant to be committed
6556
6557 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6558
6559         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
6560
6561 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6562
6563         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
6564           copied and wrong bit got inverted
6565
6566 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6567
6568         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
6569         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
6570         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
6571         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
6572         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
6573         assignments to bitfields at known addresses
6574         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
6575         reads from bitfields at known addresses
6576         * src/hc08/ralloc.c (packRegisters),
6577         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
6578         genhc08Code): optimize pointer get values used as conditionals
6579         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
6580         and branch
6581
6582 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6583
6584         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
6585         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
6586         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
6587         as conditionals
6588
6589 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6590
6591         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
6592
6593 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6594
6595         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
6596         related problems
6597
6598 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
6599
6600         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
6601
6602 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6603
6604         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
6605         mcs51 port
6606
6607 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6608
6609         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
6610
6611 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6612
6613         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
6614         cases use more compact code.
6615
6616 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
6617
6618         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
6619
6620 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6621
6622         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
6623
6624 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6625
6626         * src/SDCCsymt.h,
6627         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
6628         parameter of changePointer() from symbol* to sym_link*
6629         * src/SDCCast.c (decorateType): call changePointer() for CAST op
6630         * src/SDCCsymt.c (compareType): void* type is castable to other
6631         pointers, but not necesarily an exact match.
6632         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
6633         is no longer blindly treated as an exact match.
6634         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
6635
6636 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
6637
6638         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
6639
6640 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
6641
6642         * src/pic/gen.c,
6643         * src/pic/pcode.c,
6644         * src/pic/ralloc.h,
6645         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
6646
6647 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
6648
6649         * src/pic/device.c,
6650         * src/pic/device.h,
6651         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
6652
6653 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6654
6655         * src/mcs51/gen.c (emitcode): fixed bug #992819
6656
6657 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
6658
6659         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
6660           there's no need to make it worse
6661
6662 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6663
6664         * src/mcs51/ralloc.c (deassignLR),
6665         * src/ds390/ralloc.c (deassignLR),
6666         * src/hc08/ralloc.c (deassignLR),
6667         * src/z80/ralloc.c (deassignLR),
6668         * src/pic/ralloc.c (deassignLR),
6669         * src/pic16/ralloc.c (deassignLR),
6670         * src/avr/ralloc.c (deassignLR),
6671         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
6672         rlivePoint): fixed another part of bug #971834
6673
6674 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6675
6676         * src/z80/main.c: enabled "critical" keyword
6677         * src/z80/mappings.i,
6678         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
6679         functions (fixes bug #979646)
6680         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
6681
6682 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6683
6684         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
6685           such as c:\mydir.
6686
6687 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
6688
6689         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
6690           doesn't disable too much optimizations
6691
6692 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6693
6694         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
6695
6696 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
6697
6698         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
6699
6700 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6701
6702         * src/pic/gen.c tidied up tabs
6703         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
6704         * src/pic/main.c tidied up tabs
6705         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
6706         * src/pic/pcoderegs.c tidied up tabs
6707         * src/pic/ralloc.c tidied up tabs
6708
6709 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
6710
6711         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
6712         to S_FIXED for pic16 port and when symbol is not in level 0,
6713         allocate for S_REGISTER storage class and pic16 port, too,
6714         * src/pic16/device.h: prototype for checkSym,
6715         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
6716         * (pic16_assignConfigWordValue): test the value and the mask to
6717         validate that the value is suitable for the configuration word,
6718         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
6719         collect extern declared symbols, don't emit symbol twice, check
6720         first if symbol is in publics set first,
6721         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
6722         * added command line '--fstack' which enables an experimental
6723         feature for stack access, too buggy to be used yet...
6724         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
6725         * (pic16_allocDirReg): when register has storage class S_REGISTER
6726         allocate in pic16_dynAccessRegs,
6727         * device/include/pic16/pic18f????.h: modified configuration word
6728         naming convention, words started as CONFIG0H but should be CONFIG1H
6729
6730 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6731
6732         * device/include/mcs51reg.h: fixed bug 970993
6733
6734 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
6735
6736         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
6737         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
6738         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
6739         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
6740         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
6741         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
6742           error/warning numbers,
6743           added function setWarningDisabled()
6744         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
6745         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
6746           _memcmp.c _memmove.c calloc.c realloc.c free.c
6747         * support/regression/tests/malloc.c: added tests for new functionality
6748         * support/regression/tests/zeropad.c: added tests for truncated initializers
6749           and initialized char arrays starting with '\x0'
6750         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
6751
6752 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
6753
6754         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
6755
6756 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6757
6758         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
6759         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
6760         peephole 177.e. Thanks to anonymous
6761
6762 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
6763
6764         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
6765         function isn't used in the source but referenced as a
6766         variable initializer then declare it as extern in .asm file
6767
6768 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
6769
6770         * .version: increased version number to 2.4.3
6771
6772         Adding version extension according to ChangeLog CVS revision
6773         * src/Makefile.in (target all): added dependency 'version.h'
6774         * (rule version.h): added rule to create version.h from ChangeLog,
6775         * (rule dep): added dependency version.h,
6776         * src/version.awk: AWK script to create version.h
6777         * src/SDCCdwarf2.c (dwWriteModule),
6778         * src/SDCCglue.c (initialComments),
6779         * src/SDCCmain.c (printVersionInfo): modified to write after
6780         version string the version extension number,
6781         * src/SDCCutil.c: included "version.h"
6782         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
6783         number,
6784         * src/SDCCutil.h: added prototype for getBuildNumber
6785
6786         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
6787         includeDirsSet, too,
6788         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
6789         const char [] is found in function prototype...
6790
6791         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
6792         moving to WREG with source is already in WREG,
6793         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
6794         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
6795         * (aopForSym): stack'ed symbols are partially supported, added
6796         if-clause to support symbols in FARSPACE,
6797         * (sameRegs): added test for AOP_ACC to see if registers are same,
6798         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
6799         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
6800         * (pic16_popRegFromString): will not allocate a new register if it
6801         doesn't find one by name, bug may have introduced...
6802         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
6803         * (genIpush): revived to use pic16 port's stack,
6804         * (genAddrOf): added incomplete case for stack'ed operand,
6805         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
6806         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
6807         can handle multibyte operands,
6808         * src/pic16/glue.c (pic16_printIval*): some debug info added,
6809         * (pic16initialComments): added message for MPLAB compatibility
6810         mode enabled,
6811         * src/pic16/main.h: prototype for pic16_mplab_comp,
6812         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
6813         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
6814         * (_pic16_linkEdit): NEW, handles link stage, transferred here
6815         because of increased complexity of procedure,
6816         * (_process_pragma): stack pragma changed to format 'stack pos len',
6817         emit symbol '_stack_end' to conform with gplink,
6818         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
6819         to search for register,
6820         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
6821         PO_GPR_REGISTER,
6822         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
6823         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
6824         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6825         case for PO_GPR_REGISTER,
6826         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
6827         dies, the new era is ahead !...
6828         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
6829         pic16_dynInternalRegs,
6830         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
6831         * (pic16_allocDirReg): minor optimizations and bug fixes,
6832         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
6833
6834         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
6835         load stack and frame pointer with address of 'stack_end' symbol
6836
6837 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
6838
6839         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
6840         without source code but only variable initializers
6841
6842 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
6843
6844         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
6845         external are not declared as extern to reduce overhead while linking
6846
6847 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
6848
6849         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
6850
6851 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
6852
6853         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
6854           Yee Keat for the patch
6855         * src/SDCCast.c (decorateType): fixed bug #979599
6856         * src/ds390/gen.h: removed local fReturnSizeDS390
6857         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
6858         * src/ds390/gen.c (genAnd, genOr, genXor),
6859         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
6860
6861 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
6862
6863         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
6864         add relFilesSet to $3, manipulate $2 to handle linking of object
6865         files without source files in command line,
6866         * device/include/pic16 (all headers): added ID location macros,
6867         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
6868         entries for ID location bytes,
6869         * (pic16_assignIdByteValue): NEW,
6870         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
6871         added field dumpcalltree to pic16_options_t,
6872         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
6873         is used instead of pic16_Gstack_base_addr, check if (ifx) before
6874         emitting rFalseIfx label after check_carry label,
6875         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
6876         pic16_emitDIRegs), NEW
6877         * (pic16glue): dump .calltree file when option --calltree found,
6878         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
6879         * (_pic16_genAssemblerPreamble): emit ID locations after
6880         configuration registers,
6881         * (pic16_linkCmd): modifications of the link command,
6882         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
6883         * (pic16_pCodeInitRegisters): don't init stack registers,
6884         * (pic16_findPrevInstruction): fixed bug,
6885         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
6886         bug with immediate registers,
6887         * (buildCallTree): traces stack push and pop,
6888         * (pct2): dump also stack usage for each function,
6889         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
6890         * (pic16_allocDirReg): various modifications,
6891         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
6892         fixed to 1,
6893
6894 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
6895
6896         * src/pic16/pcode.c: removed buggy double colon
6897
6898 2004-07-01 Borut Razem <borut.razem AT siol.net>
6899
6900         * support/scripts/sdcc.nsi: added include/pic16 to setup
6901
6902 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
6903
6904         * device/lib/Makefile.in: fixed bug in target objects-pic16,
6905         * device/lib/pic16/Makefile: prefixed with dash (-) command under
6906         target 'clean',
6907         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
6908         specific command line arguments. Also added sample lkr script
6909         for placing a variable at a specific memory bank.
6910         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
6911         at a specific memory bank,
6912         * (pic16_dump_isection): fixed bug which caused string literals to
6913         be omitted when dumping idata section,
6914         * (pic16_groupRegistersInSection): added code to handle registers
6915         in specific memory banks,
6916         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
6917         public, all references are renamed too,
6918         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
6919         AOP_DPTR2,
6920         * (pic16_storeForReturn): added case to handle when dest is WREG,
6921         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
6922         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
6923         pic16_rel_udata, check to see if that register is marked as being
6924         a member of a specific memory bank,
6925         * (pic16_printIvalCharPtr): added code to add string literals either
6926         to code or the idata sections,
6927         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
6928         also accept the 'udata' pragma,
6929         * src/pic16/main.h: new structure types sectName and sectSym
6930         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
6931         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
6932         * (pic16_findPrevInstruction): fixed, it returned nothing,
6933         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
6934         instruction combinations,
6935         * (pic16_FixRegisterBanking): heavily reorganised,
6936         * (pic16_AnalyzeBanking): if generating banksel directives is
6937         disabled, then don't call FixRegisterBanking at all,
6938         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
6939         completely removed,
6940         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
6941
6942 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
6943
6944         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
6945         Phuah Yee Keat <yk.phuah AT nestac.com>
6946
6947 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6948
6949         * src/pic16/glue.c (pic16createInterruptVect): function now emits
6950         correctly the IVT even if it is relocated to some other location
6951
6952 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6953
6954         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
6955         * device/include/pic16/pic18f2220.h: NEW,
6956         * device/lib/pic16/libdev/pic18f2220.c: NEW,
6957         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
6958         * src/pic16/device.c (struct Pics16): added info for 18f2220,
6959         * src/pic16/device.h (struct pic16_options): added ivt_loc and
6960         nodefaultlibs, ivt_loc is the location of the interrupt vector
6961         table, and nodefaultlibs signs that default libraries should not be
6962         linked in link stage,
6963         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
6964         according to --ivt-loc argument,
6965         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
6966         when pragma stack is found,
6967
6968 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6969
6970         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
6971         256 (range check), 257 (do while), 258.a-f (bit banging
6972         f.e. on 3-wire SPI bus)
6973
6974 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6975
6976         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
6977         variables used exclusively within a loop
6978
6979 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
6980
6981         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
6982
6983 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6984
6985         * src/SDCClrange.c (computeClash): fixed bug #971834
6986
6987 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6988
6989         * src/mcs51/gen.c (genCmp): fixed bug #975903
6990         * src/hc08/gen.c (operandsEqu),
6991         * src/ds390/gen.c (operandsEqu),
6992         * src/z80/gen.c (operandsEqu),
6993         * src/pic/gen.c (operandsEqu),
6994         * src/pic16/gen.c (operandsEqu),
6995         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
6996         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
6997
6998 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6999
7000         * src/SDCCcse.c (cseBBlock): fixed bug #966963
7001
7002 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
7003
7004         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
7005         default case in switch statement,
7006         * glue.c (pic16_initPointer): expr is initialised via decoarteType
7007         to eliminate problem with initialisation of pointers, but problem
7008         still exists,
7009         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
7010         * (emitStaticSegment): removed various lines emitting debug info,
7011         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
7012         added processor registers for utilizing EEPROM,
7013         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
7014         configurable and set 8
7015
7016 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
7017
7018         * .version: increased version number to 2.4.2,
7019
7020         Cumulative patch for pic16 port
7021         * src/pic16/device.c: changed scheme to dump initial values for
7022         variables in idata segment, all print_idata* functions were removed,
7023         now the pic16_printIval* will be called,
7024         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
7025         * _pic16_printPointerType, pic16_printPointerType,
7026         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
7027         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
7028         NEW, similar to the respective functions in SDCCglue.c,
7029         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
7030         way, emitting hex bytes,
7031         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
7032
7033 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7034
7035         * src/avr/ralloc.c (serialRegAssign),
7036         * src/xa51/ralloc.c (serialRegAssign),
7037         * src/pic/ralloc.c (serialRegAssign),
7038         * src/pic16/ralloc.c (serialRegAssign),
7039         * src/hc08/ralloc.c (serialRegAssign),
7040         * src/z80/ralloc.c (serialRegAssign),
7041         * src/ds390/ralloc.c (serialRegAssign),
7042         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
7043
7044 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7045
7046         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
7047         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
7048
7049 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
7050
7051         Cumulative patch for pic16 port:
7052         * src/pic16/device.h (typedef PIC16_device) modified fields for
7053         defining microcontrollers,
7054         * src/pic16/device.c: added new info for all devices in Pics16 array,
7055         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
7056         to be optimised out by the pCode optimiser,
7057         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
7058         specially, bug reported by G.M. Gallant,
7059         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
7060         as force'd so that cannot be optimised out by pCode optimiser,
7061         * src/pic16/pcode.c,
7062         * src/pic16/pcodepeeph.c,
7063         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
7064         they are disabled by default, but can be enabled explicit with
7065         command argument --denable-peeps, for testing,
7066         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
7067         --pomit-ivt in COMPILE_FLAGS
7068
7069 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7070
7071         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
7072           compilation on MSVC
7073
7074 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7075
7076         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
7077
7078 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7079
7080         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
7081         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
7082
7083 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
7084
7085         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
7086         would only assign 0x300001 register.
7087
7088 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
7089
7090         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
7091         in COMPILE_FLAGS. Thanks to G. Gallant for report.
7092
7093 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7094
7095         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
7096         for ds80c400
7097         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
7098         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
7099         added peephole 254 (left shift), 255 (jump table)
7100
7101 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
7102
7103         * device/lib/Makefile.in: removed comment line with model-pic16,
7104         * (target port-specific-objects-pic16): the libraries and objects
7105         are copied to the build directory form the device/lib/pic16/bin
7106         directory
7107
7108         Cumulative patch concerning pic16 port:
7109         * library directory has been re-organized,
7110         * added support for PIC18F1220,
7111         * added headers and library sources for chips 18f1220,18f6520,
7112         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
7113
7114         * configuration registers setting has changed, now each supported
7115         device has a complete description of the registers it uses,
7116         * all initialisations are moved to idata sections, these section
7117         can be absolute or relocatable,
7118         * fixed initialisation of codespace variables,
7119         * fixed warning about PCLATU and gpsim,
7120         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
7121         * (genAssign): use table reads when assigning from variables in codespace,
7122         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
7123         char/int variables placed in codespace,
7124         * (pic16_emitConfigRegs): NEW, emits a list with configuration
7125         registers set in .asm file, no need for --pomit-config-words anymore,
7126         * (pic16glue): some 8051 legacy segments are commented out
7127         (to be removed completely),
7128         * added support for alternative assembler and linker with --asm=
7129         and --link= command line arguments,
7130         * peepholes are disabled automatically in the port, no need to
7131         specify on command line,
7132         * port supports natively char/int/long multiplication, but converts
7133         all divisions to support functions,
7134         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
7135         to the file set in variable $2,
7136         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
7137         strings in ASCII format and not in hex,
7138         * ralloc.c (serialRegAssign): added a triplet of conditional calls
7139         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
7140         allocate proper register if iCodes aren't temporary,
7141
7142 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
7143
7144         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
7145
7146 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
7147
7148         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
7149         is commented out
7150
7151 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7152
7153         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
7154         computed address is reused
7155         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
7156         multi-byte bitfields
7157
7158 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7159
7160         * src/z80/gen.c: (genArrayInit): must check for pointers too
7161
7162 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7163
7164         * support/regression/tests/zeropad.c: never meant to commit the
7165           nestedstruct test: removed, added check for GCC version
7166
7167 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
7168
7169         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
7170         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
7171         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
7172           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
7173           bugs 928906 and 954082 half-empty initializers
7174         * src/SDCCsymt.h,
7175         * src/SDCCsymt.c (getAllocSize): added for above fix
7176         * src/z80/gen.c (genArrayInit): fixed bug 741044
7177         * support/regression/tests/zeropad.c: added tests
7178
7179 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
7180
7181         * src/pic16/device.c (pic16_dump_section): corrected bug which
7182         caused some symbols of the libraries to be misplaced
7183
7184 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7185
7186         * src/pic16/glue.c,
7187         * src/pic16/ralloc.h,
7188         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
7189         to fix conflict with pic port
7190
7191 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7192
7193         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
7194         externs configuration variables,
7195         * src/pic16/ralloc.h,
7196         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
7197         prototype in header, commented out some debug messages
7198
7199 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
7200
7201         * src/pic16/glue.c,
7202         * src/pic16/main.c,
7203         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
7204         for gpasm COFF object generation. Thanks to D. Hawkins for
7205         his patch info
7206
7207 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7208
7209         * src/ds390/main.c,
7210         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
7211         Brock for spotting this)
7212         * src/ds390/gen.c (genEndFunction),
7213         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
7214         interrupt handler and critical. Disable push/pop optimizations when
7215         peephole optimizations disabled.
7216
7217 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7218
7219         Updated pic16 library sources and headers.
7220         * device/lib/pic16/pic18f*/ ,
7221         * device/include/pic16/*.h: modified to handle structured SFR
7222         definitions
7223
7224 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7225
7226         * src/port.h (PORT structure): added hook initPaths, now each
7227         port can declare its own default search paths,
7228         which can been seen with the --print-search-dirs option,
7229         see pic16 port for example,
7230         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
7231         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
7232         * (doPrintSearchDirs): NEW, replaces in a central manner the
7233         printing of search dirs which was split in set*Paths functions,
7234         * (main): added call to port->initPaths and doPrintSearchDirs,
7235         * src/avr/main.c,
7236         * src/ds390/main.c,
7237         * src/hc08/main.c,
7238         * src/izt/i186.c,
7239         * src/izt/tlcs900h.c,
7240         * src/mcs51/main.c,
7241         * src/pic/main.c,
7242         * src/pic16/main.c: modified port structures to reflect addition of
7243         initPaths hook,
7244
7245         * src/pic16/device.c (regCompare): registers are finally sorted by name,
7246         * (pic16_dump_section): for registers in same address reserve memory once,
7247         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
7248         to no_banksel,
7249         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
7250         result is greater in size than right or left,
7251         * (pic16_genUMult8X8_8): there are some cases where the result can
7252         be 16 bits size, so handle these,
7253         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
7254         * (pic16_outBitC): modified to emit pcodes,
7255         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
7256         or not,
7257         * (genDivOneByte): implemented algorithm to divide 8-bits,
7258         * (genCmp): uncommented goto, but issues still exist,
7259         * (genAnd): fixed a bug with variables >8bits,
7260         * (genPackBits): optimization added that uses BCF/BSF to change a
7261         single bit,
7262         * (genAssign): fixed bug when assigning floating point literals,
7263         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
7264         __sdcc_gsinit_startup label,
7265         * src/pic16/main.c (_pic16_init): removed search directory
7266         initialisations,
7267         * (_pic16_initPaths): NEW, used to initialise search directories,
7268         * (_hasNativeMulFor): support functions for all except char/int
7269         multiplication, and char division,
7270         * (PIC16_port struct): modified entry for native mul support,
7271         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
7272         no_banksel option,
7273         * (buildCallTree): call to register_usage is ifdef'ed out,
7274
7275 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7276
7277         * device/include/string.h: applied Stas Sergeev's patch to make this
7278         header file compatible with the preprocessor -Wundef option
7279         * src/SDCCmain.c (main): abort compilation if preprocessor reports
7280         failure (fixes bug #941458)
7281
7282 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7283
7284         * src/SDCCopt.c (killDeadCode): fixed bug #907733
7285         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
7286         that the variable, not the function, should be static
7287         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
7288         to be consistent with non-literal case
7289
7290 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7291
7292         * src/SDCCast.c (isConformingBody): fixed bug #949967
7293         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
7294         convilong): fixed bug #952086
7295
7296 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7297
7298         * src/SDCCmem.c (allocVariables): fixed bug #955321
7299
7300 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7301
7302         * src/hc08/main.c (_hc08_genAssemblerEnd),
7303         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
7304         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
7305         completely eliminated the use of a temporary file
7306         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
7307         when more than one file linked
7308         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
7309
7310 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7311
7312         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
7313         which fixes bug #543481
7314         * support/regression/tests/bug-751703.c: fixed comments left from a
7315         cut and paste error
7316         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
7317         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
7318         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
7319         scopes
7320         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
7321         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
7322         are now changed to underscores in moduleName
7323
7324 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7325
7326         * as/mcs51/lkmem.c: better fix for bug #954173
7327
7328 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
7329         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7330
7331         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
7332         * device/include/c8051f000.h,
7333         * device/include/c8051f120.h,
7334         * device/include/c8051f300.h,
7335         * device/include/c8051f310.h,
7336         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
7337         PWM16) and detab'ed
7338
7339 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7340
7341         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
7342         and mailing lists, doc'ed --no-peep-comments, removed reference
7343         to knoppix (newest version has no LyX/LaTeX), other minor changes
7344         * src/SDCCglue.c (glue): save 2 bytes stack space with
7345         option --main-return. The ljmp could probably be avoided too
7346
7347 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7348
7349         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
7350
7351 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7352
7353         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
7354         * src/SDCCopt.c (isLocalWithoutDef),
7355         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
7356         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
7357         (credit to Maarten Brock for patch #949363, on which this is based)
7358         * support/regression/tests/bug-751703.c: some test cases of extern used
7359         within inner scopes.
7360
7361 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7362
7363         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
7364         SPEC_STRUCT
7365         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
7366         struct definitions
7367         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
7368         dwWriteLabel): fix to create valid debugger symbols even when
7369         the module name has non-alphanumeric symbols in it
7370         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
7371         when a variable's allocation has been optimized away
7372
7373
7374 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7375
7376         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
7377         * src/hc08/main.c,
7378         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
7379         * src/mcs51/main.c,
7380         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
7381         * src/ds390/main.c,
7382         * src/z80/gen.c (z80_emitDebuggerSymbol),
7383         * src/z80/main.c,
7384         * src/pic/gen.c (pic14_emitDebuggerSymbol),
7385         * src/pic/main.c,
7386         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
7387         * src/pic16/main.c,
7388         * src/avr/gen.c (avr_emitDebuggerSymbol),
7389         * src/avr/main.c,
7390         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
7391         * src/xa51/main.c,
7392         * src/SDCCdebug.c (emitDebuggerSymbol),
7393         * src/SDCCdebug.h,
7394         * src/port.h: added a debugger struct to the port struct. Added a
7395         callback for defining debugger symbols
7396
7397         * src/SDCCast.c (createLabel),
7398         * src/SDCC.y (labeled_statement): mark all compiler generated labels
7399         with isitmp = 1
7400         * src/SDCCicode.h,
7401         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
7402         iCode back to the ast for the function
7403
7404         * src/hc08/ralloc.c (hc08_assignRegisters),
7405         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
7406         unneeded fields from the regs struct.
7407         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
7408         pushReg() & pullReg() functions instead of emitcode()
7409
7410         * src/hc08/gen.c (genLabel, genhc08Code),
7411         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
7412
7413         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
7414         debugger hooks
7415
7416         * src/hc08/gen.c (genEndFunction, genhc08Code),
7417         * src/hc08/gen.h,
7418         * src/mcs51/gen.c (genEndFunction, gen51Code),
7419         * src/mcs51/gen.h,
7420         * src/ds390/gen.c (genEndFunction, gen390Code),
7421         * src/ds390/gen.h,
7422         * src/z80/gen.c (genEndFunction, genZ80Code),
7423         * src/z80/gen.h,
7424         * src/z80/z80.h,
7425         * src/pic/gen.c (genEndFunction, genpic14Code),
7426         * src/pic/gen.h,
7427         * src/pic16/gen.c (genEndFunction, genpic16Code),
7428         * src/pic16/gen.h,
7429         * src/avr/gen.c (genEndFunction, genAVRCode),
7430         * src/avr/gen.h,
7431         * src/xa51/gen.c (genEndFunction, genXA51Code),
7432         * src/xa51/gen.h,
7433         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
7434         specific code to cdbFile.c and out of the backend code generators
7435
7436         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
7437         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
7438         starting address is now 0
7439
7440         * as/hc08/asm.h,
7441         * as/hc08/m08pst.c,
7442         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
7443         assembler directive for DWARF support
7444         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
7445
7446         * src/src.dsp,
7447         * src/Makefile.in,
7448         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
7449
7450 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7451
7452         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
7453         and inappropriate peephole optimization in jump tables
7454
7455 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7456
7457         * as/hc08/m08pst.c,
7458         * src/SDCCglue.c: sdccopt works for the hc08 port now
7459
7460 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
7461
7462         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
7463
7464 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7465
7466         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
7467
7468 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7469
7470         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
7471         rules
7472         * src/SDCCmain.c,
7473         * src/SDCCglobl.h,
7474         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
7475         comments from the peephole optimizer replacement rules
7476         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
7477         symbols
7478         * src/SDCCcse.c (updateSpillLocation),
7479         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
7480         equivalents
7481         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
7482         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
7483         objects far pointers
7484
7485 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7486
7487         * src/SDCCsymt.h: a missing part of my last change
7488         * src/pic/ralloc.c (regTypeNum),
7489         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
7490
7491 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7492
7493         * src/SDCCicode.h,
7494         * src/SDCCicode.c (aggrToPtrDclType),
7495         * src/SDCCptropt.h,
7496         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
7497         ptrPseudoSymConvert),
7498         * src/pic/ralloc.c (regTypeNum),
7499         * src/pic16/ralloc.c (regTypeNum),
7500         * src/hc08/ralloc.c (regTypeNum),
7501         * src/ds390/ralloc.c (regTypeNum),
7502         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
7503         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
7504
7505 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7506
7507         * link/z80/lkmain.c (afile),
7508         * as/hc08/lkmain.c (afile),
7509         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
7510         prevent a pointer problem when a filename has no directory and
7511         no extension specified.
7512
7513 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7514
7515         * link/z80/lkmain.c (afile): allow periods in directory names
7516         * link/z80/lkmain.c (afile),
7517         * as/mcs51/lkmain.c (afile),
7518         * as/hc08/lkmain.c (afile): allow linker script file to have an
7519         extension other than ".lnk"
7520         * link/z80/lklex.c (getfid),
7521         * link/z80/lkmain.c (parse),
7522         * as/mcs51/lklex.c (getfid),
7523         * as/mcs51/lkmain.c (parse),
7524         * as/hc08/lklex.c (getfid),
7525         * as/hc08/lkmain.c (parse): Support comments in the linker script
7526         file on lines by themselves and after filenames
7527
7528 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7529
7530         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
7531
7532 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7533
7534         * src/z80/peeph-z80.def: removed some peephole rules that don't
7535         work with multibyte arithmetic (fixed bug #937126)
7536         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
7537         to registers and not global variables
7538         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
7539         geniCodePreInc, geniCodePostDec, geniCodePreDec,
7540         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
7541         checking for assignments not internally generated (fixed bug #931895)
7542         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
7543         structure member (fixed bug #930072)
7544
7545 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7546
7547         * src/SDCCmain.c (linkEdit),
7548         * src/hc08/main.c (_hc08_parseOptions),
7549         * as/hc08/Makefile.in,
7550         * as/hc08/aslink.h,
7551         * as/hc08/asm.h,
7552         * as/hc08/m08pst.c,
7553         * as/hc08/lkrloc.c (relr, rele),
7554         * as/hc08/lkarea.c (lnkarea)
7555         * as/hc08/lkmain.c (afile, parse),
7556         * as/hc08/lkelf.c: support for ELF output
7557         * as/hc08/lks19.c (s19),
7558         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
7559
7560 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7561
7562         * as/mcs51/lkihx.c: Fixed bug #899105.
7563
7564 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7565
7566         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
7567         .dsp files from Unix to DOS.
7568
7569 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7570
7571         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
7572         function pointers; we have been compliant for several months now.
7573         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
7574         change that was accidently commented out
7575         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
7576         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
7577         bug #922319
7578
7579 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7580
7581         * src/hc08/gen.c: output of all of the internal debugging information
7582         is now controlled by the D() macro; it is disabled by default
7583
7584 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7585
7586         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
7587         harder to keep the same registers during a CAST iCode
7588         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
7589         long via int can be done in a single cast, if the signedness is
7590         correct.
7591         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
7592         putchar() in tinibios.c in ds390's library
7593
7594 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
7595
7596         * src/SDCCast.c (decorateType): fixed bug #898889,
7597         cast result of a literal complement too
7598         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
7599         fixed check for bitfields
7600
7601 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
7602
7603         * src/SDCCicode.c (geniCodeLogic): made it static,
7604         (geniCodeLogicAndOr): added in order to fix bug #905492,
7605         (ast2iCode): fixed bug #905492
7606         * support/regression/tests/bug-905492.c: added
7607         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
7608         (processParms): fixed bug #927659: don't copy parms, this will clear
7609         decorated flag
7610         * support/regression/tests/bug-927659.c: added
7611
7612 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
7613
7614         * src/SDCCast.c (addCast): don't cast float to char
7615         * device/lib/libsdcc.lib: added _memmove
7616
7617 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
7618
7619         * device/lib/large/Makefile: fixed parallel execution by
7620         replacing `make` by `$(MAKE)`
7621
7622 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7623
7624         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
7625         offsets (fixes bug #923936)
7626
7627 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
7628
7629         * device/lib/small/Makefile: fixed parallel execution by
7630         replacing `make` by `$(MAKE)`
7631
7632 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7633
7634         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
7635
7636 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
7637
7638         * src/pic/gen.c (genCpl): multi-byte complements were not working.
7639         * src/regression/Makefile: Regression test was not running.
7640
7641 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7642
7643         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
7644         complement if possible
7645         * src/SDCCval.c (valComplement),
7646         * src/SDCCicode.c (operandOperation): fixed complement of literal
7647         * support/regression/tests/onebyte.c (testComplement): added
7648
7649 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
7650
7651         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
7652         return an optimized tree; actually replace actParm with the new tree
7653         * src/SDCCast.h: added some parantheses to remove side effects
7654         * support/regression/tests/bug-920866.c
7655
7656 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
7657         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
7658         Bit operands were not being handled properly in the pic14 port.
7659         (now src/regression/add.c passes again).
7660
7661 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7662
7663         * src/SDCC.y (labeled_statement): case and default no longer require
7664         a following statement (RFE #893037)
7665
7666 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7667
7668         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
7669         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
7670         disabled (fixes bug #916294)
7671         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
7672         "mov a,acc"; patch provided by Lenny Story
7673         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
7674
7675 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7676
7677         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
7678         functions
7679         * src/ds390/gen.c (genFunction, genEndFunction),
7680         * src/ds390/ralloc.c (ds390_assignRegisters),
7681         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
7682         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
7683         pushed if there are parameters passed on the stack. Also, a cleaner
7684         way to decide if r0/r1 should be pushed/popped. (Together they fix
7685         bug #918693)
7686
7687 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7688
7689         * doc/sdccman.lyx,
7690         * device/lib/mcs51/crtpagesfr.asm,
7691         * device/lib/mcs51/crtxinit.asm,
7692         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
7693         to avoid confusion with Si Lab's SFRPAGE register.
7694
7695 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7696
7697         * src/SDCCglue.c (emitMaps): allow public sfr variables
7698         * src/SDCCglue.c (initialComments): include compiler build date
7699         with compiler version and put the timestamp of the generated
7700         assembly file on a serperate line to be less confusing.
7701         * src/port.h: added genInitStartup hook
7702         * src/avr/main.c,
7703         * src/ds390/main.c,
7704         * src/hc08/main.c,
7705         * src/pic/main.c,
7706         * src/pic16/main.c,
7707         * src/xa51/main.c,
7708         * src/z80/main.c: genInitStartup initialize as NULL (default to
7709         historical behaviour)
7710         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
7711         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
7712         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
7713         library instead of hard coding it into the compiler.
7714         * support/regression/ports/mcs51-stack-auto/spec.mk,
7715         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
7716         * device/lib/mcs51/Makefile,
7717         * device/lib/small/Makefile,
7718         * device/lib/large/Makefile,
7719         * device/lib/mcs51/crtpagesfr.asm,
7720         * device/lib/mcs51/crtstart.asm,
7721         * device/lib/mcs51/crtxclear.asm,
7722         * device/lib/mcs51/crtxinit.asm,
7723         * device/lib/mcs51/crtclear.asm,
7724         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
7725         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
7726         and into user configurable files.
7727         * device/lib/clean.mk: clean mcs51 directory too
7728         * support/regression/tests/longlit.c: added static to T1 declaration
7729         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
7730         accesses in the initialization code
7731
7732 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7733
7734         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
7735         OSCTRIMVAL as noted in bug #916008
7736
7737 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7738
7739         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
7740         in loops with multiple exits (reported as incorrect registers
7741         used by Martin Helmling in Sdcc-user list)
7742
7743 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7744
7745         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
7746         made ds390 register extensions look less like error messages
7747
7748 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7749
7750         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
7751         reported by Adam Wozniak in Sdcc-user list
7752
7753 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
7754
7755         * src/SDCCast.c (decorateType): fixed with bug and promotion in
7756         arithmetic optimizations, added debug output
7757
7758 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
7759
7760         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
7761         * sdcc.spec: updated and split sdcc into 3 rpms
7762         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
7763         needed for literals of LEFT_OP and '+'
7764         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
7765         introduced RESULT_TYPE_NOPROM
7766         (geniCodeMultiply): fixed logic for decision if mul is optimized to
7767         left shift
7768         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
7769         limited promotion to int only for '*'
7770         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
7771
7772 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
7773
7774         * src/pic16/gen.c (genSkip),
7775         (genc16bit2lit), (gencjneshort): commented out
7776         (is_LitOp): new helper function, checks operand type
7777         (genCmpEq): rewritten
7778
7779 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
7780
7781         * support/regression/tests/bug-908454.c: added
7782
7783 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
7784
7785         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
7786         * src/SDCCicode.c (usualBinaryConversions): op needs int type
7787         (geniCodeCast): cosmetic, don't preserve bit storage class
7788         (geniCodeLeftShift): added promotion
7789         (geniCodeLogic): fixed regression
7790         * src/SDCCsymt.c (computeTypeOr): accept bits too
7791         (compareType): 2nd part of fix for bug #908454, needed for bitfields
7792
7793 2004-03-07  Borut Razem <borut.razem AT siol.net>
7794
7795         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
7796
7797 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
7798
7799         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
7800         version of pic16_genPackRegisters which does not check if ic is a
7801         CAST operator,
7802         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
7803         function cause string1.c regression test fails
7804
7805 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
7806
7807         * sim/ucsim/configure.in,
7808         * sim/ucsim/configure,
7809         * sim/ucsim/doc/Makefile.in: use docdir
7810         * src/SDCC.y: fixed sbit atrributes
7811         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
7812         * src/SDCCast.c (decorateType): |^& need special promotion handling
7813         * src/SDCCast.h,
7814         * src/SDCCsymt.h: moved definition of RESULT_TYPE
7815         * src/SDCCsymt.h (computeType),
7816         * src/SDCCicode.c: computeType() needs op
7817         * src/SDCCsymt.c (checkTypeSanity),
7818         * doc/sddman.lyx: "plain" bitfields are unsigned
7819         * src/SDCCsymt.c (computeTypeOr): added
7820         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
7821         |^& ops
7822         * src/SDCCval.c (val*): computeType() needs op
7823         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
7824         * support/regression/tests/onebyte.c: added tests for |^&
7825
7826 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
7827
7828         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
7829         for writing icode into asm output.
7830
7831 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
7832
7833         * src/pic16/device.c: added some debug lines enabled
7834         with macro DEBUG_CHECK,
7835         * src/pic16/genarith.c: more debug in genPlus,
7836         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
7837         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
7838         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
7839         * (aopForSym): onStack symbols are re-placed in data memspace,
7840         and onStack flag is cleared,
7841         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
7842         copy temporary pcodeop,
7843         * (genPcall): added warning for not updating PCLATU,
7844         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
7845         always true for pic16 port,
7846         * (genMultOneWord): NEW, supports integer multiplication,
7847         * (genMult): modified to call genMultOneWord,
7848         * (ifxForOp): added warning when return NULL,
7849         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
7850         flag is set before call to operandFromSymbol for implicit
7851         added structures,
7852         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
7853         options.intlong_rent are set by default,
7854         * (_hasNativeMulFor): modified to allow port generation of integer
7855         multiplication,
7856         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
7857         set regtype to REG_SFR for all registers, restricting seting the
7858         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
7859
7860 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7861
7862         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
7863         more than 500 times in the regression tests
7864
7865 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7866
7867         * support/Util/SDCCerr.h,
7868         * support/Util/SDCCerr.c,
7869         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7870         enumerator_list),
7871         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
7872         for symbol conflicts.
7873         * support/valdiags/tests/enum.c,
7874         * support/valdiags/tests/tentdecl.c,
7875         * support/valdiags/tests/struct.c: expect possible error messages
7876         referring to original symbol definitions.
7877         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
7878         * src/SDCCsymt.h,
7879         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
7880
7881 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
7882
7883         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
7884
7885 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
7886
7887         * src/pic16/ralloc.c (newReg): fixed bug #908929
7888
7889 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7890
7891         * src/ds390/gen.c: added missing #include "main.h"
7892
7893 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
7894
7895         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
7896         checking if symbol is already in set,
7897         * src/pic16/device.h: prototype for checkAddSym,
7898         * src/pic16/gen.c: (_G): added entry interruptvector,
7899         * (assignResultValue): removed some commented out lines,
7900         * (genFunction): check for ISR via sym->type, absolute section for
7901         interrupt code is created via a new pBlock, the goto instruction is
7902         placed now correctly at the interrupt vector position, changed all
7903         references from ivec to _G.interruptvector,
7904         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
7905         is the interrupt is a high priority one, same for return from ISR,
7906         * src/pic16/glue.c: changed all calls of addSetHead for publics and
7907         externs to calls of checkAddSym,
7908         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
7909         pic16_pcode_verbose flag is set,
7910         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
7911         * src/pic16/pcoderegs.c: message about how many registers are saved
7912         will only be emitted if pic16_pcode_verbose flag is set,
7913
7914 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7915
7916         * src/ds390/ralloc.h,
7917         * src/ds390/ralloc.c (ds390_regWithIdx),
7918         * src/ds390/gen.c (emitcode),
7919         * src/ds390/main.h,
7920         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
7921         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7922         ds390operandCompare, getRegsRead, getRegsWritten,
7923         initializeAsmLineNode): customized instruction size calculation for
7924         ds390, started basis for some register optimizations
7925         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
7926         corresponding assembly output
7927         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
7928         missing push/pop of r0/r1. Optimized push/pops
7929
7930 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7931
7932         * src/mcs51/main.c (instructionSize): fixed ACALL size
7933         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
7934
7935 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
7936
7937         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
7938         the sorting of rlist with NULL elements
7939         * (print_idataType, print_idata): NEW to create idata sections
7940         * src/pic16/device.h: idataSymSet new variable
7941         * src/pic16/gen.c (genFunction): fixed some bugs in string
7942         comparing, improved the absolute section creation for ISRs,
7943         added FSR0L/FSR0H in registers that are saved in an ISR,
7944         * (genInline): fixed the processing of inline snippets,
7945         now they undergo no process by the peephole optimizer
7946         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
7947         are placed in idataSymSet,
7948         * (pic16emitStaticSeg): extern symbols are added in externs,
7949         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
7950         switching when aboslute variables are placed in access bank memory
7951         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
7952         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
7953         commented out with #if,
7954         * (pic16_packRegisters): reintroduce the check for CAST because some
7955         symbols are not correctly handled,
7956         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
7957         pCodeInstruction instead of pCode,
7958         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
7959         pCodeAsmDir definition,
7960         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
7961         directive, then the argument directive is emitted without the leading
7962         tab, hack for inline labels which must be in the first column,
7963         * (compareLabel,pic16_findNextInstruction),
7964         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
7965         * (insertBankSwitch): modified for the new pCodeAsmDir,
7966
7967 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7968         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
7969
7970         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
7971         instance,
7972         * (pushSide): commented out with #if,
7973         * (assignResultValue): fixed some typos in saving
7974         registers,
7975         * (genPcall): FIXED and sync'ed with genCall,
7976         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
7977         * (genNearPointerGet): fixed to handle some more cases,
7978         implementation scheme via table reads,
7979         * (genConstPointerGet): modified to access code memory correct,
7980         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
7981         and improved to handle some cases
7982         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
7983         instead of "RETLW" for init data
7984         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
7985         not IN_DIRSPACE, work around to reduce bank switching when aboslute
7986         variables are placed in access bank memory (<0x80 and >=0xf80),
7987         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
7988         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
7989         TBLWT_POSTDEC,TBLWT_PREINC
7990         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
7991         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
7992         directives
7993         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
7994         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
7995         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
7996         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
7997
7998 2004-02-29  Borut Razem <borut.razem AT siol.net>
7999
8000         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
8001         support/Util/findme.h, support/Util/system.h: enhance binary relative
8002         search for lib and include by using findProgramPath()
8003
8004 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8005
8006         * src/SDCCpeeph.h,
8007         * src/SDCCpeeph.c (pcDistance),
8008         * src/port.h,
8009         * src/mcs51/ralloc.h,
8010         * src/mcs51/ralloc.c (mcs51_regWithIdx),
8011         * src/mcs51/main.h,
8012         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
8013         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
8014         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
8015         size calculation port specific, started basis for some register
8016         optimizations
8017         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
8018         missing push/pop of r0/r1. Optimized push/pops
8019         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
8020         * device/lib/_modsint.c (_modsint),
8021         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
8022         and stack version so regression tests pass
8023
8024 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
8025
8026         * src/Makefile.in (dep): include SLIBOBJS in dependency check
8027         * src/SDCCast.c (decorateType): catch another small optimization
8028         with '?' operator
8029         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
8030         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
8031         modified to finally use computeType() all over SDCC,
8032         see Feature Request #877103
8033         * src/SDCCval.h: cosmetic
8034         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
8035         valCompare(); regression tested in muldiv.c
8036         * support/regression/tests/muldiv.c (testMod): mod sign follows
8037         dividend only
8038
8039 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
8040
8041         * src/SDCCast.c (decorateType): fixed bug #902362
8042         * doc/INSTALL.txt: fixed install instructions for win32
8043
8044 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
8045
8046         * device/include/Makefile.in (install): fixed by replacing spaces
8047         by tabs
8048         * doc/README.txt,
8049         * doc/INSTALL.txt: updated for release
8050         * doc/sdccman.lyx: added warning for --xstack being buggy
8051
8052 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
8053
8054         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
8055         to eliminate build warnings.
8056         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
8057
8058 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
8059            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8060
8061         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
8062         removed -penable-stack, added comment for stack pragma, added
8063         warning for not initializing the stack/frame registers, removed
8064         comment at interrupts section
8065
8066         Stack is made permanent, there is no ability to disable stack usage.
8067         * src/pic16/device.h,
8068         * src/pic16/device.c: removed all references to USE_STACK macro,
8069         * src/pic16/device.c (pic16_dump_section): when no elements in
8070         rlist, free rlist before return,
8071         * (pic16_dump_int_registers): NEW, internal registers are a new set
8072         of general purpose registers reused by each function,
8073         * (checkAddReg): returns 1 if registers is added to set,
8074         * (pic16_groupRegistersInSection): when a registers is of type
8075         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
8076         * src/pic16/device.h: memRange and Assigned Memory are deleted,
8077         SRCASECMP macro is moved here from device.c
8078         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
8079         PO_PCLATU, PO_PRODL, PO_PRODH,
8080         * (pic16_pCodeOpType, genMinus,
8081         changed compares to "a" register, with AOP_ACC,
8082         * (pic16_genPlus): fixed some bugs and indented properly,
8083         * (pic16_addSign): changed size to size+offset in the MOVWF
8084         instruction,
8085         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
8086         multiply 8-bit operand by literal, result is 8-bit,
8087         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
8088         multiply 2 8-bit operand, result is 8-bit,
8089         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
8090         genUMult8X*_16,
8091         * src/pic16/gen.c: changed accUse to contain WREG only,
8092         * (pic16_emitcomment): renamed to pic16_emitpcomment,
8093         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
8094         true, do not use immediate addressing any more unless sym is a
8095         pointer in codespace,
8096         * (aopForRemat): do not use immediate addressing when symbol not in
8097         codespace and when symbol's address is requested,
8098         * (aopOp): for-loop in if(sym->accUse) is modified for the new
8099         accUse size (= 1),
8100         * (aopGet): added case for AOP_ACC and don't return "accumulator
8101         bug" but WREG instead,
8102         * (popGetTempReg): pushes contents of temporary register in stack,
8103         * (popReleaseTempReg): pops contents of temporary register from
8104         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
8105         * (pic16_popGet): separated case AOP_ACC to return register WREG
8106         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
8107         or PO_IMMEDIATE and initializes their instance/offset appropriately,
8108         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
8109         the use of immediate pointers to certain cases only.
8110
8111         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
8112         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
8113         * (assignResultValue, genCall, genRet): modified to use the new
8114         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
8115         genPcall is still broken,
8116         * (genFunction): added code to create 'A' type pBlocks when
8117         interrupt functions are generated, code not extensively tested yet,
8118         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
8119         * (genEndFunction): modified so ISRs pop stored registers from stack,
8120         * (genMultOneByte): cleanup,
8121         * (AccRsh): added flag andmask, to and result with appropriate mask,
8122         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
8123         * (genDataPointerGet): fixed and reenabled its use,
8124         * (genNearDataPointerGet): bugs fixed,
8125         * (genDataPointerSet): bugs fixed,
8126         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
8127         pic16_DumpSymbol, pic16_DumpOp,
8128         * src/pic16/genutils.h: function prototypes for the above functions,
8129         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
8130         pointers,
8131         * (pic16emitRegularMap): many many many improvements, but needs a
8132         major cleanup,
8133         * src/pic16/main.c: enable_stack in pic16_options is removed,
8134         * (_pic16_parseOptions): removed command line options -penable-stack,
8135         * (_process_pragma): emit stack symbol only when stack pragma is
8136         processed,
8137         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
8138         redirected to FSR0L/FSR0H pair,
8139         * (pic16_get_op, pic16_get_op2): modifications and improvements,
8140         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8141         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
8142         for immediates,
8143         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
8144         * (dumpPicOptype): NEW,
8145         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
8146         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
8147         with movff instruction,
8148         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
8149         added pic16_int_regs, some packRegsFor* functions are commented out,
8150         because produce errors,
8151         * src/pic16/NOTES: minor modifications
8152
8153 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8154
8155         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
8156         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
8157         --pack-iram.
8158         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
8159         * as/mcs51/lkaomf51.c: fixed bug #895763
8160
8161 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
8162
8163         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
8164
8165 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8166
8167         * doc/sdccman.lyx: added details about the HC08 storage classes and
8168         interrupts, fixed the register usage info for z80 & gbz80
8169
8170 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
8171
8172         * doc/sdccman.lyx: added more pic16 port documentation
8173         * device/include/pic16/: added header pic18fregs.h
8174
8175 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
8176
8177         * doc/sdccman.lyx: added Vangelis' contribution
8178
8179 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8180
8181         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
8182         extend to the next CALL or PCALL, not just to the next CALL.
8183
8184 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
8185
8186         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
8187
8188 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8189
8190         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
8191         bug #895752 and a better fix for bug #716790
8192
8193 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8194
8195         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
8196
8197 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8198
8199         * doc/sdccman.lyx: minor changes, minor changed
8200
8201 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
8202
8203         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
8204         which can't handle SDCC_NEWONEBYTEOPS,
8205         (geniCodeMultiply): removed conversion from mult to shift for pic14
8206         and pic16
8207
8208 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8209
8210         * src/hc08/gen.h,
8211         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
8212         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
8213         thus fixing bug #895406
8214
8215 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
8216
8217         * device/lib/_modsint.c,
8218         * device/lib/_modslong.c: sign follows divisor only
8219         * src/hc08/gen.c (genMultOneByte): if result size is 1,
8220         signs or signedness can be ignored
8221         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
8222         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
8223         added optimization for IFX,
8224         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
8225         arguments;
8226         reenabled optimization for IFX, which was removed on 2004-01-11
8227         * src/SDCCast.h: added return type IFX
8228         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
8229         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
8230         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
8231         SDCC_OLDONEBYTEOPS selects the old behaviour
8232         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
8233         changed again and commented promotion rule
8234         * src/SDCCval.c (valDiv): promotion no longer necessary
8235         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
8236         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
8237         rewritten
8238         * support/regression/tests/onebyte.c: added
8239
8240 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
8241
8242         * gen.c (genInline): reverted to old code for assemnling inline
8243         code because of bug reported James Chadd
8244
8245 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
8246
8247         * ralloc.h: missing declarations from previous patch,
8248         seems that patch for ralloc.h was never applied, fixed
8249
8250 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8251            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
8252
8253         * pcode.c,
8254         * pcode.h,
8255         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
8256         indirect addressing. Marked FSR0 as deprecated
8257         * gen.c (pointerCode): commented out, not needed now
8258         (pic16_popGet2p): new MOVFF helper function
8259         (genGenPointerGet),
8260         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
8261         (shiftRLong): removed duplicate debugging info
8262
8263 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8264
8265         * src/ds390/gen.c (genNearPointerGet),
8266         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
8267         optimization with bits, but not bitfields.
8268         * src/ds390/ralloc.c (packRegisters),
8269         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
8270
8271 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
8272
8273         * src/SDCCcse.c (algebraicOpts): copy operands before modification
8274
8275 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8276
8277         * src/SDCCsymt.h,
8278         * src/SDCCicode.c (operandFromSymbol),
8279         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
8280         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
8281         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
8282         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
8283         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
8284         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
8285         bug #892038
8286         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
8287         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
8288         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
8289         * src/SDCCsymt.c (newSymbol),
8290         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
8291         enumerator_list),
8292         * src/SDCCval.h,
8293         * src/SDCCval.c (newiList): fixed bug #885705
8294
8295 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8296
8297         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
8298         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
8299
8300 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8301
8302         * device/include/c8051f120.h,
8303         * device/include/c8051f300.h,
8304         * device/include/c8051f310.h: added/updated header files for Silicon
8305         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8306         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
8307         in new section Submitting patches
8308
8309 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8310
8311         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
8312         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8313         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8314         genGenPointerSet),
8315         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
8316         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8317         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8318         genGenPointerSet),
8319         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
8320         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8321         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8322         genGenPointerSet),
8323         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
8324         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8325         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8326         genGenPointerSet): fixed bug #892400
8327         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
8328         to eliminate build warnings.
8329         * src/SDCCast.c (processParms),
8330         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
8331         fixed bug 751859
8332         * support/valdiag/valdiag.py: added GCC to the list of defines active
8333         when compiling with gcc
8334
8335 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8336
8337         * support/Util/SDCCerr.h,
8338         * support/Util/SDCCerr.c,
8339         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
8340         with an incomplete type (fixed bug #883734)
8341         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
8342
8343 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8344
8345         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
8346
8347 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8348
8349         * src/SDCCast.c (decorateType),
8350         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
8351         function pointer implementation
8352         * support/regression/tests/funptrs.c: added tests to verify both forms
8353         of function pointers work correctly. Added tests to verify parameters
8354         are passed in the correct order.
8355
8356 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
8357
8358         * device.c (regCompare): registers are sorted by ascending
8359         address and increasing size,
8360         * main.c (_pic16_finaliseOptions): removed the declaration
8361         of compiler macro MCU. Now a macro of the format pic18fxxxx
8362         will be defined from the command line
8363
8364 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8365             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
8366
8367         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
8368         PCOP_RLCF was overwritten!
8369         * gen.c (genSkip): commented out calls to pic16_emitcode,
8370         * (genCmpEQ): fixed "long" compares, only high word did get compared,
8371         * (genlshTwo),
8372         * (genRRC): added debugging info,
8373         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
8374         overwritten while shifting,
8375         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
8376         overwritten while shifting,
8377         * (AccLsh),
8378         * (AccRsh),
8379         * (shiftLLeftOrResult),
8380         * (shiftRLeftOrResult),
8381         * (shiftRLong),
8382         * (shiftLLong): Implemented with pic16_emitpcode
8383         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
8384         * (genLeftShift): Fixed bug, operand for shift by variable always
8385         was "and"ed with 0x0f,
8386         * (genLeftShiftLiteral),
8387         * (genrshTwo),
8388         * (genRightShiftLiteral): added debugging info,
8389         * (genrshFour): added comment,
8390         * (genRightShift): determined signedness from operand "left"
8391         instead of "result"
8392
8393 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8394
8395         * src/SDCCicode.c (geniCodeParms),
8396         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
8397         function pointers, fixed function pointer bugs #861242 and #861896
8398
8399 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8400
8401         * device/include/c8051f000.h,
8402         * device/include/c8051f120.h,
8403         * device/include/c8051f300.h: added header files for Silicon
8404         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8405
8406 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
8407
8408         * src/SDCCast.c (processParams): added new type flow and restructured
8409         (gatherAutoInit): added new type flow
8410         (addCast): cosmetic changes
8411         (getLeftResultType): added new type flow for array indices, patch
8412         provided by Stas, see FR #877103
8413         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
8414         array index patch by Stas
8415         * src/SDCCast.h: added prototype getResultTypeFromType()
8416         * src/SDCCval.h,
8417         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
8418         * src/pic/glue.c (pic14emitStaticSeg),
8419         * src/pic16/glue.c (pic16emitStaticSeg),
8420         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
8421         for initialization of symbols
8422         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
8423         * support/Util/SDCCerr.h:
8424         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
8425         * .version: bumped version number to 2.3.8
8426         * device/include/Makefile.in (install),
8427         * doc/Makefile (install): changed to 'rm `find ...`' construct to
8428         avoid warnings
8429
8430 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
8431
8432         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
8433         Slade Rich fixed an optimization bug
8434         * src/pic/pcodepeep.c,
8435         * src/pic/pcoderegs.c
8436         * doc/Makefile (install): added test for directory
8437
8438 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8439
8440         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
8441         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
8442         * src/pic/ralloc.c (getRegPtr, getRegGpr),
8443         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
8444         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
8445         * as/mcs51/asexpr.c (term),
8446         * as/hc08/asexpr.c (term): fixed bug #887146
8447
8448 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8449
8450         * src/z80/gen.c (genMult): handle single byte result product
8451         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
8452         DUMMY_READ_VOLATILE (fixed bug #886367)
8453
8454 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8455
8456         * support/regression/tests/libmullong.c: fixed logic, on little endian
8457         hosts we ended without a mullong_wrapper()
8458
8459 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8460
8461         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
8462         virus/worm forged address usage.
8463
8464 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8465
8466         Fixed promotion, it should be done on AST level:
8467         * src/SDCCast.c (addCast): added promotion to int
8468         (decorateType): updated call to upCast()
8469         * src/SDCCicode.c (geniCodeLeftShift): removed call to
8470         usualUnaryConversions()
8471
8472 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
8473
8474         * support/regression/tests/literalop.c (mulWrapper): Added a
8475         wrapper to remove integer overflow warnings.
8476
8477         * support/regression/tests/float_trans.c: Made work on host.
8478
8479         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
8480         location of sz80.
8481
8482         * support/regression/generate-cases.py (main): Changed from inline
8483         to a main method.
8484
8485         * doc/Makefile (install): Changed to depth first to get rid of
8486         missing directory install warning.
8487
8488         * as/Makefile (install-doc): Made work on Mac.
8489
8490 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
8491
8492         * src/SDCCast.c: added an additional type flow in decorateType() of
8493         opposite direction, see feature request #860006; it's enabled at runtime
8494         by setting the environment variable SDCC_NEWTYPEFLOW
8495         * src/SDCCast.h: changed prototype of decorateType()
8496         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
8497         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
8498         'char' to 'int' can be omitted, if both operands are 'unsigned char';
8499         see feature request #877103
8500         * src/SDCCval.c: updated call of decorateType()
8501         (valBitwise): fixed bug #882876
8502         (valMinus): added promotion
8503         (valLogicAndOr): result is unsigned
8504         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
8505         * src/SDCCsymt.c (computeType),
8506         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
8507         must not cause an unsigned operation
8508         * src/pic/glue (pic14emitRegularMap),
8509         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
8510
8511 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
8512
8513         * src/pic/pcode.c (PCodeID): commented out left over debug code
8514
8515 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
8516
8517         * support/valdiag/tests/overflow.c: added shift tests
8518         * src/pic/device.c,
8519         * src/pic/gen.c,
8520         * src/pic/gen.h,
8521         * src/pic/glue.c,
8522         * src/pic/main.c,
8523         * src/pic/pcode.c,
8524         * src/pic/pcode.h,
8525         * src/pic/pcodepeep.c,
8526         * src/pic/pcoderegs.c,
8527         * src/pic/ralloc.c,
8528         * src/pic/ralloc.h: applied patch from Slade Rich;
8529         added support for multiple code pages and multiple RAM banks on the
8530         PIC 14 port. The ASM files now no longer simply assume all the
8531         code / RAM are in the same page / bank. This means the linker can
8532         safely allocate code/RAM of separate ASM files to different pages/banks.
8533         * doc/sdccman.lyx: added Slade's tips
8534         * src/mcs51/peeph.def: fixed bug #880768
8535
8536 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8537
8538         * src/hc08/ralloc.c (rematStr): fixed bug #879282
8539         * src/SDCCast.c (decorateType): fixed bug #880197
8540
8541 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
8542
8543         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
8544         getopt.h.
8545
8546         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
8547         strtof is not part of C89 and isn't included with Mac OS X.
8548
8549 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8550
8551         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
8552         shiftL2Left2Result): fixed bug #879326
8553         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
8554         (genMultOneByte): fixed bug in signed vs unsigned multiplication
8555         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
8556         address fetch for clr instruction
8557         * device/lib/hc08/_mulint.c: created optimized assembly version
8558         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
8559
8560 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
8561
8562         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
8563         proposed in FR #877103
8564
8565 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
8566
8567         * src/SDCCval.c (cheapestVal): added missing checks
8568         * src/SDCCicode.c (usualBinaryConversions): fixed condition
8569         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
8570
8571 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
8572
8573         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
8574         equal operands
8575
8576 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
8577
8578         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
8579         loaded with the linker search paths (-L arguments) and the libraries
8580         to be linked with the current source (-l arguments). Changes
8581         currently will affect only the pic16 port.
8582         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
8583         include path the port specific paths and port specific libraries,
8584         * gplink command now contains the $3 argument,
8585         * src/pic16/device.h,
8586         * src/pic16/device.c,: structure PIC_device is made public and
8587         renamed to PIC16_device, the same for variable Pics which is renamed
8588         to Pics16. Updated all references to them.
8589         * src/pic16/glue.c (pic16glue): corrected bug with code
8590         initialization which bypassed the variable initializations block.
8591
8592         * device/lib/pic16/Makefile.rules: removed --penable-stack from
8593         COMPILE_FLAGS and added the --nostdinc option
8594
8595 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8596
8597         * device/include/mc68hc908jb8.h: Register defs for another member
8598         of the hc08 family. Contributed by Bjorn Bringert - thanks!
8599
8600 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
8601
8602         Documenting changes from previous commits.
8603         * configure.in (version 1.56),
8604         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
8605         when generating output files to configure the pic16 library,
8606         but now I've commented it out, since gputils aren't installed in the
8607         SF compile farm, so library won't compile
8608
8609         * device/lib/Makefile.in (version 1.56): initially I've added in
8610         target 'all' the prerequestive 'model-pic16' so it compiled the
8611         pic16 library, but now I've commented it out for the same reasons
8612         above,
8613         * added targets 'model-pic16' and 'objects-pic16' to compile the
8614         library
8615         * added target 'port-specific-objects-pic16' to handle the
8616         generated libraries and copy them into the build/ directory
8617         * added target 'clean-intermediate-pic16' to clean intermediate
8618         files into pic16 directory
8619         * in target 'installdirs' added line to create directory pic16 in
8620         the installation path
8621
8622         * device/include/Makefile.in (version 1.11): in target 'install'
8623         added lines to copy all header files to installation path,
8624         * in target 'installdirs' added line create directory for pic16
8625         headers in the installation path
8626
8627 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
8628
8629         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
8630          a function call
8631
8632 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
8633
8634         * configure,
8635         * device/lib/configure.in,
8636         * device/lib/configure: fixed for autoconf 2.57
8637
8638 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8639
8640         * src/z80/main.c (_parseOptions): fixed the portmode= command line
8641         option so that it actually works. Made it specific to the z80, since
8642         the gbz80 doesn't have these kinds of I/O ports.
8643
8644 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8645
8646         * device/include/z180.h,
8647         * device/lib/_memcpy.c,
8648         * device/lib/_memmove.c,
8649         * device/lib/_mulint.c,
8650         * device/lib/ser_ir.c,
8651         * device/lib/ser_ir_cts_rts.c,
8652         * device/lib/_strcmp.c,
8653         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
8654         * src/z80/main.c (_process_pragma): add support for pragmas bank and
8655         portmode; added deprecation warning for bank= and protmode= forms.
8656         Also, guard against buffer overflow.
8657         * src/z80/gen.c (aopGet): generate better code for sfr banked read
8658
8659 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8660
8661         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
8662         changed interrupt vector table generation to only emit declared vectors.
8663         * device/include/Makefile.in: added missing backslash
8664         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
8665
8666 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8667
8668         Mainly changes to support compilation of the device libraries
8669         * src/pic16/device.c: stack is allocated via symbol and not
8670         via literal number. The symbol is placed in the corresponding
8671         position of the data ram
8672         * (pic16_dump_section): relocatable and absolute uninitialized
8673         data are now emitted in sorted order to reduce section naming,
8674         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
8675         weren't marked as being in the access bank,
8676
8677 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8678
8679         Added portion of GNU PIC Library under the directory
8680         device/include/pic16 and device/lib/pic16. These files
8681         contain the declarations of SFRs for the PIC18Fxx2 devices.
8682         The directory is initialized via configure from toplevel.
8683
8684 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
8685
8686         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
8687         the spilllocations to be compared correctly
8688
8689 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8690
8691         * src/SDCCast.c (decorateType): fixed bug introduced today
8692
8693 2004-01-12  Borut Razem <borut.razem AT siol.net>
8694
8695         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
8696         doc/sdccman.lyx: upper case pragmas are deprecated
8697
8698 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8699
8700         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
8701         in simpler and even better code
8702
8703 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
8704
8705         * src/SDCCicode.c (operandOperation): fixed bug #874819
8706         * src/SDCCast.c (decorateType): fixed
8707         char foo (unsigned long ul) { return ul > 0; }
8708
8709 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8710
8711         * doc/sdccman.lyx: Moved and added some sections, small changes
8712         all over. Telling LaTeX to be less strict with word spacing
8713         to better keep the right margin. Changed some notes about
8714         maintainance of the ports in section 3.2.1 - is it OK like this?
8715
8716 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8717
8718         SDCC source changes:
8719         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
8720         convilong): modified to inform the pic16 port that builtin functions
8721         are external
8722
8723         PIC16 PORT specific changes:
8724         * src/pic16/device.c pic16_dump_equates() added,
8725         processor registers declared internally by the port are emitted in
8726         the translation as equates,
8727         * src/pic16/gen.c: inline code is passed unprocessed to the
8728         translation,
8729         * (pic16_popGetLit2): fnuction modified to take second operand as
8730         pCodeOp pointer and not as literal,
8731         * (popRegFromIdx): prefixed with pic16_,
8732         * (pic16_popCombine2): modified to receive already allocated pCode
8733         operands,
8734         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
8735         * (genFunction): initializes local stack frame and pushes on stack
8736         all the registers used by this function,
8737         * (genEndFunction): restores all registers from stack and restores
8738         stack frame,
8739         * src/pic16/glue.c (pic16emitRegularMap): various changes and
8740         improvements,
8741         * (pic16glue): changed the program startup sequence,
8742         * added new dbName code 'A' for functions placed in absolute section
8743         * src/pic16/main.c: added function attribute _naked,
8744         * added pragma 'code' to place a fnuction at an absolute address,
8745         * added command line arguments --debug-ralloc and --pcode-verbose,
8746         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
8747         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
8748         * (pic16_newpCodeOpLit2): modified to take the second operand as
8749         pCodeOp pointer,
8750         * (pic16_printpBlock): modified to emit each function in a separate
8751         section,
8752         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
8753         UPPER for immediate operands,
8754         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
8755         instruction,
8756         * src/pic16/peeph.def: all peepholes with movff are commented out,
8757         because there is a problem in the pcode peep optimizer,
8758         * src/pic16/ralloc.c: the register allocator can now reuse local
8759         function symbols for another function. This saves register usage.
8760         * src/pic16/ralloc.h: added flag isLocal in structure regs,
8761
8762         Added file src/pic16/NOTES with information about program writing on
8763         the current port version.
8764
8765 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8766
8767         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
8768         and peephole 252 (array access)
8769
8770 2004-01-09  Borut Razem <borut.razem AT siol.net>
8771
8772         * src/SDCCmain.c : fixed #872250: -l command line defined library
8773           files are scanned before standard library files
8774
8775 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8776
8777         * src/SDCCast.c (decorateType): fixed bug #874046
8778
8779 2004-01-09  Borut Razem <borut.razem AT siol.net>
8780
8781         * support/scripts/sdcc.nsi: remove previous installation
8782
8783 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8784
8785         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
8786         bytes for last interrupt vector (mcs51)
8787         * sdcc.spec: fixed typo
8788
8789 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8790
8791         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
8792         gen51Code): more efficient parameter receive for --model-large
8793         ("bug" #845294)
8794
8795 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8796
8797         * src/ds390/main.c,
8798         * src/z80/main.c: added missed needLinkerScript flags (more than
8799         one port structure defined in these file)
8800         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
8801         bug #795325
8802
8803 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
8804
8805         * src/SDCCmain.c: removed various references to DEFAULT_PORT
8806         * src/port.h: added flag needLinkerScript in port->linker
8807         structure to inform whether to create a .lnk file or not,
8808         * src/avr/main.c,
8809         * src/ds390/main.c,
8810         * src/hc08/main.c,
8811         * src/mcs51/main.c,
8812         * src/pic/main.c,
8813         * src/pic16/main.c,
8814         * src/xa51/main.c,
8815         * src/z80/main.c: changed appropriately to configure
8816         needLinkerScript flag
8817         * src/pic/gen.c,
8818         * src/pic16/gen.c (genAddrOf): fixed bug #863624
8819         * src/pic/glue.c: added variable udata_section_name to
8820         override default uninitialized data segment definition for
8821         devices only with SHAREBANK memory (reported from Erik Epetrich)
8822         * (pic14emitOverlay): modified to emit a commented overlay segment
8823         directive when no overlay data exist
8824         * (picglue): modified to emit uninitialized data segment
8825         according to udata_section_name
8826         * src/pic/main.c (_pic14_parseOptions): added command line
8827         options --udata-section-name=[name] to override default
8828         udata definition name
8829         * modified _linkCmd and _asmCmd to include compiler passed
8830         arguments via -W option
8831         * src/pic16/main.c: added $l in _asmCmd, changed extension for
8832         object file from '.rel' to '.o' in port->linker structure,
8833         changed size of fptr from 2 to 3 in port structure
8834
8835 2004-01-07  Borut Razem <borut.razem AT siol.net>
8836
8837         * support/scripts/sdcc.nsi: update PATH
8838         * support/scripts/sdcc.ico: craeted
8839
8840 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
8841
8842         * device/include/Makefile.in: fix install
8843         * doc/Makefile: fix install
8844
8845 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8846
8847         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
8848         in bug #860505
8849         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
8850         how the function variable allocation summary is displayed; also
8851         include information about variables allocated to the overlay
8852         segment
8853
8854 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8855
8856         * as/mcs51/lkmain.c: Help about -Y option
8857         * as/mcs51/lkarea.c: Fixed gcc warnings
8858
8859 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8860
8861         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
8862         fixed warning
8863         * support/valdiag/tests/overflow.c: added
8864         * src/SDCCast.c (decorateType),
8865         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
8866         LEFT_OP (left shift)
8867
8868 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8869
8870         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
8871         (default behaviour).
8872
8873 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8874
8875         A python script to validate compiler diagnostic messages. It can be
8876         used to verify that sdcc complains about bad c source code and
8877         gives a good location of the error.
8878         * support/valdiag/Makefile,
8879         * support/valdiag/valdiag.py,
8880         * support/valdiag/tests/*
8881
8882 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8883
8884         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
8885         * src/SDCCsymt.c (newEnumType),
8886         * src/SDCCsymt.h
8887         * support/Util/SDCCerr.c,
8888         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
8889         enum related bugs.
8890         * support/regression/tests/enum.c: added test for enum values that
8891         require at least 2 bytes of storage.
8892
8893 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8894
8895         * src/common.h: added ifndef/define/endif macros
8896         around the header file.
8897         Bug reported from Jesus Calvino-Fraga
8898
8899 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8900
8901         * sdcc.spec: updated
8902         * device/include/Makefile.in: don't install CVS directories
8903         * device/lib/Makefile.in: added removal of CVS directories after install
8904         * doc/Makefile: fixed install, added local_icons
8905         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
8906         * src/mcs51/gen.c (genRightShift): fixed bug #870788
8907         * src/ds390/gen.c (genRightShift): fixed bug #870788
8908         * src/SDCCast.c (decorateType): fixed bug #870781
8909
8910 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8911
8912         PIC16 port related changes:
8913         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
8914         added variable stackPos,
8915
8916         * gen.c: genCall, assignResultValue: added support for
8917         pushing/retrieving function parameters to/from stack,
8918         genFunction,genEndFunction: setup stack frame for the
8919         generated function,
8920         genAddrOf: will be changed according to bug 863624
8921
8922         * added files genutils.c and genutils.h which contain gen*
8923         debugged and optimised functions extracted from gen.c
8924
8925         * glue.c: added variable 'externs' which holds extern symbols,
8926         pic16emitRegularMap: is modified to properly handle relocatable
8927          symbols under the new scheme,
8928         pic16createInterruptVect: is modified
8929         pic16printPublics: is modified to emit 'global' assembler directives,
8930         added pic16_printExterns to print extern symbols,
8931         pic16glue: initializes stack/frame pointer in the beginning of
8932         the assembly output. Temporary hack, will be corrected later,
8933         because gplink yet does not support stack and SDCC does not
8934         yet support a type of crt0.o object to create the final binary.
8935
8936         * Removed many lines that contain 8051 legacy code.
8937         * The code is finally placed under a 'code' directive.
8938         * Added port specific options.
8939
8940         * _process_pragma: simplified since now we do not need *special*
8941         include file to define SFR registers. But a separate header
8942         will be needed. This will be developed later.
8943         * _pic16_parseOptions: added, parses port specific options:
8944         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
8945         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
8946         --preplace-udata-with=
8947
8948         * _pic16_setDefaultOptions: modified to initialize section names,
8949         but hack is temporarly out of order since it needs improvement.
8950         * _pic16_genAssemblerPreamble: configuration words are emitted by
8951         their address instead of their name. This part is incomplete and
8952         supports only the 18Fxx2 devices. Other devices will emit an error
8953         during assembly since they do not contain the same set of config
8954         registers
8955         * _pic16_genIVT: is modified,
8956
8957         * pcode.c: added definitions for some hardware registers that are needed
8958         for stack support
8959         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
8960         All PCI entries are updated. Now LFSR is supported.
8961         * Removed pic16_pciTRIS is mentioned by mdubuc in source
8962         * added pic16_newpCodeOpLit2 to support instructions with
8963         two literal arguments
8964         * pic16_pCode2str: corrected code that emits assembler instructions
8965         with two literal operands and those that have an access bit modifier
8966         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
8967         this fixes a bug which caused some labels to be lost, when an
8968         assembler directive was added, i.e. banksel,
8969         * pic16_FixRegisterBanking: improved logic that causes the insertion
8970         of bank switching,
8971         * InlineFunction: functions that are called once, are not any more
8972         inlined. This can be a port option in the future,
8973
8974         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
8975
8976         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
8977         hold the corresponding uninitialized symbols,
8978         * pic16_allocProcessorRegister: registers have explicit marked the
8979         accessBank field,
8980         * pic16_allocInternalRegister: registers are explicit marked as
8981         not used,
8982         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
8983         processing list, so bit registers were lost,
8984         *
8985
8986         * ralloc.h: added field 'accessBank' and original symbol operand
8987         in register definition,
8988         * removed the field isMapped from register definition,
8989
8990         ** Several functions have been removed from various sources:
8991         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
8992         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
8993         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
8994         pic16_assignRelocatableRegisters
8995
8996         ** others have been introduced:
8997         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
8998         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
8999
9000 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
9001
9002         * support/scripts/inc2h.pl: changed definition of BIT_AT
9003         to emit 'sbit at' instead of 'bit at'. This was a request.
9004
9005         PIC16 port related preliminary changes:
9006         * gen.c: prefixed function popRegFromString with
9007         pic16_ and all references to it corrected
9008         * pcode.c: all pic16_pc_* hardware registers prefixed
9009         with underscore (_),
9010         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
9011         * ralloc.c: newReg(): when register is REG_SFR then
9012         set address to rIdx,
9013         pic16_allocProcessorRegister(): marks register wasUsed=0
9014         pic16_writeUsedRegs(): added a call to assign processor
9015         registers via pic16_assignFixedRegisters
9016
9017 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9018
9019         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
9020         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
9021         variables in unused register banks.  Also the SSEG is placed
9022         wherever there is enough space for it, and IDATA can be anywhere
9023         in internal RAM.  For now compile using -Wl-Y[stack_size].
9024         The mem file is different for this option as well, since it
9025         makes no sense of talking about DSEG lenght.
9026
9027 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
9028
9029         * src/SDCClrange.c: fixed bug 869095 that caused segfault
9030         in certain cases, e.g. when ROM assignment, patch provided
9031         from Albert den Haan.
9032
9033 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
9034
9035         Many signedness and type propagation fixes:
9036         * src/SDCCicode.c: made geniCodeCast() static
9037         replaced SPEC_ by IS_ (cosmetic)
9038         (operandOperation): fixed div and mod operation
9039         (usualBinaryConversions): added support for promotion of char
9040         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
9041         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
9042         (geniCodeAdd): an array index will stay unsigned, even if promoted
9043         from char to int
9044         (geniCodeArray): ditto
9045         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
9046         * src/SDCCsymt.c (computeType): added more support for char;
9047         promotion of char is selectable by promoteCharToInt, fixed signedness
9048         for all cases
9049         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9050         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9051         * src/SDCCval (val*): replaced signedness calculation by
9052         computeType()
9053         rearranged if-branches (cosmetic)
9054         (valShift): added warning W_SHIFT_CHANGED
9055         (valCompare): fixed problem with different types
9056         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
9057         * support/regression/tests/literalop.c: added many cases
9058         * support/regression/tests/ast_constant_folding.c: changed finally to
9059         'unsigned int'
9060         * .version: new year, new version: 2.3.7
9061         * src/SDCCmain.c (main): applied patch #866468
9062         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
9063         provided by Scott Bronson
9064         * doc/sdccman.lyx: updated documentation for sdcdb
9065         updated and added chapter tips
9066
9067 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9068
9069         * src/SDCCsymt.h: missing from yesterday's commits
9070
9071 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9072
9073         * src/SDCC.y (struct_or_union_specifier),
9074         * support/Util/SDCCerr.c,
9075         * support/Util/SDCCerr.h: verify that struct & union tags are used
9076         as declared.
9077
9078 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9079
9080         * src/SDCCglobl.h: missing from yesterday's commits
9081
9082 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9083
9084         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
9085         sft_attributes, struct_declaration, parameter_declaration,
9086         type_name, start_block, declaration_list),
9087         * src/SDCC.lex (check_type): support redefinition of typedef names
9088
9089 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9090
9091         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
9092         aligned xdata arrays. Erik helped me with the if clause.
9093
9094 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9095
9096         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
9097         warning
9098
9099 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9100
9101         * src/SDCCast.h,
9102         * src/SDCCast.c (newAst_),
9103         * src/SDCCicode.h,
9104         * src/SDCCicode.c (ast2iCode, newiCode),
9105         * src/SDCCglobl.h,
9106         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
9107         expr, statement, expression_statement, selection_statement,
9108         iteration_statement, expr_opt, jump_statement): foundation for tracking
9109         sequence points
9110         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
9111         point code too)
9112
9113 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9114
9115         * support/Util/SDCCerr.c,
9116         * src/SDCCast.h,
9117         * src/SDCCast.c (createCase, createDefault, decorateType),
9118         * src/SDCClabel.c (labelUnreach),
9119         * src/SDCC.y (labeled_statement, jump_statement): More improvements
9120         to error messages.
9121         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
9122         (with thanks to Stas Sergeev)
9123         * device/include/time.h,
9124         * device/lib/time.c (CheckTime): suppress unreachable code warning
9125
9126 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9127
9128         * src/SDCCast.c (createIvalCharPtr),
9129         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
9130         bug #753752)
9131         * support/regression/tests/nullstring.c: tests for these two bugs
9132
9133 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9134
9135         * support/Util/SDCCerr.h,
9136         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
9137         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
9138         about storage class and 'at' used inside struct or union
9139         * src/SDCCBBlock.c (iCodeFromeBBlock),
9140         * src/SDCCcse.c (ifxOptimize),
9141         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
9142         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
9143         printIval, emitStaticSeg, emitOverlay),
9144         * src/SDCClabel.c (deleteIfx),
9145         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
9146         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
9147         gatherAutoInit, processParms),
9148         * support/Util/SDCCerr.h,
9149         * support/Util/SDCCerr.c (werrorfl): Support for better error location
9150         reporting for post-parse errors.
9151
9152 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9153
9154         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
9155         implicit casts via union; they don't work on big endian systems
9156         (possible fix for bug #861138)
9157
9158 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9159
9160         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
9161         * src/mcs51/main.c: fixed the fix for bug #737001
9162
9163 2003-12-15  Borut Razem <borut.razem AT siol.net>
9164
9165         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
9166
9167 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9168
9169         * support/makebin/makebin.c: put output in binary mode
9170
9171 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9172
9173         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
9174         xdata and data memory on startup. Set the environment variable
9175         SDCC_NOGENRAMCLEAR to disable this.
9176         * src/mcs51/peephole.def,
9177         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
9178         (allows non-interrupt and interrupt code to safely compete for a resource
9179         without the non-interrupt code having to disable interrupts)
9180
9181 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9182
9183         * src/SDCCicode.c (geniCodeAdd),
9184         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
9185         with valFromType if type might be a pointer and host is big endian).
9186         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
9187         types, not just integer types.
9188         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
9189         multiply defined with mismatching "at" address.
9190
9191 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9192
9193         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
9194         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
9195         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
9196         with embedded nulls (fixed bug #753752)
9197
9198 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9199
9200         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
9201         Apparently this did not see much testing (endless loop)
9202
9203 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9204
9205         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
9206
9207 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9208
9209         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
9210         gracefully handle NULL memmap pointers
9211
9212 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9213
9214         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
9215         instead of deleting the iCode when an operand is volatile
9216         * src/z80/gen.c (genDummyRead),
9217         * src/mcs51/gen.c (genDummyRead),
9218         * src/ds390/gen.c (genDummyRead),
9219         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
9220         not just IC_RIGHT
9221         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
9222         * src/SDCC.y: fixed bug #850420
9223
9224 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9225
9226         Applied z80 i/o port patch from Peter Townson and fixed some operators
9227         to better handle operands in A register.
9228         * device/include/z180.h
9229         * src/SDCC.y
9230         * src/SDCCglue.c
9231         * src/z80/gen.c
9232         * src/z80/gen.h
9233         * src/z80/main.c
9234         * src/z80/peeph-z80.def
9235         * src/z80/peeph.def
9236         * src/z80/z80.h
9237
9238 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9239
9240         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
9241
9242 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9243
9244         * device/lib/hc08/_mullong.c: Removed extra #endif
9245
9246 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9247
9248         * sim/ucsim/hc08.src/inst.cc,
9249         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
9250         carries from x to h
9251         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
9252         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
9253         * device/include/stdarg.h: fixed varargs for hc08
9254         * device/lib/Makefile.in,
9255         * device/lib/hc08/Makefile,
9256         * device/lib/hc08/_mulint.c,
9257         * device/lib/hc08/_mullong.c: fixed some endian problems
9258
9259 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9260
9261         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
9262         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
9263         * device/lib/_gptrget.c,
9264         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
9265
9266 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9267
9268         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
9269         * src/SDCCast.c (astErrors): fixed bug #846007
9270         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
9271
9272 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9273
9274         * src/SDCCast.c (decorateType): disabled a transformation I added in
9275         revision 1.188 (access to fields of a structure at an absolute address);
9276         it breaks with bitfields, extern declarations, and gcse analysis.
9277         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
9278         could be assigned through a pointer, so don't complain.
9279         * src/SDCCast.c (astErrors),
9280         * src/SDCCast.h,
9281         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
9282
9283 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
9284
9285         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
9286         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
9287         output of __config directives, since gpasm now supports them
9288         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
9289         pre-processor macro, i.e. -DMCU=p18f452
9290         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
9291         and modified to handle 'cast' icode similarly to '=' icode
9292         * src/pic16/device.h (typedef struct PIC_device): added field
9293         'extMIface' to indicate that chip has external memory interface
9294         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
9295         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
9296         18F8720
9297
9298 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9299
9300         * src/SDCC.y (pointer): fixed bug #846006
9301         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
9302         * src/SDCCast.c (decorateType): fixed bug #846009
9303         * src/ds390/peeph.def,
9304         * src/ds390/gen.c (genAnd, genOr),
9305         * src/mcs51/peeph.def,
9306         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
9307
9308 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9309
9310         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
9311         * src/SDCCdflow.c
9312         * src/SDCCcse.c
9313         * src/SDCCcse.h
9314         * src/SDCCBBlock.h
9315         * src/SDCCBBlock.c
9316
9317 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
9318
9319         fixed bug #845089
9320         * src/SDCCbitv.h,
9321         * src/SDCCbitv.c: added function to free a bitvector
9322         * src/SDCClrange.h,
9323         * src/SDCClrange.c: added function to recompute the liveranges
9324         * src/avr/ralloc.c,
9325         * src/ds390/ralloc.c,
9326         * src/hc08/ralloc.c,
9327         * src/mcs51/ralloc.c,
9328         * src/pic/ralloc.c,
9329         * src/pic16/ralloc.c,
9330         * src/xa51/ralloc.c,
9331         * src/z80/ralloc.c: recompute the liveranges after register packing
9332
9333 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
9334
9335         * src/SDCCloop.c (newInduction): fixed bug #845630
9336
9337 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9338
9339         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
9340         inadvertantly left behind from my 2003-11-12 change
9341
9342 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9343
9344         Updated headers I neglected to commit yesterday.
9345         * src/SDCClrange.h,
9346         * src/SDCCicode.h
9347
9348 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9349
9350         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
9351         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
9352         * src/SDCCopt.c (eBBlockFromiCode),
9353         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
9354         the creation of the key hash table from the sequencing so it can be used
9355         earlier (for some GCSE bug fixes still pending)
9356
9357 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9358
9359         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
9360         * support/regression/tests/addsub.c: testing genPlus shortcut
9361
9362 2003-11-15  Borut Razem <borut.razem AT siol.net>
9363
9364         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
9365
9366 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9367
9368         * src/SDCCcse.c (cseBBlock): fixed bug #527779
9369         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
9370         ordering is immaterial.
9371         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
9372
9373 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9374
9375         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
9376         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
9377         (SIGSEV) of bug #840381
9378         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
9379         unlink new file before rename if new and old filenames are the same)
9380
9381 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9382
9383         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
9384         uninitialized variables) for the mcs51. Set environment variable
9385         SDCC_GENRAMCLEAR to test.
9386         xdata initialization slightly shorter
9387
9388 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9389
9390         * src/SDCCsymt.h,
9391         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
9392         #838241 & 780691 (basicly the same bug)
9393         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
9394         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
9395
9396 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
9397
9398         * src/SDCCmain.c (linkEdit): "fix" #834252
9399
9400 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9401
9402         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
9403         * src/SDCCast.h,
9404         * src/SDCC.y: fixed bug #819403
9405
9406 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9407
9408         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
9409         the reentrant attribute.
9410         * src/hc08/gen.c (genPackBits): added missing stack readjustment
9411         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
9412         simulation
9413         * src/SDCCast.c (decorateType): fixed bug with storage class not being
9414         updated during pointer dereference; f.e. ~(((char *)1)*) was being
9415         erroneously reduced to a literal.
9416         * src/hc08/ralloc.c (packRegisters, rematStr),
9417         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
9418         some cases
9419
9420 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9421
9422         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
9423         * doc/sdccman.lyx: changed from 'article' to 'book'
9424         * doc/Makefile: readded test_suite_spec and cdbfileformat
9425
9426 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
9427
9428         * device/include/stdlib.h: include malloc.h to comply with ANSI
9429         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
9430
9431 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9432
9433         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
9434         * doc/clean.mk: also remove *.out files
9435         * doc/sdccman.lyx: some additions, larger top/bottom margins
9436
9437 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9438
9439         * src/SDCC.y: fixed bug #837365
9440         * support/regression/tests/bitopcse.c
9441         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
9442         a symbol (might be valop instead)
9443         * device/lib/Makefile.in: added errno.c to HC08SOURCES
9444         * device/lib/clean.mk: added hc08 to the cleaning list
9445
9446 2003-11-04  Borut Razem <borut.razem AT siol.net>
9447
9448         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
9449           made 2003-11-04
9450         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9451           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
9452           malloc is declared in standard stdlib.h
9453
9454 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9455
9456         * device/lib/hc08/Makefile: need to clean .rel not .o files
9457         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
9458
9459 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9460
9461         * src/port.h,
9462         * src/hc08/main.c,
9463         * src/mcs51/main.c,
9464         * src/ds390/main.c,
9465         * src/z80/main.c,
9466         * src/avr/main.c,
9467         * src/pic/main.c,
9468         * src/pic16/main.c,
9469         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
9470         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
9471         tests (which uses the port's oclsExpense function)
9472         * src/SDCC.y,
9473         * src/SDCCast.c,
9474         * src/SDCCicode.c,
9475         * src/hc08/gen.c,
9476         * src/ds390/gen.c,
9477         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
9478
9479 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9480
9481         * src/SDCCcse.c (ifxOptimize),
9482         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
9483         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
9484         deleting the IFX iCode.
9485         * src/hc08/ralloc.c: reduced unneeded slocs
9486         * src/hc08/gen.c: fixed bug in asmopToBoolean
9487
9488 2003-11-04  Borut Razem <borut.razem AT siol.net>
9489
9490         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
9491           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9492           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
9493           transferred to configure
9494
9495 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
9496
9497         Use headers defined in the C[++] standards:
9498         * sim/ucsim/gui.src/serio.src/fileio.cc
9499         * sim/ucsim/gui.src/serio.src/frontend.cc
9500         * sim/ucsim/gui.src/serio.src/main.cc
9501         * sim/ucsim/gui.src/serio.src/posix_signal.cc
9502         * support/Util/NewAlloc.c
9503         * as/hc08/lklibr.c
9504         * as/mcs51/lklibr.c
9505         * as/z80/aslist.c
9506         * as/z80/assym.c
9507
9508 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9509
9510         * Added MSVC projects for hc08 assembler and linker:
9511         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
9512         /as/hc08/link_hc08.dsp
9513
9514 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
9515
9516         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
9517
9518 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
9519
9520         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
9521
9522 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9523
9524         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
9525
9526 2003-10-31  Borut Razem <borut.razem AT siol.net>
9527
9528         * support/cpp2/cpplib.h,
9529           support/cpp2/cpplib.c,
9530           support/cpp2/cpplex.c,
9531           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
9532           to switch _asm block preprocessing on / off. Default is
9533           #pragma preproc_asm +
9534
9535 2003-10-31  Borut Razem <borut.razem AT siol.net>
9536
9537         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
9538           when outputting comment blocks (when executed with -C option) and
9539           _asm (SDCPP specific) blocks
9540
9541 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9542
9543         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
9544
9545 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
9546
9547         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
9548
9549 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
9550
9551         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
9552         * src/SDCCast.c (decorateType): fixed bug #832664
9553
9554 2003-10-31  Borut Razem <borut.razem AT siol.net>
9555
9556         * support/cpp2/cpplex.c: fixed for SDCPP:
9557           comments(when executed with -C option) and _asm blocks
9558           were included even if they where in skipped #if block.
9559           Applied solution from GCC cpp 3.3.2
9560
9561 2003-10-31  Borut Razem <borut.razem AT siol.net>
9562
9563         * src/SDCC.lex: sdcc now understands both formats:
9564           '# <line_number> <file_name>' and
9565           '#line <line_number> <file_name>'
9566         * support/cpp2/cppmain.c: sdcpp now generates the standard
9567           '# <line_number> <file_name>' instead of former
9568           '#line <line_number> <file_name>'
9569
9570 2003-10-30  Borut Razem <borut.razem AT siol.net>
9571
9572         * support/cpp2/cpphash.h,
9573         * support/cpp2/cpplib.h
9574         * support/cpp2/cpplex.c,
9575         * support/cpp2/cppmain.c,
9576         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
9577
9578 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9579
9580         Fixed a number of problems revealed by bug #827883.
9581         * src/SDCCloop.c (loopInvariants): Spill location of the
9582         result operand should be recomputed if extracted from
9583         a loop. Also, don't extract assignments of an iTemp
9584         from a literal.
9585         * src/SDCCast.c (isConformingBody): loop reversal should
9586         not occur if the control variable is involved with a
9587         relational operator.
9588
9589 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
9590
9591         * .version: bumped to 2.3.6 to reflect the big improvements
9592         made by Erik and Klaus. Thanks!
9593
9594 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
9595
9596         Replaced the livrange code.
9597         * src/SDCClrange.c: added new LR code
9598         * src/SDCCloop.c,
9599         * src/SDCCBBlock.h: removed remainig parts from old LR code
9600         * src/ds390/ralloc.c,
9601         * src/ds390/gen.c: minor fixes to make it work with new code
9602
9603 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9604
9605         * as/hc08/asm.h,
9606         * as/hc08/lkrloc.c,
9607         * src/hc08/gen.c,
9608         * src/hc08/ralloc.c: Fix various warnings related to the hc08
9609         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
9610         (tweaked fix for bug #818696)
9611
9612 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9613
9614         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
9615
9616 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9617
9618         * src/SDCCmain.c,
9619         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
9620         * src/mcs51/gen.c (gencjneshort),
9621         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
9622         more efficient (per Scott Bronson's suggestion)
9623
9624 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9625
9626         Extended the semantics of the critical keyword to include
9627         individual statements. See RFE #827755 and #799831
9628         * src/SDCC.y
9629         * src/SDCCicode.c
9630         * src/SDCCopt.c
9631         * src/SDCCast.c
9632         * support/Util/SDCCerr.c
9633         * support/Util/SDCCerr.h
9634         * src/mcs51/gen.c
9635         * src/ds390/gen.c
9636         * src/hc08/gen.c
9637
9638 2003-10-19  Borut Razem <borut.razem AT siol.net>
9639
9640         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
9641
9642 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9643
9644         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
9645         Fixed bug #818696
9646         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
9647         and predecrement operand is displayed
9648
9649 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9650
9651         * src/SDCCval.c (valMinus): fixed bug #826041
9652
9653 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9654
9655         Some hc08 related updates that I missed earlier
9656         * sim/ucsim/stypes.h
9657         * support/regression/ports/hc08/spec.mk
9658
9659 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9660
9661         New target "hc08" for the Motorola 68hc08 family of micros
9662
9663         * configure
9664         * configure.in
9665         * Makefile
9666         * src/hc08/*
9667         * src/SDCCmain.c
9668         * src/port.h
9669         * sim/ucsim/hc08.src/*
9670         * sim/ucsim/configure.in
9671         * src/ucsim/configure
9672         * sim/ucsim/packages_in.mk
9673         * as/hc08/*
9674         * as/Makefile
9675         * device/include/mc68hc908qy.h
9676         * device/lib/hc08/*
9677         * device/lib/Makefile.in
9678         * support/regression/ports/hc08/*
9679         * support/regression/Makefile
9680
9681 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9682
9683         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
9684         regression test
9685         * src/ds390/gen.c (genCast): fixed bug #821957
9686
9687 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9688
9689         * device/lib/logf.c: "fixed" overlay bug
9690         * support/regression/ports/host/spec.mk: added m library
9691         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
9692         * support/regression/tests/float_trans: added (for Eric)
9693
9694 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
9695
9696         * src/mcs51/gen.c (genCpl): fixed bug
9697         http://sf.net/mailarchive/message.php?msg_id=6263915
9698
9699 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
9700
9701         * src/SDCCast.c (decorateType): added extended constant folding
9702         * src/SDCCsymt.c (computeType): cleanup
9703         * src/SDCCval.c (valShift): minor optimization
9704         * support/regression/tests/ast_constant_folding.c: added
9705
9706 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9707
9708         * src/SDCCmain.c: removed some unintended changes
9709
9710 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9711
9712         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
9713         * src/z80/gen.c: fixed part of bug #817589
9714         * src/SDCCsymt.c (checkFunction): fixed bug #817895
9715
9716 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
9717
9718         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
9719         * src/SDCCcflow.c
9720         * src/SDCCcse.c
9721         * src/SDCCdflow.c
9722         * src/SDCClabel.c
9723         * src/SDCClrange.c
9724         * src/SDCCmem.c
9725         * src/SDCCopt.c
9726         * src/SDCCpeeph.c
9727         * src/SDCCset.c
9728         * src/avr/ralloc.c
9729         * src/ds390/ralloc.c
9730         * src/izt/ralloc.c
9731         * src/mcs51/ralloc.c
9732         * src/pic/ralloc.c
9733         * src/pic16/ralloc.c
9734         * src/xa51/ralloc.c
9735         * src/z80/ralloc.c
9736         * src/z80/gen.c: removed unused label "release:"
9737
9738 2003-10-06  Borut Razem <borut.razem AT siol.net>
9739
9740         * src/SDCC.lex: removed definition of unused variables
9741           save_optimize and save_options
9742
9743 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
9744
9745         * clean.mk: removed '=' in "-maxdepth=1"
9746         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
9747         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
9748
9749 2003-10-06  Borut Razem <borut.razem AT siol.net>
9750
9751         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
9752           my_unput() replaced by unput()
9753
9754 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
9755
9756         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
9757         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
9758         type-punned pointer will break strict-aliasing rules"
9759         Old LR behaviour is again default; Klaus' LR can be choosen by
9760         defining the environment variable LRKLAUS
9761         * src/SDCCBBlock.h
9762         * src/SDCCloop.c
9763         * src/SDCClrange.c
9764         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
9765         * clean.mk: fixed removal of files in bin/CVS/
9766         * device/lib/clean.mk: fixed removal of directories small and large
9767         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
9768         * src/SDCCicode.c,
9769         * src/SDCCval.c: removed superflous test for pedantic
9770
9771 2003-10-05  Borut Razem <borut.razem AT siol.net>
9772
9773         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
9774           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
9775           message "unmatched #pragma SAVE and #pragma RESTORE"
9776
9777 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9778
9779         * doc/sdccman.lyx: various additions and updates (interrupts, inline
9780           assembly, critical functions, atomic, nojtbound)
9781
9782 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
9783
9784         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
9785         * src/SDCCBBlock.h
9786         * src/SDCCloop.c
9787         * src/SDCCloop.h
9788         * src/SDCClrange.c
9789
9790 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9791
9792         * src/z80/gen.h,
9793         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9794         * src/mcs51/gen.h
9795         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9796         * src/ds390/gen.h
9797         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9798         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
9799         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
9800
9801 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9802
9803         * src/z80/gen.c (genRet): fixed bug #524753
9804         * src/z80/gen.c (genCast): fixed internal error on cast from
9805         pointer to long
9806         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
9807         fix for bug #477835 to the z80
9808         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
9809         for tracking iCodes in the peephole optimizer for z80
9810
9811 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9812
9813         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
9814         the other part of bug #814548
9815         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
9816
9817 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
9818
9819         * src/SDCCcse.c: fixed part of bug #814548
9820
9821 2003-09-28  Borut Razem <borut.razem AT siol.net>
9822
9823         * src/asm.c: rewrite of printILine() to use temporary file instead
9824           a pipe
9825         * src/xa51/main.c: commented out declaration of int rewinds
9826
9827 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9828
9829         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
9830
9831 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9832
9833         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
9834         * src/asm.c (printILine): Fixed bug #811015
9835
9836 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9837
9838         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
9839         freeing.
9840
9841 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9842
9843         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
9844         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
9845         to correctly handle general case of AOP_PAIRPTR
9846         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
9847
9848 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9849
9850         * src/mcs51/ralloc.c (fillGaps),
9851         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
9852         register positioning bug)
9853
9854 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
9855
9856         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
9857
9858 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9859
9860         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
9861         genCodePointerGet, genGenPointerGet, genFarPointerSet,
9862         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
9863         (ralloc doesn't intentionally do this now, but perhaps later)
9864         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
9865         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
9866         register positioning bugs (Fixed bug #762602 and #795325)
9867         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
9868         (Fixed bug #808779)
9869         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
9870         lines that --i-code-in-asm generates
9871
9872 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9873
9874         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
9875         trying to fclose a FILE* that was already closed.
9876
9877 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9878
9879         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
9880         of const struct should be treated as if const themselves)
9881
9882 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
9883
9884         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
9885
9886 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9887
9888         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
9889         Unix (/n) and DOS (/r/n) line terminations.
9890
9891 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9892
9893         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
9894         bug #613775
9895
9896 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9897
9898         * src/mcs51/gen.c (genFunction, genEndFunction),
9899         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
9900         and restore of EA so that stack offsets to parameters are
9901         correct when using both critical and reentrant/stack-auto.
9902         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
9903         size (can be triggered in error if sloc is shared between
9904         different sized objects)
9905         * device/include/float.h: fixed macros to explicitly use
9906         unsigned long where needed
9907
9908 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
9909
9910         Feature req. 799831: added code to allow nesting of critical functions
9911         * src/mcs51/gen.c (genFunction, genEndFunction)
9912         * src/ds390/gen.c (genFunction, genEndFunction)
9913
9914 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9915
9916         * src/SDCCsymt.c (sclsFromPtr),
9917         * src/SDCCsymt.h,
9918         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
9919         support for standard C idiom of memory mapped variables; for
9920         example, *((xdata int*)0x1234) = 1 is now internally equivalent
9921         to xdata int at 0x1234 tempvar = 1.
9922         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
9923         provided by Akiya ISHIDA
9924
9925 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
9926
9927         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
9928         * src/SDCCval.c (constVal): added reduction from int to char
9929         * src/SDCCval.c (valMult, valDiv): fixed sign handling
9930         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
9931         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
9932         to ignore the sign
9933         * support/regression/tests/shifts.c: fixed
9934
9935 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9936
9937         * src/z80/gen.c (genXor): Fixed bug #805445
9938
9939 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9940
9941         Fixed bug #621531 (const & volatile confusion in the type chain).
9942         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
9943         refer to the const or volatile state of the pointer itself.
9944
9945         * src/SDCCast.c
9946         * src/SDCCglue.c
9947         * src/SDCCicode.c
9948         * src/SDCCsymt.c
9949         * src/SDCCval.c
9950         * src/SDCC.y
9951         * src/SDCCsymt.h
9952         * src/pic/gen.c
9953         * src/pic/ralloc.c
9954         * src/pic16/gen.c
9955         * src/pic16/ralloc.c
9956         * support/regression/tests/const.c
9957
9958 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9959
9960         When checking for duplicated modules, use absolute paths
9961         instead of relative paths.  Files changed:
9962
9963         * as/mcs51/lklib.c
9964         * link/z80/lklib.c
9965
9966 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9967
9968         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
9969
9970 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9971
9972         * device/include/string.h: added size_t typedef, changed
9973         prototypes to use size_t, eliminated separate reentrant and
9974         non-reentrant declarations, added _memmove declaration
9975         * device/lib/_memcpy.c: changed to use size_t instead of int,
9976         changed /4 to >>2 to avoid division library call
9977         * device/lib/_memcmp.c,
9978         * device/lib/_memset.c,
9979         * device/lib/_strncat.c,
9980         * device/lib/_strncpy.c,
9981         * device/lib/_strncmp.c: changed to use size_t instead of int
9982         * device/lib/_memmove.c: new file (fixed bug #772294)
9983         * device/lib/Makefile.in: added _memmove.c
9984         * device/lib/z80/asm_strings.s: fixed bug #772290
9985         * support/regression/tests/bitfields.c: attempt to fix host assertion
9986         failure on amd64-unknown-linux2.2
9987
9988 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9989
9990         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
9991         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
9992         * as/z80/asmain.c (main): fixed bug #801766
9993
9994 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
9995
9996         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
9997         compilers
9998
9999 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10000
10001         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
10002         reported in bug #800609
10003
10004 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
10005
10006         * Top header beautifications in src/pic16 directory:
10007           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
10008           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
10009           pcoderegs.h, ralloc.c, ralloc.h
10010         * main.c: added top header and GPL license notice
10011         * pcode.c: fixed the if-conditional warning
10012
10013 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
10014
10015         * device/lib/_mullong.c: replaced int by short for gcc
10016
10017 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10018
10019         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
10020         and JUMPTABLE iCodes properly now (worked by accident before)
10021         * src/mcs51/gen.c (leftRightUseAcc),
10022         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
10023         iCode properly now. Use getSize instead of nRegs since a & b
10024         aren't part of the nRegs tally.
10025
10026 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
10027
10028         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
10029         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
10030           before instructions that use the _STATUS register
10031
10032 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
10033
10034         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
10035         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
10036         fetching of the pointer
10037         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
10038         copied from genNearPointerSet()
10039         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
10040         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
10041         If they pop r0/r1 they must be called in the opposite order than aopOp().
10042         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
10043         (resp. --stack-auto), prepared for --xstack
10044
10045 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10046
10047         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
10048
10049 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
10050
10051         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
10052         these ports have their own __sdcc_external_start()
10053
10054 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
10055
10056         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10057         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
10058         type for bits was changed. It resulted in bit variables becoming
10059         global, which is not permitted in PIC 14 assembly output.
10060
10061 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10062
10063         * doc/sdccman.lyx: various additions and updates. Rearranged sections
10064
10065 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10066
10067         Z80 and MCS51 linkers complaint if a public symbol is defined
10068         in more than one library module:
10069
10070         * as/mcs51/lklib.c
10071         * link/z80/lklib.c
10072         * as/mcs51/Makefile.in
10073
10074 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10075
10076         A few small changes that speed up the peephole optimizer.
10077
10078         * src/SDCCpeeph.c
10079
10080 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10081
10082         Try to make the peephole optimizer smarter by maintaining
10083         an association between the assembly source code and the
10084         iCodes that originated them. Put this information to use
10085         with a new peephole rule condition "notVolatile" so that
10086         the rules can be aggressive yet still safe.
10087
10088         * src/SDCCpeeph.c
10089         * src/SDCCpeeph.h
10090         * src/mcs51/gen.c
10091         * src/mcs51/peeph.def
10092
10093 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10094
10095         Fixed bug #741761
10096
10097         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
10098         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
10099         if the left or right operand symbols have the accuse flag set.
10100
10101 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10102
10103         Changed the type of the result of the ! (NOT) operator to char;
10104         previously it returned the same type as the source. This allows
10105         us to eliminate all the genFloatNot functions (all of its target
10106         implementations were very buggy) since !float can use the same
10107         code as !long now.
10108
10109         * src/SDCCicode.c (ast2iCode): ! returns char
10110         * src/mcs51/gen.c (genNot, genNotFloat),
10111         * src/ds390/gen.c (genNot, genNotFloat),
10112         * src/z80/gen.c (genNot, genNotFloat),
10113         * src/pic/gen.c (genNot, genNotFloat),
10114         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
10115
10116 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
10117
10118         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10119         1. Interrupt would not compile properly. Ensure PCLATH register is saved
10120            during interrupts. Ensure WSAVE is located at a shared bank address.
10121         2. Fixed page selection in some places
10122         3. Fixed BTFSS/C to where necessary use registers directly and not simply
10123            the registers name strings.
10124         4. Fixed "signed / unsigned compare" compiler warnings.
10125         5. The PIC port manages its own allocation of the general purpose
10126            registers, but makes no attempt to reuse them. As a result when
10127            compiling it soon runs out of general purpose registers. Some
10128            additional code was added to the files pcode.c and device.c to walk
10129            through the function call tree and rename the registers so that they
10130            get reused.
10131
10132         * src/pic/device.c
10133         * src/pic/gen.c
10134         * src/pic/glue.c
10135         * src/pic/pcode.c
10136         * src/pic/pcode.h
10137         * src/pic/ralloc.c
10138         * src/pic/ralloc.h
10139         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
10140         genPlus() & genMinus() when the result is the same as left or right
10141
10142 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10143
10144         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
10145
10146 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10147
10148         Made bitfield a distinct type from bit so that bitfields
10149         convert as per ANSI C and bits retain their traditional
10150         boolean style behaviour. Implemented bitfield support in
10151         the z80 port.
10152
10153         * src/SDCCsymt.h,
10154         * src/SDCCsymt.c,
10155         * src/SDCCast.c,
10156         * src/cdbFile.c,
10157         * src/mcs51/gen.c,
10158         * src/ds390/gen.c: bit v bitfield split
10159         * src/z80/gen.c: New support for bitfields
10160         * support/regression/tests/bitfields.c: reenabled z80,
10161         added more tests
10162
10163 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10164
10165         Rules 246.x, 247.x relate to bitfields, the others speed up
10166         access to xdata mapped I/O devices.
10167
10168         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
10169
10170 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10171
10172         Cleaned up genPackBits and genUnpackBits and added two helper
10173         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
10174         for literal assignments in genPackBits (thanks to Frieder for
10175         reminding me).
10176
10177         * src/mcs51/gen.c
10178         * src/ds390/gen.c
10179
10180 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10181
10182         Fixed bug #748310 (pointer to function type mishandled when the
10183         function name is omitted). Also fixed a SIGSEGV when a function
10184         attribute (reentrant, etc) is used on a non-function or on a
10185         function but misplaced before the parameter list.
10186
10187         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
10188         bug #748310
10189         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
10190         * support/Util/SDCCerr.h,
10191         * support/Util/SDCCerr.c: Added func attr misuse error msg
10192
10193 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10194
10195         Fixed bug #787649 by anonymous
10196         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
10197         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
10198
10199 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10200
10201         Fixed numerous bitfield problems.
10202
10203         * src/SDCC.y: More bitfield related error checking
10204         * src/SDCCsymt.h,
10205         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
10206         * support/Util/SDCCerr.h,
10207         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
10208         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10209         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10210         * support/regression/tests/bitfields.c: tests added
10211
10212 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10213
10214         Made the constant following the "interrupt" keyword optional. If
10215         omitted, the function will not automatically be given an entry
10216         in the interrupt vector table (similar to #pragma NOIV, but
10217         less syntacticly kludgy). The interrupt number is also now
10218         range checked. Also fixed a bug in the high order bit example
10219         in the manual.
10220
10221         * src/SDCC.y
10222         * src/SDCCmem.c
10223         * src/SDCCglue.c
10224         * src/SDCCsymt.h
10225         * support/Util/SDCCerr.c
10226         * support/Util/SDCCerr.h
10227         * doc/sdccman.lyx
10228
10229 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10230
10231         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
10232         * src/SDCCicode.c (operandOperation): rewritten some ops
10233         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
10234         * src/SDCCsymt.c (computeType): literals are handled the same way as any
10235         other type
10236         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
10237         be re-activated by defining REDUCE_LITERALS)
10238         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
10239         unsigned, but are signed by default
10240         * src/SDCCval.c (constVal): rearranged
10241         * src/SDCCval.c (valMod): preliminary fix
10242         * src/SDCCval.c (valCastLiteral): use TYPE_* types
10243         * support/regression/literalop.c: added, work in progress
10244
10245 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10246
10247         Generate warnings for useless declarations like "char data;"
10248         that don't do what new users expect.
10249
10250         * src/SDCC.y
10251         * support/Util/SDCCerr.h
10252         * support/Util/SDCCerr.c
10253
10254 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
10255
10256         * src/SDCCval.c (valMult): fix overflow detection of negative int
10257
10258 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10259
10260         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
10261
10262         Changes to support big endian targets:
10263
10264         * src/ports.h
10265         * src/SDCCglue.c
10266         * src/avr/main.c
10267         * src/ds390/main.c
10268         * src/izt/i186.c
10269         * src/mcs51/main.c
10270         * src/pic/main.c
10271         * src/pic16/main.c
10272         * src/xa51/main.c
10273         * src/z80/main.c
10274
10275 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
10276
10277         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
10278         * device/lib/time.c: fixed warning "integer overflow in expression"
10279
10280 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
10281
10282         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
10283         * src/SDCCval.c (constVal): changed default to signed; hex and octal
10284         constants are unsigned; added recognition of "u" flag for unsigned
10285         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
10286         * src/SDCCval.c (valDiv, valMod): fixed signdness
10287         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
10288         signedness of modulo, left and right shift
10289         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
10290         * support/Util/SDCCerr.h: added warning W_INT_OVL
10291         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
10292         * src/SDCCast.c (ast_print): improved output of constants
10293
10294 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10295
10296         Fixed some warnings when building with MSVC:
10297
10298         * as/mcs51/asdata.c
10299         * as/z80/asdata.c
10300         * as/mcs51/asm.h
10301         * as/z80/asm.h
10302         * link/z80/aslink.h
10303         * link/z80/lkdata.c
10304         * link/z80/lkeval.c
10305         * link/z80/lkgb.c
10306         * link/z80/lkihx.c
10307         * link/z80/lks19.c
10308         * link/z80/lksym.c
10309         * support/cpp2/cpplib.c
10310         * src/ds390/gen.c
10311         * src/mcs51/gen.c
10312
10313 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
10314
10315         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
10316
10317 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10318
10319         * support/librarian/clean.mk: Do not remove Makefile.
10320         * support/librarian/Makefile: added.
10321
10322 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10323
10324         Added librarian to MSVC build:
10325         * all.dsp
10326         * sdcc.dsw
10327         * support/librarian/librarian.dsp
10328
10329         'configure' not needed for librarian, removed:
10330         * support/librarian/configure
10331         * support/librarian/configure.in
10332         * support/librarian/config_in.h
10333         * support/librarian/Makefile.in
10334
10335         Hopefully these ones built the librarian and the rest of sdcc properly:
10336         * Makefile
10337         * Makefile.common.in
10338
10339         Messed up 'configure', so revert to previous version:
10340         * configure
10341         * configure.in
10342
10343 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
10344
10345         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
10346         there, while the mantissa of a double is "only" 53 bits wide.
10347
10348 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10349
10350         Adding sdcclib to the build.  MSVC project coming soon.
10351         Files added/changed:
10352
10353         * support/librarian/clean.mk
10354         * support/librarian/configure
10355         * support/librarian/configure.in
10356         * support/librarian/config_in.h
10357         * support/librarian/Makefile.bcc
10358         * support/librarian/Makefile.in
10359         * support/librarian/sdcclib.c
10360         * Makefile.bcc
10361         * Makefile
10362         * Makefile.common.in
10363         * configure
10364         * configure.in
10365
10366 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10367
10368         Linker now complaints if linked modules have conflicting options, for
10369         example, one compiled using --model-large and another one compiled with
10370         --model-small.  The following files were modified:
10371
10372         * as/mcs51/asdata.c
10373         * as/mcs51/aslink.h
10374         * as/mcs51/asm.h
10375         * as/mcs51/asmain.c
10376         * as/mcs51/asout.c
10377         * as/mcs51/i51pst.c
10378         * as/mcs51/lkdata.c
10379         * as/mcs51/lklibr.c
10380         * as/mcs51/lkmain.c
10381         * as/z80/asdata.c
10382         * as/z80/asm.h
10383         * as/z80/asmain.c
10384         * as/z80/asout.c
10385         * as/z80/z80pst.c
10386         * link/z80/aslink.h
10387         * link/z80/lkdata.c
10388         * link/z80/lklibr.c
10389         * link/z80/lkmain.c
10390         * src/SDCCglue.c
10391
10392 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10393
10394         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
10395         as/mcs51/lklibr.c: Generate a warning when a library is not found.
10396
10397 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
10398
10399         * src/z80/mappings.i: fix _mul[us][int,long] entries
10400
10401 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10402
10403         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
10404
10405 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10406
10407         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
10408         * support/regression/tests/bitopcse.c: added
10409         fixed warning:
10410         * src/avr/gen.c:
10411         * src/pic/gen.c:
10412         * src/pic16/gen.c:
10413         * src/z80/gen.c:
10414         * src/xa51/gen.c:
10415
10416 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10417
10418         added support for new library format to z80, gbz80 linkers:
10419         *link/z80/aslink.h
10420         *link/z80/lklex.c
10421         *link/z80/lklib.c
10422         *link/z80/lklist.c
10423
10424 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10425
10426         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
10427         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
10428
10429 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
10430
10431         added DUMMY_READ_VOLATILE:
10432         * src/SDCC.y:
10433         * src/avr/gen.c:
10434         * src/xa51/gen.c:
10435         * src/z80/gen.c:
10436         * src/pic/gen.c:
10437         * src/pic16/gen.c:
10438         * src/mcs51/gen.c:
10439         * src/ds390/gen.c:
10440         * src/SDCCcse.c (algebraicOpts): many improvements
10441         * src/SDCCcse.h: removed algebraicOpts()
10442         * src/SDCCicode.c (picDummyRead): added
10443
10444 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10445
10446         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
10447         "Insufficient space in data memory".
10448
10449 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10450
10451         * src/mcs51/gen.c: fixed bug #771358
10452         * src/z80/gen.c: fixed bug #759087
10453
10454 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
10455
10456         * src/pic16/glue.c: minor cleanup by Vangelis
10457
10458 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10459
10460         * device/include/regc515c.h: fixed #758477
10461         * device/lib/_gptrget.c: saving some cycles in generic pointer get
10462         * device/lib/_gptrput.c: saved a few bytes
10463         * my tab spacing is 8, yours too?)
10464         * device/lib/_ser.c: process RX bytes earlier than TX bytes
10465         * device/lib/serial.c: process RX bytes earlier than TX bytes
10466         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
10467
10468 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10469
10470         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
10471
10472 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10473
10474     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
10475
10476 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
10477
10478         * device/lib/Makefile.in: bad fix, reverted to 1.43
10479
10480 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
10481
10482         * device/lib/Makefile.in: added missing z80 object files
10483
10484 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
10485
10486         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
10487         pic16 progress by Vangelis:
10488         * src/SDCCglobl.h:
10489         * src/SDCCmain.c:
10490         * src/pic/Makefile:
10491         * src/pic:
10492         * pic/Makefile:
10493         * pic16/device.c:
10494         * pic16/device.h:
10495         * pic16/gen.c:
10496         * pic16/gen.h:
10497         * pic16/genarith.c:
10498         * pic16/glue.c:
10499         * pic16/main.c:
10500         * pic16/pcode.c:
10501         * pic16/pcode.h:
10502         * pic16/pcodepeep.c:
10503         * pic16/peeph.def:
10504
10505 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10506
10507     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
10508
10509 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10510
10511     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
10512     added gbz80 build to MSVC project.
10513     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
10514     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
10515     from 8051 stuff and setup so it links using a .lnk file.
10516
10517 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10518
10519     * support/librarian/sdcclib.c: sdcc librarian.
10520     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
10521     with sdcclib.
10522
10523 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10524
10525     * as/mcs51/lkmain.c: properly handle extensions in function afile.
10526
10527 2003-07-02  Borut Razem <borut.razem AT siol.net>
10528
10529         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
10530         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
10531         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
10532         src/xa51/main.c, src/z80/main.c:
10533         virtualization of glue() function: each port has it's own glue function,
10534         which is accessed by do_glue function pointer in PORT.general structure
10535
10536 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
10537
10538         * DS800C400 fun, improved ROM interface and tinibios.
10539
10540 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
10541
10542         * More support for DS80C400. Now includes beginning of interface to ROM.
10543
10544 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
10545
10546         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
10547
10548 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10549
10550         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
10551
10552 2003-06-19  Borut Razem <borut.razem AT siol.net>
10553
10554         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
10555
10556 2003-06-19  Borut Razem <borut.razem AT siol.net>
10557
10558         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
10559         fixed Z80 port - crt0.o: cannot open.
10560
10561 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
10562
10563         * support/Util/MySystem.c (merge_command): revert bad fix
10564
10565 2003-06-18  Borut Razem <borut.razem AT siol.net>
10566
10567         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
10568
10569 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10570
10571         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10572         option --use-stdout sends errors to stdout instead of stderr.
10573
10574 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
10575
10576         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
10577
10578 2003-06-15  Borut Razem <borut.razem AT siol.net>
10579
10580         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
10581         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
10582         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
10583         fixed width array of pointers replaced with sets;
10584         multiple include and lib paths ared transferred to preprocessor and linker
10585         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
10586         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
10587         fixed width array of pointers
10588         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
10589         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
10590         fixupPath(), getPathDifference()
10591         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
10592         fixed width array of pointers
10593
10594 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
10595
10596         * src/pic16/ralloc.c: fix warnings
10597         * src/pic16/pcode.c: fix warning
10598
10599 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
10600
10601          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
10602         know all the details, but essentially this set of changes enable
10603         the pic16 port to generate movff instructions and generate assembler
10604         directives,
10605         * src/SDCCmain.c:
10606         * src/pic16/gen.c:
10607         * src/pic16/glue.c:
10608         * src/pic16/pcode.c:
10609         * src/pic16/device.c:
10610         * src/pic16/main.c:
10611         * src/pic16/pcode.h:
10612         * src/pic16/pcoderegs.c:
10613         * src/pic16/ralloc.c:
10614         * src/pic16/ralloc.h:
10615
10616 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10617
10618         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10619         added option --vc, so sdcc errors and warnings are compatible with
10620         Microsoft Visual Studio.
10621
10622 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10623
10624         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
10625           device/lib/libfloat.lib: added atof function.
10626
10627 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
10628
10629         * doc/sdccman.lyx: updated to Lyx 1.3
10630         * doc/cdbfileformat.lyx: updated to Lyx 1.3
10631         * doc/test_suite_spec.lyx: updated to Lyx 1.3
10632         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
10633
10634 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
10635
10636         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
10637
10638 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10639
10640         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
10641           additions to the "related tools/documentation" section
10642
10643 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
10644
10645         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
10646
10647 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
10648
10649         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
10650         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
10651
10652 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
10653
10654         * doc/sdccman.lyx: fix double dash and other minor things
10655         * doc/Makefile: fix double dash
10656
10657 2003-05-28  Karl Bongers(patches from Martin Helmling)
10658         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
10659           condition and ignore commands.
10660
10661 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10662
10663         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
10664           is in parts still quite out of date, I did changes as far as I felt makes sense
10665           for a non-native english speaker.
10666           Please feel free to add to the manual or to correct my changes.
10667         * doc/Makefile: undid touching the date of intermediate tex files.
10668
10669 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10670
10671         * doc/sdccman.lyx: Manual has an index now
10672
10673 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
10674
10675         Finalize muluint/mulsint and mululong/mulslong merging:
10676         * device/lib/_mulint.c
10677         * device/lib/_mullong.c
10678         * device/lib/gbz80/mul.s
10679         * device/lib/gbz80/stubs.s
10680         * device/lib/z80/mul.s
10681         * device/lib/z80/stubs.s
10682         * src/SDCCsymt.c (initCSupport)
10683
10684 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10685
10686         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
10687         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
10688           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
10689           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
10690           instead of /Zm500.
10691
10692 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10693
10694         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
10695           the regression tests I'm not brave enough to enable 245.b, 245.c
10696         * doc/sdccman.lyx: added latex preamble for hyperref package.
10697           Using pdflatex this will give you a hyperlinked pdf file with
10698           bookmarks. (prepend '%' before /usepackage if this breaks something)
10699
10700 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10701
10702          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
10703
10704 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
10705
10706         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
10707
10708 2003-05-21    <johan AT balder>
10709
10710         * src/SDCCglue.c (printIval): fixed bug #739934
10711
10712 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10713
10714         Applied patch from bug 737905 (renamed yylineo to mylineno):
10715         * src/altlex.c
10716         * src/SDCCast.c
10717         * src/SDCglobl.h
10718         * src/SDCC.lex
10719         * src/SDCCsymt.c
10720         * src/SDCCval.c
10721         * src/pic16/pcode.c: Cleaned warnings
10722         * src/pic16/pcodeflow.c: Cleaned warnings
10723         * src/pic16/pcoderegs.c: Cleaned warnings
10724
10725 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
10726
10727         * src/pic16/pcode.c: Cleaned warnings
10728         * src/pic16/pcodepeep.c: Cleaned warnings
10729         * src/pic16/ralloc.c: Cleaned warnings
10730
10731 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10732
10733         * doc/sdccman.lyx: fixed bug 739745
10734         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
10735
10736 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
10737
10738         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
10739         it can be defined with CFLAGS when running configure
10740         * src/SDCCmain.c: fixed compiling + linking with object files
10741
10742 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
10743
10744         * configure.in: configure for pic16 port,
10745             added --disable-pic16-port
10746         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
10747         * src/SDCCmain.c: linkOptions is changed to set *,
10748             added if/endif conditional macros to remove options help
10749             messages from optionsTable when a port is not configured, added
10750             support for the PIc16 port in the ports table, when executing
10751             the compiler with no port specified on command line, a default
10752             port is selected with the new macro DEFAULT_PORT which is
10753             defined in port.h, in setDefaultOptions() linkOptions is removed
10754             from initialization assignment, since now it is a set,
10755             parseCmdLine uses setParseWithComma for linkOptions, in
10756             linkEdit() linkOptions are accessed with new function indexSet()
10757             which returns the i'th item of a set variable. See SDCCset.c, in
10758             linkEdit() when calling buildCmdLine(), added linkOptions as
10759             last argument. Now users can pass arguments to gplink via the
10760             -Wl option, main() uses pic16glue() to glue up pic16 programs
10761         * src/SDCCpeeph.c: various changes to support pic16
10762         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
10763             return the i'th item of the set
10764         * src/SDCCset.h: added function prototype for indexSet()
10765         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
10766         * src/clean.mk: added pic16 in CLEANALLPORTS variable
10767         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
10768             added macro DEFAULT_PORT
10769         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
10770         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
10771             generated
10772         * src/pic16/glue.c: commented out some error producing lines
10773         * src/pic16/main.c: __config directives are commented out to stop
10774             gpasm complaining and test the linkage with gplink, _linkCmd and
10775             _asmCmd changed to be more gplink and gpasm friendly
10776         * src/pic16/peeph.def: peep rule 3 is commented out, since it
10777             produced an error when parsed, peep rule 12 is added to utilize
10778             movff, but it is commented out since the pCode does not support
10779             yet a command with 2 address arguments
10780
10781 2003-05-18    <johan AT balder>
10782
10783         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10784         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10785 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
10786
10787         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
10788   Added feature to script commands from file.
10789
10790 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
10791
10792         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
10793         * src/SDCCutil.c: include ctype.h for win32
10794
10795 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
10796
10797         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
10798
10799 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
10800
10801         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
10802   Fixed so you can set breakpoints prior to run, run does not stop
10803   on entry now.  Add tbreak.  Other enhancements and fixes for use
10804   with ddd.
10805
10806 2003-05-12  Borut Razem <borut.razem AT siol.net>
10807
10808         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
10809
10810 2003-05-11  Borut Razem <borut.razem AT siol.net>
10811
10812         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
10813         the path of bin directory, so that PATH is the only env. variable, which has to be set
10814         in case of standard installation.
10815         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
10816         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
10817         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
10818
10819 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10820
10821         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
10822         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
10823         temp files are in the port dir; clean the gen/test directory when
10824         generating new test.c
10825         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
10826         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
10827         * support/regression/tests/zeropad.c: added
10828
10829 2003-05-09    <johan AT balder>
10830
10831         * src/SDCCglue.c: fixed bug #597940
10832
10833 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
10834
10835         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10836   cache sfr, optimize next,step, fix off by one sourceline,
10837   support ddd list function.
10838         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
10839
10840 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10841
10842         * support/regression/HTMLgen.py: added compare_s2f()
10843         * support/regression/Makefile: redo 1.27
10844         * support/regression/generate-cases.py: redo 1.5
10845
10846 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
10847
10848         * support/regression/tests/float.c: workaround 33 bit hex constant
10849         * support/regression/tests/simplefloat.c: fix division for host
10850
10851 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
10852
10853         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
10854         that tame's the PIC's over-aggressive optimizer.
10855
10856 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10857
10858          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
10859          support for MSVC.
10860
10861 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
10862
10863         Initial support for DS80C400. "Hello world" runs on TINIm400
10864         (with polled I/O).
10865
10866 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
10867
10868          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10869          * Some notes on ddd usage added in debugger/README
10870          Martin Helmling adding more features and fixes for ddd GUI debugger.
10871          Code added for nexti, stepi, up, down, and other adjustments.
10872
10873 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
10874
10875         * src/pic/pCodepeep.c non-wildcard asmops are now handled
10876         * src/pic/peeph.def Added two rules to optimize carry manipulation
10877         * src/pic/* removed debug printfs
10878
10879 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
10880
10881         * debugger/mcs51/cmd.c: added header newalloc.h
10882
10883 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
10884
10885         * as/Makefile: new EXEEXT
10886         * as/z80/Makefile: remove trailing slash of BUILDIR
10887         * as/z80/clean.mk: new EXEEXT
10888         * Makefile.common.in: add to CFLAGS (and others), don't replace it
10889         * support/cpp2/Makefile.in: new EXEEXT
10890         * src/pic/glue.c (pic14emitRegularMap): fixed warning
10891
10892 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
10893
10894         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
10895         EXEEXT was introduced to fix all related problems with targets
10896         "clean", "install" and "uninstall"; a couple of further flaws
10897         especially with "clean" have been fixed too
10898         * as/mcs51/Makefile.in
10899         * as/mcs51/clean.mk
10900         * as/z80/Makefile
10901         * Makefile
10902         * clean.mk
10903         * debugger/mcs51/Makefile.in
10904         * debugger/mcs51/clean.mk
10905         * link/z80/Makefile
10906         * link/z80/Makefile.in
10907         * link/z80/clean.mk
10908         * link/Makefile
10909         * packihx/Makefile.in
10910         * packihx/clean.mk
10911         * sim/ucsim/Makefile
10912         * sim/ucsim/clean.mk
10913         * sim/ucsim/avr.src/Makefile.in
10914         * sim/ucsim/avr.src/clean.mk
10915         * sim/ucsim/s51.src/Makefile.in
10916         * sim/ucsim/s51.src/clean.mk
10917         * sim/ucsim/xa.src/Makefile.in
10918         * sim/ucsim/xa.src/clean.mk
10919         * sim/ucsim/z80.src/Makefile.in
10920         * sim/ucsim/z80.src/clean.mk
10921         * sim/ucsim/main_in.mk
10922         * sim/ucsim/packages_in.mk
10923         * sim/ucsim/gui.src/Makefile.in
10924         * sim/ucsim/gui.src/serio.src/Makefile.in
10925         * sim/ucsim/gui.src/serio.src/clean.mk
10926         * src/Makefile.in
10927         * src/clean.mk
10928         * support/cpp2/Makefile.in
10929         * support/cpp2/clean.mk
10930         * support/makebin/Makefile
10931         * support/makebin/clean.mk
10932         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
10933         * doc/sdccman.lyx: --program-suffix no longer needed
10934
10935 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
10936
10937          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
10938          Martin Helmling added support for ddd GUI debugger.
10939          Code added to display assembly, set variables, and other commands
10940          to interface to ddd.
10941
10942 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
10943
10944         * as/Makefile: fix target clean
10945         * as/clean.mk: fix target clean
10946         * as/z80/clean.mk: fix target clean
10947
10948 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
10949
10950         * Makefile.common.in: added  AT EXEEXT AT
10951         * configure.in: removed all mingw32 stuff
10952         * configure: rebuilt from configure.in
10953         * doc/sdccman.lyx: updated section "installation"
10954         * support/scripts/sdcc_mingw32: adapted to configure
10955         * support/scripts/sdcc_cygwin_mingw32: added
10956
10957 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
10958
10959         * src/pic Added object file support for the PIC port
10960         * src/pic Applied patch from Craig Franklin (this started the object file support)
10961         * src/regression Updated the PIC regression tests for object files
10962
10963 2003-04-20  Borut Razem <borut.razem AT siol.net>
10964
10965         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
10966           lklex.c: In function `getfid':
10967           lklex.c:203: warning: array subscript has type `char'
10968         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
10969           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
10970         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
10971           stack handling macros
10972
10973 2003-04-19  Borut Razem <borut.razem AT siol.net>
10974
10975         * "handling space characters in file path" task:
10976         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
10977         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
10978         * support/Util/MySystem.h: make it self-sufficient
10979         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
10980           src/z80/main.c, sdcc/as/mcs51/lklex.c:
10981           handling space characters in file path
10982         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
10983           (it will be used by assemblers, which have their own includes, e.g. gpasm)
10984         * support/Util/MySystem.c: handling space characters in executable's path
10985
10986 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
10987
10988         * as/z80/Makefile: fix permanent rebuild of z80
10989         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
10990         * support/regression/tests/bitfields.c: added Johan's bitfields.c
10991
10992 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
10993
10994         * src/SDCCopt.c: add special case optimization to replace modulo by
10995           a power of two with a bitwise AND.
10996
10997 2003-04-18    <johan AT balder>
10998
10999         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
11000
11001 2003-04-17    <johan AT balder>
11002
11003         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
11004         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
11005
11006 2003-04-13  Borut Razem <borut.razem AT siol.net>
11007
11008         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
11009         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
11010           fixed mingw problem in adl_NORMALIZE_PATH
11011
11012 2003-04-12  Borut Razem <borut.razem AT siol.net>
11013
11014         * fixed "#pragma SAVE/RESTORE can not be nested":
11015         * src/SDCC.lex: reworked pragma handling functions
11016         * sdcc/src/SDCCglobl.h: reworked stack handling macros
11017         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
11018
11019 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11020
11021         * src/SDCCutil.c (pathEquivalent): defined but not used
11022         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
11023         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
11024         * configure: rebuilt from configure.in
11025         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11026         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11027         * device/include/Makefile.in: replace sdcc_datadir
11028         * device/lib/Makefile.in: replace sdcc_datadir
11029         * Makefile.common.in: add LDFLAGS from configure
11030         * packihx/Makefile.in: use LDFLAGS
11031         * src/Makefile.in: use LDFLAGS
11032         * support/cpp2/Makefile.in: add LDFLAGS from configure
11033         * support/makebin/Makefile: use LDFLAGS
11034         * .version: bumped version number to 2.3.5
11035
11036 2003-04-12  Borut Razem <borut.razem AT siol.net>
11037
11038         * completed "different paths" task:
11039         * src/SDCCmacro.c: fixed bug in handling quotes
11040         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
11041         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
11042
11043 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11044
11045         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
11046
11047 2003-04-11 kevin Vigor <kevin AT vigor.nu>
11048
11049         * ds390/gen.c ds390/peeph.def: fix bug 706781
11050
11051 2003-04-11  Borut Razem <borut.razem AT siol.net>
11052
11053         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
11054
11055 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
11056
11057         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
11058         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
11059          set - this bit used to not be set...).
11060         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
11061           bad code in PIC Port
11062         * src/regression/and2.c added to test bug 609268
11063         * src/regression/Makefile added and2.c to regression test
11064
11065
11066 2003-04-08    <johan AT CP255758-A>
11067
11068         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
11069         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
11070         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
11071
11072 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
11073
11074         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
11075         fix bug #487815
11076         * support/cpp2/Makefile.in: fix bug #487815
11077         * configure: rebuilt from configure.in
11078         * Makefile.common.in: docdir changed, new path suffixes
11079         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11080         * sdcc_vc_in.h: reflect changes from sdccconf.h
11081         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
11082         * src/SDCCutil.h: remove BINDIR hack
11083         * doc/sdccman.lyx: update new path hierarchy
11084
11085 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11086
11087         * src/SDCCpeeph.c: added okToRemoveSLOC test
11088
11089 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11090
11091         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
11092
11093 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11094
11095         * src/SDCCpeeph.c: added labelIsReturnOnly test
11096         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
11097
11098 2003-04-05    <johan AT balder>
11099
11100         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
11101         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
11102         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
11103         * src/SDCCast.c: fixed a warning
11104         * src/SDCCast.h: fixed a warning
11105         * src/SDCCicode.c (operandFromAst): fixed a warning
11106
11107 2003-04-04    <johan AT balder>
11108
11109         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
11110         * src/SDCCast.c (decorateType): fixed bug #715076
11111         * src/SDCC.y: fixed bug #702907
11112
11113 2003-04-03    <johan AT balder>
11114
11115         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
11116         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
11117         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
11118         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
11119         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
11120
11121 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
11122
11123         * _decdptr.c: fix return values
11124         * _gptrget.c: fix return values
11125         * _gptrgetc.c: fix return values
11126         * _gptrput.c: fix return values
11127         * _mulint.c: fix return values
11128         * as/z80/Makefile: fix 'make -j' problem
11129
11130 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
11131
11132         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
11133         * configure.in: big cleanup, updated to autoconf 2.5x
11134         * configure: rebuilt from configure.in
11135         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11136         * sdcc_vc_in.h: reflect changes from sdccconf.h
11137         * doc/Makefile: fixed a flaw in "make install"
11138
11139 2003-04-02    <johan AT balder>
11140
11141         * src/ds390/gen.c (genCmp): no comments
11142         * src/mcs51/gen.c (genCmp): no comments
11143         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
11144         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
11145
11146 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
11147
11148         * support/regression/generate-cases.py: place generated file in given sub directory
11149         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
11150         * support/regression/Makefile: improvements for 'make -j';
11151         side effect: it's simpler and faster now
11152
11153 2003-03-31  Borut Razem <borut.razem AT siol.net>
11154
11155         * src/z80/main.c: link-{port} and as-{port} defined without path
11156         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
11157
11158 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
11159
11160         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
11161
11162 2003-03-30  Borut Razem <borut.razem AT siol.net>
11163
11164         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
11165           changed type of list parameter to set
11166         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
11167         * src/port.h: changed type of do_assemble() parameter to set
11168         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
11169           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
11170           definition of "cppoutfilename" macro with NULL value in preProcess()
11171         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
11172         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
11173         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
11174           replaced with set *binPathSet
11175         * shash_add() deallocates the item, if allready exsists, before adding the new one
11176         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
11177
11178 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
11179
11180         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
11181           a nested for loop bug in the PIC port
11182         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
11183           for loops
11184
11185 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
11186
11187         * support/Util/dbuf.h: remove C++ stuff to make it portable
11188
11189 2003-03-28  Borut Razem <borut.razem AT siol.net>
11190
11191         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
11192           literal strings in stringLiteral()
11193         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
11194         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
11195           to the project
11196
11197 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
11198
11199         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
11200
11201 2003-03-26    <johan AT balder>
11202
11203         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
11204         * src/ds390/gen.c (saveRegisters): catched symbol abuse
11205         * src/SDCCast.c (decorateType): fixed " -v < 3"
11206
11207 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
11208
11209         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
11210         Added Lenny Story's debug infrastructure changes:
11211         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
11212         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
11213         * src/cdbFile.c: added
11214         * src/SDCCdebug.c: added
11215         * src/SDCCdebug.h: added
11216         * src/SDCCast.c (createFunction)
11217         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
11218         * src/SDCCmain.c (parseCmdLine, main)
11219         * src/SDCCmem.c (redoStackOffsets)
11220         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
11221         * src/SDCCsymt.h
11222         * src/common.h
11223         * src/avr/gen.c (genAVRCode)
11224         * src/ds390/gen.c (gen390Code)
11225         * src/mcs51/gen.c (gen51Code)
11226         * src/pic/gen.c (genpic14Code)
11227         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
11228         * src/xa51/gen.c (genXA51Code)
11229         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
11230
11231 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11232
11233         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
11234         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
11235
11236 2003-03-22    <johan AT balder>
11237
11238         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
11239
11240 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
11241
11242         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
11243         * doc/cdbfileformat.lyx: added, written by Lenny Story
11244         * doc/Makefile: added cdbfileformat.lyx
11245         * doc/clean.mk: added cdbfileformat.lyx
11246
11247 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
11248
11249         * src/mcs51/peeph.def: fix bug #705773
11250
11251 2003-03-20    <johan AT balder>
11252
11253         An sfr/sbit can have an "at #" AND an initializer
11254         * src/SDCCsymt.c (checkSClass):
11255         * src/SDCCmem.c (allocGlobal):
11256         * src/SDCCmem.c (allocLocal):
11257         * src/SDCCast.c (createBlock):
11258
11259 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
11260
11261         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
11262
11263 2003-03-16    <johan AT balder>
11264
11265         Undid the hackup of const and volatile, the problem is much bigger
11266         * src/SDCC.y:1.65
11267         * src/SDCCast.c:1.171
11268         * src/SDCCglue.c:1.138
11269         * src/SDCCicode.c:1.146
11270         * src/SDCCsymt.c:1.150
11271         * src/SDCCval.c:1.65
11272
11273 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
11274
11275         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
11276         * src/ds390/gen.c (genAddrOf): fixed bug #704087
11277
11278 2003-03-13    <johan AT balder>
11279
11280         Hackup const and volatile modifiers in type chains a bit:
11281         * src/SDCC.y:1.63
11282         * src/SDCCast.c:1.169
11283         * src/SDCCglue.c:1.136
11284         * src/SDCCicode.c:1.143
11285         * src/SDCCsymt.c1.146
11286         * src/SDCCsymt.h1.59
11287         * src/SDCCval.c:1.63
11288
11289 2003-03-12    <johan AT balder>
11290
11291         * src/SDCCBBlock.h: more LRH debugging junk
11292         * src/SDCCcflow.h: more LRH debugging junk
11293         * src/SDCCloop.c: more LRH debugging junk
11294         * src/SDCC.y (struct_declaration): fixed bug #697590
11295         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
11296         * src/ds390/gen.c (aopForRemat): fixed bug #700031
11297         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
11298
11299 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11300         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
11301         test function names must now match exactly).
11302         * src/SDCCcse.c: added special case in findCheaperOp to allow
11303         extending a short integer. Makes less awful code for bug 700121 test case.
11304
11305 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11306
11307         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
11308         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
11309
11310 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11311
11312         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
11313         actually called (operandsNotEqual() was called for all
11314         operandsNotEqualX tests).
11315
11316 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11317
11318         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
11319         with shorter literals. Fixes bug 700121.
11320
11321 2003-03-11    <johan AT balder>
11322
11323         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
11324
11325 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
11326
11327         * src/SDCCloop.c (mergeRegions): an evil beast is dead
11328         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
11329
11330 2003-03-10  Borut Razem <borut.razem AT siol.net>
11331
11332         * src/SDCCmain.c: pipe preprocessor's output
11333         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
11334         * sdcc_vc_in.h: define pclose as _pclose for WIN32
11335         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
11336         which closes all pipes in pipeSet set
11337         * src/SDCCset.c: free deleted item in function deleteSetItem()
11338         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
11339         moved from z80 to src subproject
11340         * .version: increased version number to 2.3.4
11341
11342 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
11343
11344         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
11345         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
11346         * support/regression/ports/xa51/spec.mk: fix typo
11347
11348 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
11349
11350         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
11351
11352 2003-03-09  Borut Razem <borut.razem AT siol.net>
11353
11354         * src/SDCCmain.c: pipe preprocessor's output
11355         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
11356         * sdcc_vc_in.h: define pclose as _pclose for WIN32
11357         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
11358         which closes all pipes in pipeSet set
11359         * src/SDCCset.c: free deleted item in function deleteSetItem()
11360         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
11361         moved from z80 to src subproject
11362
11363 2003-03-09  Borut Razem <borut.razem AT siol.net>
11364
11365         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
11366         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
11367         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
11368         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
11369         * src/SDCCglobl.h: unification of WIN32 native definitions
11370
11371 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11372
11373         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
11374
11375 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
11376
11377         * src/configure.in:   check for endianess (even while cross-compiling)
11378         * src/configure:      check for endianess (even while cross-compiling)
11379         * src/configure_in.h: check for endianess (even while cross-compiling)
11380         * src/avr/gen.c:        remove old endianess stuff
11381         * src/mcs51/gen.c:      remove old endianess stuff
11382         * src/ds390/gen.c:      remove old endianess stuff
11383         * src/pic/gen.c:        remove old endianess stuff
11384         * src/pic/genarith.c:   remove old endianess stuff
11385         * src/pic/glue.c:       fix endianess check
11386         * src/pic16/gen.c:      remove old endianess stuff
11387         * src/pic16/genarith.c: remove old endianess stuff
11388         * src/pic16/glue.c:     fix endianess check
11389         * src/xa51/gen.c:       remove old endianess stuff
11390         * src/z80/gen.c:        fix endianess check
11391         * src/SDCCglue.c:       fix endianess check
11392         * src/ds390/peeph.def: fix bug 700036
11393
11394 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
11395
11396         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
11397         * src/configure: find appropriate data-types on host for SDCC's int and long
11398         * src/configure.in: find appropriate data-types on host for SDCC's int and long
11399         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
11400         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
11401
11402 2003-03-07    <johan AT balder>
11403
11404         Just a big NOOP:
11405                 some minor cleanups before the big shot
11406                 OP_DEFS and OP_USES now use Kevin's protection
11407                 new option --nolabelopt
11408
11409         * src/SDCCBBlock.c:
11410         * src/SDCCast.c,:
11411         * src/SDCCcflow.c:
11412         * src/SDCCcse.c:
11413         * src/SDCCicode.c:
11414         * src/SDCCicode.h:
11415         * src/SDCClabel.c:
11416         * src/SDCCloop.c:
11417         * src/SDCCmain.c:
11418         * src/ds390/ralloc.c:
11419         * src/mcs51/ralloc.c:
11420         * src/pic/ralloc.c:
11421         * src/xa51/ralloc.c:
11422         * src/z80/ralloc.c:
11423
11424 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
11425
11426         * src/pic/pcode.c (get_op): fix 64 bit warnings
11427         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
11428         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
11429         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
11430         * support/regression/tests/malloc.c: fix 64 bit warnings
11431
11432 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
11433
11434         * src/mcs51/gen.c (genMinus): fixed bug 696436
11435
11436 2003-03-02  Borut Razem <borut.razem AT siol.net>
11437
11438         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
11439
11440 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
11441
11442         * configure.in: test for mkstemp
11443         * sdccconf_in.h: add HAVE_MKSTEMP
11444
11445 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
11446
11447         * device/include/ctype.h: removed warning while using --stack-auto
11448         * device/include/malloc.h: removed warning while using --stack-auto
11449         * device/include/string.h: removed warning while using --stack-auto
11450
11451 2003-02-23  Borut Razem <borut.razem AT siol.net>
11452
11453         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
11454         because NDEBUG is defined (see man assert)
11455         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
11456
11457 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11458
11459         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
11460         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
11461
11462 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11463
11464         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
11465         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
11466
11467 2003-02-18    <johan AT balder>
11468
11469         * as/mcs51/asmain.c (asmbl): module can start with a digit
11470         * as/z80/asmain.c (asmbl): module can start with a digit
11471
11472 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
11473
11474         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
11475         * src/asm.c: fix pipe() for Mingw32
11476
11477 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
11478
11479         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
11480         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
11481         make -V work again; --c1mode reads now from stdin
11482         * doc/sdccman.lyx: added --c1mode
11483         * support/Util/SDCCerr.c: new messages for c1 mode
11484         * support/Util/SDCCerr.h: new messages for c1 mode
11485         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
11486
11487 2003-02-15    <johan AT balder>
11488
11489         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
11490
11491 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
11492
11493         * doc/sdccman.lyx: Environment variables, -o and other minor things
11494
11495 2003-02-14    <johan AT balder>
11496
11497         * src/xa51/main.c: before anyone really tries to use it :)
11498
11499         * Install doc's in share/sdcc/doc
11500         * removed some obsolete files
11501         * Do a proper make distclean and uninstall
11502         M Makefile.common.in
11503         R sdccbuild.sh
11504         M as/Makefile
11505         M device/include/Makefile.in
11506         M device/lib/Makefile.in
11507         M doc/sdccman.lyx
11508         M link/Makefile
11509         M sim/ucsim/doc/Makefile.in
11510         M src/clean.mk
11511         R src/avr/peeph.rul
11512         R src/xa51/peeph.rul
11513         M support/cpp2/Makefile.in
11514         M support/makebin/Makefile
11515
11516
11517 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
11518
11519         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
11520
11521 2003-02-10  Borut Razem <borut.razem AT siol.net>
11522
11523         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
11524         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
11525         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
11526         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
11527         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
11528         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
11529         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
11530         src/z80/Makefile.bcc: Borland Makefile cleanup
11531         * as/z80/Makefile.bcc: Added Borland Makefile
11532         * support/cpp2/borland.h: Removed
11533
11534 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
11535
11536         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
11537         * src/SDCC.lex: new pragma NOIV
11538         * src/SDCCglobl.h: new pragma NOIV
11539         * src/SDCCmem.c: new pragma NOIV
11540
11541 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11542
11543         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
11544
11545 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11546
11547         * src/SDCCmain.c: signal handling is switched off by --debug
11548         * doc/Makefile: small fix for install; use clean.mk again
11549         * doc/clean.mk: clean *.pdf and *.html too
11550
11551 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
11552
11553         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
11554         * device/lib/printfl.c: fix a ds390 bug by making it portable
11555         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
11556         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
11557         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
11558         * debugger/mcs51/cmd.c: converted multi-line string literals
11559         * sim/ucsim/globals.cc: converted multi-line string literals
11560         * src/SDCCmain.c: introduced signal handler to remove temp files
11561         * doc/Makefile: small tweaks, implement clean
11562         * doc: removed generated files
11563
11564 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11565
11566         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
11567         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
11568         Address Record is not correctly generated for DS390."
11569
11570 2003-02-02  Borut Razem <borut.razem AT siol.net>
11571
11572         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
11573         * as/mcs51/asm.h: fixed compilation with Borland C
11574         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
11575         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
11576         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
11577         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
11578         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
11579         src/z80/Makefile.bcc: delete $(LIB) only if exist
11580         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
11581
11582 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
11583
11584         * device/include/malloc.h: introduced NULL
11585         * device/include/string.h: introduced NULL
11586         * device/include/stdlib.h: introduced NULL
11587         * device/lib/_memcpy.c: removed NULL
11588         * device/lib/_strcat.c: removed NULL
11589         * device/lib/_strchr.c: removed NULL
11590         * device/lib/_strcmp.c: removed NULL
11591         * device/lib/_strcpy.c: removed NULL
11592         * device/lib/_strcspn.c: removed NULL
11593         * device/lib/_strlen.c: removed NULL
11594         * device/lib/_strncat.c: removed NULL
11595         * device/lib/_strncmp.c: removed NULL
11596         * device/lib/_strncpy.c: removed NULL
11597         * device/lib/_strpbrk.c: removed NULL
11598         * device/lib/_strrchr.c: removed NULL
11599         * device/lib/_strspn.c: removed NULL
11600         * device/lib/_strstr.c: removed NULL
11601         * device/lib/_strtok.c: removed NULL
11602         * device/lib/malloc.c: removed NULL, include own header
11603
11604 2003-02-02    <johan AT balder>
11605
11606         * 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
11607         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
11608         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
11609         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
11610         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
11611         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
11612
11613 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11614
11615         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
11616         area 'DATA'"
11617
11618 2003-02-01    <johan AT balder>
11619
11620         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
11621
11622 2003-01-31    <johan AT CP255758-A>
11623
11624         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
11625
11626 2003-01-30    <johan AT balder>
11627
11628         * src/SDCCBBlock.c: automatic bug detection
11629         * src/SDCCicode.c: automatic bug detection
11630
11631 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11632
11633         * src/SDCCglobl.h:   now --xram-size 0 works
11634         * src/SDCCmain.c:    now --xram-size 0 works
11635
11636 2003-01-29    <johan AT balder>
11637
11638         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
11639
11640 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11641
11642         * as/mcs51/aslink.h: Added options --xram-size and --code-size
11643         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
11644         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
11645         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
11646         * src/SDCCglobl.h:   Added options --xram-size and --code-size
11647         * src/SDCCmain.c:    Added options --xram-size and --code-size
11648
11649 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
11650
11651         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
11652         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
11653
11654 2003-01-27    <johan AT balder>
11655
11656         * src/SDCC.y: fixed bug #613764
11657
11658 2003-01-26    <johan AT balder>
11659
11660         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
11661         * src/SDCCsymt.h: fixed bug #673374
11662         * src/SDCCglue.c: fixed bug #661910
11663         * src/SDCCast.c: fixed bug #458099 and 673374
11664
11665 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
11666
11667         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
11668         * as/mcs51/strcmpi.h: added
11669         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
11670         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
11671         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
11672         * as/mcs51/assym.c: strcmpi -> as_strcmpi
11673         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
11674         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
11675         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
11676         * as/mcs51/Makefile.aslink: new module strcmpi
11677         * as/mcs51/Makefile.asx8051: new module strcmpi
11678         * as/mcs51/Makefil.bcc: new module strcmpi
11679         * as/mcs51/Makefile.in: new module strcmpi
11680         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
11681
11682 2003-01-26    <johan AT balder>
11683
11684         * src/SDCCglue.c: reverted back to 1.124
11685         * src/SDCCast.c: reverted back to 1.156
11686         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
11687
11688 2003-01-25    <johan AT balder>
11689
11690         * src/SDCCglue.c: A better fix for bug #661910
11691         * src/SDCCast.c: A better fix for bug #661910
11692         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
11693
11694 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11695
11696         * src/Makefile.in: remove spawn.o
11697         * src/SDCCmain.c: remove spawn.h
11698         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
11699         * src/spawn.c: removed
11700         * src/spawn.h: removed
11701         * support/regression/ports/ds390/spec.mk: link with -r
11702
11703 2003-01-24    <johan AT CP255758-A>
11704
11705         * src/ds390/gen.c (aopOp): fixed bug #667458
11706         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
11707         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
11708         (createIvalCharPtr): an ival doesn't always have a storage class anymore
11709
11710 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11711
11712         * src/mcs51/peeph.def: better assembler identation by Frieder
11713         * src/mcs51/gen.c: better assembler identation by Frieder
11714
11715 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
11716
11717         * as/z80/string.h: removed for gcc 3.2
11718         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
11719         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
11720
11721 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11722
11723         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
11724         * src/SDCCpeeph.c (replaceRule): fix bug #663503
11725         * support/regression/Makefile: separate temp files for ports
11726         * support/regression/generate-cases.py: separate temp files for ports
11727         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11728         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11729
11730 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11731
11732         * moved tinitalk to device/examples/ds390
11733
11734 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
11735
11736         * as/mcs51/lkmem.c: rflag is for DS390
11737         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
11738         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
11739                          (linkEdit): move mem- and map-files the same way as ihx-files
11740         * src/z80/main.c (_setDefaultOptions): removed --generic
11741         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
11742         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
11743         * src/pic/glue.c (picglue): --c1mode works again
11744         * src/pic16/glue.c (pic16glue): --c1mode works again
11745         * src/asm.c (printCLine): fix #660034
11746
11747 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
11748
11749         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
11750         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
11751         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
11752         * as/mcs51/lkmem (summary): better fix for sp problem
11753         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
11754         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
11755         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
11756                                               remove --stack-after-data
11757
11758 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
11759
11760         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
11761         * src/SDCCutil.c (join): ugly bug: missing '\0'
11762         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
11763
11764 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11765
11766         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
11767         * src/port.h: typo
11768         * src/pic/main.c (_asmCmd): gpasm supports -o
11769         * src/z80/main.c: more general macros
11770         * device/lib/Makefile.in: remove intermediate files
11771
11772 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11773
11774         * .version: Bumped version number to 2.3.3
11775         * src/SDCCBBlock.c: new option -o
11776         * src/SDCCglobl.h: new option -o
11777         * src/SDCCglue.c: new option -o
11778         * src/SDCCmain.c: new option -o
11779         * src/asm.c: new option -o
11780         * src/ds390/main.c: new option -o
11781         * src/pic/glue.c: new option -o
11782         * src/pic/pcode.c: new option -o
11783         * src/pic/ralloc.c: new option -o
11784         * src/pic16/glue.c: new option -o
11785         * src/pic16/pcode.c: new option -o
11786         * src/pic16/ralloc.c: new option -o
11787         * src/z80/main.c: new option -o
11788         * device/lib/Makefile.in: use -o
11789         * support/regression/ports/ds390/spec.mk: use -o
11790         * support/regression/ports/gbz80/spec.mk: use -o
11791         * support/regression/ports/mcs51/spec.mk: use -o
11792         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
11793         * support/regression/ports/z80/spec.mk: use -o
11794         * support/regression/ports/ucz80/spec.mk: use -o
11795         * support/regression/ports/xa51/spec.mk: use -o
11796         * support/regression/fwk/lib/timeout.c: fix usage string
11797
11798 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
11799         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
11800
11801 2003-01-07    <johan AT balder>
11802
11803         * src/SDCCast.c (decorateType): fixed bug #600035
11804
11805 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
11806         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
11807         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
11808         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
11809         * src/pic/pcode.c: outcommented unused variable to remove warnings
11810         * src/pic/ralloc.c: outcommented unused variable to remove warnings
11811
11812 2003-01-06    <karl AT turbobit.com>
11813         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
11814    regression tests.
11815
11816 2003-01-06    <johan AT balder>
11817
11818         * src/SDCCicode.c: fixed array add
11819
11820 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
11821         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
11822         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
11823
11824 2003-01-04    <johan AT balder>
11825
11826         * src/SDCCval.c (getNelements): fixed the initialized array of structures
11827
11828 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11829         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
11830
11831 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11832         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
11833         * support/regression/tests/bug-524697.c: fit mem usage into 8032
11834
11835 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11836         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
11837
11838 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
11839         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
11840
11841 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
11842         * src/mcs51/main.c: removed {bindir}{sep} from aslink
11843
11844 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11845
11846     * in /sdcc/as/mcs51/ changed these files in order to create an
11847     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
11848     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
11849     following files to include the previous two files: aslink.dsp,
11850     Makefile.aslink, Makefile.bcc, and Makefile.in.
11851
11852     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
11853     .adb instead of .cdb
11854
11855 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11856
11857         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
11858         value from option --iram-size.
11859
11860 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11861
11862         * /sdcc/as/mcs51/lklist.c: added boundary check before using
11863         dram[] array.
11864
11865 2002-09-18    <wiml AT hhhh.org>
11866
11867         * SDCClrange.h: exposed setFromRange() and setToRange()
11868         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
11869           packRegsForAccUse() (bug 542397)
11870         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
11871           multiple times and emitting the fetch operations more than once
11872           added aopGetUsesAcc() function to allow binary operators to
11873           fetch their operands in the correct order; made genMinus() emit
11874           compact code for X = LITERAL - Y
11875
11876 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11877         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
11878         sprintf() in line 1267.
11879
11880 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11881         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
11882         like ports.
11883
11884 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11885         Changes to aslink (All the changes are marked with 'JCF'):
11886
11887         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
11888         summary().
11889
11890         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
11891         area BSEG.  Also moves, if possible, the DATA area down into the internal
11892         ram so more space is available.
11893
11894         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
11895         sflag.
11896
11897         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
11898         not bytes.  Function summary() which creates a memory usage summary
11899         file with extension .mem.  Reports of overlaping stack and small stack
11900         size.  If the space for the stack is less than 16 bytes aslink trows a
11901         warning.
11902
11903         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
11904         the 8051.  Option 'y' for memory summary output file.
11905
11906         Changes to sdcc (All the changes are marked with 'JCF'):
11907
11908         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
11909
11910         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
11911         overlaying area for it (uses RegBankUsed[4]).
11912
11913         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
11914         bank zero as used by default.  By default aslink locates the stack
11915         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
11916         the creation of the .mem file.  Delegates the allocation of data area
11917         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
11918         the begining of the stack area to aslink.
11919
11920         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
11921         glue() in SDCCglue.c creates an area for it.
11922
11923 2002-09-03  Borut Razem <borut.razem AT siol.net>
11924         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
11925         sdcc/src/pic/glue.c:
11926         introduced atexit() handler for teporay files removal in case of
11927         errors, assertions, ...
11928
11929 2002-08-29  Borut Razem <borut.razem AT siol.net>
11930         * sdcc/support/cpp2/auto-host_vc_in.h:
11931         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
11932         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
11933         Maybe there is a similar problem with BORLANDC? It should be checked!
11934
11935         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
11936         corrected improper use of assert: the assignment to clr variable was done inside the assert.
11937         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
11938         was not executed, and the compiler (cl) launched a warning:
11939         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
11940
11941 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11942         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
11943
11944 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
11945         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
11946
11947         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11948           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
11949           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
11950           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11951           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
11952           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
11953           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
11954         - added Release configuration in VS projects
11955         - review of compiler an linker options
11956         - VC .exe files are generated in bin_vc directory, not to interfere
11957           with binaries generated from other projects (cygwin, mingw, bcc ...)
11958
11959         * sdcc/src/yacc.dsp: added
11960
11961         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
11962         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
11963         and insert the version number definitions from .version
11964
11965         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
11966
11967         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
11968         added - genarate auto-host.h using auto-host_vc_in.h as template
11969
11970         * sdcc/sdcc_vc.h,
11971         removed from CVS, generated automatically
11972
11973 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
11974         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
11975
11976 2002-08-11  Borut Razem <borut.razem AT siol.net>
11977         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
11978
11979 2002-08-10  Borut Razem <borut.razem AT siol.net>
11980         * src/SDCCmain.c (main):
11981         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
11982         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
11983         The consequence was that some temporary files were not removed.
11984
11985         * src/SDCCglue.c:
11986         unification of code in functions tempfilename() and tempfile():
11987         function tempnam() is defined in Visual Studio 6.0 and .NET
11988
11989         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
11990
11991         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11992           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
11993         - removed compiler command line option /WX: Treats all warnings as errors
11994         - update a list of source files, included into the project
11995
11996         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11997           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
11998         changed project type to Generic Project so that can be correcly converted to VS.NET project
11999
12000         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
12001
12002         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
12003
12004         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
12005
12006         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
12007         added return 0 statements after assert() to make compiler happy
12008
12009         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
12010         added newline in the def file to keep MSC compiler satisfied
12011
12012         * sdcc/src/z80/gen.c:
12013         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
12014           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
12015         - solved MSC error in function aopDump()
12016
12017         * sdcc_vc.h: define PREFIX as "\\sdcc"
12018
12019 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
12020         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
12021
12022 2002-06-22  Scott Dattalo <scott AT dattalo.com>
12023         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
12024         - Rewrote the register banking algorithm.
12025         - Added pCode live-range analysis to registers (for now, only non-used and
12026         singly-used registers optimized away)
12027
12028         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
12029
12030         * 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.
12031
12032 2002-05-10  Scott Dattalo <scott AT dattalo.com>
12033         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
12034
12035 2002-04-22  Michael Hope  <michaelh AT vroom>
12036
12037         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
12038
12039         * configure.in (DD_COPT): Added include support required for gbdk.
12040
12041         * .version: Bumped version number just to increase it.
12042
12043         * src/SDCCmain.c: Added -nostdinc to the default options.
12044
12045 2002-04-15  Michael Hope  <michaelh AT vroom>
12046
12047         * device/lib/z80/printf.c (sprintf): Added.
12048
12049         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
12050
12051         * src/z80/peeph.def: Added transpose redundent load rule.
12052
12053         * src/z80/main.c: Added force callee saves for jaune.
12054
12055         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
12056
12057         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
12058
12059 2002-03-28  Johan Knol  <johan AT balder>
12060
12061         * src/SDCCval.c: fixed bug #532436
12062
12063 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12064         * /src/port.h:
12065         Added "char *Processor" field to the port structure.
12066
12067         * /src/SDCCmain.c:
12068         Added -p option. Allows port dependent processor to be specified.
12069
12070         * all ports:
12071         Initialized the new field char *Processor field to NULL in all ports
12072
12073         * /src/pic/*:
12074         Compiler generated registers for interrupt context saving
12075         were not getting allocated.
12076
12077 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
12078
12079         * /src/SDCCast.c:
12080         Fixed left shift. Will promote the left side of a left shift
12081         if a) left shifting more than size of operand or b) when assigned
12082         to something size > size of left side
12083
12084 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12085         * src/pic/*
12086         tons of changes. Register allocation has been
12087         rewritten. Added customization for the various PICs. Flow
12088         analysis is restructured. ...
12089
12090         * src/pic/device.h:
12091         Added
12092
12093         * src/pic/device.c:
12094         Added. device.c is a PIC port hack to accomodate variations
12095         in PIC devices.
12096
12097 2002-03-13  Michael Hope  <michaelh AT vroom>
12098
12099         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
12100
12101 2002-03-04  johanknol  <johanknol AT manik>
12102
12103         * /src/SDCCval.c: fixed
12104
12105         const unsigned char arr[][2] = { { 0, 1 } };
12106         t18.c:1: error: Initializer element is not constant
12107
12108 2002-03-04  bela  <bela AT manik>
12109
12110         * /device/include/mcs51reg.h:
12111         ds89c420 register definition update
12112
12113 2002-03-03    <johan AT FRIJA>
12114
12115         * support/Util/SDCCerr.c: did something, but don't no why anymore
12116
12117         * support/regression/tests/bug-524691.c: made it a little less shy
12118
12119         * src/SDCCast.c (decorateType): fixed bug #524697
12120
12121         * src/SDCCast.c: made some lineno improvements
12122
12123         * src/SDCCval.c (getNelements): changed warning to error
12124
12125         * src/SDCCglue.c (printIvalArray): changed warning to error
12126
12127         * src/SDCCicode.c: fixed a warning for mingw
12128
12129         * src/SDCCast.c (decorateType): fixed the << promotion for ops
12130
12131         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
12132
12133 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
12134
12135         * src/ds390/peeph.def:
12136         Added some more peephole rules
12137
12138         * src/ds390/gen.c: Various fixes & enhancements
12139
12140         * src/SDCClrange.c, src/SDCClrange.h:
12141         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
12142
12143         * src/ds390/ralloc.c:
12144         various fixes & enhancements (ds390) specific
12145
12146         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
12147         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
12148         from rallocs.
12149
12150         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
12151
12152 2002-03-02    <johan AT FRIJA>
12153
12154         * src/SDCCast.c (decorateType): fixed bug #524708
12155
12156         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
12157
12158         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
12159
12160 2002-03-01  Michael Hope  <michaelh AT vroom>
12161
12162         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
12163
12164         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
12165
12166 2002-03-01    <johan AT FRIJA>
12167
12168         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
12169
12170         * src/SDCCast.c (decorateType): fixed bug #524209
12171
12172         * src/SDCCval.c (valNot): fixed bug #524195
12173
12174 2002-02-26    <johan AT balder>
12175
12176         * src/xa51/gen.c: fixed a warning
12177
12178         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
12179
12180         * src/SDCCast.c (decorateType): fixed bug #522534
12181
12182 2002-02-23    <johan AT balder>
12183
12184         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
12185
12186 2002-02-22    <johan AT balder>
12187
12188         * src/SDCCast.c: fixed bug #514865
12189
12190         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
12191
12192 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
12193
12194         * sdcc/src/SDCCloop.c:
12195         Previous fix was not good. basic blocks that have "break" or "return" are
12196         not really partof a loop , but live ranges used in these blocks should
12197         be live thru the entire loop, so set partOfLoop but don't add them to
12198         loop region
12199
12200 2002-02-21    <johan AT FRIJA>
12201
12202         * src/SDCCcse.c: fixed bug #514308
12203
12204 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
12205
12206         * src/SDCCloop.c:
12207         Fixed BUG #519583. If a conditional block ended in a return/break
12208         statement inside a loop, it was not being considered part of the loop.
12209
12210         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
12211
12212 2002-02-10  Karl Bongers <karl AT turbobit.com>
12213
12214         * debugger/*:
12215         Fixed up SDCDB debugger somewhat.  Updated debugger/README
12216         with lots of comments and notes.
12217
12218         * device/examples/test2.c:
12219         Fix bug, "red" variable not being initialized(compiler complained).
12220
12221         * device/examples/Makefile, examples/test3.c:
12222         Add Makefile in device/examples folder, compiles test3.c
12223         for use as a multiple module SDCDB test case.
12224
12225         * sim/ucsim/cmd.src/cmdset.cc:
12226         Took out debug printfs in ucsim "next" command.
12227
12228         * sim/ucsim/xa.src:
12229         Karl and Johan start ucsim XA support.  Most dissassembly working,
12230         about 75% emulation done(plenty of work remaining).
12231
12232         * sim/ucsim/z80.src:
12233         Add Z80 support to ucsim, add test-ucz80 regression test,
12234         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
12235         Notice z80 compiler fails on examples/test3.c/crc code.
12236
12237 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
12238
12239         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
12240         Added support for --parms-in-bank1
12241
12242         * src/ds390/peeph.def:
12243         added a few more peephole optimzations
12244
12245         * src/ds390/main.c:
12246         1) added __builtin_inp & __builtin_outp used to read in data of given length
12247            from a memory mapped port
12248         2) added __builtin_memcmp
12249         3) added __builtin_swapw swap bytes of a short
12250
12251         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
12252         1) handle multiple send & receives from register bank1
12253         2) ralloc can now allocate DPTR1 to some liveRanges
12254
12255         * src/SDCCsymt.c, src/SDCCsymt.h:
12256         changes to handle multiple sends & receives
12257
12258         * src/SDCCptropt.h:
12259         added some pointer arithmetic optimization
12260
12261         * src/SDCCptropt.c:
12262         added some pointer arithmetic optimizations but not stable yet so not
12263         called from anywhere (will get this working shortly)
12264
12265         * src/SDCCopt.c: fixed for multiple sends & receives
12266
12267         * src/SDCCmain.c:
12268         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
12269         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
12270            set preprocessor defines (depending on options)
12271
12272         * src/SDCCicode.c, src/SDCCicode.h:
12273         changes made to handle multiple sends & receives
12274
12275         * src/SDCCglobl.h:
12276         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
12277
12278         * src/SDCCcse.c, src/SDCCcse.h:
12279         added function findbackward def (to be used in upcoming optimization)
12280
12281         * src/SDCCcflow.c, src/SDCCcflow.h:
12282         added function returnAtEnd - to determine if a basic block terminates with
12283         a RETURN iCode
12284
12285         * src/SDCCast.c, src/SDCCast.h:
12286         added option parms-in-bank1
12287
12288         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
12289         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
12290         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
12291         adjusted for --parms-in-bank1 option
12292
12293         * device/include/string.h:
12294         donot redefine "reentrant" keyword
12295
12296         * device/include/ds80c390.h: Added some more SFRs
12297
12298 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
12299
12300         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
12301
12302 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
12303
12304         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
12305
12306 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
12307
12308         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
12309
12310 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
12311
12312         * Added --xram-movc option
12313
12314 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
12315
12316         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
12317
12318 2002-01-11  Johan Knol
12319
12320         * Added math lib of Jesus Calvino-Fraga
12321
12322 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
12323
12324         * src/SDCCmain.c (processFile): fix processing of ../../src.c
12325         * support/regression/Makefile: new target test-mcs51-stack-auto
12326         * support/regression/ports/mcs51-stack-auto/spec.mk: added
12327
12328 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
12329
12330         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
12331
12332 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
12333
12334         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
12335
12336 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
12337
12338         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
12339
12340         * src/SDCCglue.h: add definition for printIvalChar()
12341
12342 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
12343
12344         * src/SDCCast.c: fix #498138 by Johan
12345
12346         * src/SDCCglue.c: fix #498138 by Johan
12347
12348 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
12349
12350         * support/regression/Makefile: fix clean
12351
12352         * support/regression/ports/ds390/support.c: fix transmission of last character
12353
12354 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
12355
12356         * /sdcc/src/ds390/gen.c:
12357         a) improved computing address of stack variable
12358         b) took out some #if 0 code
12359         c) improved parmBytes adjustment
12360         d) improved genPlusIncr & genMinusIncr
12361         e) genCmp could generate bad code (when left assigned to DPTR)
12362         f) Fixed bug in hasInc
12363
12364         * /sdcc/src/ds390/ralloc.c:
12365         a) packRegsForSupport could mess up live information (Fixed)
12366         b) packRegsDPTRuse could be incorrect for left & right shift
12367
12368         * /sdcc/src/mcs51/ralloc.c:
12369         packRegsForSupport could mess up the live information (Fixed)
12370
12371         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
12372
12373         * /sdcc/src/SDCCast.c:
12374         can reverse a loop even if function call is present as long
12375         as the loop control variable is local & is not passed as parameter
12376
12377 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12378
12379         * /sdcc/ChangeLog: *** empty log message ***
12380
12381         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
12382         More builtin function additions for TININative
12383
12384         * /sdcc/src/ds390/ralloc.c:
12385         Had broken the regression testsuite
12386
12387         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
12388
12389         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
12390         Added funcattr hasStackParms will be set for reentrant functions when there
12391         are paramteres on the stack, this helps in minimizing frame pointer generation
12392         typeFromStr can handle function pointers now
12393
12394         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
12395         *** empty log message ***
12396
12397 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12398
12399         * /src/ds390/gen.c, /src/ds390/main.c:
12400         More builtin function additions for TININative
12401
12402         * /src/ds390/ralloc.c:
12403         Had broken the regression testsuite
12404
12405         * /src/SDCCast.c: Fixed a bug in dumptree
12406
12407         * /src/SDCCsymt.c, /src/SDCCsymt.h:
12408         Added funcattr hasStackParms will be set for reentrant functions when there
12409         are paramteres on the stack, this helps in minimizing frame pointer generation
12410         typeFromStr can handle function pointers now
12411
12412         * /doc/builtins.txt, /doc/TININative.txt:
12413         *** empty log message ***
12414
12415
12416 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12417
12418         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
12419         ALPHA version for -mTININative
12420
12421         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
12422         updated to reflect changes in the port structure
12423
12424         * /src/port.h:
12425         added function do_assemble (similar to do_link) if non-null this function
12426         will be called to do assembly (-mTININative) requires a multi command
12427         assembly
12428         added function genAssemblerEnd will be called to generate assembler Epilogue
12429
12430         * /src/SDCCsymt.c:
12431         added _JavaNative to debug info printing
12432
12433         * /src/SDCCmain.c: added option --tini-libid
12434         added port->do_assemble function (-mTININative) has a multi command assemble
12435
12436         * /src/SDCCglue.c: Disabled "constExpr" check
12437         added port->genAssemblerEnd function
12438
12439         * /src/SDCCglobl.h: Added option --tini-libid value
12440
12441         * /src/SDCCast.h:
12442         tookout optimizeCompare from the header (has no external references)
12443
12444         * /src/SDCCast.c: made one more function "static"
12445
12446 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
12447
12448         * src/z80/mappings.i: Added z80asm support.
12449
12450         * src/z80/main.c: Added z80asm support on --asm=z80asm
12451
12452         * src/z80/gen.c: Fixed asm portability issues.
12453
12454         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
12455
12456         * src/SDCCglue.c (printExterns): Added global/extern split.
12457
12458 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
12459
12460         * support/regression/Makefile: added test for mcs51 model large
12461
12462         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
12463
12464         * support/regression/ports/gbz80/spec.mk: added -mgbz80
12465
12466 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
12467
12468         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
12469
12470 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
12471
12472         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
12473
12474         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
12475
12476 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
12477
12478         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
12479
12480         * support/regression/tests/simplefloat.c: Port to mcs51.
12481
12482 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
12483         * support/regression/tests/bug-485362.c: Added.
12484
12485         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
12486
12487         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
12488
12489         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
12490
12491         * src/z80/gen.c (aopDump): Added a dump function.
12492
12493 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
12494         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
12495
12496         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
12497
12498         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
12499
12500         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
12501
12502         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
12503
12504         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
12505
12506         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
12507
12508         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
12509
12510         * support/regression/ports/ds390/support.c: Use tinibios.
12511
12512         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
12513
12514 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
12515
12516         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
12517         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
12518
12519         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
12520
12521         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
12522
12523 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
12524
12525         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
12526
12527         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
12528         (packRegsForIYUse): Created and optimised.
12529
12530 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12531
12532         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
12533 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
12534
12535         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
12536
12537         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
12538
12539         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
12540
12541 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12542
12543         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
12544
12545         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
12546
12547 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12548
12549         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
12550
12551         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
12552
12553         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
12554
12555 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12556
12557         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
12558         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
12559         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
12560
12561         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
12562
12563         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
12564         (genNotFloat): Added.
12565         (genUminusFloat): Added.
12566
12567         * device/lib/z80/Makefile: Added floating pt stubs.
12568
12569         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
12570
12571         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
12572
12573         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
12574
12575 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12576
12577         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
12578
12579         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
12580
12581         * sdcc/support/regression/Makefile: Add port ds390.
12582
12583         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
12584
12585         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
12586
12587         * sdcc/support/regression/ports/ds390/spec.mk: Added.
12588
12589         * sdcc/support/regression/ports/ds390/support.c: Added.
12590
12591         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
12592
12593         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
12594
12595         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
12596
12597 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12598
12599         * device/include/malloc.h: Added z80 and gbz80 support.
12600
12601         * device/lib/gbz80/heap.s: Added.
12602
12603         * device/lib/z80/heap.s: Added.
12604
12605         * device/lib/malloc.c: Added z80 and gbz80 support.
12606
12607         * support/regression/tests/malloc.c (testMalloc): Added.
12608
12609         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
12610
12611         * support/regression/tests/bug-478094.c: Added.
12612
12613         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
12614
12615 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
12616
12617         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
12618
12619         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
12620
12621         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
12622
12623         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
12624
12625         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
12626
12627 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12628
12629         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
12630
12631 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
12632
12633         * support/regression/tests/bug-477927.c: Added.
12634
12635         * src/z80/peeph.def: Added minor rules.
12636
12637         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
12638
12639         * src/z80/peeph.def: Added jump optimisation modification.
12640
12641 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
12642
12643         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
12644
12645 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
12646
12647         * support/regression/tests/funptrs.c: Added.
12648
12649 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
12650
12651         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
12652
12653 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
12654
12655         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
12656
12657         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
12658
12659         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
12660         (movLeft2ResultLong): Created.
12661
12662         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
12663         (joinPushes): Added.  Joins two char pushes into a word push.
12664
12665 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
12666
12667         * support/cpp2/Makefile.in (install): Added creation of dest dir.
12668
12669         * support/makebin/Makefile (install): Added creation of dest dir.
12670
12671 2001-10-24 Karl Bongers <karl AT turbobit.com>
12672
12673         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
12674
12675 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
12676
12677         * src/z80/ralloc.c: Turned off faulty pack for one use.
12678
12679         * src/z80/peeph-gbz80.def: Removed redundent restart options.
12680
12681         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
12682
12683 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
12684
12685         * support/regression/Makefile: Improved clean
12686
12687         * support/regression/ports/gbz80/spec.mk: Added clean
12688
12689         * support/regression/ports/host/spec.mk: Added clean
12690
12691         * support/regression/ports/z80/spec.mk: Added clean
12692
12693         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
12694
12695         * support/regression/ports/mcs51/timeout.c: little improvements
12696
12697 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
12698
12699         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
12700
12701         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
12702
12703         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
12704
12705 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
12706
12707         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
12708
12709         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
12710
12711 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
12712         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
12713
12714         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
12715
12716         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
12717
12718         * src/mcs51/main.c (_linkCmd): Added bin path to command.
12719
12720         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
12721
12722         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
12723
12724         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
12725
12726         * support/regression/tests/longor.c: Added.
12727
12728 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
12729
12730         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
12731
12732         * as/mcs51/aslink.h: define PATH_MAX
12733
12734         * as/mcs51/asm.h: define PATH_MAX
12735
12736         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
12737
12738         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
12739
12740         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
12741
12742         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
12743
12744         * src/SDCCglobl.h: define PATH_MAX
12745
12746         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
12747
12748         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
12749
12750 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
12751
12752         * src/z80/gen.c (gencjneshort): Fixed
12753
12754         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
12755
12756 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
12757
12758         * support/regression/tests/bug-469671.c: Added.
12759
12760         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
12761
12762 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
12763
12764         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
12765
12766         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
12767
12768 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
12769
12770         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
12771
12772         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
12773
12774         * src/device/lib/_mullong.c : removed hint: nooverlay bug
12775
12776         * src/device/lib/_divuint.c : removed hint: nooverlay bug
12777
12778         * src/device/lib/_divulong.c: removed hint: nooverlay bug
12779
12780         * src/device/lib/_moduint.c : removed hint: nooverlay bug
12781
12782         * src/device/lib/_modulong.c: removed hint: nooverlay bug
12783
12784 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
12785
12786         * 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.
12787
12788         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
12789
12790         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
12791
12792 2001-10-07    <johan AT FRIJA>
12793
12794         * device/lib/gets.c (gets): fixed the return value.
12795
12796 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
12797         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
12798
12799         * 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.
12800
12801         * 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.
12802
12803         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
12804
12805         * src/pic/gen.c: Removed Safe_strdup.
12806
12807         * configure.in: Added option to enable libgc support.
12808
12809         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
12810         (bitVectUnion): Optimised.
12811         (bitVectIntersect): Optimised.
12812         (bitVectBitsInCommon): Optimised.
12813         (bitVectCplAnd): Optimised.
12814
12815         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
12816
12817 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12818
12819         * src/SDCCmain.c: distinguish between assembler debug and plain options
12820
12821         * src/avr/main.c:   remove standard assembler options
12822
12823         * src/ds390/main.c: remove standard assembler options
12824
12825         * src/mcs51/main.c: remove standard assembler options
12826
12827         * src/port.h: removed "PENDING" comment
12828
12829 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12830
12831         * src/device/lib/_mulint.c  : new, with assember functions
12832
12833         * src/device/lib/_mullong.c : new, with assember functions
12834
12835         * src/device/lib/_divuint.c : with assember functions
12836
12837         * src/device/lib/_divsint.c : with assember functions
12838
12839         * src/device/lib/_divulong.c: with assember functions
12840
12841         * src/device/lib/_divslong.c: with assember functions
12842
12843         * src/device/lib/_moduint.c : with assember functions
12844
12845         * src/device/lib/_modsint.c : with assember functions
12846
12847         * src/device/lib/_modulong.c: with assember functions
12848
12849         * src/device/lib/_modslong.c: with assember functions
12850
12851         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
12852
12853         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
12854
12855         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
12856                                       replaced _mululong.c and _mulslong.c by _mullong.c
12857
12858 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12859
12860         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
12861
12862 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12863
12864         * src/SDCCglue.c: test, if win32api is available for MINGW
12865
12866 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12867
12868         * src/SDCCsymt.c: no more _modifier in printTypeChain()
12869         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
12870         * support/regression/ports/gbz80/spec.mk: removed GENERIC
12871         * support/regression/ports/host/spec.mk: removed GENERIC
12872         * support/regression/ports/mcs51/spec.mk: removed GENERIC
12873         * support/regression/ports/z80/spec.mk: removed GENERIC
12874
12875 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
12876
12877         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
12878
12879         * support/regression/tests/bug-467035.c: Created.
12880
12881 2001-10-01    <johan AT FRIJA>
12882
12883         * src/SDCC.y: fixed bug #466586 part 1
12884
12885 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
12886
12887         * SDCCicode.c: z80 has no generic pointers
12888         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
12889
12890 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
12891
12892         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
12893
12894 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
12895
12896         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
12897
12898         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
12899
12900 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
12901
12902         * configure.in: Fixed up so that ucsim is only configured once.
12903
12904         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
12905
12906         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
12907         (getPathDifference): As above.
12908
12909         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
12910
12911         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
12912
12913 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
12914         * .version: Updated to 2.3.1
12915
12916         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
12917         Added copyright header.
12918
12919         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
12920         (assemble): Added support for macro based assembler commands.
12921         (linkEdit): Added support for macro based linker commands.
12922         (preProcess): Changed the pre-processor to use macros.
12923         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
12924         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
12925
12926         * device/lib/z80/crt0.s: Added module name for debugging.
12927
12928 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
12929
12930         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12931
12932         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
12933
12934         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
12935
12936         * src/Makefile.in: Added SDCCmacro and SDCCutil
12937
12938 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
12939
12940         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12941
12942 2001-09-16    <johan AT FRIJA>
12943
12944         * 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.
12945
12946 2001-09-15    <johan AT FRIJA>
12947
12948         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
12949         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
12950
12951 2001-09-11    <johan AT FRIJA>
12952
12953         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
12954
12955 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
12956
12957         * support/regression/tests/bug-460444.c: Added test case.
12958
12959         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
12960         (genCast): Added justification for all of the asserts.
12961
12962 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
12963
12964         * support/regression/support.c: _xdata replaced by xdata
12965
12966         * support/regression/spec.mk: removed _generic
12967
12968 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
12969
12970         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
12971
12972         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
12973         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
12974
12975         * src/z80/peeph.def: Added a rule to optimise shift then compare.
12976
12977         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
12978
12979         * support/regression/tests/bug-460010.c: Added test case.
12980
12981         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
12982
12983 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
12984
12985         * support/regression/Makefile: inter-port-clean adjusted for mcs51
12986
12987         * support/regression/testfwk.c: removed workaround for bug #436344
12988
12989         * support/regression/tests/bp.c: use less memory with mcs51
12990
12991         * support/regression/tests/bug-441448.c: use less memory
12992
12993         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
12994
12995         * support/regression/collate-results.py: typo
12996
12997 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
12998
12999         * support/regression/tests/fetchoverlap.c: Added new test case.
13000
13001         * support/regression/tests/bp.c: Added new test case.
13002
13003         * support/regression/tests/bug-448984.c: Added new test case.
13004
13005         * support/regression/tests/pow2shifts.c: Added new test case.
13006
13007         * src/z80/gen.c: Turned off the noise it normally generates for the release.
13008         (genlshTwo): Fixed right shift for count > 8.
13009
13010         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
13011
13012 2001-09-08    <johan AT FRIJA>
13013
13014         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
13015
13016 2001-09-07    <johan AT FRIJA>
13017
13018         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
13019
13020         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
13021
13022 2001-09-06    <johan AT FRIJA>
13023
13024         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
13025         * bernhard noted me at this: "() equals to (void)" (1.38)
13026
13027 2001-09-05    <johan AT FRIJA>
13028
13029         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
13030
13031 2001-09-04    <johan AT FRIJA>
13032
13033         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
13034
13035
13036 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
13037
13038         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
13039
13040 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
13041
13042         * link/z80/aslink.h: Fixed path for PATH_MAX
13043
13044 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
13045
13046         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
13047
13048         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
13049
13050         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
13051
13052         * 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.
13053
13054 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
13055
13056         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
13057         (genCmp): Fixed up genCmp for the GB with longs.
13058
13059         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
13060
13061         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
13062
13063         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
13064
13065         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
13066
13067 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
13068
13069         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
13070
13071 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
13072
13073         * 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.
13074
13075         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
13076
13077 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
13078
13079         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
13080
13081         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
13082
13083 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
13084
13085   * sim/ucsim/configure:    little improvement of Cygwin-detection
13086   * sim/ucsim/configure.in: little improvement of Cygwin-detection
13087   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
13088   * support/regression/tests/bug-221100.c: small changes for mcs51
13089   * support/regression/tests/bug-221168.c: small changes for mcs51
13090   * support/regression/tests/bug-227710.c: small changes for mcs51
13091   * support/regression/tests/staticinit.c: small changes for mcs51
13092   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
13093   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13094   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13095
13096 $Revision$