* src/SDCC.lex: (stringLiteral) fixed bug #1351710
[fw/sdcc] / ChangeLog
1 2006-12-18 Borut Razem <borut.razem AT siol.net>
2
3         * src/SDCCutil.c: fixed a bug in (get_pragma_token)
4         * src/pic16/main.c, src/SDCC.lex, src/z80/main.c:
5           small cosmetic changes
6         * src/SDCC.lex: (stringLiteral) fixed bug #1351710
7         * support/regression/tests/bug-1351710.c: added regression test
8
9 2006-12-18 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10
11         * doc/sdccman.lyx: added the long missed iCode table
12           "<where is figure II?>", added links to wiki
13
14 2006-12-17 Borut Razem <borut.razem AT siol.net>
15
16         * doc/sdccman.lyx, src/pic16/main.c, src/pic/main.c, src/port.h,
17           src/SDCC.lex, src/SDCCutil.[ch], src/z80/main.c,
18           support/Util/SDCCerr.[ch]: removed deprecated pragmas,
19           unified table driven pragma handling, pragma argument type checking
20         * support/Util/dbuf.c: (dbuf_set_size) allow to set size equal to the
21           current one - version 1.1.3
22         * src/SDCCmain.c: (setParseWithComma) substituted brain damaged strtok
23
24 2006-12-13 Raphael Neider <rneider AT web.de>
25
26         * src/pic/device.h: removed AssignedMemory structure and macros
27         * src/pic/device.c: removed global finalMapping (linker assigns
28             memory locations),
29           (register_map): add SFRs to remembered memRanges
30           (addMemRange,isSFR,dump_map,dump_sfr,mapRegister,assignRegister,
31           assignFixedRegisters,assignRelocatableRegisters): removed,
32           (setMaxRAM,validAddress): adapted accordingly,
33           (pic14_hasSharebank,pic14_getSharedStack): only report and use
34             reasonably sized sharebanks,
35         * src/pic/ralloc.c (writeUsedRegs): stripped down (remove?),
36           (allDefsOutOfRange): removed unused code,
37         * src/pic/main.c (_process_pragma): removed memmap/maxram pragma
38             handling
39         * src/pic/pcode.c (register_reassign): removed recursion warning,
40             fired far too often,
41         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap): modified
42             to use existing pic14_stringInSet() to avoid duplicate symbols,
43             tidied up the code a bit,
44           (pic14printLocals): added in symmetry to printExterns, replaces
45             writeUsedRegs more or less,
46           (picglue): call new pic14_printLocals(),
47         * device/include/pic/pic*.h: removed #pragma memmap directives,
48             information gathered from include/pic/pic14devices.txt
49         * support/scripts/inc2h.pl: do not emit #pragma memmap lines
50
51 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
52
53         * device/include/mcs51/C8051F520.h: fixed buggy CPT0MX
54
55 2006-12-11 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
56
57         * device/include/mcs51/cc2430.h: fixed missing ';'
58
59 2006-12-10 Raphael Neider <rneider AT web.de>
60
61         * device/lib/pic16/libc/stdio/vfprintf.c,
62         * device/lib/pic16/libc/stdio/printf_small.c,
63         * device/lib/pic16/libc/stdio/printf_timy.c: pop int from stack for
64           char arguments, as char varargs are cast to int by the caller,
65           hopefully fixes #1604915 (other device libraries are still affected)
66
67 2006-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
68         * src/mcs51/ralloc.c (packRegsForAssign),
69         * src/hc08/ralloc.c (packRegsForAssign): fixed bug #1605880
70
71 2006-12-10 Maarten Brock <sourceforge.brock AT dse.nl>
72
73         * device/include/malloc.h: removed init_dynamic_memory
74         * device/lib/malloc.c: made init_dynamic_memory static and automatically
75           call it once from malloc. Also use _sdcc_heap[] from _heap.c
76         * device/lib/_heap.c: new, added, contains _sdcc_heap[]
77         * device/lib/libsdcc.lib,
78         * device/lib/Makefile.in,
79         * support/regression/ports/mcs51-xstack-auto/spec.mk: added _heap.c
80         * doc/sdccman.lyx: documented use of new _heap.c
81         * support/regression/tests/malloc.c: removed init_dynamic_memory
82         * src/cdbFile.c(spacesToUnderscores): new function,
83           (cdbWriteEndFunction, cdbWriteCLine): use spacesToUnderscores, fixes bug
84           1068030
85         * device/include/tinibios.h: removed defines for putchar and getchar
86         * device/lib/ds390/Makefile.in: added putchar.c
87         * device/lib/ds390/putchar.c: new, added, fixes bug 1465671
88
89 2006-12-09 Borut Razem <borut.razem AT siol.net>
90
91         * support/cpp2/sdcc.h: prevent multiple inclusion
92         * support/cpp2/options.h: deleted
93
94 2006-12-08 Borut Razem <borut.razem AT siol.net>
95
96         * support/cpp2/sdcc.h: removed x*alloc() macros
97         * support/cpp2/libiberty.h: uncommented out x*alloc() declarations
98         * support/cpp2/Makefile.bcc, support/cpp2/Makefile.in,
99           support/cpp2/sdcpp.sdc: x*alloc files added to the project
100         * support/cpp2/system.h: moved #include "sdcc.h"
101         * support/cpp2/libiberty/xexit.c, support/cpp2/libiberty/xmalloc.c,
102           support/cpp2/libiberty/xstrdup.c, support/cpp2/libiberty/xstrerror.c:
103           added
104         * support/cpp2/sdcppinit.c: added -isysroot, -fsigned-char,
105           -funsigned-char options
106         * support/cpp2/sdcppmain.c: fixed bug 1611411
107
108 2006-12-07 Borut Razem <borut.razem AT siol.net>
109
110         * support/cpp2/cpplib.c: reverted sdcpp special handling of _Pragma()
111           directive
112
113 2006-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
114
115         * src/SDCCsymt.c (addDecl): fixed bug 1609244
116         * src/SDCCmain.c (linkEdit): fixed bug 1609279
117         * doc/sdccman.lyx,
118         * .version: bumped to 2.6.2 because a) it's been a while
119           b) the linker sources have moved c) the preprocessor is upgraded
120
121 2006-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
122
123         * support/regression/tests/snprintf.c: some checks
124         * lib/src/printf_large.c: %bc: read char instead of int from stack
125
126 2006-12-03 Maarten Brock <sourceforge.brock AT dse.nl>
127
128         * device/include/mcs51/cc2430.h: inserted _XPAGE
129
130 2006-12-02 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
131
132         * device/include/mcs51/cc2430.h: added
133
134 2006-12-02 Maarten Brock <sourceforge.brock AT dse.nl>
135
136         * device/include/asm/default/features.h,
137         * device/include/asm/ds390/features.h,
138         * device/include/mcs51/at89s53.h,
139         * device/include/ser.h,
140         * device/include/ser_ir.h,
141         * device/include/serial.h: changed keywords to double underscore variants,
142           fixes bug 1590261 some more, thanks Steven Borley
143
144 2006-12-01 Raphael Neider <rneider AT web.de>
145
146         * src/pic/pcode.c (register_reassign): do not crash on recursive code
147           but emit warning (recursion is not supported for pic14)
148
149 2006-11-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
150
151         * src/mcs51/peeph.def: added 101.a,b (moves to int/long xdata)
152         * doc/sdccman.lyx: various small changes, acknowledged Sourceforge
153
154 2006-11-30 Raphael Neider <rneider AT web.de>
155
156         * src/pic/device.c (dump_sfr): always emit symbols
157         * src/pic/glue.c (pic14printPublics): fixed typo
158
159 2006-11-30 Raphael Neider <rneider AT web.de>
160
161         * src/pic/device.c (create_pic,ram_map): add memRange entries to PIC
162           (pic14_getSharebankSize, pic14_getSharebankAddress): replaced with
163           (pic14_hasSharebank,pic14_isShared,pic14_allRAMShared,
164            pic14_getSharedStack): NEW, evaluate the memRange entries to locate
165            a sharebank, use a non-shared bank for the stack if none available
166         * src/pic/device.h (struct memRange): added linked list next field,
167           added prototypes for above functions
168         * src/pic/ralloc.c (initStack): handle shared and banked stacks,
169           (typeRegWithIdx): accept fixed and unfixed stack registers
170         * src/pic/pcode.c (pCodeInitRegisters): use new functions to create
171           the stack, handle shared and banked stack (except for WSAVE),
172           (insertBankSel): removed useless optimization (will never fire),
173           (FixRegisterBanking): added optimization for devices with only one
174           possibly aliased bank of memory, like 16f84
175         * src/pic/glue.c (pic14_constructAbsMap): back to udata_ovr, as some
176           devices have no SHAREBANK in the linker script
177         * device/include/pic/pic14devices.txt: documented memmap
178         * device/lib/pic/libdev/Makefile.in: removed --stack-loc again
179
180 2006-11-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
181
182         * src/hc08/gen.c (transferRegReg, loadRegFromAop, forceStackedAop,
183           storeRegToAop, freeAsmop, genPlusIncr, genPlus, genPointerGetSetOfs,
184           genAnd, genOr, genXor, genLeftShiftLiteral, genRightShiftLiteral,
185           genhc08Code): switched most of the D (debug) macros to DD (detailed
186           debug) macros to better control clutter in the generated .asm file.
187         * src/hc08/gen.c: (forceStackedAop, genUminus, genLeftShift,
188           genRightShift): fixed bug with non-constant bit shift stored to
189           a volatile result (SF Open Discussion forum thread #1616749).
190           Single byte case is not yet optimized.
191
192 2006-11-28 Maarten Brock <sourceforge.brock AT dse.nl>
193
194         * device/include/asm/mcs51/features.h,
195         * device/include/malloc.h,
196         * device/include/stdio.h: changed keywords to double underscore variants,
197           fixes bug 1590261
198
199 2006-11-27 Borut Razem <borut.razem AT siol.net>
200
201         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
202           support/cpp2/Makefile.in, support/cpp2/cppfiles.c,
203           support/cpp2/output.h, support/cpp2/cppinit.c,
204           support/cpp2/cpplib.c, support/cpp2/cpplib.h,
205           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
206           support/cpp2/cppdefault.c, support/cpp2/system.h,
207           support/cpp2/cpphash.h, support/cpp2/cpplex.c,
208           support/cpp2/cppdefault.h, support/cpp2/mbchar.c,
209           support/cpp2/prefix.c, support/cpp2/except.h,
210           support/cpp2/hwint.h, support/cpp2/cppmacro.c,
211           support/cpp2/line-map.h, support/cpp2/sdcpp.dsp,
212           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
213           support/cpp2/version.c, support/cpp2/cppmain.c,
214           support/cpp2/version.h, support/cpp2/hashtable.c,
215           support/cpp2/cpperror.c:
216           synchronized with GCC CPP release version 3.3.6,
217           the latest where cppmain.c still exists.
218         * support/cpp2/cpptrad.c, support/cpp2/sdcppmain.c,
219           support/cpp2/sdcppinit.c: added
220
221 2006-11-27 Borut Razem <borut.razem AT siol.net>
222
223         * support/cpp2/cpplex.c:
224           fixed _asm ... _endasm handling bug, introduce with GCC CPP
225           synchronization
226         * support/cpp2/cpplib.c: removed definitions of unused variables
227
228 2006-11-26 Borut Razem <borut.razem AT siol.net>
229
230         * support/cpp2/libiberty.h: commented out x*alloc() declarations
231           since they are redefined by macros in support/cpp2/sdcc.h
232         * support/cpp2/sdcc.h: x*alloc macro redefinition
233
234 2006-11-25 Borut Razem <borut.razem AT siol.net>
235
236         * support/cpp2/cppexp.c, support/cpp2/hashtable.h,
237           support/cpp2/configure, support/cpp2/Makefile.in,
238           support/cpp2/cppfiles.c, support/cpp2/output.h,
239           support/cpp2/cppinit.c, support/cpp2/cpplib.c,
240           support/cpp2/config.h, support/cpp2/cpplib.h,
241           support/cpp2/Makefile.bcc, support/cpp2/cpphash.c,
242           support/cpp2/cppdefault.c, support/cpp2/config.in,
243           support/cpp2/system.h, support/cpp2/cpplex.c,
244           support/cpp2/cpphash.h, support/cpp2/mbchar.c,
245           support/cpp2/cppdefault.h, support/cpp2/prefix.c
246           support/cpp2/hwint.h, support/cpp2/mbchar.h,
247           support/cpp2/prefix.h, support/cpp2/cppmacro.c,
248           support/cpp2/configure.in, support/cpp2/intl.h,
249           support/cpp2/sdcpp.dsp, support/cpp2/acconfig.h,
250           support/cpp2/sdcc.h, support/cpp2/mkdeps.c,
251           support/cpp2/version.c, support/cpp2/cppmain.c,
252           support/cpp2/ansidecl.h, support/cpp2/libiberty.h,
253           support/cpp2/hashtable.c, support/cpp2/aclocal.m4,
254           support/cpp2/cpperror.c,
255           support/cpp2/libiberty/safe-ctype.c,
256           support/cpp2/libiberty/safe-ctype.h,
257           support/cpp2/libiberty/splay-tree.c,
258           support/cpp2/libiberty/obstack.c,
259           support/cpp2/libiberty/lbasename.c,
260           support/cpp2/libiberty/splay-tree.h,
261           support/cpp2/libiberty/obstack.h:
262           synchronized with GCC CPP release version 3.2.3,
263           the latest before integration of cpp into gcc
264         * support/cpp2/except.h, support/cpp2/line-map.c,
265           support/cpp2/line-map.h,
266           support/cpp2/libiberty/hex.c,
267           support/cpp2/libiberty/concat.c,
268           support/cpp2/libiberty/filenames.h: added
269         * support/cpp2/intl.c: deleted
270
271 2006-11-24 Borut Razem <borut.razem AT siol.net>
272
273         * src/SDCC.y: enabled compilation of empty source file
274         * support/Util/SDCCerr.[ch]: added sdcc warning 190 -
275           "ISO C forbids an empty source file"
276         * device/lib/_startup.c, device/lib/printf_tiny.c: disable warning 190
277           if all the code is ifdefed out.
278
279 2006-11-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
280
281         * src/hc08/gen.c (genPcall): fix for bug #1601032
282
283 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
284
285         * device/include/mcs51/c8051f000.h, device/include/mcs51/C8051F000.h,
286         * device/include/mcs51/c8051f018.h, device/include/mcs51/C8051F018.h,
287         * device/include/mcs51/c8051f020.h, device/include/mcs51/C8051F020.h,
288         * device/include/mcs51/c8051f040.h, device/include/mcs51/C8051F040.h,
289         * device/include/mcs51/c8051f060.h, device/include/mcs51/C8051F060.h,
290         * device/include/mcs51/c8051f120.h, device/include/mcs51/C8051F120.h,
291         * device/include/mcs51/c8051f200.h, device/include/mcs51/C8051F200.h,
292         * device/include/mcs51/c8051f300.h, device/include/mcs51/C8051F300.h,
293         * device/include/mcs51/c8051f310.h, device/include/mcs51/C8051F310.h,
294         * device/include/mcs51/c8051f320.h, device/include/mcs51/C8051F320.h,
295         * device/include/mcs51/c8051f326.h, device/include/mcs51/C8051F326.h,
296         * device/include/mcs51/c8051f330.h, device/include/mcs51/C8051F330.h,
297         * device/include/mcs51/c8051f340.h, device/include/mcs51/C8051F340.h,
298         * device/include/mcs51/c8051f350.h, device/include/mcs51/C8051F350.h,
299         * device/include/mcs51/c8051f410.h, device/include/mcs51/C8051F410.h:
300           Renamed to all upper case as per the standard set by SiLabs
301
302 2006-11-23 Maarten Brock <sourceforge.brock AT dse.nl>
303
304         * device/include/mcs51/C8051F520.h: new, added
305         * device/include/mcs51/compiler.h: added link about predefined macros
306
307 2006-11-23 Raphael Neider <rneider AT web.de>
308
309         * src/regression/Makefile: add -L path to fresh library
310         * src/regression/simulate: emphasize FAILED output
311         * src/regression/create_stc: output _failures from gpsim
312         * src/regression/compare4.c,
313         * src/regression/rotate6.c: fixed char literals,
314           all compile, all run =8-D
315
316         * src/pic/pcode.h: added isPCASMDIR macro
317         * src/pic/gen.c (genAnd): fixed bit offset
318         * src/pic/ralloc.c (allocNewDirReg,allocDirReg,allocRegByName,
319           packBits): unified register numbering schemes,
320           (newReg): do not insert stack registers into hash table,
321           (initStack): unpinned pseudo stack, simplified,
322           (typeRegWithIdx): fixed retrieval of stack registers,
323         * src/pic/pcode.c (addpCodeComment,sameBank): added,
324           (pCodeReplace): removed invalid assertion,
325           (insertPCodeInstruction): fixed newly added labels,
326           (insertBankSwitch,BankSelect,IsBankChange,DoBankSelect,
327           FixRegisterBankingInFlow,compareBankFlow,FixBankFlow,
328           DumpFlow): removed unsed (broken?) code,
329           (insertBankSel): prevent STATUS from being BANKSELed,
330           (FixRegisterBanking): rewritten from scratch, implemented generic
331             optimizations (suppress BANKSELs to same register and to registers
332             present in all banks),
333           (AnalyzeBanking): update flow after BANKSELection
334
335         * src/pic/glue.c (pic14_constructAbsMap): emit pseudo stack in
336             sharebank, let linker place it, mark STKxx symbols as emitted
337
338 2006-11-21 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
339
340         * src/regression/arrays.c,
341         * src/regression/bank1.c,
342         * src/regression/bool2.c,
343         * src/regression/compare7.c,
344         * src/regression/compare8.c,
345         * src/regression/compare9.c,
346         * src/regression/compare10.c,
347         * src/regression/configword.c,
348         * src/regression/for.c,
349         * src/regression/mult1.c,
350         * src/regression/pointer1.c,
351         * src/regression/rotate6.c,
352         * src/regression/string1.c,
353         * src/regression/struct1.c,
354         * src/regression/Makefile: make PIC14 regression tests run again
355           (3 fail, 6 won't compile)
356
357 2006-11-21 Raphael Neider <rneider AT web.de>
358
359         * device/include/pic16/pic18f4550.h,
360         * device/include/pic16/pic18f4455.h,
361         * device/lib/pic16/libdev/pic18f4550.c,
362         * device/lib/pic16/libdev/pic18f4455.c: fixed #1578591 and #1595144
363         * configure.in: removed superfluous closing bracket
364
365 2006-11-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
366
367         * device/lib/expf.c: Fixed bug 1599523: result of expf(x) is
368           always positive.
369
370 2006-11-21 Raphael Neider <rneider AT web.de>
371
372         * src/pic/device.{c,h}: added pic14_getPIC()
373         * src/pic/gen.c (continueIfTrue,jumpIfTrue): added PIC code,
374           (genAnd): added PIC code for one case, fixes #1597044
375         * src/pic/pcode.c (BankSelect): Ohoh, added generic optimization for
376           SFRs that are present in all banks (e.g., STATUS)
377
378 2006-11-20 Raphael Neider <rneider AT web.de>
379
380         * src/pic/pcode.c: changed inverted ops for DECFSZ/DECFSZW and
381           INCFSZ/INCFSZW and declared them as changing Z bit,
382           (insertPCodeInstruction): correctly invert the above instructions,
383           fixes #1599333,
384           (DoBankSelect): don't panic on po_immediates
385
386 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
387
388         * as/link/aslink.h,
389         * as/link/mcs51/lkihx.c (newArea),
390         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
391         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
392
393 2006-11-11 Raphael Neider <rneider AT web.de>
394
395         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
396           bitfield symbols, fixes #1579535 (once more...).
397
398 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
399
400         * support/regression/generate-cases.py,
401         * support/regression/fwk/include/testfwk.h,
402         * support/regression/fwk/lib/testfwk.c: used code pointers,
403           (about 50kByte less code generated for mcs51)
404
405 2006-11-06 Borut Razem <borut.razem AT siol.net>
406
407         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
408           debugger/mcs51/configure: fixed failed check because the function
409           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
410           who submitted the patch for gpsim.
411         * debugger/mcs51/configure.in: removed the result message
412         * debugger/mcs51/Makefile.in: fixed the config.status warning
413           "... seems to ignore the --datarootdir setting"
414
415 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
416
417         * device/include/mcs51/c8051f020.h,
418         * device/include/mcs51/c8051f040.h,
419         * device/include/mcs51/c8051f060.h,
420         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
421         * src/z80/gen.c (gencjneshort),
422         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
423
424 2006-10-31 Borut Razem <borut.razem AT siol.net>
425
426         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
427           debugger/mcs51/configure: get readline version
428
429 2006-10-30 Borut Razem <borut.razem AT siol.net>
430
431         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
432         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
433           debugger/mcs51/configure: locate readline even when cross compiling
434         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
435
436 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
437
438         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
439           serial port.
440
441 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
442
443         * device/include/malloc.h,
444         * device/lib/calloc.c,
445         * device/lib/free.c,
446         * device/lib/malloc.c,
447         * device/lib/realloc.c: moved definition of struct into sources
448         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
449
450 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
451
452         * as/asx8051.dsp: corrected output directories
453         * as/link/hc08: new directory for hc08 linker
454         * as/hc08/aslink.h,             as/link/aslink.h,
455         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
456         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
457         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
458         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
459         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
460         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
461         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
462         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
463         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
464         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
465         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
466         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
467         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
468         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
469         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
470         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
471         * as/link/hc08/conf.mk,
472         * configure,
473         * configure.in,
474         * Makefile.in,
475         * sdcc.dsw: moved hc08 linker to as/link/hc08
476         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
477         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
478         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
479         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
480         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
481         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
482         * as/link/mcs51/aslink.dsp,
483         * as/link/mcs51/Makefile.in: factored out the common files
484         * as/hc08/lkstore.c: deleted, use the one already in as/link/
485         * as/clean.mk: extra cleaning common files
486         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
487         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
488         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
489
490 2006-10-29 Raphael Neider <rneider AT web.de>
491
492         * src/pic/ralloc.c (newReg): create aliases for registers with
493           multiple names to fix #1579535 and #1584001,
494           (regWithIdx,dirregWithName): resolve aliases on lookup
495         * src/pic/pcode.c (DoBankSelect): die with error message on failing
496           bankselect
497         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
498           to prevent build errors on small devices
499
500 2006-10-28 Raphael Neider <rneider AT web.de>
501
502         * src/pic/gen.c (genFunction,genCall): drop "same code page"
503           assumption within interrupt handlers, fixes #1584940
504         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
505           "emitted" to avoid emitting them again in udata
506
507 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
508
509         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
510         Removed.
511
512 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
513
514         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
515         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
516         on/off CR to CRLF conversion.
517
518 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
519
520         * doc/sdccman.lyx: updated IRQ section
521
522 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
523
524         * device/lib/serial_io.c: removed
525         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
526         replacements for serial_io.c
527
528 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
529
530         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
531
532 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
533
534         * device/lib/serial_io.c: Default putchar() and getchar() for
535           mcs51 uses serial port.
536
537 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
538
539         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
540
541 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
542
543         * support/regression/ports/mcs51/support.c: smaller
544         _sdcc_external_startup()
545         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
546
547 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
548
549         * device/lib/gbz80/crt0.s,
550         * device/lib/gbz80/crt0_rle.s,
551         * device/lib/gbz80/div.s,
552         * device/lib/gbz80/fstubs.s,
553         * device/lib/gbz80/heap.s,
554         * device/lib/gbz80/mul.s,
555         * device/lib/gbz80/putchar.s,
556         * device/lib/gbz80/stubs.s,
557         * device/lib/z80/crt0.s,
558         * device/lib/z80/crt0_rle.s,
559         * device/lib/z80/div.s,
560         * device/lib/z80/fstubs.s,
561         * device/lib/z80/heap.s,
562         * device/lib/z80/mul.s,
563         * device/lib/z80/putchar.s,
564         * device/lib/z80/stubs.s: reverted, I was mistaken
565
566 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
567
568         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
569         * support/regression/ports/mcs51/support.c: removed race
570         condition on TI in _putchar allowing to use serial port mode 0
571
572 2006-10-20 Borut Razem <borut.razem AT siol.net>
573
574         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
575
576 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
577
578         * device/lib/gbz80/crt0.s,
579         * device/lib/gbz80/crt0_rle.s,
580         * device/lib/gbz80/div.s,
581         * device/lib/gbz80/fstubs.s,
582         * device/lib/gbz80/heap.s,
583         * device/lib/gbz80/mul.s,
584         * device/lib/gbz80/putchar.s,
585         * device/lib/gbz80/stubs.s,
586         * device/lib/z80/crt0.s,
587         * device/lib/z80/crt0_rle.s,
588         * device/lib/z80/div.s,
589         * device/lib/z80/fstubs.s,
590         * device/lib/z80/heap.s,
591         * device/lib/z80/mul.s,
592         * device/lib/z80/putchar.s,
593         * device/lib/z80/stubs.s: removed all leading underscores from area names
594
595 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
596
597         * support/regression/ports/mcs51/support.c: use highest baudrate so the
598           regression tests are not waiting in the simulator for simulated
599           transmission of debug output
600
601 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
602
603         * device/lib/printf_large.c: slightly smaller
604         * doc/sdccman.lyx: do not use spaces within html links
605
606 2006-10-16 Borut Razem <borut.razem AT siol.net>
607
608         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
609           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
610           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
611           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
612           debugger/mcs51/configure:
613           [ 1185668 ] add gnu readline support to sdcdb - enabled
614
615 2006-10-16 Raphael Neider <rneider AT web.de>
616
617         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
618           fixes #1577882, removes close to all banking optimizations
619
620 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
621
622         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
623           variables in code memory
624         * support/regression/tests/absolute.c: added test for this
625
626 2006-10-15 Raphael Neider <rneider AT web.de>
627
628         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
629           devices,
630           (BankSelect): emit BANKSEL before touching linker-placed regs,
631           fixes #1570934
632
633 2006-10-10 Raphael Neider <rneider AT web.de>
634
635         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
636         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
637         * src/pic/main.c (_pic14_parseOptions),
638         * src/pic/main.h: mostly reverted to previous state, now use results
639             from SDCCmain.c's argument parsing
640
641 2006-10-10 Borut Razem <borut.razem AT siol.net>
642
643         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
644           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
645           [ 1185668 ] add gnu readline support to sdcdb -
646           prepared for READLINE, not enabled yet,
647           thanks to <tal.bav AT gmail.com>
648
649 2006-10-10 Raphael Neider <rneider AT web.de>
650
651         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
652         * src/pic16/devices.inc,
653         * device/include/pic16 (pic18f[24]620.h),
654         * device/include/pic18fregs.h,
655         * device/lib/pic16/pics.all,
656         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
657             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
658             Gary Plumbridge and Anton Strobl
659
660 2006-10-10 Raphael Neider <rneider AT web.de>
661
662         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
663           --stack-siz=NUM options to configure the argument passing stack
664         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
665         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
666           (pic14_getSharebankSize): obey --stack-siz=NUM,
667           (pic14_getSharebankAddress): obey --stack-loc=NUM
668
669 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
670
671         * doc/sdccman.lyx: added to the manual
672         * doc/figures/ddd_example.png: added (neither pdflatex nor
673         most browsers seem to like the .eps file)
674
675 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
676
677         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
678         to /tmp and /var/tmp acc. LSB
679         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
680         RESULT_TYPE_IFX
681         * support/regression/tests/onebyte.c: added test
682
683 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
684
685         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
686
687 2006-10-05 Borut Razem <borut.razem AT siol.net>
688
689         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
690           thanks to dfulab:
691           - sdcc.dsw: changed property eol-style to CRLF
692           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
693
694 2006-10-04 Raphael Neider <rneider AT web.de>
695
696         * device/include/pic/{pic16f84.h,pic16f84a.h},
697         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
698           from patch #1522504, thanks to Robas Teodor
699
700 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
701
702         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
703           fixes bug 1566015
704
705 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
706
707         * src/pic16/glue.c (pic16emitMaps),
708         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
709         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
710         * device/lib/pic16/libc/string/memcpypgm2ram.c,
711         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
712           Philipp Krause
713         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
714         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
715
716 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
717
718         * support/librarian/sdcclib.c: Added option -l.
719         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
720           usage totals.
721         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
722           using Windows command prompt.
723
724 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
725
726         * device/lib/libsdcc.lib: added module rand
727         * src/ds390/ralloc.c (rematStr),
728         * src/hc08/ralloc.c (rematStr),
729         * src/mcs51/ralloc.c (rematStr),
730         * src/z80/ralloc.c (rematStr): made output more consistent
731         * src/mcs51/gen.c: cosmetic changes
732
733 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
734
735         * src/port.h: added mem.cabs_name to PORT
736         * src/ds390/main.c,
737         * src/hc08/main.c,
738         * src/mcs51/main.c,
739         * src/pic16/main.c,
740         * src/pic/main.c,
741         * src/xa51/main.c,
742         * src/z80/main.c: added cabs_name initializers
743         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
744           constants
745           (emitMaps): emit absolutes in code memory into cabs_name
746         * src/SDCCmem.c,
747         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
748         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
749         * support/regression/fwk/include/testfwk.h: added define for at
750         * support/regression/tests/absolute.c: added, new
751
752 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
753
754         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
755           optimizations, see also patch 887161 by Stas Sergeev
756         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
757           to be necessary anymore,
758           (102, 103, 104, 127): renamed all occurances of bp to _bp
759
760 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
761
762         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
763           thanks Weston T. Schmidt for patch 1555221
764         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
765         * src/SDCCicode.c(geniCodeMultiply): small optimization
766
767 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
768
769         * device/include/stdlib.h: added rand prototypes
770         * device/lib/rand.c: new, added
771         * device/lib/Makefile.in: added rand.c
772         * src/z80/peeph.def,
773         * src/z80/peeph-gbz80.def,
774         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
775
776 2006-09-20 Raphael Neider <rneider AT web.de>
777
778         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
779
780 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
781
782         * as/link/aslink.h: cosmetic changes
783         * as/link/mcs51/Makefile.in,
784         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
785
786 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
787
788         * as/link/aslink.h,
789         * as/link/mcs51/aslink.h,
790         * as/link/z80/aslink.h: merged and moved to as/link/
791         * as/link/lkstore.c,
792         * as/link/mcs51/lkstore.c: moved to as/link/
793         * as/link/clean.mk: remove *.o
794         * as/link/mcs51/alloc.h: deleted
795         * as/link/mcs51/lkarea.c: added lnksect prototype
796         * as/link/mcs51/lkdata.c,
797         * as/link/mcs51/lklex.c,
798         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
799         * as/link/mcs51/lkmem.c,
800         * as/link/mcs51/lknoice.c: removed include strcmpi.h
801         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
802         * as/link/mcs51/aslink.dsp,
803         * as/link/mcs51/Makefile.aslink,
804         * as/link/mcs51/Makefile.bcc,
805         * as/link/mcs51/Makefile.in: updated for moved files
806         * as/link/z80/lkarea.c,
807         * as/link/z80/lkhead.c,
808         * as/link/z80/lklex.c,
809         * as/link/z80/lklibr.c,
810         * as/link/z80/lklist.c,
811         * as/link/z80/lkmain.c,
812         * as/link/z80/lkrloc.c,
813         * as/link/z80/lksym.c: synced with mcs51
814         * as/link/z80/lkdata.c,
815         * as/link/z80/lkeval.c,
816         * as/link/z80/lkihx.c,
817         * as/link/z80/lks19.c: cosmetic changes
818         * as/link/z80/Makefile.in,
819         * as/link/z80/linkgbz80.dsp,
820         * as/link/z80/linkz80.dsp: updated for moved files
821
822 2006-09-16 Borut Razem <borut.razem AT siol.net>
823
824         * debugger/mcs51/sdcdb.c: partially fixed
825           [ 1203664 ] sdcdb fails to open files w. two "." periods
826         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
827           debugger/mcs51/symtab.h: fixed indenting
828         * configure.in, configure: up to date with latest Maarten's changes
829
830 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
831
832         as/link/mcs51
833         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
834         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
835         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
836         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
837         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
838         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
839         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
840         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
841         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
842         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
843         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
844         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
845         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
846         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
847         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
848         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
849         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
850         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
851         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
852         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
853         as/link/mcs51/alloc.h,
854         as/link/mcs51/clean.mk,
855         as/link/mcs51/conf.mk,
856         as/link/mcs51/Makefile.bcc,
857         as/link/mcs51/Makefile.in,
858         as/link/mcs51/readme.390,
859         as/link/mcs51/strcmpi.c,
860         as/link/mcs51/strcmpi.h,
861         as/mcs51/clean.mk,
862         as/mcs51/Makefile.bcc,
863         as/mcs51/Makefile.in,
864         configure,
865         Makefile.in,
866         sdcc.dsw: moved mcs51 linker to as/link/mcs51
867
868 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
869
870         * as/link,
871         * as/link/Makefile.in,
872         * as/link/z80/linkgbz80.dsp,
873         * as/link/z80/linkz80.dsp,
874         * configure,
875         * link,
876         * link/clean.mk,
877         * link/Makefile.in,
878         * link/README,
879         * link/z80,
880         * link/z80/aslink.h,
881         * link/z80/clean.mk,
882         * link/z80/conf.mk,
883         * link/z80/linkgbz80.dsp,
884         * link/z80/linkz80.dsp,
885         * link/z80/lkarea.c,
886         * link/z80/lkdata.c,
887         * link/z80/lkeval.c,
888         * link/z80/lkgb.c,
889         * link/z80/lkgg.c,
890         * link/z80/lkhead.c,
891         * link/z80/lkihx.c,
892         * link/z80/lklex.c,
893         * link/z80/lklibr.c,
894         * link/z80/lklist.c,
895         * link/z80/lkmain.c,
896         * link/z80/lkrloc.c,
897         * link/z80/lks19.c,
898         * link/z80/lksym.c,
899         * link/z80/Makefile.in,
900         * Makefile.in,
901         * sdcc.dsw: moved link/ to as/link/
902
903 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
904
905         * as/mcs51/i51mch.c (machine): fixed warning
906
907 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
908
909         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
910
911 2006-09-09 Borut Razem <borut.razem AT siol.net>
912
913         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
914           sdcdb WIN32 native port
915         * src/clean.mk: fixed
916
917 2006-09-08 Borut Razem <borut.razem AT siol.net>
918
919         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
920
921 2006-09-08 Raphael Neider <rneider AT web.de>
922
923         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
924         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
925             to gplink to disable processor mismatch warning and to allow
926             the use of devices with only aliased (shared) memory banks,
927           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
928
929 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
930
931         * doc/sdccman.lyx: Some re-formating plus example on using
932           #pragma preproc_asm +/-
933
934 2006-09-07 Borut Razem <borut.razem AT siol.net>
935
936         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
937           section
938
939 2006-09-06 Borut Razem <borut.razem AT siol.net>
940
941         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
942           line at sdcc.nsi:153
943         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
944
945 2006-09-05 Borut Razem <borut.razem AT siol.net>
946
947         * configure.in, configure: support for winsock2
948         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
949           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
950           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
951           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
952           debugger/mcs51/symtab.h: sdcdb WIN32 native port
953
954 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
955
956         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
957           and OP_DEFS
958         * support/regression/tests/bug1551947.c: new, added
959         * src/SDCCsymt.h: strings are char* not byte*
960
961 2006-09-05 Raphael Neider <rneider AT web.de>
962
963         * device/lib/pic16/libdev/pic18f4550.c,
964           device/include/pic16/pic18f4550.h: added PORTD/TRISD
965             declarations/definitions from patch #1520949
966
967 2006-09-05 Raphael Neider <rneider AT web.de>
968
969         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
970           byte-aligned bitfields, fixes #1539278
971
972 2006-09-05 Raphael Neider <rneider AT web.de>
973
974         * src/pic/gen.c (genReceive): skip unreferenced arguments,
975           fixes #1544120
976
977 2006-09-04 Borut Razem <borut.razem AT siol.net>
978
979         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
980         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
981           -mno-cygwin is a part of the compiler name
982         * support/scripts/sdcc_mingw32: don't disable ucsim
983
984 2006-09-03 Borut Razem <borut.razem AT siol.net>
985
986         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
987         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
988
989 2006-09-03 Raphael Neider <rneider AT web.de>
990
991         * src/pic/ralloc.c,
992         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
993           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
994           fixes #1550049
995
996 2006-09-01 Borut Razem <borut.razem AT siol.net>
997
998         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
999           to make ppc-osx happy
1000
1001 2006-08-31 Borut Razem <borut.razem AT siol.net>
1002
1003         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
1004         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
1005         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
1006         * support/regression/ports/ds390/spec.mk,
1007           support/regression/ports/mcs51/spec.mk,
1008           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
1009           To run regression tests in mingw environment:
1010           make DEV_NULL=NUL CC=gcc
1011
1012 2006-08-30 Borut Razem <borut.razem AT siol.net>
1013
1014         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
1015           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
1016           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
1017           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
1018           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
1019           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
1020           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
1021           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
1022           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
1023           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
1024           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
1025           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
1026           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
1027           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
1028           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
1029           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
1030           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
1031           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
1032           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
1033           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
1034           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
1035           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
1036           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
1037           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
1038           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
1039           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
1040           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
1041           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
1042           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
1043           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
1044           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
1045           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
1046           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
1047           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
1048           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
1049           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
1050           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
1051           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
1052           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
1053           ucsim WIN32 native port
1054
1055 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1056
1057         * doc/sdccman.lyx: added note on dynamic memory heap initialization
1058
1059 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
1060
1061         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
1062         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
1063
1064 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
1065
1066         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
1067         * support/regression/tests/bug1546986.c: new, added
1068         * as/mcs51/.cvsignore,
1069         * debugger/mcs51/.cvsignore,
1070         * src/.cvsignore: deleted
1071
1072 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1073
1074         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
1075           definitions)
1076
1077 2006-08-20 Borut Razem <borut.razem AT siol.net>
1078
1079         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
1080           removed cl_listen_console::match(), cl_console::match(),
1081           restructured cl_commander::proc_input()
1082
1083 2006-08-16 Borut Razem <borut.razem AT siol.net>
1084
1085         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
1086           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
1087           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
1088
1089 2006-08-14 Borut Razem <borut.razem AT siol.net>
1090
1091         * support/regression/Makefile.in,
1092           support/regression/ports/pic14/gpsim.cmd,
1093           support/regression/ports/pic14/spec.mk,
1094           support/regression/ports/pic14/support.c:
1095           added pic14 regression test
1096
1097 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
1098
1099         * as/doc/asxhtm.html: documented changed ABS behaviour
1100         * as/doc/README: fixed some typos
1101
1102 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
1103
1104         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
1105           not defined on host
1106
1107 2006-08-12 Borut Razem <borut.razem AT siol.net>
1108
1109         * support/regression/fwk/include/testfwk.h,
1110           support/regression/fwk/lib/testfwk.c,
1111           support/regression/generate-cases.py,
1112           support/regression/Makefile.in:
1113           regression test framework does not depend on function pointers and
1114           variable arguments
1115
1116 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
1117
1118         * device/include/stddef.h: c temporary hack to fix bug 1518273
1119
1120 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1121
1122         * device/include/mcs51/cc2510fx.h: added
1123         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
1124           to projects.
1125
1126 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
1127
1128         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
1129         * as/z80/Makefile.in: added strcmpi.c
1130         * as/z80/z80adr.c: added upper case registers and lower case conditionals
1131         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
1132
1133 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
1134
1135         * device/lib/gbz80/asm_strings.s,
1136         * device/lib/gbz80/crt0_rle.s,
1137         * device/lib/gbz80/div.s,
1138         * device/lib/gbz80/mul.s,
1139         * device/lib/gbz80/shift.s,
1140         * device/lib/z80/asm_strings.s,
1141         * device/lib/z80/crt0_rle.s,
1142         * device/lib/z80/div.s,
1143         * device/lib/z80/mul.s,
1144         * device/lib/z80/shift.s: changed to all lower case menmonics except the
1145           flags which are all upper case
1146
1147 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1148
1149         * as/z80/asm.h: made CASE_SENSITIVE 1
1150         * link/z80/aslink.h: made CASE_SENSITIVE 1
1151         * src/z80/gen.c (throughout): made all conditionals upper case
1152         * support/regression/tests/bug1503067.c: new
1153
1154 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
1155
1156         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
1157           (shiftIntoPair): added case 2 for PAIR_IY,
1158           (setupToPreserveCarry): replaced parameters with iCode and check if
1159            PAIR_DE is in use to fix bug 1399290,
1160           (genPlus, genMinus): updated call to setupToPreserveCarry
1161         * support/regression/tests/bug1399290.c: new
1162
1163 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
1164
1165         * device/lib/Makefile.in (Z80SOURCES): enabled float support
1166         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
1167         * src/ds390/gen.c (shiftRLong),
1168         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
1169         * src/mcs51/gen.c (sameReg): changed to sameByte,
1170           (xch_a_aopGet): new,
1171           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
1172            shiftRLong): fixed bug 1533966
1173         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
1174           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
1175         * support/regression/Makefile.in: disabled z80, enabled ucz80
1176         * support/regression/tests/float_trans.c: enabled test for z80 and host
1177         * support/regression/tests/shifts2.c: new, for testing bug 1533966
1178
1179 2006-08-01 Borut Razem <borut.razem AT siol.net>
1180
1181         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
1182           comparison is always false due to limited range of data type
1183           on PPC64 machine (openpower-linux1) where "char = unsigned char"
1184
1185 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
1186
1187         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
1188         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
1189         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
1190         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
1191
1192 2006-07-31 Borut Razem <borut.razem AT siol.net>
1193
1194         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
1195           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
1196           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
1197           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
1198           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
1199           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
1200           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
1201           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
1202           enable ucsim mingw compilation. Serial port is disabled,
1203           since it uses termios.h API, which is not available on native
1204           WIN32
1205
1206 2006-07-31 Borut Razem <borut.razem AT siol.net>
1207
1208         * Small Device C Compiler 2.6.0 released
1209         * support/scripts/sdcc.nsi: added FULL_DOC option
1210         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
1211
1212 2006-07-28 Borut Razem <borut.razem AT siol.net>
1213
1214         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
1215         * doc/INSTALL.txt: updated
1216
1217 2006-07-27 Borut Razem <borut.razem AT siol.net>
1218
1219         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
1220           device/lib/pic/libdev/Makefile.in: fixed bug
1221           [ 1438354 ] pic libsdcc: distclean doesn't work
1222         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
1223           device/lib/pic16/libio/Makefile.in: fixed bug
1224           [ 1438344 ] pic16 lib: clean doesn't work properly
1225         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
1226
1227 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
1228
1229         * device/lib/pic/libsdcc/fsdiv.c,
1230         * device/lib/pic/libsdcc/fsmul.c,
1231         * device/lib/pic16/libsdcc/float/fsdiv.c,
1232         * device/lib/pic16/libsdcc/float/fsmul.c,
1233         * device/lib/_fsdiv.c,
1234         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
1235         * support/regression/tests/bug1520966.c: added
1236         * doc/knownbugs.html: removed [ 1520966 ] from the list
1237
1238 2006-07-25 Borut Razem <borut.razem AT siol.net>
1239
1240         * configure.in, configure, sdccconf_in.h: fixed bug
1241           [ 1519095 ] regression test onebyte.c fails on ppc64 host
1242         * doc/knownbugs.html: removed [ 1519095 ] from the list
1243
1244 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
1245
1246         * doc/knownbugs.html: added, contains list of known bugs at release
1247         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
1248
1249 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
1250
1251         * device/include/mcs51/compiler.h: added SFRX for xdata based special
1252           function registers and corrected defaults with additional warning
1253         * device/lib/malloc.c: cosmetic changes
1254         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
1255         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
1256           (fillGaps): and used it
1257
1258 2006-07-20 Raphael Neider <rneider AT web.de>
1259
1260         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
1261           output unless SDCCPICDEBUG is set
1262         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
1263           output if SILENT is set
1264
1265 2006-07-11 Borut Razem <borut.razem AT siol.net>
1266
1267         * doc/README.txt: updated
1268
1269 2006-07-10 Borut Razem <borut.razem AT siol.net>
1270
1271         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
1272           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
1273           in WIN32 installation
1274         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
1275           release candidate 1
1276
1277 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
1278
1279         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
1280         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
1281
1282 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
1283
1284         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
1285
1286 2006-07-06 Borut Razem <borut.razem AT siol.net>
1287
1288         * support/regression/tests/bitfields.c:
1289           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
1290         * support/regression/tests/constantRange.c:
1291           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
1292
1293 2006-07-04 Borut Razem <borut.razem AT siol.net>
1294
1295         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
1296           src/port.mk,
1297           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1298           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1299           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1300           reverted changes from 2006-07-03
1301         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
1302         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
1303           added CPPFLAGS, used by the host port
1304
1305 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
1306
1307         * support/regression/valdiag/tests/switch.c,
1308         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
1309         * support/regression/tests/libmullong.c: fixed for host
1310         * support/regression/ports/host/spec.mk: disable all warnings for host,
1311         SDCC runs with --less-pedantic too
1312
1313 2006-07-03 Borut Razem <borut.razem AT siol.net>
1314
1315         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
1316           defined CPPFLAGS
1317         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
1318         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
1319           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
1320           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
1321           include ../port.mk
1322         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
1323           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
1324           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
1325           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
1326
1327 2006-07-02 Raphael Neider <rneider AT web.de>
1328
1329         * src/pic16/devices.inc,
1330         * device/include/pic16/pic18fregs.h,
1331         * device/include/pic16/pic18f4550.h,
1332         * device/lib/pic16/pics.all,
1333         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
1334
1335 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
1336
1337         * as/hc08/lkaomf51.c (OutputName),
1338         * as/mcs51/lkaomf51.c (OutputName),
1339         * as/z80/asmain.c (asmbl),
1340         * src/ds390/main.c (asmLineNodeFromLineNode),
1341         * src/hc08/ralloc.c (hc08_assignRegisters),
1342         * src/mcs51/main.c (asmLineNodeFromLineNode),
1343         * src/xa51/ralloc.c (checkRegMask),
1344         * src/xa51/gen.c (emitcode),
1345         * src/z80/gen.c (_emit2),
1346         * src/SDCCast.c (searchLitOp),
1347         * src/SDCCglobl.h,
1348         * support/packihx/packihx.c,
1349         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
1350         * src/ds390/gen.c (aopPutUsesAcc),
1351         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
1352         * support/regression/tests/libmullong.c (mullong_wrapper),
1353         * src/SDCCsymt.c (powof2),
1354         * src/SDCCast.c,
1355         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
1356         * src/SDCCsymt.h: added TYPE_TARGET_*
1357         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
1358         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
1359         SDCCast because 1) header problems 2) this is the right place
1360         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
1361         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
1362         prototype
1363
1364 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
1365
1366         * src/SDCCicode.h: removed buggy semicolon in unused macro
1367         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
1368         search for previous definiton of auto symbols too,
1369         (findPrevUse): fixed logic of emitWarnings
1370
1371 2006-06-26 Raphael Neider <rneider AT web.de>
1372
1373         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
1374           PCLATH and PCLATU on interrupts, potentially fixes #1505141
1375
1376 2006-06-25 Raphael Neider <rneider AT web.de>
1377
1378         * device/lib/pic/libm: NEW, added math library functions
1379         * device/lib/pic/libsdcc: NEW; added float support functions
1380         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
1381         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
1382           NEW, added math related headers
1383         * device/include/asm/pic/features.h: NEW
1384         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
1385           (popGet): allow larger offsets for AOP_PCODE,
1386           (genDataPointerSet): handle literals explicitly, more debug output,
1387           (genAssign): fixed for float using aopLiteral ;-)
1388         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
1389           GOTO initialisation routine
1390         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
1391           flag on registers, fixes #1469043 (local variables do not work)
1392         * src/pic/main.c (_pic14_do_link),
1393         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
1394           available
1395
1396 2006-06-25 Borut Razem <borut.razem AT siol.net>
1397
1398         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
1399           characters printed (not including the trailing '\0' used to end
1400           output to strings). Problem detected in regression test bug-927659.c.
1401           NOTE: printf() family functions should return int instead
1402           unsigned int!
1403         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
1404           specifier are printed as themselves
1405         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
1406           support flags, width and precision specifiers
1407
1408 2006-06-24 Borut Razem <borut.razem AT siol.net>
1409
1410         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
1411           to the list of sdcc tagrets not supporting bit type
1412         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
1413           testfor pic16 due to bug:
1414           [ 1511794 ] pic16: regression test bug-895992.c fails
1415
1416 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
1417
1418         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
1419         * src/SDCCglue.c (initPointer), fixed bug 1496419
1420         * support/regression/tests/bug1496419.c: new, added
1421
1422 2006-06-22 Borut Razem <borut.razem AT siol.net>
1423
1424         * support/regression/ports/pic16/support.c: use gpsim usart module from
1425           libgpsim_modules library
1426
1427 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1428
1429         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
1430         IP0H to IPH0.
1431
1432 2006-06-19 Raphael Neider <rneider AT web.de>
1433
1434         * src/pic/glue.h,src/pic16/glue.h: added prototypes
1435         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
1436           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
1437           (pic14printExterns,pic14printPublics,pic16printPublics,
1438           pic16_printExterns): use new functions to emit symbols
1439           (picglue,pic16glue): emit publics before emitting externs
1440         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
1441           locally defined functions to avoid bug #1443651
1442         * support/regression/tests/bug-716242.c: removed pic16 workaround
1443         * support/regression/ports/pic16/spec.mk: ignore errors during build
1444
1445 2006-06-19 Raphael Neider <rneider AT web.de>
1446
1447         * src/pic/glue.h: added pic14aopLiteral prototype
1448         * src/pic/glue.c (pic14aopLiteral): return unsigned int
1449         * src/pic/gen.c: removed stdint.h dependency
1450           (aopGet): use Safe_strdup()
1451           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
1452           (genDataPointerSet): use pic14aopLiteral()
1453         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
1454           for pic16; thanks to Bernhard and Maarten
1455
1456 2006-06-18 Borut Razem <borut.razem AT siol.net>
1457
1458         * support/regression/tests/structflexarray.c: flexible array members
1459           not supported by gcc < 3
1460         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
1461           GUI tool by default
1462         * src/pic/gen.c: don't include [p]strdin.h on solaris
1463         * support/Util/pstdint.h: addad svn attributes
1464         * support/regression/tests/constantRange.c,
1465           support/regression/tests/rotate.c: include inttypes.h instead
1466           stdint.h on solaris, addad svn attributes
1467
1468 2006-06-18 Raphael Neider <rneider AT web.de>
1469
1470         * src/SDCCsymt.c (initCSupport): change return type of divschar to
1471           int for PIC16
1472         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
1473           (pic16_genMinusBits): simplified sign-extension
1474           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
1475             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
1476             adjusted to correctly handle mixed-signed operands, disabled
1477             now unused multiplciation routines
1478         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
1479           (assignResultValue): added argument denoting the size of the result
1480             as returned by the function (fixes upcasts in assigning from
1481             function calls: char foo(); int i = foo();)
1482           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
1483             function result to assignResultValue
1484           (genMult): disabled inlined multiplication code
1485           (genDiv): augmented to also handle the modulus operator, fixed to
1486             handle mixed-signed operands correctly
1487           (genMod): simply call genDiv, disabled unused code
1488           (genAssign): fixed missing (sign-)extension on result
1489         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
1490             valid char operands, allow signed operands for native code, added
1491             division and modulo operator handling
1492         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
1493
1494         As a consequence, onebyte.c (if split into two files) and muldiv.c
1495         pass regression tests.
1496
1497 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1498
1499         * doc/Makefile.in: two runs of makeindex seem needed to get
1500         correct page references in the index of sdccman.pdf
1501         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
1502
1503 2006-06-17 Borut Razem <borut.razem AT siol.net>
1504
1505         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
1506
1507 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1508
1509         * doc/sdccman.lyx: updated, added (porting source code, debugging),
1510         mentioned ec2drv and paulmon
1511
1512 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
1513
1514         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
1515           consecutive abs areas
1516           (find_empty_space, allocate_space): added map to handle codemap or
1517            xdatamap,
1518           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
1519            absolute idata and xdata
1520         * as/mcs51/lkmem.c (summary2): updated legend
1521
1522 2006-06-16 Raphael Neider <rneider AT web.de>
1523
1524         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
1525
1526 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
1527
1528         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
1529           1208515
1530         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
1531
1532 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
1533
1534         * src/port.h (struct PORT): added field gp_tags, to hold the tag
1535         value of generic pointers,
1536         * src/avr/main.c,
1537           src/ds390/main.c,
1538           src/hc08/main.c,
1539           src/izt/i186.c,
1540           src/izt/tlcs900h.c,
1541           src/mcs51/main.c,
1542           src/pic/main.c,
1543           src/pic16/main.c,
1544           src/xa51/main.c,
1545           src/z80/main.c: PORT structure, added elements for gp_tags field,
1546         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
1547         fields in the PORT structure of each port,
1548         * src/SDCCast.c (decorateType): allow processing of generic pointers
1549         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
1550         S_FIXED symbols
1551
1552 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
1553
1554         * link/z80/lkgb.c,
1555         * link/z80/lkgg.c,
1556         * src/pic16/gen.c,
1557         * src/pic16/main.c,
1558         * src/pic16/pcode.c,
1559         * src/pic/main.c,
1560         * src/pic/pcoderegs.c,
1561         * src/SDCCicode.c,
1562         * src/SDCCmain.c,
1563         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
1564           bug 1504689 on minGW
1565
1566 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1567
1568         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
1569
1570 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
1571
1572         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
1573
1574 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
1575
1576         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
1577           for optimization
1578
1579 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
1580
1581         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
1582         to a char variable. Fixed bug #1504211
1583         * device/include/pic16/adc.h,
1584         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
1585         and fixed bug #1364390
1586
1587 2006-06-10 Borut Razem <borut.razem AT siol.net>
1588
1589         * CVSROOT: removed the CVS left-over
1590
1591 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1592
1593         * as/hc08/asmain.c (asexit),
1594         * as/hc08/lkmain.c (lkexit),
1595         * as/mcs51/asmain.c (asexit),
1596         * as/mcs51/lkmain.c (lkexit),
1597         * src/SDCCglue.c (DEFSETFUNC),
1598         * src/SDCCmain.c (linkEdit, assemble),
1599         * support/librarian/sdcclib.c (AddRel),
1600           replaced unlink() by standard C remove()
1601         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
1602         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
1603           gatherImplicitVariables): new, added to fix bug 608752,
1604           (createFunction): added gatherImplicitVariables()
1605         * src/SDCCast.h: added createRMW prototype
1606         * src/SDCCsymt.h (struct symbol): added infertype
1607         * support/regression/tests/bug608752.c: new, added
1608
1609 2006-06-10 Raphael Neider <rneider AT web.de>
1610
1611         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
1612           multibyte dummy reads (fixes #1503234)
1613
1614 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1615
1616         * device/include/mcs51/compiler.h: new, added header file to enable
1617           creating common sfr definition header files for different compilers
1618
1619 2006-06-05 Raphael Neider <rneider AT web.de>
1620
1621         * src/pic16/{pcode.h,genarith.c}:
1622           introduced pCodeOp combining any two pCodeOps (previously only
1623           two register operands could be combined), removed pcop2 from
1624           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
1625         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
1626         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
1627           rewritten to use new PO_TWO_OPS
1628         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
1629         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
1630           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
1631           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
1632           (pic16_get_op): embraced return arg to allow #define return(x),
1633             added new case for combined opcodes
1634           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
1635           (pic16_pCode2str,pic16_getRegFrompCodeOp,
1636            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
1637
1638 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
1639
1640         * src/SDCCval.c (checkConstantRange): added
1641         * src/SDCCval.h: added checkConstantRange
1642         * support/Util/SDCCerr.c,
1643         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
1644         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
1645         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
1646         * src/SDCCast.c (decorateType): added checkConstantRange,
1647         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
1648         can be emitted with the correct always true/false warning,
1649         added optimization for double '!';
1650         result of decorateType() must be assigned back to the tree, because
1651         decorateType() can change the tree
1652         * src/SDCCicode.c (geniCodeLogic),
1653         (geniCodeAssign): replaced new checkConstantRange, added warnings,
1654         (checkConstantRange): removed, it was only a fragment which never
1655         emitted a warning
1656         * src/SDCCsymt.c (computeType): fixed promotion for
1657         "-1 < (unsigned bit) b"
1658         * src/pic/ralloc.c (packRegsForAssign),
1659         * src/pic16/ralloc.c (packRegsForAssign),
1660         * src/hc08/ralloc.c (packRegsForAssign),
1661         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
1662         from mcs51
1663         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
1664         * support/regression/tests/constantRange.c: added
1665         * support/valdiag/tests/constantRange.c: added
1666         * support/valdiag/valdiag.py: added -DPORT_HOST=1
1667
1668 2006-06-02 Borut Razem <borut.razem AT siol.net>
1669
1670         * support/regression/ports/pic16/support.c: increase stack size
1671           to 255 bytes
1672         * support/regression/Makefile.in: sort tests by name so that the
1673           resutlts can be compared on different machines / platforms
1674
1675 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1676
1677         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
1678         * src/ds390/gen.c (emitLabel): new, added,
1679           (genDjnz): fixed stack overflow bug,
1680           (throughout): cosmetic changes to sync with mcs51/gen.c,
1681           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
1682         * src/mcs51/gen.c (genEndFunction): small optimization,
1683           (throughout): cosmetic changes to sync with ds390/gen.c
1684
1685 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1686
1687         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
1688           (_print_format): fixed printing pointers
1689         * src/mcs51/gen.c (emitLabel, movb): new, added,
1690           (genAssign): small optimization,
1691           (genDjnz): fixed stack overflow bug,
1692           (throughout): replaced sprintf with SNPRINTF,
1693           replaced mcs51_regWithIdx with REG_WITH_INDEX,
1694           replaced emitcode("mov", "b,...") with MOVB(...),
1695           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
1696           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1697         * src/mcs51/peeph.def: added rules 140 and 264
1698         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
1699           so they may get optimized into registers
1700
1701 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
1702
1703         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
1704           immediately when encountered,
1705           (printUsage): always use stderr even on windows
1706
1707 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
1708
1709         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
1710         (processParms): fixed bug #1247551
1711         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
1712         parseCmdLine, main): print '--version' to stdout,
1713         print 'help' to stdout if --help is given,
1714         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
1715         arguments are given; fixed --help
1716
1717 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
1718
1719         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
1720         * support/regression/tests/bug-1493710.c: added
1721
1722 2006-05-27 Borut Razem <borut.razem AT siol.net>
1723
1724         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
1725           static instead auto
1726         * support/regression/ports/pic16/support.c: increase stack size
1727           from default 64 bytes to 128 bytes
1728         * support/regression/tests/staticinit.c,
1729           support/regression/tests/float.c: regression tests fully enabled
1730           for pic16 port by putting the initialized data arrays into the code
1731           section
1732         * support/regression/ports/pic16/spec.mk: don't link default libraries.
1733           This was changed by mistake in the previous version.
1734
1735 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
1736
1737         * src/pic16/gen.c (genFunction, genEndFunction): some
1738         beautifications, fixed bug with falsely restoring FSR2 in large
1739         stack model, thanks to Beau E. Cox for reporting the bug
1740
1741 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1742
1743         * debugger/mcs51/break.c,
1744         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
1745           use %p to print pointers, made address variables unsigned
1746         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
1747         * debugger/mcs51/symtab.c (parseSymbol): must return something
1748         * src/mcs51/gen.c (aopForSym): small optimization,
1749            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
1750           (freeAsmop): added missing break,
1751           (aopPut): removed parameter bvolatile, determine it inside the function,
1752           (saveRegisters, unsaveRegisters): small optimization,
1753           (genIpush): removed pointless check,
1754           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
1755           replaced sprintf with SNPRINTF,
1756           replaced strcpy with strncpyz,
1757           updated aopPut calls,
1758           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1759         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
1760
1761 2006-05-24 Borut Razem <borut.razem AT siol.net>
1762
1763         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
1764           modification of test for the pic16 port, put the array to the code
1765           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
1766
1767 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1768
1769         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
1770         * support/Util/pstdint.h: added
1771
1772 2006-05-22 Borut Razem <borut.razem AT siol.net>
1773
1774         * src/regression/Makefile: removed bool2.c test, added -q linker option
1775         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
1776           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
1777           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
1778           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
1779           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
1780           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
1781           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
1782           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
1783           define SUPPORT_BIT_TYPES 0, removed unused bit variables
1784
1785 2006-05-22 Raphael Neider <rneider AT web.de>
1786
1787         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
1788           bug #1492360 (problematic due to generic pointers, see code)
1789
1790 2006-05-22 Borut Razem <borut.razem AT siol.net>
1791
1792         * support/regression/ports/pic16/specs.mk: removed stack size linker
1793           directive
1794         * support/regression/tests/array.c,
1795           support/regression/tests/bitopcse.c,
1796           support/regression/tests/bug-908454.c,
1797           support/regression/tests/malloc.c: modified for pic16 regression test
1798         * support/regression/tests/bitfields.c:
1799           pic16 - excluded bitfileds of size > 8
1800         * support/regression/tests/bp.c: pic16 - reduced data size
1801         * support/regression/tests/bug-221100.c: pic16 - reduced data size
1802         * support/regression/tests/bug-460010.c:
1803           pic16 - used the absolute address the fits in memory
1804         * support/regression/tests/bug-716242.c:
1805           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
1806         * support/regression/tests/float.c:
1807           pic16 - excluded - data size too big
1808         * support/regression/tests/onebyte.c:
1809           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
1810         * support/regression/tests/shifts.c:
1811           pic16 - function names probably have to differ in first X characters
1812           (gpasm limitation?)
1813         * support/regression/tests/staticinit.c:
1814           pic16 - excluded some tests due error: no target memory available for
1815           section ".idata"
1816
1817 2006-05-22 Borut Razem <borut.razem AT siol.net>
1818
1819         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1820           second try. Thanks Stas Sergeev once more.
1821
1822 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1823
1824         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
1825           (genLeftShift, genRightShift): fixed bug 1491627
1826         * src/hc08/peeph.def (rules 7, 8.x): added
1827         * support/regression/tests/shifts.c (ShiftLeftByParam,
1828           ShiftRightByParam, testShiftByParam): added to test variable shifting
1829
1830 2006-05-20 Raphael Neider <rneider AT web.de>
1831
1832         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
1833         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
1834           (allocReg): add only new registers to dynAllocRegs,
1835           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
1836             #1489055, #1445850, and probably #1483693
1837
1838 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
1839
1840         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
1841         bug in for-loop that didn't emit the last of CONFIG and ID registers
1842
1843 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
1844
1845         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
1846           with offset
1847         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
1848           1489016, 1434401 and 1490124
1849         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
1850           1489016, 1434401 and 1490124
1851
1852 2006-05-17 Borut Razem <borut.razem AT siol.net>
1853
1854         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1855           thanks Stas Sergeev
1856
1857 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1858
1859         * device/include/mcs51/P89c51RD2.h,
1860         * device/include/mcs51/P89LPC901.h,
1861         * device/include/mcs51/P89LPC922.h,
1862         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
1863
1864 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1865
1866         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
1867         to fix missing stack pragma in compiled binary object file,
1868
1869 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
1870
1871         * support/packihx/configure.in,
1872         * support/packihx/configure: removed warning, autoconf >= 2.5x can
1873         determine sizeof basic types even while cross compiling
1874
1875 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
1876
1877         * src/avr/gen.c (aopop),
1878         * src/ds390/gen.c (aopOp),
1879         * src/hc08/gen.c (aopOp),
1880         * src/mcs51/gen.c (aopop),
1881         * src/pic16/gen.c (pic16_aopOp),
1882         * src/pic/gen.c (aopOp),
1883         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
1884         if size of operand is smaller than spill location
1885
1886 2006-05-12 Borut Razem <borut.razem AT siol.net>
1887
1888         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
1889           have to have CR/LF line endings even if they are checked out on *nix
1890           or on WIN32 in cygwin binmode
1891
1892 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
1893
1894         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
1895         * device/include/ds80c390.h: added sfr16 definitions
1896         * src/ds390/gen.c,
1897         * src/ds390/gen.h,
1898         * src/ds390/main.c,
1899         * src/ds390/ralloc.c,
1900         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
1901           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
1902           bit returning functions
1903         * support/regression/tests/sfr16.c: enabled test on ds390
1904
1905 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1906
1907         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
1908         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
1909
1910 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1911
1912         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
1913         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
1914           (cl_address_space constructor): removed expensive initialization,
1915           (cl_address_space::get_cell): extended for late initialization,
1916           (cl_address_space::*): use late initialization,
1917           (cl_address_decoder::activate): removed expensive initialization,
1918           This reduced regression test running time by 25%
1919
1920 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
1921
1922         * packihx/,
1923         * configure.in,
1924         * configure,
1925         * sdcc.dsw,
1926         * Makefile.bcc,
1927         * Makefile.in,
1928         * support/packihx/Makefile.in,
1929         * support/packihx/clean.mk,
1930         * support/packihx/Makefile.bcc,
1931         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
1932
1933 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1934
1935         * src/SDCCval.c (valNot): fix for regression test failure
1936           of not.c on big endian hosts
1937
1938 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1939
1940         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
1941
1942 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1943
1944         * device/lib/mcs51/Makefile.in: changed string comparison operator
1945           to = for POSIX compliance; == is bash extension
1946
1947 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1948
1949         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
1950           kosmonaut_pirx
1951
1952 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
1953
1954         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
1955         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
1956         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
1957         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
1958         bug report #1478657,
1959
1960 2006-05-05 Borut Razem <borut.razem AT siol.net>
1961
1962         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
1963           making the html
1964
1965 2006-05-02 Borut Razem <borut.razem AT siol.net>
1966
1967         * doc/Makefile.in: removed *.ind dependency since there is no rule to
1968           create *.ind, which made make to fail if invoked with -j 2
1969
1970 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
1971
1972         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
1973           Hubert Sack for patch 1479782
1974
1975 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
1976
1977         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
1978
1979 2006-05-01 Raphael Neider <rneider AT web.de>
1980
1981         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
1982           (create_pic): store only prefix-free device name,
1983           (init_pic): check for device names with "16" prefix,
1984           (list_valid_pics),
1985         * src/pic/device.h (struct PIC_device),
1986         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
1987             stored device name,
1988         * device/include/pic/pic12f{635,675,629,683}.h,
1989         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
1990         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
1991         * device/include/pic/pic16f505.h,
1992         * device/lib/pic/libdev/pic16f505.c: removed
1993         * device/include/pic/pic14devices.txt: added support for pic12f
1994             devices, removed unsupported non 16-bit devices
1995             [above changes provided by patch from Zik Saleeba]
1996         * src/pic/*, src/pic16/*, device/include/pic16/*,
1997           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
1998
1999 2006-05-01 Borut Razem <borut.razem AT siol.net>
2000
2001         * configure.in, configure, doc/Makefile.in:
2002           sync with nightly build makefile - latex, dvipdf and dvips
2003           not needed any more
2004
2005 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
2006
2007         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
2008         in the library source
2009
2010 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
2011
2012         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
2013
2014 2006-04-28 Raphael Neider <rneider AT web.de>
2015
2016         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
2017         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
2018           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
2019         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
2020
2021 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
2022
2023         * device/lib/pic/libdev/Makefile.in,
2024         * device/lib/hc08/Makefile.in,
2025         * device/lib/gbz80/Makefile.in,
2026         * device/lib/z80/Makefile.in,
2027         * device/lib/ds390/Makefile.in,
2028         * device/lib/ds400/Makefile.in: added srcdir to include search path,
2029         thanks to Borut for the bug report
2030         * configure.in,
2031         * configure: always create doc/Makefile independent from --enable-doc
2032         * Makefile.in: always install from directory doc independent from
2033         --enable-doc
2034         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
2035         removed
2036         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
2037         * doc/Makefile.in: install *.txt if present
2038         * device/include/Makefile.in (install): added installation of pic/*.inc
2039         and pic/*.txt files again, they were erroneously removed
2040
2041 2006-04-28 Raphael Neider <rneider AT web.de>
2042
2043         * src/pic/{gen.c,main.h,pcode.c},
2044         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
2045             concerning signedness with casts
2046
2047 2006-04-28 Raphael Neider <rneider AT web.de>
2048
2049         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
2050             definition of an interrupt handler,
2051         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
2052             interrupt handler stuff from picglue() to separate routine,
2053           (picglue): enabled definition of intr handlers in files w/o main()
2054
2055 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2056
2057         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
2058           compilation with MSVC 2005 Express Edition (VC8)
2059
2060 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
2061
2062         * device/lib/Makefile: fixed build of gbz80 lib
2063
2064 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
2065
2066         * support/regression/tests/bug-460010.c,
2067         * support/regression/tests/bug-524691.c,
2068         * support/regression/tests/bug-716242.c: removed conditional defines
2069           that are already in testfwk.h
2070
2071 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
2072
2073         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
2074           (AccAXRsh1): added, shift right by 1,
2075           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
2076            AccAXLrl1
2077         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
2078
2079 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
2080
2081         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
2082         remove cast to same type
2083         * src/SDCCast.c (decorateType): fix for RFE 1475742,
2084         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
2085         * as/z80/Makefile,
2086         * link/z80/Makefile: removed, they have moved to
2087         Makefile.in files
2088         * configure,
2089         * configure.in: replaced duplicate message about ucsim by missing sdcpp
2090         * install-sh: fix bug #1204398 by setting umask 0022
2091         * device/lib/Makefile: separate build of z80 and gbz80 lib
2092
2093 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
2094
2095         Enabled VPATH feature: changed nearly all Makefiles (149 files).
2096         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
2097
2098         One basic decision: e.g. src/clean.mk includes further files. In order
2099         to make this work there are two solutions:
2100         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
2101           run configure on them. This way they can use
2102           'include $(srcdir)/port-clean.mk'
2103         - always include clean.mk by the Makefile at the same level. To avoid
2104           that `make clean` tries to include and build Makefile.dep the
2105           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
2106           implemented, because now even `make uninstall` doesn't create
2107           Makefile.in. clean.mk could be eliminated by pasting it in
2108           Makefile.in.
2109
2110         * debugger/mcs51/Makefile.in: build own objects from library sources
2111         (SLIB, SDCC) in current directory
2112
2113         * configure, configure.in: renamed --disable-device-lib-build in
2114         --disable-device-lib; added --enable-doc, the required tools are
2115         searched by configure; added result message; the toolchain for the
2116         belonging ports are now only built, if the port is enabled.
2117
2118         * support/regression/*: all output is written in directory gen, because
2119         the fwk and ports directories don't livet in the build tree using vpath
2120
2121         * doc/sdccman.lyx: renamed --disable-device-lib-build to
2122         --disable-device-lib, added --enable-doc, added section VPATH
2123
2124         * sim/ucsim/configure.in,
2125         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
2126         z80 are enabled by default
2127
2128 2006-04-24 Raphael Neider <rneider AT web.de>
2129
2130         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
2131             to config word, "pic14_"-prefixed some extern functions
2132           (pic14_emitConfigWord): emit __config directive(s) if assignment to
2133             config word has been found
2134         * src/pic/device.h: added prototypes
2135         * src/pic/pcode.c: added "pic14_"-prefix where needed
2136         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
2137             fixup
2138         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
2139             words,
2140           (pic14emitRegularMap): ignore config words,
2141           (pic14createInterruptVect): moved generating __config directives away
2142           (picglue): have __config directives emitted
2143
2144 2006-04-24 Borut Razem <borut.razem AT siol.net>
2145
2146         * doc/Makefile: sync with nightly build makefile
2147
2148 2006-04-24 Raphael Neider <rneider AT web.de>
2149
2150         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
2151             registers that have not been assigned proper liveranges,
2152             fixes #1469504 and #1474602,
2153           (pCodeRegOptimizeRegUsage): fixed typo in comment
2154
2155 2006-04-24 Borut Razem <borut.razem AT siol.net>
2156
2157         * device/examples/main8051.c: deleted - it was removed from CVS
2158           24.mar.2000 and after that modified 18.feb.2001, so it reappered
2159           after the transition to Subversion
2160         * src/SDCCalloc.h: deleted - it was removed  from CVS
2161           3.feb.2001 and after that modified 18.feb.2001, so it reappered
2162           after the transition to Subversion
2163         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
2164           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
2165           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
2166           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
2167
2168 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
2169
2170         * as/asx8051.dsp: added mcs51/strcmpi.h
2171         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
2172         * as/hc08/aslink.h: updated lnksect prototype
2173         * as/hc08/asm.h,
2174         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
2175         * as/hc08/asmain.c,
2176         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
2177           (newdot): handle A_ABS
2178         * as/hc08/asout.c,
2179         * as/mcs51/asout.c (outarea): output address
2180         * as/hc08/lkaomf51.c,
2181         * as/mcs51/lkaomf51.c: disabled unused array UsageType
2182         * as/hc08/m08pst.c,
2183         * as/mcs51/i51pst.c,
2184         * as/z80/z80pst.c: "ABS" is not A_OVR
2185         * as/hc08/lkarea.c (newarea): read a_addr,
2186           (lnkarea): added codemap array, sort absolute areas to the front,
2187            combine all GSINITx/GSFINAL,
2188           (find_empty_space, allocate_space): new functions,
2189           (lnksect): return next address, handle absolute sections
2190         * as/mcs51/lkarea.c (newarea): read a_addr,
2191           lnksect2 prototype changed,
2192           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
2193           (find_empty_space, allocate_space): new, factored out of lnksect2,
2194           (lnksect2): return next address, handle absolute sections
2195         * as/hc08/lkhead.c,
2196         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
2197         * as/hc08/lklibr.c (addfile, fndsym),
2198         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
2199           index out of range and detect both '\' and '/'
2200         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
2201         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
2202           regression tests (ds390 cannot return bool yet)
2203         * doc/sdccman.lyx: changed version number, document changed --no-peep,
2204           document critical interrupts on z80, document changed SDCC define
2205         * src/asm.c (_asxxxx_mapping): fixed .org directive,
2206           (_a390_mapping): added .org directive
2207         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
2208           (genMultOneByte): fixed warnings
2209         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
2210           ones
2211         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
2212         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
2213           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
2214         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
2215         * src/pic16/main.c: removed newReg prototype
2216         * src/pic16/pcode.c,
2217         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
2218           warnings
2219         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
2220           ones
2221         * src/pic16/ralloc.c
2222         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
2223           to fix warnings
2224         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
2225           from short to PIC_OPTYPE
2226         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
2227         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
2228           optype from short to PIC_OPTYPE
2229         * src/port.h: made int_size unsigned to fix warnings
2230         * src/SDCC.y: fixed warning on MSVC
2231         * src/SDCCicode.c (getArraySizePtr): return unsigned int
2232         * src/SDCCopt.c (convertToFcall): fixed warnings
2233         * src/SDCCsymt.h: removed double prototype for genSymName
2234         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
2235           offset int to fix warnings
2236
2237 2006-04-22 Borut Razem <borut.razem AT siol.net>
2238
2239         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2240           references to CVS replaced with Subversion
2241
2242 2006-04-21 Borut Razem <borut.razem AT siol.net>
2243
2244         * doc/sdccman.lyx, */Makefile, */Makefile.in:
2245           references to CVS replaced with Subversion
2246
2247 2006-04-19 Borut Razem <borut.razem AT siol.net>
2248
2249         * src/version.awk: adapted for svn
2250         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
2251           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
2252           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
2253           /binutils-avr/etc/*.vi, *.jin: removed all properties
2254           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
2255
2256 2006-04-19 Borut Razem <borut.razem AT siol.net>
2257
2258         * CVS to Subversion migration completed
2259
2260 2006-04-18 Borut Razem <borut.razem AT siol.net>
2261
2262         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
2263           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
2264
2265 2006-04-17 Borut Razem <borut.razem AT siol.net>
2266
2267         * device/include/Makefile.in: added pic/*.inc to the installation
2268
2269 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
2270
2271         * support/regression/collate-results.py: fixed output in case of
2272         a valdiag error
2273         * support/regression/generate-cases.py: fixed splitting of pathnames
2274         with dots
2275         * as/hc08/lklibr.c (addfile),
2276         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
2277
2278 2006-04-11 Raphael Neider <rneider AT web.de>
2279
2280         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
2281         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
2282         * src/pic16/pcode.c (assignValnums): fixed #1460578
2283
2284 2006-04-11 Raphael Neider <rneider AT web.de>
2285
2286         * device/lib/pic/libdev/*.c,
2287         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
2288           fixes #1468739, enables compilation in --std-c99 mode
2289         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
2290
2291 2006-04-11 Raphael Neider <rneider AT web.de>
2292
2293         * src/pic/device.c (find_device): removed debug output
2294           (list_valid_pics): enabled verbose listing of supported devices
2295         * device/include/stdbool.h: define bool as char for pic14/16 as well
2296
2297 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2298
2299         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
2300
2301 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
2302
2303         * .version: bumped version to 2.5.6
2304         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
2305
2306 2006-04-06 Raphael Neider <rneider AT web.de>
2307
2308         * .version: bumped version to 2.5.6 (pic14 ABI changed)
2309         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
2310         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
2311           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
2312             pic14_constructAbsMap
2313           (pic14printPublics): declare absolute global symbols as global
2314           (pic14createInterruptVect),
2315         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
2316           (newReg): assume new registers unused, use correct name in
2317             hashtable (reg->name instead of name), more debugLog output
2318         * src/pic/device.h (PIC_device): added fields for verbose output
2319         * src/pic/device.c: moved device definition to pic14devices.txt,
2320             added routines for runtime parsing of pic14devices.txt,
2321             added support for second config word
2322         * src/pic/main.c (_process_pragma): removed #pragma maxram,
2323           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
2324           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
2325           (_pic14_parseOptions): moved pCodeInitRegisters here
2326           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
2327         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
2328           (pCodeInitRegisters): rewrapped comments, perpared new approach to
2329             handling the pseudo stack
2330         * device/lib/Makefile.in: ignore failures in objects-pic16,
2331         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
2332         * device/lib/pic/NEWS: document new dependency on picXXX.lib
2333         * device/lib/pic/Makefile.subdir,
2334         * device/lib/pic16/Makefile.subdir: improved clean rules
2335         * device/lib/pic/libdev/: NEW, pic14 device libraries
2336         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
2337         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
2338         * device/include/Makefile.in: create subdir and install pic14 headers
2339         * device/include/pic/p16f_common.inc: removed unused declarations
2340         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
2341             PICs from inc2h.pl v1.6,
2342             replaced BIT_AT macros with struct declarations
2343         * device/include/pic/pic14devices.txt: definition of supported devices,
2344             all above improvements contributed by Zik Saleeba, thanks
2345         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
2346         * support/scripts/sdcc.nsi: also install pic14 device libraries and
2347             headers
2348
2349 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2350
2351         * device/include/mcs51/c8051f410.h: added interrupt numbers,
2352         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
2353           thanks to Charles Olds
2354
2355 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2356
2357         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
2358
2359 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
2360
2361         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
2362         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
2363         * support/regression/bug1464657.c: added, new test
2364
2365 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2366
2367         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
2368           version number
2369
2370 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2371
2372         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
2373           --no-peep and --peep-file <file> are used don't use default rules but
2374           do use the <file>
2375
2376 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
2377
2378         * src/mcs51/gen.c (genCall): fixed bug 1457608
2379
2380 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2381
2382         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
2383         changes seem to cause (trigger?) problems with the build system.
2384
2385 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
2386
2387         * src/SDCCpeeph.c (operandsLiteral): new, added,
2388           (callFuncByName): inserted operandsLiteral
2389         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
2390
2391 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2392
2393         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
2394         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
2395
2396 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2397
2398         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
2399           implemented patch 1120823 Thanks to Willy De la Court (normal
2400           interrupts need an interrupt number now if they are made critical),
2401           and enabled nesting of critical functions though not for gbz80
2402           (genCritical, genEndCritical): added functions
2403           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
2404         * src/z80/mappings.i: added "ei" to all mappings
2405
2406 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2407
2408         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
2409         submitted by the Debian SDCC maintainer Aurelien Jarno:
2410         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
2411         archive with gcc 4.1 on mips and wrote the patch"
2412
2413 2006-03-16 Raphael Neider <rneider AT web.de>
2414
2415         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
2416           the left operand is shorter than the result (c* = lit-c* + int),
2417           fixes bug #1450796
2418         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
2419           OP_SYMBOL
2420
2421 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2422
2423         * src/.version: increased version number to 2.5.5
2424         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
2425         linking is done manually in pic16 port's _linkEdit,
2426         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
2427         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
2428         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
2429         allocate asmop as AOP_ACC,
2430         (aopForRemat): added parameter 'bool result' in function declaration,
2431         (pic16_aopGet): return AOP_ACC when accessing WREG,
2432         (pic16_popGetTempReg): minor modification,
2433         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
2434         'pic16_allocWithIdx',
2435         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
2436         calling function in absolute addresses,
2437         (genAssign): take into account AOP_ACC asmop,
2438         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
2439         * src/pic16/pcoderegs.c: some debug functions and lines added,
2440         * src/pic16/ralloc.c (decodeRegType): added but commented out,
2441         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
2442         register too,
2443         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
2444         call to allocReg, not by manually allocating a new one,
2445         (pic16_assignRegisters): now before going through the register
2446         allocating functions mark all registers as free. This eliminates some
2447         side effects resulting from peephole parser done earlier in the backbone
2448
2449 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
2450
2451         * src/SDCCicode.c (geniCodeLogic),
2452         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
2453
2454 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
2455
2456         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
2457           (genSend): bugfix, do not allocate and free twice,
2458           (shiftRLong): handle partially overlapping aops
2459         * support/regression/tests/bitopcse.c: fixed warning redefined idata
2460
2461 2006-03-08 Borut Razem <borut.razem AT siol.net>
2462
2463         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
2464           for pic16
2465
2466 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
2467
2468         * support/regression/tests/bug1409955.c: new, added
2469         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
2470         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
2471           (aopForSym, aopOp): increment asmop.allocated if reused,
2472           (freeAsmop): decrement asmop.allocated and check for zero instead of
2473           using asmop.freed,
2474           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
2475           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
2476            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
2477            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
2478            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
2479            genSignedRightShift, genRightShift, genDataPointerGet,
2480            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
2481            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
2482             in reverse order from allocation,
2483           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
2484             added swappedLR to keep track
2485         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
2486           pdata & code for GCC, z80, gbz80 & hc08
2487         * support/regression/tests/zeropad.c: moved defines to testfwk.h
2488
2489 2006-03-08 Raphael Neider <rneider AT web.de>
2490
2491         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
2492
2493 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
2494
2495         * device/include/mcs51/c8051f410.h: new SiLabs mcu
2496         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
2497         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
2498
2499 2006-03-06 Borut Razem <borut.razem AT siol.net>
2500
2501         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
2502           made the linker quiet
2503
2504 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
2505
2506         * src/pic16/gen.c (genPcall): fixed bug #1443644
2507         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
2508         which dumps before the function entry point a data byte which represents
2509         the number of the local variables used by the specified function, added
2510         'xinst' for initial support for Extended Instruction Support,
2511         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
2512         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
2513         port->fun_prefix anymore (may change later),
2514         (genFunction, genEndFunction): do not store/restore local registers for
2515         _main (this should take care the --main-return command line option in
2516         the future),
2517         (genOr): removed some legacy pic-port instructions,
2518         * src/pic16/genarith.c (genAddLit): re-enabled old code because
2519         performing operations with SFR's causes data to be written more than
2520         once to each SFR. Perhaps SFRs should be handled in special cases...
2521         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
2522         pcode.h
2523         * src/pic16/main.c (_process_pragma): stack bound checking did not take
2524         into account for stack starting position,
2525         (struct OPTIONS pic16_optionsTable): added command line argument
2526         --extended or -y for Extended Instruction Support,
2527         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
2528         (deassignLRs): *** perhaps the most important change, old 'for' code
2529         (commented out for reference), didn't account for some registers which
2530         were left marked 'not free' after a pointer operation. The change
2531         reduces register usage a lot in some cases
2532
2533 2006-03-04 Borut Razem <borut.razem AT siol.net>
2534
2535         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
2536           _clean
2537         * support/regression/tests/bug-524697.c: decreased array size for
2538           mcs51 to fit into the internal RAM
2539         * support/regression/Makefile.in: a little bit more verbose
2540
2541 2006-03-03 Borut Razem <borut.razem AT siol.net>
2542
2543         * support/regression/fwk/lib/testfwk.c,
2544           support/regression/fwk/include/testfwk.h: introduced function
2545           _prints(), nonrecursive _printn(), call _initEmu() from main()
2546         * support/regression/ports/gbz80/support.asm,
2547           support/regression/ports/ucz80/support.asm,
2548           support/regression/ports/z80/support.asm,
2549           support/regression/ports/ds390/support.c,
2550           support/regression/ports/hc08/support.c,
2551           support/regression/ports/host/support.c,
2552           support/regression/ports/mcs51/support.c,
2553           support/regression/ports/xa51/support.c: added empty _initEmu()
2554           function
2555         * support/regression/ports/pic16/gpsim.cmd,
2556           support/regression/ports/pic16/spec.mk,
2557           support/regression/ports/pic16/support.c,
2558           support/regression/Makefile.in: added pic16 regression test
2559
2560 2006-03-01 Raphael Neider <rneider AT web.de>
2561
2562         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
2563           genConstPointerGet): use safe way of generating MOVFF to cover
2564             literals as well as registers, fixes bug #1440527
2565         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
2566             dereference
2567           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
2568             more correctly, fixes bug #1232186
2569           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
2570         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
2571             gplink guess the correct processor in more cases, applied patch
2572             from Till Riedel attached to and fixing bug #1436552
2573
2574 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2575
2576         * support/regression/tests/array.c: added, contains check for #1434401
2577         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
2578
2579 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
2580
2581         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
2582         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
2583         * device/include/mcs51/c8051f326.h,
2584         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
2585         * device/include/mcs51/c8051f000.h,
2586         * device/include/mcs51/c8051f018.h,
2587         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
2588           PCON_IDLE,PCON_STOP and added sfr16 definitions
2589
2590 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2591
2592         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
2593           genGetWord): fixed bug 1409955
2594
2595 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2596
2597         * device/include/hc08/mc68hc908gp32.h,
2598         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
2599
2600 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
2601
2602         * src/SDCCast.c (constExprValue): return NULL if not a value
2603         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
2604         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
2605         * support/regression/tests/bitfields.c: enabled signed bitfield for all
2606
2607 2006-02-13 Borut Razem <borut.razem AT siol.net>
2608
2609         * src/regression/ptrarg.c: added, fails due to bug #1430967
2610         * src/regression/Makefile: ptrarg.c added, ...
2611
2612 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2613
2614         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
2615         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
2616
2617 2006-02-11 Borut Razem <borut.razem AT siol.net>
2618
2619         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
2620           print "Processor: xxx" message to stdout only if --verbose
2621
2622 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2623
2624         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
2625         * support/regression/tests/bug1426356.c: added
2626         * support/regression/tests/bitfields.c: removed 2 tests
2627
2628 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2629
2630         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
2631         * device/include/mcs51/c8051f330.h,
2632         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
2633           PCON_IDLE,PCON_STOP and added sfr16 definitions
2634         * device/lib/_divsint.c,
2635         * device/lib/_divuint.c,
2636         * device/lib/_divulong.c,
2637         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
2638           register bank bug for small stackauto
2639
2640 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2641
2642         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
2643
2644 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
2645
2646         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
2647         * all.dsp: corrected several bin paths
2648         * device/include/mcs51/c8051f120.h,
2649         * device/include/mcs51/c8051f300.h,
2650         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
2651           to PCON_IDLE,PCON_STOP
2652         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
2653         * device/lib/printf_large.c (output_float): fixed bug 1388703
2654         * support/regression/tests/bug1057979.c: added test for bug 1388703
2655
2656 2006-02-08 Raphael Neider <rneider AT web.de>
2657
2658         * src/pic/pcode.c (pciTRIS): fixed typo,
2659           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
2660           (LinkFlow): fixed handling of flows that end in a call,
2661           (ReuseReg): perform safety check earlier
2662         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
2663             to work with flows at the beginning of a pBlock,
2664             fixes #1426557 (Symbol not previously defined),
2665           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
2666             usage information
2667           (RemoveUnusedRegisters): update register usage info
2668         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
2669             created, reuse existing ones instead
2670         * src/pic/gen.c (genPcall): fixed #1424719
2671
2672 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
2673
2674         * link/z80/lkmain.c,
2675         * link/z80/lklex.c,
2676         * link/z80/lkdata.c,
2677         * link/z80/aslink.h: fixed build on current cygwin:
2678         replaced getline() by lk_getline()
2679
2680 2006-02-01 Borut Razem <borut.razem AT siol.net>
2681
2682         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
2683           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
2684           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
2685           src/regression/bool1.c, src/regression/bool2.c,
2686           src/regression/bool3.c, src/regression/call1.c,
2687           src/regression/compare.c, src/regression/compare10.c,
2688           src/regression/compare2.c, src/regression/compare3.c,
2689           src/regression/compare4.c, src/regression/compare5.c,
2690           src/regression/compare6.c, src/regression/compare7.c,
2691           src/regression/compare8.c, src/regression/compare9.c,
2692           src/regression/configword.c, src/regression/for.c,
2693           src/regression/inline.c, src/regression/mult1.c,
2694           src/regression/nestfor.c, src/regression/or1.c,
2695           src/regression/pointer1.c, src/regression/ptrfunc.c,
2696           src/regression/rotate1.c, src/regression/rotate2.c,
2697           src/regression/rotate3.c, src/regression/rotate4.c,
2698           src/regression/rotate5.c, src/regression/rotate6.c,
2699           src/regression/rotate7.c, src/regression/string1.c,
2700           src/regression/struct1.c, src/regression/sub.c,
2701           src/regression/sub2.c, src/regression/switch1.c,
2702           src/regression/while.c, src/regression/xor.c,
2703           src/regression/create_stc, src/regression/simulate,
2704           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
2705           regression tests
2706         * src/regression/gpsim_assert.h: added
2707
2708 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
2709
2710         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
2711         ((void (code *) (void)) 0) ();
2712         * as/hc08/aslex.c,
2713         * as/hc08/aslink.h,
2714         * as/hc08/asm.h,
2715         * as/hc08/asmain.c,
2716         * as/hc08/lkdata.c,
2717         * as/hc08/lklex.c,
2718         * as/hc08/lkmain.c,
2719         * as/mcs51/aslex.c,
2720         * as/mcs51/aslink.h,
2721         * as/mcs51/asm.h,
2722         * as/mcs51/asmain.c,
2723         * as/mcs51/lkdata.c,
2724         * as/mcs51/lklex.c,
2725         * as/mcs51/lkmain.c,
2726         * as/z80/aslex.c,
2727         * as/z80/asm.h,
2728         * as/z80/asmain.c: fixed build on current cygwin:
2729         replaced getline() by as_getline()
2730
2731 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
2732
2733         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
2734         declarator in the symbol chain
2735         * src/SDCCsymt.h,
2736         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
2737         parameter list for function pointers
2738         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
2739         * support/regression/tests/bug-716242.c: added
2740
2741 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
2742
2743         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
2744         offset if possible
2745         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
2746
2747 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
2748
2749         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
2750         inifinitely recurseable, added static
2751         * support/regression/tests/bug-1408066.c: added
2752
2753 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
2754
2755         * src/SDCCicode.h,
2756         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
2757         renamed, added possibility to create "postLoopLbl"-labels
2758         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
2759         newiTempLoopHeaderLabel
2760         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
2761         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
2762         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
2763         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
2764         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
2765         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
2766         (basicInduction): fixed bug #136564, made static,
2767         (loopInduction): changed parameter of basicInduction, made static,
2768         (addPostLoopBlock): added
2769         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
2770         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
2771         findLoopEndSeq
2772         * support/regression/tests/bug-136564.c: added
2773         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
2774         --std-sdcc99 to LIBSDCCFLAGS
2775
2776 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
2777
2778         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
2779         while loop
2780         * support/regression/tests/bug-1406131.c: added
2781
2782 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
2783
2784         * src/SDCCast.c (decorateType): fix promotion of unary minus
2785         * src/SDCCsymt.c (computeType): beautified
2786         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
2787         (valUnaryPM, valComplement): fix sign and promotion,
2788         (valNot): ANSI: result type is int (SDCC: unsigned char)
2789         * support/regression/tests/uminus.c: speedup by removing superflous
2790         test case 'int'
2791         * support/regression/tests/onebyte.c: added promotion and signedness
2792         tests for unary minus
2793         * support/regressions/tests/bug-477927.c: disable warning about
2794         uninitialized variables
2795         * support/regression/tests/not.c: added
2796
2797 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
2798
2799         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
2800         * src/mcs51/gen.c (gen51Code): show final register usage after
2801         fillGaps in asm with --i-code-in-asm
2802         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
2803         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
2804         incUsed, rliveClear, adjustIChain): made static,
2805         (setFromRange): excluded because it's unused,
2806         (findPrevUseSym, markWholeLoop): added,
2807         (findPrevUse): rewritten; fixes bug 895992; now a complete search
2808         through all branches of predecessors enables sdcc to emit the warning
2809         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
2810         (rlivePoint): made static, added parameter emitWarnings which is only
2811         true during the first run out of two,
2812         (findRecursiveSucc, findRecursivePred): removed,
2813         (computeLiveRanges): made static, added parameter emitWarnings,
2814         (dumpIcRlive): added for debugging only
2815         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
2816         removed prototype of setFromRange()
2817         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
2818         in call of computeLiveRanges()
2819         * support/regression/tests/bug-895992.c: added
2820         * support/regression/tests/bug-971834.c: added
2821         * support/valdiag/tests/bug-895992.c: added
2822         * support/valdiag/tests/bug-971834.c: added
2823
2824 2005-12-18 Raphael Neider <rneider AT web.de>
2825
2826         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
2827           (genUnpackBits): improved code for direct operands,
2828           (genPackBits): improved code for literal assignment to bitfields
2829             and for direct destination operands (no FSR indirection),
2830             prevented redundant AND, fixes #1362800,
2831           (AccLsh): added parameter to disable masking of the result
2832         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
2833           skip instructions with side-effects (like incfsz),
2834           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
2835         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
2836         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
2837           fixes #1375263
2838
2839 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
2840
2841         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
2842         volatile variables as spill location
2843
2844 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
2845
2846         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
2847         replacing literals
2848         * support/regression/tests/bug-1376320.c: added
2849
2850 2005-12-08 Raphael Neider <rneider AT web.de>
2851
2852         * src/pic/device.c: renamed is_shared to pic14_is_shared
2853         * src/pic/gen.c (genIfx): re-enabled handling of sbits
2854         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
2855           (is_valid_identifier): added for above workaround
2856
2857 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
2858
2859         * device/lib/Makefile.in: fixed to enable port-specific-objects
2860         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
2861           char, thanks Hubert Sack
2862         * doc/sdccman.lyx: documented --xstack-loc,
2863           elaborated a bit more on interrupts and pitfalls,
2864           removed "setjmp/longjmp unsupported",
2865           documented some unsupported C99 features
2866         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
2867         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
2868           if, thanks Hubert Sack
2869         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
2870         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
2871           make make_library
2872         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
2873           regression tests can report resource usage (rfe 700441)
2874         * support/regression/collate-results.py: report resource usage
2875         * support/regression/ports/ds390/spec.mk,
2876         * support/regression/ports/hc08/spec.mk,
2877         * support/regression/ports/mcs51/spec.mk,
2878         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
2879         * support/regression/ports/ds390/uCsim.cmd,
2880         * support/regression/ports/hc08/uCsim.cmd,
2881         * support/regression/ports/mcs51/uCsim.cmd,
2882         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
2883         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
2884           library, use the default one
2885         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
2886           building the library
2887
2888 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2889
2890         * config.dsp: added dependency on .version and configure_vc.awk
2891         * device/include/setjmp.h: updated for --stack-auto and --xstack
2892         * device/include/mcs51/at89c51snd1c.h: corrected line endings
2893         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
2894         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
2895         * device/lib/libsdcc.lib: added _setjmp
2896         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
2897           (decorateType): fixed bug 1372851,
2898           (optimizeGetHbit): fixed warning
2899         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
2900           array initialisation
2901         * support/regression/tests/bug1057979.c: added test for bug 1358192
2902         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
2903
2904 2005-12-03 Borut Razem <borut.razem AT siol.net>
2905
2906         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
2907           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
2908
2909 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2910
2911         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
2912         createIval): implement symbol independant "flexible array member",
2913         (createIvalCharPtr): implemented flexible array initialisation with a
2914         string
2915         * src/SDCCsymt.c (copyStruct): removed,
2916         (getSize): fixed misleading comment,
2917         (getAllocSize): removed, the additional allocation size is now in
2918         sym->flexArrayLength,
2919         (checkStructFlexArray): new, syntax checks for flexible array members,
2920         (compStructSize): added syntax checks for "flexible array members"
2921         (copyStruct): removed,
2922         (copyLinkChain): removed inefficient fix for bug 770487
2923         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
2924         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
2925         symbol->flexArrayLength
2926         * src/SDCCerr.c,
2927         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
2928         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
2929         * support/regression/tests/structflexarray.c: added
2930         * support/valdiag/tests/structflexiblearray.c: added
2931
2932 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2933
2934         * src/SDCCast.c (decorateType): fixed bug 1368489
2935         * support/Util/SDCCerr.c,
2936         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
2937
2938 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2939
2940         * device/include/mcs51/at89c51snd1c.h: added file submitted by
2941           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
2942
2943 2005-11-27 Borut Razem <borut.razem AT siol.net>
2944
2945         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
2946           support/cpp2/mkdeps.h: added command line option
2947           -obj-ext=<extension> to SDCPP to define object file externion, used
2948           for generation of make dependencies (-M)
2949         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
2950
2951 2005-11-26 Borut Razem <borut.razem AT siol.net>
2952
2953         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
2954           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
2955           added pic and pic16 libraries
2956
2957 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2958
2959         * device/include/float.h: Corrected typo in prototype of __fsgt
2960
2961 2005-11-25 Borut Razem <borut.razem AT siol.net>
2962
2963         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
2964           added creation of model-mcs51-stack-auto libraries
2965
2966 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
2967
2968         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
2969         and fields-list too
2970         * src/SDCCast.c (createIvalArray): removed obsolete comment
2971
2972 2005-11-24 Borut Razem <borut.razem AT siol.net>
2973
2974         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
2975           added missing device/lib/mcs51/crt*.asm sources
2976
2977 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
2978
2979         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
2980
2981 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
2982
2983         * device/lib/_fs2schar.c,
2984         * device/lib/_fs2sint.c,
2985         * device/lib/_fs2slong.c: optimized inline asm
2986
2987 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2988
2989         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2990           Better handling of floats between -1.0 and 0.0.
2991
2992 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2993
2994         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
2995           (the missing "if"s prohibited removal of redundant labels)
2996
2997 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2998
2999         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
3000           Properly convert floats between -1.0 and 0.0 to long, int, and char
3001           types (max integer value of negative floats tends to zero).
3002         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
3003           Removed changes made so to work properly with floats between
3004           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
3005           and _fs2char.c
3006
3007 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
3008
3009         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
3010         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
3011         (genCast) cosmetic change
3012         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
3013         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
3014         from mcs51
3015         * support/regression/tests/bitfields (testSignedBitfields): added
3016
3017 2005-11-18 Borut Razem <borut.razem AT siol.net>
3018
3019         * sdcc/device/lib/Makefile.in: remove all unnecessary files
3020         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
3021           introduced SILENT option to make building of pic16 libraries less
3022
3023 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3024
3025         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
3026           Now they work properly with floats between -1.0 and 0.0
3027         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
3028
3029 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
3030
3031         * src/SDCCicode.c (printOperand): added missing else
3032
3033 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
3034
3035         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
3036         reformatted for better readability
3037         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
3038         signed bitfields
3039
3040 2005-11-17 Borut Razem <borut.razem AT siol.net>
3041
3042         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
3043           introduced SILENT option to make building of pic16 libraries less
3044           verbose - used for nightly snapshot build
3045         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
3046           available on Win32 platforms.
3047         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
3048           medium, large, pic and pic16
3049
3050 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3051
3052         * device/lib/printf_large.c: Temporary patch for bug 1358192:
3053           printf("%f"...) sets fraction to zero.
3054
3055 2005-11-16 Raphael Neider <rneider AT web.de>
3056
3057         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
3058           fixes #1357221
3059         * src/pic/gen.c (genIfx): implemented for CARRY bit
3060         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
3061           to generic pointers, fixes #1357332,
3062           (pic16_movLit2f): NEW,
3063           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
3064
3065 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
3066
3067         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
3068
3069 2005-11-11 Raphael Neider <rneider AT web.de>
3070
3071         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
3072         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
3073           compute pointer's type from operand,
3074           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
3075           improved single bit reads, fixes bug #1353379
3076
3077 2005-11-09 Borut Razem <borut.razem AT siol.net>
3078
3079         * support/scripts/sdcc.nsi: added lib/pic to the package
3080
3081 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
3082
3083         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
3084
3085 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
3086
3087         * support/regression/tests/bug1348008.c: added
3088         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
3089         * support/regression/tests/bug1337835.c: updated comment
3090
3091 2005-11-06 Borut Razem <borut.razem AT siol.net>
3092
3093         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
3094           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
3095           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3096           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
3097           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
3098           dynamic construction of cl_error_class and derivates - 2.nd try
3099
3100 2005-11-05 Borut Razem <borut.razem AT siol.net>
3101
3102         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
3103           bug, which caused Bus Errors on sparc solaris
3104
3105 2005-11-04 Borut Razem <borut.razem AT siol.net>
3106
3107         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
3108           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
3109           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
3110           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
3111           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
3112           and derivates to resolve the initialization problem on OSX
3113
3114 2005-11-02 Borut Razem <borut.razem AT siol.net>
3115
3116         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
3117           corrected typo - #include <winsock2.h>
3118
3119 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
3120
3121         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
3122           (_asxxxx_mapping): added org directive for future enhancements
3123
3124 2005-11-01 Borut Razem <borut.razem AT siol.net>
3125
3126         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
3127           enabled sockets on WIN32
3128         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
3129
3130 2005-10-31 Borut Razem <borut.razem AT siol.net>
3131
3132         * support/regression/generate-cases.py: escape backslashes in {testcase}:
3133           WIN32 backslash path delimiters should be escaped when used in C strings
3134         * support/regression/tests/bitfields.c: exclude failing assertions for
3135           __CYGWIN32__ and __MINGW32__ hosts
3136
3137 2005-10-30 Borut Razem <borut.razem AT siol.net>
3138
3139         * src/SDCCutil.c: corrected double comparison typo
3140
3141 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
3142
3143         * device/lib/medium/Makefile: added for new memory model medium
3144         * device/include/asm/mcs51/features.h: updated for medium/pdata
3145         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
3146           added Multiply & Accumulate sbit's and MAC0_PAGE define
3147         * device/include/mcs51/c8051f300.h: added sfr16 definitions
3148         * device/include/mcs51/c8051f310.h: added sfr16 definitions
3149         * device/lib/_mullong.c: update for medium model
3150         * device/lib/incl.mk: added medium model
3151         * doc/sdccman.lyx: documented medium model
3152         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
3153         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
3154         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
3155         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
3156           (allocParms): set SCLS and OCLS to pdata for medium model
3157         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
3158           for pdata,
3159           (powof2): return <0 if not power of 2
3160         * src/avr/gen.c (genBitWise): use updated powof2
3161         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
3162           (shiftR2Left2Result): small optimization in setup, save acc when storing,
3163           (shiftLLeftOrResult): use B if necessary
3164         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
3165         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
3166         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
3167         * support/regression/Makefile.in: added test-mcs51-medium
3168         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
3169
3170 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
3171
3172         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
3173         specifier unsigned
3174         * device/lib/time.c (mktime): fixed bug 1334315
3175
3176 2005-10-28 Raphael Neider <rneider AT web.de>
3177
3178         * device/include/pic/p16f_common.inc: added common declarations
3179         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
3180
3181 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3182
3183         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
3184           (aopPutUsesAcc): added to predict accumulator use,
3185           (assignResultValue): save acc if necessary,
3186           (genMinusDec): store result if indirectly addressed,
3187           (genDivOneByte):  save acc if necessary,
3188           (movLeft2Result): bugfix if left already in acc,
3189           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
3190             attention to accumulator use (esp. pdata),
3191           (genReceive): receive pdata correctly
3192         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
3193         * src/SDCCicode.h: added isOperandInPagedSpace prototype
3194
3195 2005-10-27 Raphael Neider <rneider AT web.de>
3196
3197         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
3198
3199 2005-10-27 Raphael Neider <rneider AT web.de>
3200
3201         * .version: changed version to 2.5.4
3202         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
3203         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
3204           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
3205             arithmetics support routines
3206         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
3207         * device/lib/Makefile.in: also create installdir for pic
3208
3209         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
3210           pic14 port as well
3211         * src/pic/device.c (dump_sfr): rewritten to delegate register
3212           placement to the linker (use `extern sym' rather than sym EQU addr),
3213           (validAddress): fixed to check last specified address
3214         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
3215           (popGetLit): truncate literal value to 8 bit,
3216           (popGet): moved assert to more appropriate place
3217           (popGetExternal): create pCode operand from and mark the according
3218             symbol as being `extern'
3219           (popGetAddr): added sanity check on immediate's offset, provide
3220             GPOINTER tag on demand
3221           (aopPut): fixed for immediates,
3222           (mov2w_op): move operand's address or contents to WREG (depending on
3223             operand type), safer variant of mov2w,
3224           (movwf,call_libraryfunc): NEW, handy abbreviations,
3225           (get_argument_pcop,get_return_val_pcop,pass_argument,
3226           get_returnvalue): interface for accessing function parameters and
3227             return values,
3228           (assignResultValuei,genRet): use new parameter/return value interface
3229           (pic14_getDataSize): back to old version handling generic pointers,
3230           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
3231             provided implementation and/or fixed old one,
3232           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
3233             calls, removed legacy 8051 reference code
3234           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
3235           (loadSignToC): NEW, move the operands sign bit to CARRY,
3236           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
3237             genRightShiftSigned, accepts negative shift counts,
3238           (setup_fsr): load FSR and adjust IRP (indirect memory access),
3239           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
3240             generic pointers, __data pointers and __code pointers,
3241           (genUnpackBits,genPackBits): rewritten to work with generic pointers
3242             and signed bitfields, limit bitfields to 8 bit,
3243           (genDataPointerGet): fixed number of bytes read,
3244           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
3245           (genPointerGet,genPointerSet): fixed handling of __code pointers,
3246             pointers to constant data are no longer assumed to point to __code
3247             space, removed invalid pointer types,
3248           (bitpatternFromVal): retrieve the PICs representation of an integer
3249             or float literal,
3250           (genDataPointerSet): fixed assigning to po_immediate operands,
3251           (genGenPointerSet): implemented as library call,
3252           (genIfx): fixed incorrect condition,
3253           (genAddrOf): limit generic pointers' addresses to 2 bytes,
3254             provide GPOINTER tag according to destination's storage class,
3255           (genCast): added code to handle casting to generic pointers, added
3256             sign-/zero extension of the result
3257           (aop_isLitLike,op_isLitLike): fixed handling of immediates
3258         * src/pic/gen.h: added macros to access IRP bit in STATUS register
3259         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
3260           extend the result
3261         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
3262           address/register resides in the shared banks
3263           (emitSymbolToFile): improved to handle global and `pinned' symbols,
3264             put all variables into separate sections (have the linker arrange
3265             them)
3266           (picglue): put init code and interrupt handlers in separate sections
3267         * src/pic/main.c: added port specific options table, modified to PORT
3268           structure to make GPOINTERs 3 byte, added pic14_options
3269           (_pic14_do_link): private linking routine (update paths to libraries,
3270             add libsdcc.lib by default)
3271         * src/pic/main.h: declare pic14_options
3272         * src/pic/pcode.c: fixed instructions i/o relations,
3273           (RegCond): reverted to correct version,
3274           (newpCodeOpLit): truncate literals to 8 bit,
3275           (genericPrint): added debug output,
3276           (getRegFromInstruction): fixed for various operand types, simplified
3277           (BuildFlow): fixed broken handling of isntructions with labels
3278           (LinkFlow): start at last instruction in flow (skip trailing comments),
3279             pass the flow on to the next instruction after CALL
3280           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
3281           (insertPCodeInstruction): fixed inserting after a skip instruction,
3282           (DoBankSelect): fixed for labeled instructions
3283           (OptimizepBlock): honor --nopeep switch
3284           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
3285         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
3286         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
3287           (pCodeOptime2pCodes): allow disabling this optimization via
3288             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
3289             but is still buggy), started implementation of a dataflow based
3290             pCode optimization (CSE + dead code elimination)
3291           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
3292         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
3293           names are independant of the stack location and therefore portable across
3294           devices
3295
3296 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
3297
3298         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
3299           (selectSpil): fixed bug 1337835 by not spilling bit variables
3300         * support/regression/tests/bug1337835.c: added test for this bug
3301         * src/mcs51/peeph.def: restart after rule 3.c,
3302           addded rules 263.x to optimize loading constants
3303
3304 2005-10-26 Raphael Neider <rneider AT web.de>
3305
3306         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
3307         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
3308           (genAssign): emit warning when casting literals to generic pointer
3309             type, also applies when taking the address of a fixed variable,
3310           (genCast): improved casting to generic pointers
3311         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
3312           extern variables, added verbose error message
3313         * device/include/pic16/{string.h,errno.h}: added #pragma library c
3314
3315 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
3316
3317         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
3318         carry must be complemented too
3319         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
3320         could be emitted by genMinus
3321         * src/SDCCval.c (constVal): fixed bug 1305065
3322
3323 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
3324
3325         * src/SDCCast.c (addCast): added promotion for bit variables
3326         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
3327         promotion casts + optimisation
3328         (optimizeGetWord): fix warning 'i' might be used uninitialized
3329         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
3330         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
3331
3332 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
3333
3334         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
3335         all chars are promoted to int; promotion should be handled in SDCCast.c
3336
3337 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3338
3339         * device/lib/_strcmp.c: Fixed bug 1326457
3340
3341 2005-10-11 Raphael Neider <rneider AT web.de>
3342
3343         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
3344         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
3345
3346 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
3347
3348         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
3349         * support/regression/tests/sfr16.c: added test for the sfr32 bug
3350
3351 2005-10-04 Raphael Neider <rneider AT web.de>
3352
3353         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
3354           device/lib/pic16/pics.all: added pic18f1320
3355         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
3356
3357 2005-09-30 Raphael Neider <rneider AT web.de>
3358
3359         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
3360         * src/pic16/devices.inc: NEW, provides device descriptions
3361         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
3362
3363 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
3364
3365         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
3366           GETHBIT
3367
3368 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
3369
3370         * doc/sdccman.lyx: updated Highest Order Bit documentation,
3371           documented Any Order Bit, Higher Order Byte and Higher Order Word
3372         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
3373         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
3374           (optimizeGetAbit): new, to get any bit, not only the high bit,
3375           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
3376           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
3377           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
3378           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
3379             RIGHT_OP: also try GETBYTE, GETWORD optimization,
3380             GETABIT, GETBYTE, GETWORD: decorate them,
3381           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
3382           (ast_print): added GETABIT, GETBYTE, GETWORD
3383         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
3384         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
3385           (geniCodeBinary): new generic binary icode,
3386           (ast2iCode): added GETABIT, GETBYTE, GETWORD
3387         * src/port.h: updated comment for PORT.hasExtBitOp
3388         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
3389           (genGetByte): new, to get a single byte,
3390           (genGetWord): new, to get a word from a long,
3391           (gen51Code): added GETABIT, GETBYTE, GETWORD
3392         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
3393
3394 2005-09-23 Raphael Neider <rneider AT web.de>
3395
3396         * configure.in, configure: have device/lib/pic configured
3397         * device/lib/Makefile.in: added model-pic14
3398         * device/lib/clean.mk: added pic/ to clean rule
3399         * device/lib/pic: added rudimentary pic14 library providing support
3400           functions for multiplication/division/generic pointer access
3401         * src/SDCCopt.c (convilong): mark support functions as extern
3402           for pic14 port as well
3403         * src/pic/gen.c (genMult): added assertions,
3404           (genpic14Code): emit warning on unhandled iCodes
3405         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
3406         * src/pic/pcode.c (pCodeOpCopy),
3407         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
3408           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
3409           SFR_REGISTER}), made safe for future extensions
3410         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
3411           instructions even if preceeded by SKIP instructions (also remove
3412           them); removed unused code
3413         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
3414           prevents leaving parts of the structure uninitialized after copying
3415
3416 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
3417
3418         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
3419           ago by me
3420         * support/regression/tests/addsub.c: added test for the bug
3421
3422 2005-09-21 Raphael Neider <rneider AT web.de>
3423
3424         * device/include/pic16/pic18f1220.h,
3425           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
3426         * device/lib/pic16/Makefile.rules: added missing opening paren
3427         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
3428           are provided in genutils.c,
3429           (genUminusFloat,genUminus,genCmpEq): added asserts on different
3430           operand/result sizes,
3431           (genCmp): assert on NULL pointers first, then check deref'ed values
3432         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
3433           result size
3434
3435 2005-09-18 Raphael Neider <rneider AT web.de>
3436
3437         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
3438           as these are now unused,
3439           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
3440         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
3441           local, avoids uninitialized pointer dereference on r->name
3442         * src/pic16/ralloc.c (newReg): fixed indentation
3443
3444 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
3445
3446         * src/SDCCval.c (constVal): fixed bug 730366
3447         * support/Util/SDCCerr.c,
3448         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
3449
3450 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
3451
3452         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
3453
3454 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
3455
3456         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
3457
3458 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3459
3460         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
3461           (hex2dec): made hex_digit unsigned char, removed ascii dependance
3462         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
3463           (hex2dec): made hex_digit unsigned char, removed ascii dependance
3464         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
3465         * packihx/packihx.c (hexDigit): made c unsigned char
3466         * as/mcs51/lklibr.c (fndsym),
3467         * link/z80/lkgb.c (gb),
3468         * link/z80/lklibr.c (fndsym),
3469         * link/z80/lkrloc.c (relr),
3470         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
3471         * src/SDCC.lex (checkCurrFile, process_pragma),
3472         * src/SDCCglue.c (spacesToUnderscores),
3473         * src/SDCCmain.c (setParseWithComma, processFile),
3474         * src/asm.c (tvsprintf, printCLine),
3475         * src/avr/gen.c (emitcode, aopPut),
3476         * src/ds390/gen.c (emitcode),
3477         * src/hc08/gen.c (emitcode, emitinline),
3478         * src/mcs51/gen.c (emitcode, genInline),
3479         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
3480           tokenizeLineNode),
3481         * src/pic/ralloc.c (debugLog),
3482         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
3483           tokenizeLineNode),
3484         * src/pic16/ralloc.c (debugLog),
3485         * src/z80/main.c (_process_pragma):
3486            made all ctype.h function calls safe
3487         * src/SDCCopt.c: include math.h for fabs
3488         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
3489           and used them throughout the code to make ctype.h function calls safe
3490         * src/ds390/main.c (asmLineNodeFromLineNode),
3491         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
3492         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
3493            unsigned char*
3494         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
3495           (newpCodeAsmDir): made ctype.h function calls safe
3496         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
3497           pic16_emitcode):  made lbp unsigned char*
3498         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
3499           (pic16_newpCodeAsmDir): made ctype.h function calls safe
3500         * src/xa51/gen.c (emitcode),
3501         * src/z80/gen.c (_emit2): made lbp unsigned char*
3502         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
3503            char*
3504
3505 2005-09-05 Raphael Neider <rneider AT web.de>
3506
3507         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
3508           access bank splitpoint
3509
3510 2005-09-05 Raphael Neider <rneider AT web.de>
3511
3512         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
3513
3514 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
3515
3516         * .version: changed to version 2.5.3
3517         * doc/sdccman.lyx: changed version to 2.5.3,
3518           documented --codeseg and --constseg and pragma codeseg and constseg,
3519           documented bit parameters (reentrant) and bit returning
3520         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
3521            currFunc->recvSize, but is this ok for all ports?
3522           (ast2iCode): result of ~ on unsigned char must be cast to int for
3523            bool to work
3524         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
3525           function pointers in bit space
3526         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
3527           (processFuncArgs): call port.reg_parm() with reentrancy info
3528         * src/port.h,
3529         * src/avr/main.c,
3530         * src/ds390/main.c,
3531         * src/hc08/main.c,
3532         * src/pic/main.c,
3533         * src/pic16/main.c,
3534         * src/xa51/main.c,
3535         * src/z80/main.c: port.reg_parm prototype extended with
3536           "bool reentrant" parameter
3537         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
3538           options.stackAuto for allocating bit register parameters
3539         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
3540           (genSend): set BitBankUsed if it is,
3541           (selectRegBank): factored out of genCall for use in genPcall,
3542           (genCall): removed redundant dtype assignmen, use selectRegBank,
3543           (genPcall): handle returning in Carry properly, save in F0 if needed,
3544           (genReceive): handle bit register parameters
3545         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
3546           (mcs51_assignRegisters): enable bit registers for all reentrant
3547            functions and don't set BitBankUsed unconditionally
3548         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
3549         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
3550         * support/regression/tests/funptrs.c: added tests for BOOL and for return
3551
3552 2005-08-27 Borut Razem <borut.razem AT siol.net>
3553
3554         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
3555         ppc-osx (Darwin) does not support -u option. It seems that it is
3556         supported only on Linux - GNU cp
3557
3558 2005-08-25 Borut Razem <borut.razem AT siol.net>
3559
3560         * sim/ucsim/gui.src/serio.src/Makefile.in,
3561           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
3562           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3563           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
3564           install and strip, since the strip at /usr/ccs/bin should be used
3565           on solaris
3566
3567 2005-08-24 Borut Razem <borut.razem AT siol.net>
3568
3569         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
3570
3571 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
3572
3573         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
3574         ffffffffu
3575
3576 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
3577
3578         * as/mcs51/aslink.h: completed lkrloc.c prototypes
3579         * as/mcs51/lkmain.c (link_main): fixed warning
3580         * device/include/stdbool.h: ds390 has no advanced bit support yet
3581         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
3582         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
3583         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
3584           and updated their macros
3585         * src/SDCCval.c (constVal): updated comment for renamed b_long
3586
3587 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
3588
3589         * as/mcs51/asdata.c: changed ctype['['] to BINOP
3590         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
3591           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
3592           (oprio): set priority for '['
3593         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
3594            and adb_24_bit
3595         * as/mcs51/asm.h: added defines R_BIT and S_BIT
3596         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
3597         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
3598         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
3599           added overlayable BIT_BANK area
3600         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
3601           (summary2): explain 'T' in legenda
3602         * as/mcs51/lkrloc.c: replaced old K&R style,
3603           (relr): added R_BIT processing,
3604           (errmsg): added "Bit-addressable relocation error",
3605           (adb_bit): added for converting from byte- to bit-addressable space,
3606           (adb_24_bit): added for converting from byte- to bit-addressable space
3607         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
3608            used in reentrant functions now even as return value
3609         * device/lib/_gptrput.c (_gptrput): removed obsolete code
3610         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
3611           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
3612         * src/SDCCglobl.h: added indicator BitBankUsed
3613         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
3614            the bit registers b0-b7
3615         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
3616           (geniCodeCast): fixed bug 1263853,
3617           (geniCodeLogicAndOr): put result in bool or char,
3618           (geniCodeReceive): added parameter func for accessing the return type,
3619           (geniCodeFunctionBody): pass func to geniCodeReceive
3620         * src/SDCCmain.c: added indicator BitBankUsed
3621         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
3622         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
3623           (checkSClass): don't put automatic bool/bit on stack,
3624           (checkFunction): removed check on function cannot return bit
3625         * src/SDCCsymt.h: added newBoolLink prototype
3626         * src/mcs51/gen.c (rb1regs): added bit registers,
3627           (movc): created for assigning to carry,
3628           (pushReg, popReg): created for pushing registers,
3629           (sameRegs): check both AOP_REG and AOP_CRY types,
3630           (aopOp): handle bit registers,
3631           (aopPut): optimization no self-assign,
3632           (saveRegisters): push reg->base (bits) only once for bit registers,
3633            and use pushReg,
3634           (unsaveRegisters): pop reg->base only once and use popReg,
3635           (assignResultValue): added parameter func and return in carry for bits,
3636           (genIpush): optimization no reload in A if not changed,
3637           (genSend): bit parameters in reentrant functions are passed in bit
3638            registers by first assigning to bits in B, then save registers and
3639            copy B to bits,
3640           (genCall): handle returning in Carry properly, save it in F0 if needed,
3641           (genPcall): updated assignResultValue call, this is not safe yet for bit
3642            returning function !!!
3643           (genFunction): don't generate equ's for bit registers and use pushReg,
3644           (genEndFunction): take care of bit returning functions and use popReg,
3645           (genRet): return bit in Carry,
3646           (genIfx): optimize bit registers and other directly addressable bits,
3647           (genReceive): updated assignResultValue call
3648         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
3649           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
3650            registers when using stack-auto
3651         * src/mcs51/ralloc.c (_G): added allBitregs,
3652           (regs8051): added the bit registers,
3653           (createStackSpil): use macro IS_BIT,
3654           (getRegBit): added to allocate a bit register, else spill,
3655           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
3656           (updateRegUsage): factored out to ease stepping while debugging,
3657           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
3658            also allocate bit registers,
3659           (fillGaps): handle bit registers,
3660           (findAllBitregs): added to create bit vector with all bit registers,
3661           (mcs51_allBitregs): returns this bit vector,
3662           (mcs51_assignRegisters): when using stack-auto use bit registers for
3663            passing parameters and creating local variables
3664         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
3665
3666 2005-08-22 Borut Razem <borut.razem AT siol.net>
3667
3668         * device/lib/Makefile.in: replaced find option -or with -o
3669           to make it run on solaris
3670
3671 2005-08-22 Raphael Neider <rneider AT web.de>
3672
3673         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
3674           fixes #1265442 (crash on Solaris)
3675
3676 2005-08-20 Borut Razem <borut.razem AT siol.net>
3677
3678         * configure, configure.in: added tests for libsocket and libnsl libraries,
3679           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
3680           from support/regression/Makefile.in
3681         * support/regression/Makefile.in: added
3682         * device/lib/pic16/Makefile.common.in: force make to use bash shell
3683         * sim/ucsim/libtool: regenerated on sparc-solaris
3684         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3685           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
3686           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
3687           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
3688           sparc-solaris, which doesn't use GNU ld linker
3689         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
3690         * as/Makefile: find on sparc-solaris does not support -maxdepth option
3691
3692 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
3693
3694         * src/mcs51/peeph.def: updated comments
3695
3696 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3697
3698         * device/lib/_gptrget.c,
3699         * device/lib/_gptrput.c: slightly shorter
3700         * doc/sdccman.lyx: incremented version
3701         * src/mcs51/peeph.def: moved peephole comments to the line of first
3702           change to better keep line correlation, reanimated 186.e
3703         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
3704
3705 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3706
3707         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
3708           David Saxton with quotes around file name.
3709
3710 2005-08-15 Borut Razem <borut.razem AT siol.net>
3711
3712         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
3713           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
3714           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
3715           make tests run on x86_64 platform
3716
3717 2005-08-13 Raphael Neider <rneider AT web.de>
3718
3719         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
3720           as it might be executed DURING a build (parallel make is wonderful)
3721
3722 2005-08-13 Raphael Neider <rneider AT web.de>
3723
3724         * device/lib/Makefile.in (port-specific-objects-pic16):
3725           revert to cp $(PORT)/bin/*.* $(PORTDIR)
3726         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
3727           dependency
3728         * device/lib/pic16/Makefile.rules: build subdirs before creating
3729           the library, removed builddir rule, create $(builddir) early in
3730           recurse rule, use empty recurse rule for leaf directories
3731         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
3732           mkdir errors (race condition), removed duplicate suffix "hex"
3733           from clean rules
3734         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
3735         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
3736           prevents mkdir -p from aborting on Alpha
3737
3738 2005-08-12 Raphael Neider <rneider AT web.de>
3739
3740         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
3741           db-statements in order to allow for arrays of pointers in code
3742           sections to be placed without interspersed 0-padding, fixes
3743           bug #1256215
3744         * (emitStatistics): fixed division by zero for pic18f1220
3745         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
3746           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
3747         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
3748         * (pic16_pCodeConstString): keep track of already emitted string
3749           literals to prevent "duplicate definitions of symbol _str_NR"
3750         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
3751           debug message
3752         * device/lib/Makefile.in: ignore failing PIC16 library builds
3753         * device/lib/pic16/Makefile: do not build if gputils are missing
3754         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
3755
3756 2005-08-10 Raphael Neider <rneider AT web.de>
3757
3758         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
3759           my last commit)
3760
3761 2005-08-10 Raphael Neider <rneider AT web.de>
3762
3763         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
3764           Rokas' patch to add the new fixed point type "__fixed16x16"
3765         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
3766           functions for __fixed16x16 arithmetics
3767         * device/lib/pic16: reimplemented the build system to support
3768           a separate build directory, better handling of libio (create
3769           the library in a separate subdir for each architecture) and
3770           easier configuration (centralized in Makefile.common)
3771
3772 2005-08-07 Raphael Neider <rneider AT web.de>
3773
3774         * src/pic16/gen.c (genrshTwo): fixed sign extension
3775         * src/pic16/device.c: added pic18f2320, 4220 and 4320
3776         * device/include/pic16/pic18f2220.h: changed some bit definitions,
3777           added T0CONbits
3778         * device/include/pic16/pic18f4220.h: NEW, header for
3779           pic18f4220 and pic18f4320
3780         * device/include/pic16/pic18fregs.h: added new devices,
3781           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
3782         * device/include/pic16/signal.h: resolved name clashes
3783           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
3784           to also allow testing for interrupt enable bits, added
3785           comments on how to use the macros
3786         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
3787         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
3788           register definitions for the devices
3789         * device/lib/pic16/pics.all: added new devices
3790         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
3791           allocated memory
3792         * device/lib/pic16/libc/stdlib/memfree: do not count
3793           the block header as free memory
3794         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
3795           simplified and added missing end-of-blocklist-marker
3796           (reported by Peter Onion, fixes #1252814)
3797         * (_mergeHeapBlock): fixed loop condition
3798         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
3799           len==0, restructured code
3800         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
3801           up a bit, reduced bitfield accesses, prevent endless loops
3802           in case of heap corruption
3803         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
3804           "unreferenced arguments/must return a value" warnings
3805         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
3806           replaced BAUDREG with SPBRG
3807         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
3808           device/lib/pic16/debug/gstack/gstack.c: replaced
3809           _naked, _asm, _endasm with __naked, __asm, __endasm
3810
3811 2005-08-05 Raphael Neider <rneider AT web.de>
3812
3813         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
3814           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
3815
3816 2005-08-05 Borut Razem <borut.razem AT siol.net>
3817
3818         * device/lib/Makefile.in: added missing ';'
3819         * configure: removed ^M characters
3820
3821 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3822
3823         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
3824           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
3825           License
3826
3827 2005-08-04 Borut Razem <borut.razem AT siol.net>
3828
3829         * configure.in: pic16 libraries build 2nd try - enable running
3830           configure in device/lib/pic16
3831         * configure: regenerated from configure.in
3832         * device/lib/Makefile.in: create $(PORT)/bin directory
3833
3834 2005-08-03 Raphael Neider <rneider AT web.de>
3835
3836         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
3837           to get/set values via pointers
3838         * (genUnpackBits,genPackBits): changed detection of
3839           ptr->bitfield vs. sym.bitfield, fixed access via generic
3840           pointers, removed dead (wrong) code for multibyte bitfields
3841         * (genNearPointerGet, genGenPointerGet): removed useless code,
3842           fixed bitfield detection, fixes #1250594
3843         * (genNearPointerSet): removed useless code
3844         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
3845           and introduced macro pic16_emitpcode that conditionally emits
3846           the origin of the following pCode (useful for debugging SDCC)
3847         * src/pic16/pcode.c: changed (and disabled) some debug outputs
3848         * (createDefmap): fixed handling of LFSR for --optimize-df
3849
3850 2005-08-02 Borut Razem <borut.razem AT siol.net>
3851
3852         * device/lib/Makefile.in: pic16 libraries build enabled since
3853           gputils-0.13.2 are now localy installed at sourceforge's compile farm
3854
3855 2005-08-02 Raphael Neider <rneider AT web.de>
3856
3857         * src/pic16/gen.c (genPackBits): removed deprecated warning
3858         * (genGenPointerSet): fixed bitfield detection
3859
3860 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3861
3862         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
3863
3864 2005-07-31 Raphael Neider <rneider AT web.de>
3865
3866         * device/lib/pic16/libdev/pic18f458.c,
3867           device/include/pic16/pic18f458.h: added missing T0CONbits
3868
3869 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3870
3871         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
3872
3873 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
3874
3875         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
3876
3877 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3878
3879         * device/include/mcs51/at89c51ed2.h: added.
3880
3881 2005-07-23 Raphael Neider <rneider AT web.de>
3882
3883         * src/pic/gen.h: added emitpcode macro for debugging
3884         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
3885           and replace by macro adding debug information on demand
3886         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
3887         * (gencjne): tried to fix; replaced with correct (slower) code
3888         * (gen{Unp,P}ackBits): fixed single bit access
3889         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
3890         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
3891           previous instruction
3892         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
3893           register has to be handled with care (forbidding movement
3894           of assignments/uses, removing assignments completely, ...)
3895         * (pCodeOptime2pCodes): make use of regIsSpecial
3896         * added lots of debugging output (commented out)
3897         * src/pic/rallloc.c (deassignLRs): prevent operand registers
3898           from being reused as result UNLESS it is known to work
3899
3900 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3901
3902         * support/Util/dbuf.h: include <stddef.h> for size_t
3903         * .version: changed to version 2.5.2
3904
3905 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3906
3907         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
3908
3909 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3910
3911         * src/hc08/gen.c (genMinus): fixed bug #1241835,
3912           (genModOneByte): removed needless psha/pula
3913
3914 2005-07-22 Raphael Neider <rneider AT web.de>
3915
3916         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
3917           have PIC14 handled like PIC16, fixes broken pic14 linker calls
3918         * src/pic/gen.c (resolveIfx): do not "invent" labels
3919         * (genSkipc): changed to positive logic
3920         * (genSkipCond): removed as no longer needed
3921         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
3922           backport from PIC16
3923         * (genLeftShift): check operands are in different registers
3924         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
3925           INCF does not update CARRY...
3926         * src/pic/main.c: fixed _linkCmd
3927         * src/pic/pcode.c (unlinkpCode): added inactive code
3928         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
3929           alive (do not assign result and operand overlapping registers)
3930
3931 2005-07-22 Raphael Neider <rneider AT web.de>
3932
3933         * src/pic/device.c (dump_sfr): replaced register declaration with
3934           call to emitSymbolToFile() to avoid duplicate symbols
3935         * (assignRelocatableRegisters): do not declare external symbols
3936         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
3937           right (take size of type, not etype)
3938         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
3939         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
3940         * (packRegsForAccUse): disabled assignment of WREG as
3941           the result reg to prevent occurence of just fixed #1235003,
3942           fixes #1242954
3943         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
3944           symbols (avoids duplicate symbols in .asm file)
3945         * (pic14emitRegularMap): use emitSymbolToFile()
3946         * src/pic/gen.c (aopOp): fixed spillLocation handling
3947         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
3948         * (genDataPointerSet): removed unneccessary variables/output
3949
3950 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
3951
3952         * as/mcs51/lkarea.c: enlarged codemap for banked memory
3953         * device/lib/mcs51/crtbank.asm: added # to 0x0F
3954
3955 2005-07-21 Raphael Neider <rneider AT web.de>
3956
3957         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
3958           architecture cannot handle them efficiently, fixes bug #1235003
3959         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
3960           check for empty sets before using them (fixes bug #1232190)
3961
3962 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
3963
3964         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
3965           (lnksect2): generate warnings for memory overlap
3966         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
3967           constseg to set the name of these segments so you can instruct the linker
3968           to place them in banks
3969         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
3970         * src/SDCCglobl.h: added MODEL_HUGE to enum,
3971           added code_seg and const_seg to options
3972         * src/SDCCglue.c (emitMaps): use options.const_seg,
3973           (createInterruptVect): put interrupt vectors in segment HOME,
3974           (glue): put HOME before static segment and put the main glue in HOME,
3975           (glue): use options.code_seg
3976         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
3977         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
3978           these segments so you can instruct the linker to place them in banks
3979           (linkEdit): use code_loc for HOME segment which should be the first
3980           segment in code memory now
3981         * src/SDCCmem.c: fixed more stuff like bug 1238386
3982         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
3983           (changePointer): don't change function pointers to code pointers for
3984           banked functions,
3985           (compareType): added exceptional check for banked function pointers
3986         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
3987         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
3988           after static in code memory
3989         * src/mcs51/gen.c: added aopLiteralLong prototype,
3990           (aopForSym): use getSize for functions,
3991           (genCall): generate banked calls over one trampoline __sdcc_banked_call
3992           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
3993           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
3994           the segment,
3995           (genPcall): use call for literal function pointers and generate banked
3996           calls over the one trampoline so there's only one place for the user to
3997           modify according to his/hers hardware,
3998           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
3999           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
4000         * src/mcs51/main.c: added keyword banked,
4001           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
4002         * support/Util/SDCCerr.c,
4003         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
4004           needed for passing the bank and address to the trampoline
4005         * device/lib/mcs51/crtbank.asm: added for bankswitching
4006         * device/lib/mcs51/Makefile: added crtbank
4007
4008 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4009
4010         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
4011           for fields at offset 0 of a struct or union as reported
4012           on 2005-07-07 in the developer mailing list.
4013
4014 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
4015
4016         * src/SDCCmem.c: fixed bug 1238386
4017
4018 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4019
4020         * src/mcs51/peeph.def: added labelrefcounting for peepholes
4021           (patch #1144962), added peephole 300, enabled 259.x
4022         * doc/sdccman.lyx: removed screenshot and provided link instead
4023
4024 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4025
4026         * doc/sdccman.lyx: added section about debugging with ddd
4027         * doc/figures/ddd_example.eps: screenshot of debugging session
4028
4029 2005-07-04 Raphael Neider <rneider AT web.de>
4030
4031         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
4032           like CODE pointers, fixes #1115683
4033         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
4034           call, fixes bugs #1232211, #1228110,
4035           fixed wrong casts to pCodeFlow from pCodeInstructions
4036
4037 2005-07-04 Raphael Neider <rneider AT web.de>
4038
4039         * src/pic/gen.c (popGet): changed assert to allow for
4040           bit operands
4041         * (popGetAddr): changed signature to provide
4042           an additional index, patched all call sites
4043         * (genCmpEq): handle literal-like operands correctly
4044         * (genAddrOf): added sanity checks on __code/__data pointers
4045         * (genAssign): added handling of symbols from __code section
4046         * (gencjne): do not generate code for comparisons whose result
4047           is neither stored nor used, fixes bug #1171114
4048         * (AccLsh, AccRsh): operate on operand instead of WREG
4049         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
4050           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
4051           by known count
4052         * rewrote complete shift-by-literal logic, commented unused
4053           functions out
4054         * (genConstPointerGet): get multiple bytes (if result size > 1),
4055           fixed handling of non-immediate addresses
4056         * (genPointerGet): handle CODE pointers like CONST pointers
4057         * (genpic14Code): insert C-SRC lines as Cource-pCodes
4058         * ({aop,op}_isLitLike): NEW, single place to decide whether an
4059           operand is to be treated as a literal or not
4060         * (mov2w,genPcall,genCmpEq),
4061           src/pic/genarith.c: use aop_isLitLike() to decide between
4062           literal/register contents
4063         * (addSign): added missing offset
4064         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
4065           only emit comment in debug-mode,
4066           use {aop,op}_isLitLike throughout the file
4067         * src/pic/glue.c: fix initializers for pointers (work in progress)
4068         * src/pic/pcode.c (get_op): honor index on _const symbols
4069         * ({reset,dump}pCodeStatistics): NEW, estimate code size
4070         * (dumppBlock): added pCode size estimation
4071         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
4072           check for IS_SYMOP before OP_SYMBOL'ing
4073         * fixed indentation, compacted switch-statements
4074         * (allocReg): find free register and allocate it instead of
4075           allocating new registers all the time
4076         * (deassignLRs): prevent POINTER_GET's from being assigned the same
4077           registers as its operands (necessary only for multibyte GETs)
4078
4079 2005-07-01 Raphael Neider <rneider AT web.de>
4080
4081         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
4082           debugging .asm-output macros FENTRY + FEXIT
4083         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
4084           way... I wonder...
4085         * (emitpComment): NEW, printf to pCode
4086         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
4087           offset handling
4088         * (popGetAddr): NEW, variant of popGet to access an immediates
4089           high(er) bytes instead of the n'th byte of memory they reference,
4090           replaced popGet with popGetAddr where neccessary
4091         * (genDataPointerGet): reactivated and fixed implementation
4092         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
4093           accesses
4094         * (genDataPointerSet): fixed multibyte assignments
4095         * (genpic14Code): fixed --i-code-in-asm handling
4096         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
4097         * (genPlus): fixed index-out-of-bounds error
4098         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
4099         * src/pic/ralloc.c: added debugging output macro FENTRY2
4100         * (spillThis): fixed indentation, enbraced for-body for clarity
4101         * (rematStr): commented out as now unused
4102         * (regTypeNum): commented out special spill case (overwrites
4103           arbitrary values)
4104         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
4105
4106 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
4107
4108         * doc/sdccman.lyx: documented sfr16/sfr32,
4109           added example for using storage class with function pointers
4110         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
4111
4112 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
4113
4114         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
4115         * device/lib/_itoa.c,
4116         * device/lib/_ltoa.c: optimized codesize
4117         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
4118           but don't know how to suppress the double warning.
4119         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
4120         * support/Util/SDCCerr.c,
4121         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
4122
4123 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
4124
4125         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
4126           fixed old K&R prototypes
4127         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
4128         * device/lib/_gptrget.c,
4129         * device/lib/_gptrgetc.c,
4130         * device/lib/_gptrput.c: changed versions for new memory indicator values,
4131           also new versions for small generic pointers and banked generic pointers
4132         * src/port.h: added const_name
4133         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
4134         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
4135         * src/SDCCcse.c (findPrevIc): check all associative operators
4136         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
4137         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
4138         * src/SDCCmem.c: updated comments,
4139           set far-space to 0 for pdata, results in optimized code
4140         * src/SDCCmem.h: added macro CONST_NAME
4141         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
4142           moving the info into the highest bits, see also gptrget/gptrput
4143         * src/src.dsp: added sdcc.ico to project files
4144         * src/avr/gen.c (genCast): fixed bug 0x%d
4145         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
4146         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
4147           relation between ptr_type and DCL_TYPE,
4148           (genCast): fixed bug 0x%d
4149         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
4150           (CODE)" for const_name
4151         * src/hc08/gen.c (genCast): fixed bug 0x%d
4152         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
4153           (hc08_port): added "CONST (CODE)" for const_name
4154         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
4155           (aopForRemat, adjustArithmeticResult): disconnected direct relation
4156           between ptr_type and DCL_TYPE,
4157           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
4158           operand* and took AOP() inside function so sfr-ness can be checked,
4159           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
4160           new prototype,
4161           (genFunction, genEndFunction): optimized stack setup,
4162           (genMinus): optimized for literals with ending zeroes (in bytes),
4163           (genCast): fixed bug 0x%d
4164         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
4165           (mcs51_port): added "CONST (CODE)" for const_name
4166         * src/mcs51/peeph.def: made rule 226 more generic
4167         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
4168         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
4169         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
4170         * src/z80/main.c (z80_port): added NULL for const_name,
4171           (gbz80_port): added NULL for const_name
4172         * support/regression/tests/bug663539.c,
4173         * support/regression/tests/sfr16.c: new tests
4174
4175 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4176
4177         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
4178
4179 2005-06-24 Raphael Neider <rneider AT web.de>
4180
4181         * device/lib/pic16/libdev/pic18f[68][567]20.c:
4182           corrected typos...
4183         * device/include/pic16/signal.h: added USBIF
4184           and SIG_USB
4185
4186 2005-06-24 Raphael Neider <rneider AT web.de>
4187
4188         * device/lib/pic16/libdev/pic18f2455.c,
4189           device/include/pic16/pic18f2455.h: NEW
4190         * device/include/pic16/pic18fregs.h,
4191           device/lib/pic16/pics.all,
4192           src/pic16/device.c: added 18f2455
4193         * device/lib/pic16/libdev/pic18f[68][567]20.c,
4194           device/include/pic16/{pic18f[68][567].h,usart.h}:
4195           replaced MULTIPLE_USARTS define with more relaible
4196           compatibility sfrs (for USART access)
4197
4198 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
4199
4200         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
4201           and the output asm file line is printed on two lines.
4202
4203 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4204
4205         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
4206           BGT, BLE, BHI, and BLS instructions
4207         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
4208           genCmpEq): removed
4209         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
4210           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
4211           fixes bug #1216342
4212         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
4213
4214 2005-06-15 Raphael Neider <rneider AT web.de>
4215
4216         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
4217         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
4218         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
4219           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
4220           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
4221
4222 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4223
4224         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
4225           Marcel Telka in bug #1215704
4226
4227 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
4228
4229         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
4230           located in shared memory bank.
4231
4232 2005-05-31 Raphael Neider <rneider AT web.de>
4233
4234         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
4235           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
4236           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
4237
4238 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
4239
4240         * device/lib/_strncpy.c: fixed the fix
4241
4242 2005-05-26 Raphael Neider <rneider AT web.de>
4243
4244         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
4245           initializers with \0, bug #1208187
4246         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
4247           intializers with \0, bug #1208187
4248
4249 2005-05-26 Raphael Neider <rneider AT web.de>
4250
4251         * src/pic16/glue.c (pic16_printIvalChar): fixed string
4252           initializers with \0, bug #1208187
4253         * src/pic16/main.c (_process_pragma): added sanity checks
4254           for stack position and size, emit warnings when appropriate
4255
4256 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
4257
4258         * device/lib/_strncpy.c: fixed not filling with \0
4259
4260 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4261
4262         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
4263           createFunction),
4264         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
4265           compound_statement),
4266         * src/SDCCsymt.h,
4267         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
4268
4269 2005-05-24 Raphael Neider <rneider AT web.de>
4270
4271         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
4272
4273 2005-05-24 Raphael Neider <rneider AT web.de>
4274
4275         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
4276           TRISE definitions, closes bug #1162453
4277
4278 2005-05-22 Raphael Neider <rneider AT web.de>
4279
4280         * src/pic16/main.c (_process_pragma): check for missing
4281           arguments to pragmas code and udata
4282         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
4283           consistency fixes to match other headers (thanks to Jim Paris)
4284         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
4285
4286 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
4287
4288         * src/SDCCicode.c (isOperandEqual): fixed missing ;
4289
4290 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
4291
4292         * support/regression/tests/bug1198642.c: new test
4293         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
4294         * src/SDCCcse.c (findPrevIc): added comment, please have a look
4295         * support/scripts/resource.h,
4296         * support/scripts/resource.rc,
4297         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
4298         * support/scripts/sdcc.ico: added 32x32 icon
4299
4300 2005-05-18 Raphael Neider <rneider AT web.de>
4301
4302         * device/lib/pic16/libdev/pic18f*.c,
4303         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
4304           keywords to "__sfr" and "__at (X)"
4305         * device/include/pic16/pic18fregs.h: added pic18f4520
4306         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
4307           #1203088 (MPLAB compatibility)
4308
4309 2005-05-17 Raphael Neider <rneider AT web.de>
4310
4311         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
4312         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
4313         * device/lib/pic16/pics.all: added new devices
4314         * src/pic16/device.c: added support for pic18f4520
4315
4316 2005-05-16 Raphael Neider <rneider AT web.de>
4317         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
4318         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
4319         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
4320           convenience function for bit access
4321
4322 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
4323
4324         * device/lib/printf_large.c: fixed bug 1193299
4325         * support/regression/tests/bug1057979.c: added test %3.3s
4326
4327 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4328
4329         * device/include/mcs51/8051.h,
4330         * device/include/mcs51/8052.h: made parseable with lint
4331         * device/include/mcs51/lint.h: added include file for (sp)lint
4332         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
4333         * doc/cdbfileformat.lyx,
4334         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
4335
4336 2005-05-14 Raphael Neider <rneider AT web.de>
4337
4338         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
4339         * device/lib/pic16/libc/stdlib/itoa.c (new)
4340         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
4341         * device/lib/pic16/libio/Makefile: exclude subdir according to
4342           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
4343         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
4344         * src/pic16/gen.c (genFunction): prevent annoying warning
4345         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
4346           nameclashes on BeOS
4347         * support/cpp2/cppmain.c (cpp_output_string): new
4348         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
4349           fixes bug 1116802
4350
4351 2005-05-13 Borut Razem <borut.razem AT siol.net>
4352
4353         * src/SDCCmain.c (linkEdit): fixed bug 1195202
4354
4355 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4356
4357         * .version: changed to version 2.5.1; back to bleeding edge development
4358
4359 2005-05-11 Borut Razem <borut.razem AT siol.net>
4360
4361         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
4362           generate PDF version 1.3 documents
4363
4364 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4365
4366         * .version: changed to version 2.5.0
4367
4368 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4369
4370         * doc/sdccman.lyx: updated weblinks, index and smaller updates
4371
4372 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4373
4374         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
4375         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
4376         well as many smaller updates.
4377         * .version: changed to version 2.5.0-pre1
4378
4379 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4380
4381         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
4382
4383 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
4384
4385         * support/regression/tests/bug1185672.c: added
4386         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
4387           bug 1185672
4388         * src/mcs51/gen.c (genCall): added comments, made it look safer
4389         * src/mcs51/gen.c (genEndFunction): simplified
4390
4391 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
4392
4393         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
4394
4395 2005-04-14 Borut Razem <borut.razem AT siol.net>
4396
4397         * fixed bug 1045046 - SIGSEGV with really simple code?:
4398           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
4399           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
4400
4401 2005-04-14 Borut Razem <borut.razem AT siol.net>
4402
4403         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
4404           src/pic16/device.h: temporarily disabled experimental #inline pragma
4405           for 2.5.0 release
4406
4407 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
4408
4409         * device/include/z80/stdio.h,
4410         * device/include/z80/string.h: removed these highly incomplete files so
4411           SDCC can use the default ones in device/include/
4412
4413 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4414
4415         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
4416         gcc warning.
4417         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
4418         fix sdcpp warnings.
4419
4420 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4421
4422         * device/include/malloc.h: removed redundant __reentrant prototypes
4423         * device/lib/_mullong.c: added working xstack variant in asm (C version
4424           doesn't pass regression tests)
4425         * device/lib/bpx.c: used __data and made bpx char for mcs51
4426         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
4427           (createFunction): fixed bug with xstackPtr
4428         * src/SDCCcse.c: corrected comments
4429         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
4430           (killDeadCode, eBBlockFromiCode): removed unused code
4431         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
4432           corrected comments
4433         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
4434           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
4435           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
4436           (genModOneByte): fixed warning in MSVC
4437         * src/mcs51/main.c (): added comments
4438         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
4439
4440 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4441
4442         * src/SDCCmain.c (linkEdit): oops, changed one line too many
4443
4444 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
4445
4446         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
4447
4448 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
4449
4450         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
4451         characters arrays of larger size than the declared one.
4452
4453 2005-04-10 Borut Razem <borut.razem AT siol.net>
4454
4455         * src/pic/gen.c (genInline),
4456           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
4457           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
4458           (findNextInstruction), (findPrevInstruction),
4459           (findInstructionUsingLabel),
4460           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
4461         * src/pic/pcode.c (findLabel): added missing '\n'
4462         * src/src.dsp: added SDCCdwarf2.c to the project
4463
4464 2005-04-09 Borut Razem <borut.razem AT siol.net>
4465
4466         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
4467
4468 2005-04-08 Raphael Neider <rneider AT web.de>
4469
4470         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
4471           into the chain after a given one) and mergeDefmapSymbols (combine
4472           defmap entries for each symbol per pcode)
4473         * (createDefmap): have defmap entries merged in the end
4474         * (defmapReplaceSymRef): split defmap entries covering two accesses to
4475           a symbol before replacing one access type's symbol, merge symbols in
4476           the end (replacement symbol might already have an entry)
4477         * (assignValnums): keep reference to written WREG intact
4478
4479 2005-04-08 Raphael Neider <rneider AT web.de>
4480
4481         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
4482           Alpha)
4483
4484 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
4485
4486         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
4487         bytes
4488
4489 2005-04-07 Raphael Neider <rneider AT web.de>
4490
4491         * device/include/pic16/usart.h: added compatibility defines for
4492           devices with more than one USART
4493         * device/include/pic16/pic18f[68][567]20.h: activated above defines
4494
4495 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4496
4497         * device/lib/Makefile.in: updated for port specific include
4498
4499 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4500
4501         * support/regression/ports/mcs51/spec.mk: added mcs51 include
4502
4503 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4504
4505         * device/include/8051.h,
4506         * device/include/8052.h,
4507         * device/include/at89S8252.h,
4508         * device/include/at89c55.h,
4509         * device/include/at89x051.h,
4510         * device/include/at89x51.h,
4511         * device/include/at89x52.h,
4512         * device/include/mcs51reg.h,
4513         * device/include/reg51.h,
4514         * device/include/reg764.h,
4515         * device/include/regc515c.h,
4516         * device/include/sab80515.h: (re)moved these 12 files
4517         * device/include/mcs51/8051.h,
4518         * device/include/mcs51/8052.h,
4519         * device/include/mcs51/at89S8252.h,
4520         * device/include/mcs51/at89c55.h,
4521         * device/include/mcs51/at89x051.h,
4522         * device/include/mcs51/at89x51.h,
4523         * device/include/mcs51/at89x52.h,
4524         * device/include/mcs51/mcs51reg.h,
4525         * device/include/mcs51/reg51.h,
4526         * device/include/mcs51/reg764.h,
4527         * device/include/mcs51/regc515c.h,
4528         * device/include/mcs51/sab80515.h: and added them here
4529
4530 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4531
4532         * device/include/stdarg.h: changed SDCC specific keywords to double
4533           underlined form.
4534         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
4535           mcs51 and ds390.
4536         * device/include/hc08/mc68hc908gp32.h,
4537         * device/include/hc08/mc68hc908jb8.h,
4538         * device/include/hc08/mc68hc908jkjl.h,
4539         * device/include/hc08/mc68hc908qy.h: fixed comments
4540         * device/include/mcs51/README: updated
4541         * device/include/mcs51/c8051f120.h: added PINRSF
4542         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
4543         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
4544           amidst code. Also inline is not supported.
4545
4546 2005-04-06 Raphael Neider <rneider AT web.de>
4547
4548         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
4549         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
4550           callers stack/frame pointers
4551
4552 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4553
4554         * device/include/pic16/usart.h: added, missing in previous commit,
4555         * device/include/pic16/adc.h: fixed typo,
4556         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
4557         commit,
4558         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
4559         <p18fxxx.inc>
4560         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
4561         uninitialized because a bug appears with gplink
4562         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
4563         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
4564         complains for unrecognised option
4565
4566 2005-04-05 Raphael Neider <rneider AT web.de>
4567
4568         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
4569           structs as well (using memcpy)
4570         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
4571           on ISRs (GOTO has no label)
4572         * src/pic16/device.h: added OF_OPTIMIZE_DF
4573         * src/pic16/main.c: added compiler switch --optimize-df to enable the
4574           new data flow analysis/optimization
4575         * src/pic16/pcode.c: added (prototypes for and implementation of)
4576           dataflow analysis functions, fixed pCodeInstructions' inCond and
4577           outCond values, made RCALL a branch instruction
4578         * (pic16_unlinkpCode): keep C line if possible
4579         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
4580           C line moved if possible
4581         * (pic16_getRegFrompCodeOp): NEW, improved version of...
4582         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
4583           to use new pic16_getRegFrompCodeOp (works for more SFRs)
4584         * (pic16_BuildFlow): fixed skip instructions with label (did not start
4585           new flow)
4586         * (pic16_getJumptabpCode): NEW, needed in...
4587         * (LinkFlow): fixed handling of jumptables, calls and conditional
4588           branches
4589         * (pic16_InsertCommentAfter): NEW
4590         * (pic16_pCodeReplace): made verbose and flow preserving
4591         * (AnalyzeFlow): added call to data flow analysis
4592         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
4593         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
4594         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
4595
4596 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4597
4598         * src/SDCCast.c (decorateType): fixed bug #1105626
4599
4600 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
4601
4602         * device/include/asm/pic16/features.h,
4603         * pic18f*.h headers,
4604         * device/include/pic16/adc.h,
4605         * device/include/pic16/delay.h,
4606         * device/include/pic16/i2c.h,
4607         * device/include/pic16/malloc.h,
4608         * device/include/pic16/stdio.h,
4609         * device/include/pic16/stdlib.h,
4610         * device/include/pic16/string.h,
4611         * device/lib/pic16/libc/stdio/printf_tiny.c,
4612         * device/lib/pic16/libc/stdio/printf_small.c,
4613         * device/lib/pic16/libc/stdio/strmgpsim.c,
4614         * device/lib/pic16/libc/stdio/strmmssp.c,
4615         * device/lib/pic16/libc/stdio/strmusart.c,
4616         * device/lib/pic16/libc/stdio/vfprintf.c,
4617         * device/lib/pic16/libc/stdlib/ltoa.c,
4618         * device/lib/pic16/libc/stdlib/putchar.c,
4619         * device/lib/pic16/libc/stdlib/x_ftoa.c,
4620         * device/lib/pic16/libc/stdlib/memchrpgm.c,
4621         * device/lib/pic16/libc/stdlib/memchrram.c,
4622         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
4623         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
4624         * device/lib/pic16/libio/adc/adcbusy.c,
4625         * device/lib/pic16/libio/adc/adcread.c,
4626         * device/lib/pic16/libio/adc/adcsetch.c,
4627         * device/lib/pic16/libio/usart/ubaud.c,
4628         * device/lib/pic16/libio/usart/ubusy.c,
4629         * device/lib/pic16/libio/usart/udrdy.c,
4630         * device/lib/pic16/libio/usart/uopen.c,
4631         * device/lib/pic16/libio/usart/uputc.c,
4632         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
4633         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
4634         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
4635         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
4636         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
4637         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
4638         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
4639         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
4640         specific keywords to double underlined form,
4641         * device/lib/pic16/libc/Makefile.rules,
4642         * device/lib/pic16/libsdcc/Makefile.rules,
4643         * device/lib/pic16/libm/Makefile,
4644         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
4645         to compile with C standard set in Makefile.common
4646         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
4647         rand.c and crc.c in compilation process,
4648         * device/lib/pic16/libsdcc/int/divuint.c,
4649         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
4650         `c' from signed to unsigned,
4651         * device/lib/pic16/startup/crt0.c,
4652         * device/lib/pic16/startup/crt0i.c,
4653         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
4654         keywords to double underlined form, bug fixes in _do_cinit function
4655         which prevented the correct initialization of the .idata segment,
4656         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
4657         core to enter a infinite loop
4658         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
4659
4660 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4661
4662         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
4663
4664 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4665
4666         * device/include/Makefile.in: add support for hc08 subdirectory
4667         * device/include/hc08/: new subdirectory
4668         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
4669         Lucas Loizaga, thanks!
4670         * device/include/hc08/mc68hc908qy.h,
4671         * device/include/hc08/mc68hc908gp32.h,
4672         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
4673         their own directory. Changed internal macro names to use the compiler
4674         reserved namespace. Changed SDCC specific keywords to double
4675         underlined form.
4676         * device/include/math.h,
4677         * device/include/malloc.h,
4678         * device/include/stdarg.h,
4679         * device/include/stdbool.h
4680         * device/include/string.h,
4681         * device/include/tinibios.h,
4682         * device/include/ds400rom.h,
4683         * device/include/8051.h,
4684         * device/include/8052.h,
4685         * device/include/80c51xa.h,
4686         * device/include/at89c55.h,
4687         * device/include/at89S8252.h,
4688         * device/include/at89x51.h,
4689         * device/include/at89x52.h,
4690         * device/include/ds80c390.h,
4691         * device/include/reg764.h,
4692         * device/include/regc515c.h,
4693         * device/include/sab80515.h,
4694         * device/include/mcs51/c8051f000.h,
4695         * device/include/mcs51/c8051f018.h,
4696         * device/include/mcs51/c8051f020.h,
4697         * device/include/mcs51/c8051f040.h,
4698         * device/include/mcs51/c8051f060.h,
4699         * device/include/mcs51/c8051f120.h,
4700         * device/include/mcs51/c8051f300.h,
4701         * device/include/mcs51/c8051f310.h,
4702         * device/include/mcs51/c8051f320.h,
4703         * device/include/mcs51/c8051f330.h,
4704         * device/include/mcs51/c8051f350.h,
4705         * device/include/z180.h: Changed SDCC specific keywords to double
4706         underlined form.
4707
4708 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
4709
4710         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
4711         18F4455,
4712         * (pic16_assignConfigWordValue): disable testing of configuration
4713         register value with config mask,
4714         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
4715         function with port->fun_prefix,
4716         * (genFunction): when generating a naked interrupt function never
4717         create an absolute segment placed in interrupt vector address, place
4718         the actual interrupt function at IVA instead, when an interrupt
4719         function is generated with unspecified interrupt then do not create
4720         the absolute section,
4721         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
4722         code for generating a call to generic pointer get/put function with
4723         a call to function pic16_callGenericPointer(),
4724         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
4725         the call to the generic pointer get/put functions with prefixing the
4726         function name with port->fun_prefix,
4727         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
4728         * src/pic16/main.c (_process_pragma): prefix function with
4729         port->fun_prefix,
4730         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
4731         calling assembler, old 18Fxxxx macro is deprecated,
4732         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
4733         PC_ASMDIR in while condition,
4734         * (findInstruction): add PC_ASMDIR in while condition,
4735         * (buildCallTree): prefix main with port->fun_prefix,
4736         * (pic16_pCode2str): fixed bug that didn't emit the memory access
4737         identifier for variable with banked access in instructions BTFSS,
4738         BTFSC, BCF, BSF, BTG
4739         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
4740         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
4741         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
4742         perform optimization when enviroment variable NO_REG_OPT is set,
4743         * (insideLRBlock): NEW, return 1 if register is inside an
4744         INF_LOCALREGS block,
4745         * (RemoveRegFromLRBlock): remove a register that is completely
4746         eliminated by register optimization, but it is still left in local
4747         register store/restore in/from stack block,
4748         * (Remove2pcodes): after removing register, check to see if it
4749         should be removed from local register store/restore in/from stack
4750         block,
4751         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
4752         DUMMY_READ_VOLATILE,
4753
4754         * device/include/pic16/adc.h: minor prototype modifications and
4755         update,
4756         * device/include/pic16/malloc.h: added GPL notice various
4757         modifications,
4758         * device/include/pic16/stdint.h: NEW, standard header for ints
4759         * device/include/pic16/delay.h: NEW, header for delay functions,
4760         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
4761         delay1mtcy,
4762         * device/include/pic16/signal.h: NEW, header providing helper macros
4763         for implementing signal handlers,
4764         * device/include/pic16/stdio.h: added prototypes for functions,
4765         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
4766         prototypes for stdin and stdout, added macro PUTCHAR to
4767         automatically implement putchar function prototype,
4768         * device/include/pic16/usart.h: modified and updated USART library,
4769         * device/lib/pic16/libio/adc/,
4770         * device/lib/pic16/libio/i2c: some modifications to improve library
4771         performance,
4772         * device/lib/pic16/libc/stdio/: modifications for the new printf*
4773         family of functions,
4774         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
4775         family of functions and other sources,
4776         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
4777         of the PIC18Fxx[28] devices,
4778         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
4779         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
4780         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
4781         _do_cinit function, because the previous failed when local variables
4782         where not placed in the same memory bank,
4783         * device/lib/pic16/libsdcc/char/: various modifications to improve
4784         library performance,
4785         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
4786         information on the new functions of the c library and more...
4787
4788 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4789
4790         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
4791
4792 2005-03-26 Raphael Neider <rneider AT web.de>
4793
4794         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
4795           if condition == CARRY)
4796         * (genCmp): adapted to new genSkipc semantics
4797         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
4798           on rIfx (genCmp was broken)
4799
4800 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4801
4802         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
4803         * src/z80/main.c (_keywords[]),
4804         * src/SDCCglobal.h (struct options),
4805         * src/SDCC.y,
4806         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
4807         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
4808         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
4809         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
4810         always available in leading double underscore form. The C99 support is
4811         mostly missing, but it's a start.
4812         * support/regression/tests/bug-227710.c: fixed nonconforming use of
4813         reserved identifier "__data".
4814
4815 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4816
4817         * src/mcs51/peeph.def: fixed bug 1170013
4818
4819 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
4820
4821         * device/include/mcs51reg.h: fixed bug 842007
4822
4823 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4824
4825         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
4826         last time.
4827
4828 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4829
4830         * src/port.h (struct PORT),
4831         * src/avr/ralloc.c (avr_assignRegisters),
4832         * src/avr/main.c,
4833         * src/ds390/ralloc.c (ds390_assignRegisters),
4834         * src/ds390/main.c,
4835         * src/hc08/ralloc.c (hc08_assignRegisters),
4836         * src/hc08/main.c,
4837         * src/mcs51/ralloc.c (mcs51_assignRegisters),
4838         * src/mcs51/main.c,
4839         * src/pic/ralloc.c (pic14_assignRegisters),
4840         * src/pic/main.c,
4841         * src/pic16/ralloc.c (pic16_assignRegisters),
4842         * src/pic16/main.c,
4843         * src/xa51/ralloc.c (xa51_assignRegisters),
4844         * src/xa51/main.c,
4845         * src/z80/ralloc.c (z80_assignRegisters),
4846         * src/z80/ralloc.h,
4847         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
4848         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
4849         * src/SDCCcse.h,
4850         * src/SDCCdflow.c (computeDataFlow),
4851         * src/SDCCdflow.h,
4852         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
4853         * src/SDCCloop.h,
4854         * src/SDCCcflow.c (*),
4855         * src/SDCCcflow.h,
4856         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
4857         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
4858         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
4859         immedDom() returning wrong block; probably fixes bug #1160833)
4860
4861 2005-03-20 Borut Razem <borut.razem AT siol.net>
4862
4863         * support/scripts/inc2h.pl: WIN32 port
4864
4865 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
4866
4867         * device/lib/makefile.in: added abs.c and labs.c
4868
4869 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
4870
4871         * device/include/stdint.h: added
4872         * device/lib/abs.c: added
4873         * device/lib/labs.c: added
4874         * device/include/stdlib.h: added abs() and labs() prototypes
4875         * device/lib/libsdcc.lib: added abs and labs
4876         * device/include/float.h,
4877         * device/lib/_fsmul.c,
4878         * device/lib/printf_fast.c,
4879         * device/lib/printf_tiny.c: updated comments
4880
4881 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4882
4883         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
4884         bug #1164313
4885
4886 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4887
4888         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
4889         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
4890
4891 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
4892
4893         * device/lib/printf_large.c: removed inline assembly for portability and
4894           readability. Use printf_fast if speed or size are more important.
4895         * src/pic16/gen.c: removed conditions around use of DEBUGpc
4896         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
4897
4898 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
4899
4900         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
4901         prevent compiler warning
4902
4903 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4904
4905         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
4906         moved to level 0 and declared as static. Also they are explicit
4907         placed in access bank. This was necessery because some times they
4908         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
4909         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
4910         optimizations. Currently only compare to unsigned char is implemented,
4911         * src/pic16/gen.c: added fReturnIdx array,
4912         * (struct resolvedIfx) is moved to gen.h and made public,
4913         * (struct _G): added sregsAlloc and sregsAllocSet fields,
4914         * (aopForSym): added an optimization to directly store in stack of
4915         the operand of a SEND iCode,
4916         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
4917         but as registers instead (AOP_REG) using the fReturnIdx array,
4918         * (pic16_freeAsmop): remove the freed register from the
4919         _G.sregsAlloc field,
4920         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
4921         a compare of 'WREG',
4922         * (pic16_popGetTempRegCond): changed function prototype, now
4923         function takes also a bitVector argument v which holds the current
4924         set of registers that are allocated for stack access by aopForSym,
4925         registers allocated in aopForSym for accessing stack symbols are not
4926         any more part of the functions usedRegs field,
4927         * (genCall): some times aopOp is called for a stack variable to be
4928         send, aopForSym might perform the push, if this is true make sure
4929         that genCall doesn't push the variable twice by testing _G.resDirect,
4930         * (genFunction): changed testing for unspecified interrupt number
4931         from 256 to INTNO_UNSPEC,
4932         * modified selection scheme of frame pointer generation. Previously
4933         if function did use local registers a frame pointer was generated,
4934         now a frame pointer is generated only if function has arguments
4935         (that need PLUSW2 register access), or has stack arguments, or the
4936         compiler is not instructed to omit the frame pointer,
4937         * (genEndFunction): before restoring local registers that were saved
4938         in the function preamble, also restore the registers that *might*
4939         have been allocated for stack access,
4940         * (genRet): removed some old comments,
4941         * (genCmp, the active (RN's) version): added a call to the
4942         pic16_genCmp_special function to perform the compare with a more
4943         robust and optimized way,
4944         * (genInline): a feature has been added in inline code generation,
4945         which allows a wildcard variable substitution when writing inline
4946         assembly. Code is incomplete and experimental therefore undocumented,
4947         * (genCast): changed order of aopOp for result and right to allow
4948         aopForSym to directly load the result if possible,
4949         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
4950         perform an optimized compare on some selected special occasions,
4951         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
4952         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
4953         generate an IVT any more,
4954         * src/pic16/main.c (pic16_optionsTable): added command line option
4955         --optimize-cmp,
4956         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
4957         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
4958         macros,
4959         * src/pic16/NOTES: Raphael Neider added in list of active developers
4960         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
4961         jumptable_end to prevent bug #,
4962         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
4963         inCond and outCond fields,
4964         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
4965         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
4966         turn off register spilling,
4967         * (packRegsForOneUse): synced with other ports' versions although it
4968         is not used currently,
4969         * (pic16_packRegisters): added an optimization while reading
4970         structure bitfields, some registers may be saved (malloc code is
4971         decreased by 80 bytes)
4972
4973 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
4974
4975         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
4976         left is a bitfield, if yes, then don't optimize assignment. Perhaps
4977         this can be optimized more?
4978
4979 2005-03-10 Raphael Neider <rneider AT web.de>
4980
4981         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4982           genNearPointerGet): (hopefully) fixed access to bitfields via
4983           pointers (p->bitN = x; and x = p->bitN; failed)
4984
4985 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
4986
4987         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
4988
4989 2005-03-09 Raphael Neider <rneider AT web.de>
4990
4991         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
4992
4993 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
4994
4995         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
4996         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
4997           (regTypeNum): set REG_BIT type if necessary
4998         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
4999         * support/regression/tests/critical.c: check bug 1144613
5000
5001 2005-03-02 Raphael Neider <rneider AT web.de>
5002
5003         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
5004
5005 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5006
5007         * src/avr/ralloc.c (serialRegAssign),
5008         * src/ds390/ralloc.c (serialRegAssign),
5009         * src/hc08/ralloc.c (serialRegAssign),
5010         * src/mcs51/ralloc.c (serialRegAssign),
5011         * src/pic/ralloc.c (serialRegAssign),
5012         * src/pic16/ralloc.c (serialRegAssign),
5013         * src/xa51/ralloc.c (serialRegAssign),
5014         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
5015
5016 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
5017
5018         * src/SDCCast.c (decorateType): fixed bug 1124787
5019
5020 2005-02-20 Hubert Sack <sack AT digiplan.de>
5021         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5022
5023         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
5024         patch #1121755
5025
5026 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5027
5028         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
5029         to keep the correct label reference count when adding/removing references
5030         to labels. A peephole file using this is appended to patch #1144962.
5031
5032 2005-02-14 Raphael Neider <rneider AT web.de>
5033
5034         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
5035         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
5036         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
5037           retrievals of result operand's value on assignment
5038
5039 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
5040
5041         * device/include/pic16/string.h: modified prototype for memccpy()
5042         to memccpy(void *, void *, char, size_t)
5043         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
5044         check whether to omit frame pointer or not,
5045         * (genInline): convert all occurences of "\n" to LF in inline
5046         assembler blocks, this helps formatting the inline text,
5047         * (pic16_loadFSR0): modified prototype,
5048         * (genNearPointerGet, genNearPointerSet): reorganization of code,
5049         removed some 8051 legacy code,
5050         * (genPackBits): enabled handling bitfields exceeding one byte in size,
5051         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
5052         before allocating temporary registers in functions,
5053
5054 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
5055
5056         * support/regression/tests/bitvars.c: corrected the "fix"
5057
5058 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
5059
5060         * support/regression/tests/bitvars.c,
5061         * support/regression/tests/bitwise.c,
5062         * support/regression/tests/rotate.c: "fixed" problems on Alpha
5063
5064 2005-02-10 Raphael Neider <rneider AT web.de>
5065
5066         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
5067           different size for Alpha
5068         * src/pic16/gen.c (genCmpEq) : improved compare with 0
5069
5070 2005-02-09 Raphael Neider <rneider AT web.de>
5071
5072         * src/SDCC.lex(doPragma) : save and restore warning options as well
5073           (also added new stack plus clone- and copyAndFreeSDCCERRG())
5074         * have #pragma less_pedantic set the errorlevel to WARNING
5075           (fixes #1117001)
5076         * (cloneOptimize) : fixed wrong malloc's size
5077         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
5078           facilitate correct handling of #pragma (save|restore)
5079
5080 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
5081
5082         * src/mcs51/gen.c: removed non-standard C nameless struct/union
5083
5084 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
5085
5086         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
5087
5088 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
5089
5090         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
5091
5092 2005-02-02 Raphael Neider <rneider AT web.de>
5093
5094         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
5095         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
5096         * (pic16_storeForReturn): fixed to allow returning function pointers
5097         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
5098         * device/include/pic16/{stddef.h,stdbool.h}: added
5099
5100 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
5101
5102         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
5103
5104 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
5105
5106         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
5107         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
5108          appeared to be required
5109
5110 2005-01-31 Borut Razem <borut.razem AT siol.net>
5111
5112         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
5113           include/mcs51 and include/z80 directories to the package
5114
5115 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5116
5117         * src/hc08/gen.c (genFunction): fixed bug #1112752
5118
5119 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5120
5121         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
5122
5123 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5124
5125         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
5126
5127 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
5128
5129         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
5130
5131 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
5132
5133         * device/include/c8051fxxx.h: removed these 6 files
5134         * device/include/mcs51/c8051fxxx.h: added these 11 new files
5135
5136 2005-01-26 Raphael Neider <rneider AT web.de>
5137
5138         * src/pic16/gen.c (genAssign): fixed assignment from longs
5139           in codespace (were cut to three bytes)
5140         * (genDummyRead): implemented (except for CODESPACE...),
5141           fixed bug #1108575
5142         * src/pic16/glue.c (emitStatistics): beautified
5143         * device/lib/pic16/libm/Makefile: added include path
5144
5145 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5146
5147         * src/z80/gen.c (aopPut): fixed bug #1103902
5148
5149 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5150
5151         * device/lib/expf.c: fixed bug #1095792
5152
5153 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
5154
5155         * device/lib/pic16/libm: added Math library sources
5156
5157 2005-01-24 Raphael Neider <rneider AT web.de>
5158
5159         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
5160           to enable upcast to pCodeOpReg2 (there is no type tag to
5161           differenciate the two and pic16_popGet2p cast into PCOR2)
5162         * src/pic16/main.c (_process_pragma): fixed another malloc bug
5163           (sizeof(sectNames) changed to sizeof(sectName))
5164           Both patches fix segfaults under MinGW.
5165
5166 2005-01-23 Raphael Neider <rneider AT web.de>
5167
5168         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
5169           Safe_[mc]?alloc()'ed variables
5170         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
5171           of (byte sized) temporaries (assign them to WREG for now)
5172         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
5173           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
5174           this might fix SIGSEGVs on MinGW...
5175         * src/SDCCopt.c (killDeadCode): restored original behaviour
5176           (volatile operands might get thrown away though)
5177
5178 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
5179
5180         * src/pic16/gen.c: fixed bug #1106975,
5181         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
5182         pointer update, INTCON is saved, global interrupts are disabled and
5183         restored after updateing TOS.
5184         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
5185         * added function attribute 'shadowregs' to take advantage of shadow
5186         registers,
5187         * added function attribute 'wparam' as an alternative to the wparam
5188         pragma,
5189         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
5190         user declares a non-ISR function as 'shadowregs',
5191         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
5192
5193 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
5194
5195         * .version: bumped version number to 2.4.8
5196         * device/lib/pic16/pics.all: list of PIC18F devices supported by
5197         pic16 port,
5198         * device/lib/pic16/libio/i2c/: I2C module support library,
5199         * device/include/pic16/i2c.h: I2C support library header,
5200         * device/lib/pic16/libc/stdio/: standard IO support sources,
5201         * (printf_small.c): printf_small() source, supports float print,
5202         * (printf_tiny.c): printf_tiny() source, does not support floats,
5203         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
5204         enable global optimizations for entire library source, other
5205         Makefiles in the source tree are also modified to reflect this,
5206         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
5207         function,
5208         * doc/sdccman.lyx: updated to reflect new changes,
5209         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
5210         sym->onStack if-case,
5211         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
5212         sbit, idata, _idata, xdata, _xdata,
5213         * added pragma library, to link an external library, (see doc),
5214         * removed command line options, --pomit-config-words, --pomit-ivt,
5215         --pleave-reset-vector,
5216         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
5217         when calling assembler to reflect memory model used, also define
5218         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
5219         reflect stack model used,
5220         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
5221         on stack return NULL,
5222
5223 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5224
5225         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
5226           of the operands is volatile. Fixes #1020220
5227
5228 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
5229
5230         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
5231         * (OptimizeRegUsage): make sure that there is really no other flow where
5232           the first pCode is used
5233
5234 2005-01-22 Raphael Neider <rneider AT web.de>
5235
5236         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
5237           to fix #1106967 (pCode->seq are not set up correctly)
5238
5239 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5240
5241         * src/SDCCglue.c (glue): make sure code area is declared before the
5242         static initialization area.
5243
5244 2005-01-21 Raphael Neider <rneider AT web.de>
5245
5246         * device/lib/Makefile.in: fixed test for pic16 install dir
5247         * device/lib/pic16/*/Makefile*: modified compile flags to enable
5248           optimizations
5249         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
5250           added --optimize-goto compiler switch and pragma wparam documentation
5251         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
5252         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
5253           and PRODH closing bug #1071770 (peephole optimizer)
5254
5255 2005-01-19 Raphael Neider <rneider AT web.de>
5256
5257         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
5258           cmdLine buffers (used when calling sdcpp...) are large enough
5259           (MAX_PATH=256 truncates arguments leading to system halts when
5260           used in MinGW...)
5261         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
5262         * (genUminus): rewritten to for efficiency
5263         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
5264           used uninitialized in some cases)
5265         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
5266           copy the third byte from the int -- now assumes 0x80 (data memory)
5267         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
5268           operands (genAddLit expects the iCode's operands to swapped as
5269           well), fixed leftover bytes (crashed for short left operands)
5270         * (pic16_genMinusDec): performance improvements, removed false
5271           PIC14 emitSKPNCs
5272         * (pic16_genMinus): fixed to cope with differently sized operands
5273         * src/pic16/glue.c (pic16_glue): added new banksel optimization
5274           for --obanksel > 1
5275         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
5276         * src/pic16/graph.[ch]: implementation of directed graphs, used by
5277           new banksel optimization
5278         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
5279           analysis for temporary registers (segfaults...)
5280         * src/pic16/peeph.def: added rule
5281
5282 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
5283
5284         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
5285         which converts a float number to its ASCII representation
5286         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
5287         functions to convert the fractional and integer part of a float to ASCII,
5288         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
5289         realloc.c): added _MALLOC_SPEC to explicit place variables in data
5290         ram
5291         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
5292         _STATMEM macros,
5293         * device/include/pic16/adc.h: added GPL info,
5294         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
5295         a pCodeOp as tested operand,
5296         * (genNearPointerGet): optimized bit testing, does not use
5297         intermediate register for bit value, test directly instead with
5298         BTFSS, BTFSC, works only for single bits,
5299         * (genpic16Code): dump the name of the iCode in the asm,
5300         * src/pic16/ralloc.c (decodeOp): removed static declaration and
5301         renamed to pic16_decodeOp,
5302         * (serialRegAssign): do not allocate a temporary register for iCode
5303         sequences that test a single bit for 1/0
5304
5305 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
5306
5307         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
5308         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
5309         access stack and frame pointers. They are initially assigned to
5310         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
5311         accessing SFRs. Updated all occurences of modification of stack or
5312         frame pointer in gen.c and pcode.c,
5313         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
5314         assigning of a literal value to pointers,
5315         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
5316         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
5317         selected
5318
5319 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
5320
5321         * doc/sdccman.lyx: update documentation about stack pragma, added
5322         some info for stack memory models
5323
5324 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5325
5326         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
5327
5328 2005-01-08 Raphael Neider <rneider AT web.de>
5329
5330         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
5331           udata sections to fix bug #1097823
5332
5333 2005-01-05 Raphael Neider <rneider AT web.de>
5334
5335         * src/pic16/gen.c (genGenericShift): added handling of differently
5336           sized left operand and result
5337
5338 2005-01-04 Raphael Neider <rneider AT web.de>
5339
5340         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
5341         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
5342           to hold the condition bit)
5343         * added new version of genCmp (old code available via #define)
5344         * added new version of genShiftLeft/genShiftRight in a generic
5345           way, now supports shifting by negative values
5346         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
5347           shiftCount (expected by genGenericShift)
5348         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
5349         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
5350           dump
5351         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
5352           is an invalid literal too...)
5353
5354 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
5355
5356         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
5357         from Raphael Neider,
5358         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
5359         for 8-bit literals. This fixes some literal operands which are sign
5360         extended to 16-bits ints when instruction needs only 8-bits.
5361
5362 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
5363
5364         * device/lib/logf.c: added mcs51 assembly version
5365         * device/lib/expf.c: added mcs51 assembly version
5366         * device/lib/_logexpf.c: new shared asm code for expf and logf
5367         * device/include/math.h: add defines for assembly math library
5368         * device/lib/Makefile.in: build new _logexpf.c
5369         * device/lib/libfloat.lib: use new _logexpf.c
5370
5371 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
5372
5373         * src/pic/device.c
5374         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
5375           device types which have less than 0x7f registers.
5376
5377 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
5378
5379         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
5380
5381 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
5382
5383         * device/lib/printf_fast.c: only build on supported arch.
5384         * device/lib/printf_tiny.c: only build on supported arch.
5385         * device/lib/printf_fast_f.c: only build if asm float lib
5386         * device/lib/_fsget1arg.c: only build if asm float lib
5387         * device/lib/_fsget2args.c: only build if asm float lib
5388         * device/lib/_fsnormalize.c: only build if asm float lib
5389         * device/lib/_fsreturnval.c: only build if asm float lib
5390         * device/lib/_fsrshift.c: only build if asm float lib
5391         * device/lib/_fsswapargs.c: only build if asm float lib
5392         * device/include/stdio.h: don't provide print_fast,
5393           print_fast_f, print_tiny prototypes if --xstack used
5394
5395 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
5396
5397         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
5398         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
5399           to the SOURCES
5400
5401 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
5402
5403         * device/lib/printf_fast_f.c: same as printf_fast, but
5404           with floating point enabled
5405         * device/lib/printf_fast.c: minor tweaks
5406         * device/include/stdio.h: add printf_fast_f
5407
5408 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5409
5410         * src/SDCCmain.c: make --float-reent default for mcs51
5411         * device/lib/_fsadd.c: added mcs51 assembly version
5412         * device/lib/_fssub.c: added mcs51 assembly version
5413         * device/lib/_fsmul.c: added mcs51 assembly version
5414         * device/lib/_fsdiv.c: added mcs51 assembly version
5415         * device/lib/_fseq.c: added mcs51 assembly version
5416         * device/lib/_fsneq.c: added mcs51 assembly version
5417         * device/lib/_fsgt.c: added mcs51 assembly version
5418         * device/lib/_fslt.c: added mcs51 assembly version
5419         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
5420         * device/lib/Makefile.in: add _fscmp to build
5421         * device/lib/libfloat.lib: add _fscmp to build
5422
5423 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5424
5425         * device/lib/_fs2slong.c: added mcs51 assembly version
5426         * device/lib/_fs2sint.c: added mcs51 assembly version
5427         * device/lib/_fs2schar.c: added mcs51 assembly version
5428         * device/lib/_fs2ulong.c: added mcs51 assembly version
5429         * device/lib/_fs2uint.c: added mcs51 assembly version
5430         * device/lib/_fs2uchar.c: added mcs51 assembly version
5431         * device/lib/_slong2fs.c: added mcs51 assembly version
5432         * device/lib/_sint2fs.c: added mcs51 assembly version
5433         * device/lib/_schar2fs.c: added mcs51 assembly version
5434         * device/lib/_ulong2fs.c: added mcs51 assembly version
5435         * device/lib/_uint2fs.c: added mcs51 assembly version
5436         * device/lib/_uchar2fs.c: added mcs51 assembly version
5437         * device/include/float.h: added #define to select asm vs c
5438
5439 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
5440
5441         * device/lib/printf_fast.c: improvements to float output
5442         * device/include/float.h: add defines for assembly float library
5443         * device/lib/_fsget1arg.c: receive 1 float arg
5444         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
5445         * device/lib/_fsnormalize.c: normalize a float
5446         * device/lib/_fsreturnval.c: return float, various helper routines
5447         * device/lib/_fsrshift.c: right shift a float's mantissa
5448         * device/lib/_fsswapargs.c: swap 2 floats
5449         * device/lib/Makefile.in: build these 6 new files for mcs51
5450         * device/lib/libfloat.lib: add these 6 files to the library
5451
5452 2004-12-26 Borut Razem <borut.razem AT siol.net>
5453
5454         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
5455           built by gcc 3.4.2
5456
5457 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
5458
5459         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
5460           and fully reentrant and register bank neutral.
5461         * device/lib/printf_fast.c: added float (not enabled by default),
5462           added compact/slower integer (also not enabled by default),
5463           improved size/speed of fast integer code, other minor changes
5464         * device/include/stdio.h, device/lib/Makefile.in,
5465           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
5466
5467 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
5468
5469         * src/pic16/pcode.c: declaring variables other than at the start of a
5470           block is not supported in C by VC6.
5471
5472 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
5473
5474         * applied a previous patch from Raphael Neider that wasn't included
5475         in the previous commits, which fixes infinite loops within jumptable
5476         improvements,
5477         * made some fixes that previous patches introduced
5478
5479 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
5480
5481         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
5482         that fixes an issue with AOP_PCODE asmop's offset,
5483         * (pic16_popCopyReg): update instance field too,
5484         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
5485         function of pic port,
5486         * (genCmp, genAnd, genAssign),
5487         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
5488
5489 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
5490
5491         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
5492         variables initial values to idata section,
5493         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
5494         variables in some functions. This utilizes parmBytes field of iCode
5495         structure to hold the offset of the variable in stack. (might be
5496         able to use the stack field too?)
5497         * applied patch from Raphael Neider # ### , # ###
5498         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
5499         variable initial values in idata section,
5500         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
5501         for static variables with initial value
5502         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
5503         applied fix in while loop from Raphael Neider.
5504
5505 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
5506
5507         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
5508         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
5509         * src/ds390/ralloc.c (serialRegAssign): spill bits
5510         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
5511         * support/Util/SDCCerr.c,
5512         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
5513         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
5514         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
5515
5516 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
5517
5518         * device/include/sdcc-lib.h: inserted LGPL, added includes
5519           asm/ds390/features.h and asm/mcs51/features.h
5520         * device/include/asm/default/features.h,
5521         * device/include/asm/gbz80/features.h,
5522         * device/include/asm/z80/features.h: added empty _AUTOMEM
5523           and _STATMEM
5524         * device/include/asm/ds390/features.h,
5525         * device/include/asm/mcs51/features.h: added files with defines for
5526           _AUTOMEM and _STATMEM indicating automatic and static storage class
5527         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
5528         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
5529         * src/SDCCicode.c (geniCodeCast),
5530         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
5531         * src/SDCCloop.c (loopInduction): removed unused variable lr
5532         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
5533           to convertToFcall to include char modulo (RFE 1065037), added check
5534           if left operand is unsigned and use abs of literal value
5535         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
5536           as it doesn't work after conversion from peephole.def to peephole.rul
5537         * src/mcs51/gen.c (toBoolean): added check for size,
5538           (genModOneByte): optimized code for signed char modulo a literal
5539           power of 2 (thanks to Hubert Sack),
5540           (genRRC): removed unnecessary "clr c",
5541           (genRLC): replaced "add a,acc" with cheaper "rlc a"
5542         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
5543           jump optimization,
5544           swapped rules 256.c and 256.d,
5545           extended 256.d by using new multiple checks (thanks Erik),
5546           added rules 256.e and 256.f,
5547           updated rule 261.a and 261.b to new generated code
5548         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
5549
5550 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5551
5552         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
5553           induction related bugs, including first part of bug #1074377
5554
5555 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
5556
5557         * applied patch from bug-report #1076292,
5558         * applied patches for genAnd and Goto-optimizations for Raphael
5559         Neider,
5560         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
5561         dump a less iCode information,
5562         * src/pic16/device.h (pic16_options_t): added field debgen,
5563         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
5564         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
5565         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
5566         puclic,
5567         * (various functions): added macros FENTRY and FENTRY2 to functions,
5568         to emit function prologue,
5569         * (various functions): fixed indentation,
5570         * (genNearPointerGet): fixed loading of FSR0,
5571         * (genPackBits): applied patch from Raphael Neider to fix updating
5572         of FSR0 and touching only the modified bits,
5573         * src/pic16/genarith.c (various functions): added macros FENTRY to
5574         emit function prologue in comments,
5575         * src/pic16/pcode.h: added functions debugf2, debugf3,
5576         * src/pic16/ralloc.c: partial fix for packForPush caused
5577         segmentation fault,
5578
5579 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5580
5581         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
5582           <stsp AT users.sourceforge.net> with reversed byte order
5583         * support/regression/tests/rotate.c: added (ds390 skips some tests)
5584
5585 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5586
5587         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
5588           bug #1074377
5589         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
5590         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
5591
5592 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5593
5594         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
5595
5596 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5597
5598         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
5599           conditions,
5600           (setFromConditionArgs): friendly operand parser for peephole rules,
5601           (operandBaseName, operandsNotRelated): new peephole condition
5602           "operandsNotRelated" -- similar to "operandsNotSame", but takes
5603           architecture specific register naming into account, handles n-way
5604           comparisons, and supports quoted literals
5605         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
5606
5607 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5608
5609         * src/mcs51/peeph.def: fixed bug #1076940
5610
5611 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5612
5613         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
5614
5615 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5616
5617         Adding support for replacing ljmps with sjmps in jumptables
5618         generated for switch statements. For now you need to set the
5619         environment variable SDCC_SJMP_JUMPTABLE to enable this.
5620         Now 4 algorithms for mcs51 jumptable generation are used:
5621         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
5622         addresses loaded pc-relative for up to 112 cases and stack-pushing
5623         target addresses loaded with offset from dptr for up to 256 cases.
5624
5625         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
5626         * src/mcs51/main.c: adapted constants for switch table generation
5627         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
5628
5629 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
5630
5631         * device/lib/printf_large.c (_print_format): fixed bug 1073386
5632         * support/regression/tests/bug1057979.c: added test for bug 1073386
5633
5634 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5635
5636         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
5637         compilers
5638
5639 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5640
5641         * src/pic16/device.h,
5642         * src/pic16/genarith.c,
5643         * src/pic16/glue.c,
5644         * src/pic16/main.c,
5645         * src/pic16/pcode.c: applied patches #1068154 and #1070213
5646
5647 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
5648
5649         Large cummulative patch for pic16 port.
5650         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
5651         to call when a stack overflow occurs,
5652         * (malloc.h): added CVS Id tag,
5653         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
5654         variable,
5655         * added libc directory. The current version of LibC contains string
5656         functions, ctype functions and macros and some functions of the
5657         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
5658         be extensively tested in the future. Standard disclaimer here.
5659         Library is not automatically build yet. But one can build it by
5660         invoking 'make' inside the libc directory.
5661         * added ADC library under libio. Preliminary version yet.
5662
5663         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
5664         * src/pic16/gen.c (aopForRemat): asmop size is filled by
5665         aopForRemat() now and not by pic16_aopOp(),
5666         * (pic16_popGetTempReg): removed warning messgae when allocating
5667         temporary registers, its a buggy feature and will be removed,
5668         * (pic16_popGet): set register instance field in AOP_CRY,
5669         * (pic16_outBitC): fixed for results in size greater than 1,
5670         * (genUminusFloat): fixed for pic16, ported code from mcs51,
5671         * (pic16_storeForReturn): optimized return of 0,
5672         * (genCmp): experimental code for new genCmp which uses PIC18's
5673         special compare&skip instructions. Initial tests fail some times
5674         with variables grater than 1 byte in size, so new code is disabled,
5675         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
5676         a single bit,
5677         * (genCast): began a fix to optimize the casting of a bit to another
5678         bit, now assigning a bitfield to another bitfield will fail, sorry,
5679         * src/pic16/main.c: disabled the use of lr-support feature,
5680         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
5681         * added some function prototypes, added function _debugf prototype,
5682         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
5683         bits with offset (case PO_GPR_BIT),
5684         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
5685         command line,
5686         * (isBankInstruction): modified to return 0 for no banking instruction,
5687         and 1 for banking instruction,
5688         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
5689         caused stop processing pCodes after a inline assembly block,
5690         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
5691         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
5692         registers when it shouldn't,
5693         * src/pic16/ralloc.c (allocReg): add preliminary support for
5694         supporting a limited set of temporary registers,
5695
5696 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5697
5698         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
5699           genDataPointerSet): ensure assignments always copy in MSB to LSB
5700           order,
5701           (loadRegFromAop): recognize CLRH optimization,
5702           (genFunction): optimize RECEIVE iCodes in reentrant functions
5703
5704 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5705
5706         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
5707           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
5708           selected.
5709         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
5710         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
5711           contiguous with data
5712
5713 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5714
5715         * device/lib/_gptrget.c (_gptrget),
5716         * device/lib/_gptrgetc.c (_gptrgetc),
5717         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
5718           instead of sjmp to ret
5719         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
5720           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
5721
5722 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5723
5724         * .version: bumped version to 2.4.7
5725         * device/lib/_gptrget.c (_gptrget): is now _naked
5726         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
5727         * device/lib/_gptrput.c (_gptrput): is now _naked
5728         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
5729           (createFunction): fixed xstack
5730         * src/SDCCglue.c (emitMaps): set allocation required for bit area
5731         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
5732           or bit either,
5733           (geniCodeCritical): store original interrupt state in an iTemp bit
5734           var unless stack-auto
5735         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
5736         * src/SDCCmain.c (setIncludePath): added include/target to search path
5737         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
5738         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
5739           prototype,
5740           (processFuncArgs): put bit vars in bit area
5741         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
5742           unsaveRBank): fixed xstack,
5743           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
5744           (genFunction, genEndFunction): fixed xstack,
5745           (genAssign): optimization don't walk backwards through mem
5746         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
5747         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
5748         * support/regression/Makefile: also make library (for stack-auto) when
5749           making "all" and added "test-mcs51-xstack-auto"
5750         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
5751         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
5752         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
5753         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
5754         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
5755           make-library by MAKE_LIBRARY
5756         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
5757           regression tests for xstack
5758         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
5759         * support/regression/tests/critical.c: test for critical on mcs51
5760
5761 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5762
5763         * support/regression/ports/ucz80/spec.mk: use include and lib files from
5764           built version of sdcc instead of installed version
5765
5766 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5767
5768         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
5769         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
5770           vprintf.c now
5771         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
5772         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
5773           WARNING: remove device/lib/build/z80/printf.o by hand when
5774           updating from previous build!
5775         * device/lib/z80/printf.c: updated comment
5776         * support/regression/tests/bug1057979.c: test all ports now
5777         * support/regression/tests/bug1065458.c: file added
5778
5779 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5780
5781         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
5782           *_start and *_end symbols for static functions
5783
5784 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
5785
5786         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
5787           and search crt0.o in all library paths,
5788           (setIncludePath): proper handling of --nostdinc,
5789           (setLibPath): proper handling of --nostdlib
5790         * support/regression/Makefile,
5791         * support/regression/ports/ds390/spec.mk,
5792         * support/regression/ports/gbz80/spec.mk,
5793         * support/regression/ports/hc08/spec.mk,
5794         * support/regression/ports/mcs51/spec.mk,
5795         * support/regression/ports/mcs51-large/spec.mk,
5796         * support/regression/ports/mcs51-stack-auto/spec.mk,
5797         * support/regression/ports/z80/spec.mk: use include and lib files from
5798           built version of sdcc instead of installed version
5799         * doc/sdccman.lyx: fixed typo in --nostdinc
5800
5801 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
5802
5803         * src/pic/pcode.c,
5804         * src/pic/device.c,
5805         * src/pic/ralloc.c,
5806         * src/pic/gen.c : added support to generate code for struct bit fields.
5807
5808 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5809
5810         * as/xa51/xa_version.h,
5811         * device/include/errno.h,
5812         * device/include/regc515c.h,
5813         * device/lib/_itoa.c,
5814         * device/lib/_ltoa.c,
5815         * device/lib/ser_ir_cts_rts.c,
5816         * sim/ucsim/xa.src/glob.cc,
5817         * sim/ucsim/xa.src/inst_gen.cc,
5818         * sim/ucsim/xa.src/xa_bit.cc,
5819         * sim/ucsim/xa.src/xa_sfr.cc,
5820         * sim/ucsim/z80.src/inst_dd.cc,
5821         * sim/ucsim/z80.src/inst_fdcb.cc,
5822         * support/scripts/keil2sdcc.pl,
5823         * src/pic16/pic16.dsp,
5824         * src/pic16/pic16a.dsp: corrected cvs line endings
5825         * device/lib/printf_large.c: fixed bug 1057979
5826         * src/pic16/gen.c: fixed non-C standard code
5827         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
5828         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
5829         * support/regression/ports/mcs51/support.c: reload T1 asap
5830         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
5831           pdata use and clear idata startup behaviour
5832         * support/regression/tests/bug1057979.c: added
5833
5834 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
5835
5836         * device/examples/ds390/ow390/ad26.h,
5837         * device/examples/ds390/ow390/cnt1d.h,
5838         * device/examples/ds390/ow390/crcutil.c,
5839         * device/examples/ds390/ow390/ownet.h,
5840         * device/examples/ds390/ow390/owsesu.c,
5841         * device/examples/ds390/ow390/swt12.h,
5842         * device/examples/ds390/ow390/swtoper.c,
5843         * device/examples/ds390/ow390/temp10.h,
5844         * device/examples/ds390/ow390/thermodl.c,
5845         * device/examples/ds390/tinitalk/tinitalk.dsp,
5846         * device/examples/ds390/tinitalk/tinitalk.dsw,
5847         * device/examples/mcs51/clock/hw.h,
5848         * device/examples/mcs51/simple2/go.bat,
5849         * device/examples/serialcomm/windows/serial.h,
5850         * device/examples/xa51/dummy.c,
5851         * device/examples/xa51/hello.c,
5852         * device/include/80c51xa.h,
5853         * device/include/at89x051.h: corrected cvs line endings
5854
5855 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
5856
5857         * src/pic16/main.c (options): added command line --gstack, to trace
5858         stack over/under flows,
5859         * added pragma 'wparam' to allow passing first byte of function
5860         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
5861         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
5862         call to __gstack_test function and sets up the symbol as extern,
5863         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
5864         * popaop): added call to pic16_testStackOverflow,
5865         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
5866         wparamList list,
5867         * (genCall, genPcall): now all parameters are passed via stack
5868         except in functions that are pass to wparam pragma in which WREG is
5869         used too,
5870         * (genPcall): REENTRANT flag is checked to see if variable prototype
5871         contains reentrant keyword, don't call a non-reentrant function, via
5872         a reentrant function pointer or vice versa, functions are never
5873         passed via WREG,
5874         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
5875         D.Winkler,
5876         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
5877         SIGSEGV when accessing a NULL register stucture,
5878         * (pic16_printGPointerType): modified to handle UPPER modifier for
5879         function initializers, changed prototype of function to simpler one,
5880         * (pic16_printIvalFuncPtr): check to see if function is already
5881         added in externs list,
5882         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
5883         optimized a move from W to SFR with a move to the same register
5884         later after a CALL,
5885         * device/lib/pic16/debug: NEW directory, contains debug features
5886         which are enabled when linking with libdebug.lib, currently command
5887         line option --gstack enables stack pointer tracing for over/under
5888         flow, corresponding sources are in debug/gstack
5889
5890 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
5891
5892         * doc/sdccman.lyx: updated SDCC version,
5893         * (PIC16 port): update list of command line options,
5894         * src/pic16/device.h (structure pic16_options_t): added field gstack
5895         to enable stack overflow tracing on push/pops,
5896         * src/pic16/device.c (statistics structure): added statistics
5897         structure,
5898         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
5899         pic16_dump_int_registers): increase statistics counters for each
5900         * variable which is encountered
5901         * (pic16_dump_usection): emit each .udata variable to its own udata
5902         section,
5903         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
5904         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
5905         parameters via stack, otherwise use old scheme,
5906         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
5907         assembler output file,
5908         * src/pic16/main.c: added command line options --gstack to enable
5909         push/pop tracing for stack overflow,
5910         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
5911         instructions): added size of each instruction,
5912         * (pic16_countInstruction): estimate size of instructions in
5913         the_pFile list, inline assembly blocks are not counted,
5914         * (pic16_FixRegisterBanking): trace previous register usage, when
5915         banksel optimizations is greater than 0, don't emit a redudant
5916         banksel directive,
5917
5918 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
5919
5920         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
5921         * src/pic16/ralloc.c : applied same fix for pic16.
5922         * src/pic/gen.c : tidied it up a little.
5923
5924 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5925
5926         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
5927         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
5928
5929 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5930
5931         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
5932
5933 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5934
5935         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
5936         non-reentrant function __modsint in the interrupt function (thus
5937         corrupting math operations during serial I/O)
5938         * device/lib/ser_ir.c: as above, changed buffersize
5939         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
5940         256.c,d for zeroing
5941         * doc/Makefile: added option -t for rsync
5942
5943 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5944
5945         * src/SDCCast.h (struct ast),
5946         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
5947
5948 2004-10-20 Borut Razem <borut.razem AT siol.net>
5949
5950         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
5951         package
5952
5953 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
5954
5955         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
5956         makefile targets,
5957         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
5958         support functions to replace long sequences of MOVFF's from access
5959         bank registers to stack and vice versa,
5960         * src/pic16/device.h: added new field opt_flags, where optimization
5961         flags can be set to enable certain features,
5962         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
5963         * pBlock, (genFunction, genEndFunction): surroung loop for
5964         saving/loading used registers in stack with PC_INFO pCodes,
5965         INF_LREGS. Code in between can then be optimized by pCode optimizer
5966         to support function calls,
5967         * (genDataPointerSet): fixed bug which loaded float fields in
5968         structures with corrupt data,
5969         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
5970         in a standard way debug info on stderr. Feature used for developing
5971         and debugging only,
5972         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
5973         obsolete chunks of code,
5974         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
5975         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
5976         * pic16/src/pcode.c (pic16_newpCodeInfo,
5977         * (pic16_newpCodeOpLocalRegs),
5978         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
5979         feature,
5980         * (pic16_pCodeConstString): printing of the initial value of a
5981         symbol as a comment is inhibited since parsing was already done by
5982         copyStr and output is corrupt,
5983         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
5984
5985 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5986
5987         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
5988
5989 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
5990
5991         * as/mcs51/lkarea.c: removed old K&R style,
5992           (lnksect): changed check on boundary error,
5993           (lnksect2): changed check on boundary error,
5994           (lnksect2): extend XSTK to end of page if size = 1
5995         * as/mcs51/lkmain.c: removed old K&R style,
5996           (Areas51): create l_IRAM symbol
5997         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
5998         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
5999           model-mcs51-stack-auto, added model-mcs51-xstack-auto
6000         * device/lib/_mullong.c: added version to be compiled with xstack
6001         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
6002         * device/lib/mcs51/crtxclear.asm: clear pdata as well
6003         * device/lib/mcs51/crtxstack.asm: fixed comment
6004         * src/SDCCglue.c: maxInterrupts defaults to 0,
6005           (emitMaps): added pdata,
6006           (createInterruptVect): (re)moved default,
6007           (glue): added pdata,
6008           (glue): moved __start__xstack to XSTK with default size 1
6009         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
6010           and options.float_rent when options.stackAuto is set,
6011           (linkEdit): only write XDATA_NAME if provided on command line
6012         * src/SDCCmem.h,
6013         * src/SDCCmem.c: added pdata
6014         * src/port.h: added pdata_name to PORT
6015         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
6016           (saveRegisters, unsaveRegisters): removed usage of B,
6017           (genMinus): fixed accumulator clash,
6018           (genJumpTab): added comment, this needs another look
6019         * src/mcs51/gen.c: added check for "B in use" paranoia,
6020           added pushB() and popB()
6021         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
6022           chance
6023         * src/avr/main.c,
6024         * src/ds390/main.c,
6025         * src/hc08/main.c,
6026         * src/mcs51/main.c,
6027         * src/pic/main.c,
6028         * src/pic16/main.c,
6029         * src/xa51/main.c,
6030         * src/z80/main.c: (reset_regparms) made void parameter explicit and
6031           added PSEG (PAG,XDATA) or NULL to port specifier
6032         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
6033         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
6034           (_mcs51_genInitStartup): removed __start__xstack equ,
6035           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
6036         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
6037         * src/z80/gen.c (_rleAppend): fixed warnings
6038         * support/regression/tests/zeropad.c: added pdata test
6039         * .version: bumped to 2.4.6
6040
6041 2004-10-17 Borut Razem <borut.razem AT siol.net>
6042
6043         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
6044         as a part of nightly build
6045
6046 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
6047
6048         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
6049         WREG holds the first byte function parameters,
6050         * (aopForSym): take special case for symbols which are in FARSPACE
6051         but in CODESPACE too,
6052         * (assignResultValue): modified to take into account _G.useWreg,
6053         * (genCall): don't use wreg for parameter passing when function is
6054         declared as reentrant, too, added optimization INCF to stack
6055         pointer when stack parameter count is 1,
6056         * (genFunction, genEndFunction): refurnished and fixed to not using
6057         wreg for passing parameters when function has varargs or is
6058         reentrant, fixed bug with symbol name compare for generating
6059         functions in absolute address,
6060         * (pic16_storeForReturn): refurnished,
6061         * (genCmp): began writing a new version of the function, not ready
6062         yet, therefore it is disabled,
6063         * (genAssign): do not read code memory when assigning a function to
6064         a pointer function,
6065         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
6066         array of characters, not pointer,
6067         * (pic16initialComments): in debug mode emit an .ident directive for
6068         the assembler,
6069         * (_process_pragma): emit a new warning type (internal to pic16)
6070         when setting stack to default length, emit a similar warning when
6071         placing a function at absolute address and address is not word aligned
6072         * (_pic16_parseOptions): added 'return TRUE' statement,
6073         * (_pic16_linkEdit): if compiling a source, then add the source's
6074         file object, first in the list of objects to link,
6075
6076 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
6077
6078         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
6079         * src/pic/main.c : removed VC warning.
6080         * src/pic/gen.c : changed comment.
6081
6082 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
6083
6084         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
6085         reference to a deprecated symbol _GPTRREG was causing failure to
6086         link. Thanks G. M. Gallant for the info.
6087
6088 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
6089
6090         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
6091         comments for Bugs item #954788.
6092
6093 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
6094
6095         * src/pic16/device.c (pic16_dump_gsection,
6096         * pic16_groupRegistersInSection): handle symbols declared to be in
6097         access bank differently,
6098         * src/pic16/gen.c (struct _G): added field resDirect,
6099         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
6100         send values read from stack directly to result and don't allocate
6101         temporary values,
6102         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
6103         same registers,
6104         * (pic16_sameRegsOfs): NEW,
6105         * (freeAsmop): if _G.resDirect is set then do not mark registers as
6106         free because they were not allocated from temporary pool,
6107         * pic16_popRegFromString): workaround to fix a problem with
6108         allocating variables twice or never,
6109         * (genGenPointerGet): using PRODL instead of FSR0H,
6110         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
6111         instead of FSR0H,
6112         * (genAssign): take advantage of the _G.resDirect flag,
6113         * (genCast): around line 11844, use mov2f instead of directly
6114         MOVFF'ing between operands to account for literal values,
6115         * src/pic16/genutils.c: some new debug functions for gpsim have been
6116         added,
6117         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
6118         float with integer part only,
6119         * src/pic16/main.c (_process_pragma): handle pragma udata access to
6120         place variables in access bank
6121         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
6122         updated sources to reflect recent changes in gen.c
6123
6124 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
6125
6126         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
6127         sources that searched for headers in installation path, now the
6128         device/include/pic16 is used,
6129         * src/pic16/glue.c (pic16glue),
6130         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
6131         .line directives if not in debug mode, this suppresses assembler's
6132         warnings for ignored directives
6133
6134 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
6135
6136         * src/port.h: made reset_regparms prototype void parameter explicit.
6137         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
6138         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
6139         * doc/sdccman.lyx: documented warning disabling and how to use
6140           printf_large to make it print floats.
6141         * device/include/stdbool.h: NEW
6142         * device/lib/_atof.c,
6143         * device/lib/_divuint.c,
6144         * device/lib/_divulong.c,
6145         * device/lib/expf.c,
6146         * device/lib/printf_large.c,
6147         * device/lib/sincosf.c,
6148         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
6149         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
6150           a completely reentrant lib.
6151
6152 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
6153
6154         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
6155         * device/include/pic16/stdio.h: fixed bug with colon
6156
6157 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
6158
6159         * device/include/pic16/stdio.h,
6160         * device/include/pic16/stdlib.h,
6161         * device/include/pic16/math.h: NEW
6162         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
6163         declared as _naked to reduce overhead
6164         * device/lib/Makefile.in (target port-specific-objects-pic16):
6165         changed * to *.* so to ignore the CVS directory,
6166         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
6167         stacked variables back in stack,
6168         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
6169         corruption
6170
6171 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
6172
6173         * .version: bumped version number to 2.4.5
6174         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
6175         * support/Util/SDCCerr.c (messages structure): added entry for
6176         W_POSSBUG2
6177
6178         Large cumulative patch for pic16 port and libraries.
6179         * device/include/pic16/sdcc-lib.h,
6180         * device/include/pic16/stdarg.h,
6181         * device/include/asm/pic16/features.h,
6182         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
6183         * device/include/pic16/float.h: changes reentrant keyword with
6184         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
6185         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
6186         updated target build-libraries to include objects from gptr,
6187         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
6188         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
6189         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
6190         all function headings,
6191         * src/SDCCmain.c: added global parameter userIncDirsSet,
6192         * (parseCmdLine): when option -I is encountered add directory to
6193         userIncDirsSet too,
6194         * src/version.awk: added space between control and long,
6195         * src/pic16/NOTES: added some notes for the port,
6196         * src/pic16/gen.c: added prototype for mov2fp function,
6197         * (fReturnpic16[]): properly named return value registers,
6198         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
6199         * (aopForSym): added code to handle symbols with onStack flag set,
6200         symbols onStack are allocated PTRSIZE bytes,
6201         * (aopFreeAsmop): handles special case where asmops are stack objects,
6202         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
6203         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
6204         added argument lock to trace flaws in allocating temporary registers
6205         when developing port,
6206         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
6207         * (pic16_popRegFromString): reenabled allocating a direct register
6208         from string,
6209         * (assignResultValue): various beautifications,
6210         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
6211         referenced function argument,
6212         * (genIpush): reenabled to allow stacked arguments, handles only
6213         ic->parmPush iCodes,
6214         * (genCall, genPcall): major changes to allow for variable argument
6215         functions, fixed a bug with falsely restoring stack pointer after
6216         returning from call,
6217         * (genFunction): pending code for critical function,
6218         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
6219         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
6220         * (genNearPointerGet): fixed bug with indirect reading, was always
6221         reading from INDF0
6222         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
6223         pointers,
6224         * (genAddrOf): rewrote code to take address of a stacked function parameter
6225         * (genCast): fixed casting to generic pointer type,
6226         * src/pic16/gen.h: added AOP_STA,
6227         * (struct asmop): added field stk,
6228         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
6229         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
6230         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
6231         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
6232         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
6233         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
6234         generic pointers,
6235         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
6236         and library paths,
6237         * (pic16_port structure): generic pointer size is set to 3,
6238         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
6239         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
6240         compiler warning,
6241         * src/pic16/ralloc.c (allocReg): prevent allocating register when
6242         operand is an iTemp,
6243
6244 2004-09-24 Martin Helmling <mh AT octo-soft.de>
6245
6246         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
6247         * debugger/mcs51/simi.c: addapt new syntax of s51
6248
6249 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
6250
6251         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
6252         * src/pic16/pcode.c: commented out some calls to free() in order to
6253         fix bug #989576,
6254
6255 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6256
6257         * src/SDCCicode.h,
6258         * src/SDCCicode.c (isiCodeInFunctionCall),
6259         * src/avr/ralloc.c (selectSpil),
6260         * src/pic/ralloc.c (selectSpil),
6261         * src/pic16/ralloc.c (selectSpil),
6262         * src/ds390/ralloc.c (selectSpil),
6263         * src/hc08/ralloc.c (selectSpil),
6264         * src/xa51/ralloc.c (selectSpil),
6265         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
6266         stack in the middle of a function call sequence (fixes bug #1020268)
6267         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
6268         costs associated with the minimum switch case.
6269
6270 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6271
6272         * src/SDCC.lex: fixed bug #1030549
6273
6274 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6275
6276         * src/SDCCcse.h (struct cseDef),
6277         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
6278         over a function call if the CSE is derived from a symbol whose
6279         address has been taken (fixes bug #1029883)
6280         * support/regression/tests/bug-1029883: a new regression test for
6281         this bug
6282
6283 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6284
6285         * src/hc08/gen.c (emitinline): fixed bug #1029778
6286         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
6287         to a cast object is no longer a syntax error ("fixes" bug #1030006,
6288         and starts toward RFE #905167)
6289
6290 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
6291
6292         * src/pic16/gen.c (mov2f): New function to move an operand to
6293         another without considering if it is a literal or a register,
6294         * (pic16_sameRegs): don't check if they are both AOP_REG,
6295         * (AccRsh): removed andmask=0 lines,
6296         * (genLeftShift): duplicated to be improved in future versions,
6297         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
6298         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
6299         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
6300         * (pic16initMnemonics): added initialization for POC_INFSNZW,
6301         * (insertBankSwitch): fixed inserting banksel directives algorithm
6302         for instructions that follow a skip instruction, this fixes a report
6303         for broken subtraction code generation,
6304         * src/pic16/ralloc.c (deassignLRs): do not free register if current
6305         iCode is a left op, just in case result and right share the same
6306         registers
6307
6308 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6309
6310         * src/hc08/main.c,
6311         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
6312         preservation of HX
6313         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
6314         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
6315         on 2004-09-12; it was buggy
6316
6317 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
6318
6319         * src/SDCCsymt.h: removed RESULT_CHECK
6320         * src/SDCCast.c,
6321         * src/SDCCglue.c,
6322         * src/SDCCval.c,
6323         * src/pic/glue.c,
6324         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
6325
6326 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
6327
6328         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
6329         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
6330         configuration values no more rejected by compiler, they are assigned
6331         to configuration registers with a warning message instead,
6332         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
6333         the for-loop so last conf register is emitted too,
6334         * (_pic16_initPaths): link library libsdcc.lib by default,
6335         * (_hasNativeMulFor): modified test for multiplication according to
6336         Raphael Neider's remarks. Integer multiplication is also done with
6337         support functions,
6338         * device/include/pic16/pic18fregs.h: corrected type error in while
6339         testing and including 18f6720 header file
6340
6341 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
6342
6343         * src/pic16/device.h (pic16_options): removed field use_crt,
6344         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
6345         until an optimization to handle single bits is added,
6346         * (pic16_loadFSR0): moved before genUnpackBits,
6347         * (genAnd): some white lines removed,
6348         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
6349         leave_reset flags in pic16_options when using crt modules,
6350
6351 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
6352
6353         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
6354           for bugs 898889 & 979599. Also used some safer print instructions.
6355
6356 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
6357
6358         * src/pic16/device.h (pic16_options_t): added field use_crt,
6359         crt_name, no_crt,
6360         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
6361         catch a probable future bug,
6362         * src/pic16/gen.c: aopIdx function commented out,
6363         * (genAssign): commented out old code which used aopIdx,
6364         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
6365         code, added if conditionals to take into account the --use-crt
6366         command line options,
6367         * src/pic16/main.c (pic16_optionsTable): added new command line
6368         options, --use-crt= and --no-crt,
6369         * (_pic16_linkEdit): now the proper crt object is added in the
6370         linker command line except than when --no-crt is specified,
6371         * src/pic16/pcode.c,
6372         * src/pic16/pcode.h: added some structures and functions for a new
6373         optimization scheme to compansate for instruction overhead between
6374         same iCodes, this scheme is currently under development and is not
6375         working in any way,
6376         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
6377         to && operator,
6378         * device/lib/pic16/startup/crt0i.c,
6379         * device/lib/pic16/startup/crt0iz.c: added global char variable
6380         __uflags to force the generation of an idata section
6381
6382 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
6383
6384         * doc/Makefile,
6385         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
6386         * doc/sdccman.lyx: updated sdcc version to 2.4.4
6387
6388 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6389
6390         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
6391         Frieder) and clarified the default code optimization mode
6392
6393 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6394
6395         * src/SDCC.lex (doPragma, process_pragma),
6396         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
6397         "opt_code_size", and "opt_code_balanced"
6398         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
6399         regrouped options by category, added support for category headers
6400         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
6401         and "--opt-code-size"
6402         * doc/sdccman.lyx: documented these new options and pragmas
6403         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
6404         preference into account
6405
6406 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6407
6408         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
6409           geniCodePreDec): Fixed bug 904237 by generating a warning
6410         * src/SDCCerr.h,
6411         * src/SDCCerr.c: added warning W_SIZEOF_VOID
6412
6413 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
6414
6415         * src/pic/device.c : When no max ram set validate full memory range.
6416         * src/pic/pcode.c,
6417         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
6418
6419 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6420
6421         * device/lib/_gptrget.c,
6422         * device/lib/_gptrput.c: updated comment
6423         * device/lib/calloc.c,
6424         * device/lib/free.c,
6425         * device/lib/malloc.c,
6426         * device/lib/realloc.c: added LGPL, made them reentrant-safe
6427         * src/SDCCcse.c (cseBBlock),
6428         * src/SDCCicode.c (printOperand, geniCodeArray),
6429         * src/SDCCicode.h (struct operand): fixed bug 868103
6430         * support/regression/tests/bug-868103.c: added
6431         * src/SDCCast.c (searchLitOp),
6432         * src/SDCCcse.h (struct cseDef),
6433         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
6434         * src/SDCCicode.h (struct operand),
6435         * src/SDCCsymt.h (struct sym_link),
6436         * src/avr/gen.c (hasInc),
6437         * src/ds390/gen.c (hasInc),
6438         * src/hc08/gen.c (genPlusIncr, hasInc),
6439         * src/mcs51/gen.c (hasInc),
6440         * src/pic16/glue.c (pic16_printIvalChar),
6441         * src/pic16/ralloc.c (regWithIdx),
6442         * src/xa51/gen.c (hasInc) : removed warnings
6443         * src/SDCCast.c (createBlock): added comment ???
6444         * src/hc08/ralloc.c: updated comments
6445
6446 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6447
6448         * doc/sdccman.lyx: updated section on switch statements, added
6449         section about semaphore locking
6450         * doc/Makefile: added option -info for latex2html
6451         * device/lib/_gptrget.c,
6452         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
6453
6454 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
6455
6456         * src/pic/device.h,
6457         * src/pic/device.c,
6458         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
6459          maxram is less than 0x100.
6460
6461 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
6462
6463         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
6464
6465 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6466
6467         * src/port.h,
6468         * src/mcs51/main.c,
6469         * src/ds390/main.c,
6470         * src/z80/main.c,
6471         * src/hc08/main.c,
6472         * src/pic/main.c,
6473         * src/pic16/main.c,
6474         * src/avr/main.c,
6475         * src/xa51/main.c
6476         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
6477         a jump table is the best form for a switch statement, including
6478         automatic insertion of missing cases to make the case range
6479         continuous. Developed in collaboration with Frieder Ferlemann.
6480
6481 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6482
6483         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
6484         accumulator result if it needs sign extension
6485
6486 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6487
6488         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
6489
6490 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6491
6492         * device/lib/gbz80/printf.c,
6493         * device/lib/z80/printf.c: removed define for NULL
6494
6495 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6496
6497         * as/xa51/xa_link.c,
6498         * device/examples/ds390/ow390/ad26.c,
6499         * device/examples/ds390/ow390/cnt1d.c,
6500         * device/examples/ds390/ow390/counter.c,
6501         * device/examples/ds390/ow390/ds2480.h,
6502         * device/examples/ds390/ow390/ds2480ut.c,
6503         * device/examples/ds390/ow390/findtype.c,
6504         * device/examples/ds390/ow390/gethumd.c,
6505         * device/examples/ds390/ow390/owllu.c,
6506         * device/examples/ds390/ow390/ownetu.c,
6507         * device/examples/ds390/ow390/swt12.c,
6508         * device/examples/ds390/ow390/swtloop.c,
6509         * device/examples/ds390/ow390/temp.c,
6510         * device/examples/ds390/ow390/temp10.c,
6511         * device/examples/ds390/ow390/thermo21.c,
6512         * device/examples/ds390/ow390/tinilnk.c,
6513         * device/examples/ds390/ow390/tstfind.c,
6514         * device/examples/serialcomm/windows/serial.cpp,
6515         * device/examples/serialcomm/windows/test_serialcomm.cpp,
6516         * device/include/reg51.h: fixed line endings for cvs
6517
6518 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6519
6520         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
6521         packRegsForAccUse, packRegisters): new accumulator register
6522         packing algorithm
6523         * support/regression/ports/hc08/support.c (_putchar): suppress
6524         warning of unused variable
6525         * src/SDCCicode.c: added SWAP entry to codeTable
6526
6527 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
6528
6529         * device/lib/sprintf.c: forgot to add this file before previous commit
6530
6531 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
6532
6533         * src/pic16/gen.c (genPackBits): added operand right in function
6534         parameters, load result directly if p_type is POINTER (that is
6535         called by genNearPointerSet)
6536         * (genUnPackBits): added operand left in function parameters,
6537         * (genNearPointerGet, genNearPointerSet): prevent the loading of
6538         FSR0 if accessing bitfields,
6539
6540 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
6541
6542         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
6543           _print_format; updated printf, sprintf, vsprintf
6544         * device/include/asm/default/features.h: corrected comment/define
6545         * device/lib/Makefile.in: added sprintf.c
6546         * device/lib/libsdcc.lib: added sprintf module
6547         * device/lib/printf_large.c,
6548         * device/lib/vprintf.c,
6549         * device/lib/sprintf.c: totally refactored printf_large and vprintf
6550           into these 3 files
6551         * support/regression/Makefile: changed ALL_PORTS into a usefull default
6552         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
6553         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
6554           hc08 test
6555         * support/regression/tests/zeropad.c: define idata as data for hc08
6556
6557 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6558
6559         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
6560         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
6561         labels are referenced at least once (even if a reference is not found)
6562         * src/hc08/gen.c (emitcode): set isComment flag for comments
6563         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
6564         loads), rules 6a..6b (optimize jumps to return)
6565
6566 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6567
6568         * device/lib/acosf.c (acosf),
6569         * device/lib/asinf.c (asinf),
6570         * device/lib/atanf.c (atanf),
6571         * device/lib/ceilf.c (ceilf),
6572         * device/lib/cosf.c (cosf),
6573         * device/lib/coshf.c (coshf),
6574         * device/lib/cotf.c (cotf),
6575         * device/lib/fabsf.c (fabsf),
6576         * device/lib/floorf.c (floorf),
6577         * device/lib/log10f.c (log10f),
6578         * device/lib/logf.c (logf),
6579         * device/lib/sinf.c (sinf),
6580         * device/lib/sinhf.c (sinhf),
6581         * device/lib/sqrtf.c (sqrtf),
6582         * device/lib/tanf.c (tanf),
6583         * device/lib/tanhf.c (tanhf),
6584         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
6585         replaced all instances of "reentrant" in the library functions
6586         defined in math.h with this macro.
6587         * support/regression/tests/float_trans.c: reenabled test for hc08
6588
6589 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
6590
6591         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
6592         erroneously deleted
6593
6594 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6595
6596         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
6597         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
6598         multi-byte volatile operands are used
6599         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
6600         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
6601         initialization to area GSINIT0 so that it would always precede
6602         any static initializers in GSINIT
6603         * support/regression/tests/zeropad.c: fixed idata define for hc08
6604         * support/regression/tests/bug-927659.c,
6605         * support/regression/tests/float_trans.c: disabled tests for hc08
6606         pending missing library routines
6607         * .version: increased version number to 2.4.4 - hc08 port now passes
6608         regression tests
6609
6610
6611 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
6612
6613         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
6614         * Makefile.common.in,
6615         * as/Makefile,
6616         * as/hc08/Makefile.in,
6617         * as/mcs51/Makefile.in,
6618         * as/z80/Makefile.in,
6619         * debugger/mcs51/Makefile.in,
6620         * device/include/Makefile.in,
6621         * device/lib/Makefile.in,
6622         * doc/Makefile,
6623         * link/Makefile,
6624         * link/z80/Makefile.in,
6625         * packihx/Makefile.in,
6626         * sim/ucsim/main_in.mk,
6627         * sim/ucsim/avr.src/Makefile.in,
6628         * sim/ucsim/doc/Makefile.in,
6629         * sim/ucsim/gui.src/serio.src/Makefile.in,
6630         * sim/ucsim/hc08.src/Makefile.in,
6631         * sim/ucsim/s51.src/Makefile.in,
6632         * sim/ucsim/xa.src/Makefile.in,
6633         * sim/ucsim/z80.src/Makefile.in,
6634         * src/Makefile.in,
6635         * support/cpp2/Makefile.in,
6636         * support/librarian/Makefile,
6637         * support/makebin/Makefile: added DESTDIR to the install path proposed
6638         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
6639         * doc/sdccman.lyx: added DESTDIR documentation
6640
6641 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
6642
6643         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
6644         instruction for interrupt handlers, use fast returns when returning
6645         from high priority interrupts
6646
6647 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6648
6649         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
6650         code generation
6651         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
6652         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
6653         bugs, ported much of Bernhard's code from mcs51
6654         * src/mcs51/gen.c (genSend),
6655         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
6656         than one when calling a reentrant function
6657         * device/lib/_mullong.c: defined an alternate struct layout for big
6658         endian ports (hc08)
6659
6660 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6661
6662         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
6663         test
6664
6665 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6666
6667         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
6668         are sane and complete before asking the port its prefered parameter
6669         passing method (fixes bug #1017633)
6670         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
6671         and _ret3
6672
6673 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6674
6675         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
6676         problem in bitfields >= 8 bits.
6677
6678 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6679
6680         * src/SDCCsymt.c: undid changes that were not meant to be committed
6681
6682 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6683
6684         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
6685
6686 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6687
6688         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
6689           copied and wrong bit got inverted
6690
6691 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6692
6693         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
6694         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
6695         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
6696         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
6697         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
6698         assignments to bitfields at known addresses
6699         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
6700         reads from bitfields at known addresses
6701         * src/hc08/ralloc.c (packRegisters),
6702         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
6703         genhc08Code): optimize pointer get values used as conditionals
6704         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
6705         and branch
6706
6707 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6708
6709         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
6710         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
6711         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
6712         as conditionals
6713
6714 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6715
6716         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
6717
6718 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6719
6720         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
6721         related problems
6722
6723 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
6724
6725         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
6726
6727 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6728
6729         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
6730         mcs51 port
6731
6732 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6733
6734         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
6735
6736 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6737
6738         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
6739         cases use more compact code.
6740
6741 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
6742
6743         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
6744
6745 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6746
6747         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
6748
6749 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6750
6751         * src/SDCCsymt.h,
6752         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
6753         parameter of changePointer() from symbol* to sym_link*
6754         * src/SDCCast.c (decorateType): call changePointer() for CAST op
6755         * src/SDCCsymt.c (compareType): void* type is castable to other
6756         pointers, but not necesarily an exact match.
6757         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
6758         is no longer blindly treated as an exact match.
6759         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
6760
6761 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
6762
6763         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
6764
6765 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
6766
6767         * src/pic/gen.c,
6768         * src/pic/pcode.c,
6769         * src/pic/ralloc.h,
6770         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
6771
6772 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
6773
6774         * src/pic/device.c,
6775         * src/pic/device.h,
6776         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
6777
6778 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6779
6780         * src/mcs51/gen.c (emitcode): fixed bug #992819
6781
6782 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
6783
6784         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
6785           there's no need to make it worse
6786
6787 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6788
6789         * src/mcs51/ralloc.c (deassignLR),
6790         * src/ds390/ralloc.c (deassignLR),
6791         * src/hc08/ralloc.c (deassignLR),
6792         * src/z80/ralloc.c (deassignLR),
6793         * src/pic/ralloc.c (deassignLR),
6794         * src/pic16/ralloc.c (deassignLR),
6795         * src/avr/ralloc.c (deassignLR),
6796         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
6797         rlivePoint): fixed another part of bug #971834
6798
6799 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6800
6801         * src/z80/main.c: enabled "critical" keyword
6802         * src/z80/mappings.i,
6803         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
6804         functions (fixes bug #979646)
6805         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
6806
6807 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6808
6809         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
6810           such as c:\mydir.
6811
6812 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
6813
6814         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
6815           doesn't disable too much optimizations
6816
6817 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6818
6819         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
6820
6821 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
6822
6823         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
6824
6825 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6826
6827         * src/pic/gen.c tidied up tabs
6828         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
6829         * src/pic/main.c tidied up tabs
6830         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
6831         * src/pic/pcoderegs.c tidied up tabs
6832         * src/pic/ralloc.c tidied up tabs
6833
6834 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
6835
6836         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
6837         to S_FIXED for pic16 port and when symbol is not in level 0,
6838         allocate for S_REGISTER storage class and pic16 port, too,
6839         * src/pic16/device.h: prototype for checkSym,
6840         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
6841         * (pic16_assignConfigWordValue): test the value and the mask to
6842         validate that the value is suitable for the configuration word,
6843         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
6844         collect extern declared symbols, don't emit symbol twice, check
6845         first if symbol is in publics set first,
6846         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
6847         * added command line '--fstack' which enables an experimental
6848         feature for stack access, too buggy to be used yet...
6849         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
6850         * (pic16_allocDirReg): when register has storage class S_REGISTER
6851         allocate in pic16_dynAccessRegs,
6852         * device/include/pic16/pic18f????.h: modified configuration word
6853         naming convention, words started as CONFIG0H but should be CONFIG1H
6854
6855 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6856
6857         * device/include/mcs51reg.h: fixed bug 970993
6858
6859 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
6860
6861         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
6862         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
6863         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
6864         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
6865         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
6866         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
6867           error/warning numbers,
6868           added function setWarningDisabled()
6869         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
6870         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
6871           _memcmp.c _memmove.c calloc.c realloc.c free.c
6872         * support/regression/tests/malloc.c: added tests for new functionality
6873         * support/regression/tests/zeropad.c: added tests for truncated initializers
6874           and initialized char arrays starting with '\x0'
6875         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
6876
6877 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
6878
6879         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
6880
6881 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6882
6883         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
6884         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
6885         peephole 177.e. Thanks to anonymous
6886
6887 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
6888
6889         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
6890         function isn't used in the source but referenced as a
6891         variable initializer then declare it as extern in .asm file
6892
6893 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
6894
6895         * .version: increased version number to 2.4.3
6896
6897         Adding version extension according to ChangeLog CVS revision
6898         * src/Makefile.in (target all): added dependency 'version.h'
6899         * (rule version.h): added rule to create version.h from ChangeLog,
6900         * (rule dep): added dependency version.h,
6901         * src/version.awk: AWK script to create version.h
6902         * src/SDCCdwarf2.c (dwWriteModule),
6903         * src/SDCCglue.c (initialComments),
6904         * src/SDCCmain.c (printVersionInfo): modified to write after
6905         version string the version extension number,
6906         * src/SDCCutil.c: included "version.h"
6907         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
6908         number,
6909         * src/SDCCutil.h: added prototype for getBuildNumber
6910
6911         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
6912         includeDirsSet, too,
6913         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
6914         const char [] is found in function prototype...
6915
6916         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
6917         moving to WREG with source is already in WREG,
6918         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
6919         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
6920         * (aopForSym): stack'ed symbols are partially supported, added
6921         if-clause to support symbols in FARSPACE,
6922         * (sameRegs): added test for AOP_ACC to see if registers are same,
6923         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
6924         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
6925         * (pic16_popRegFromString): will not allocate a new register if it
6926         doesn't find one by name, bug may have introduced...
6927         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
6928         * (genIpush): revived to use pic16 port's stack,
6929         * (genAddrOf): added incomplete case for stack'ed operand,
6930         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
6931         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
6932         can handle multibyte operands,
6933         * src/pic16/glue.c (pic16_printIval*): some debug info added,
6934         * (pic16initialComments): added message for MPLAB compatibility
6935         mode enabled,
6936         * src/pic16/main.h: prototype for pic16_mplab_comp,
6937         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
6938         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
6939         * (_pic16_linkEdit): NEW, handles link stage, transferred here
6940         because of increased complexity of procedure,
6941         * (_process_pragma): stack pragma changed to format 'stack pos len',
6942         emit symbol '_stack_end' to conform with gplink,
6943         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
6944         to search for register,
6945         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
6946         PO_GPR_REGISTER,
6947         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
6948         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
6949         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6950         case for PO_GPR_REGISTER,
6951         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
6952         dies, the new era is ahead !...
6953         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
6954         pic16_dynInternalRegs,
6955         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
6956         * (pic16_allocDirReg): minor optimizations and bug fixes,
6957         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
6958
6959         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
6960         load stack and frame pointer with address of 'stack_end' symbol
6961
6962 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
6963
6964         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
6965         without source code but only variable initializers
6966
6967 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
6968
6969         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
6970         external are not declared as extern to reduce overhead while linking
6971
6972 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
6973
6974         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
6975
6976 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
6977
6978         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
6979           Yee Keat for the patch
6980         * src/SDCCast.c (decorateType): fixed bug #979599
6981         * src/ds390/gen.h: removed local fReturnSizeDS390
6982         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
6983         * src/ds390/gen.c (genAnd, genOr, genXor),
6984         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
6985
6986 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
6987
6988         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
6989         add relFilesSet to $3, manipulate $2 to handle linking of object
6990         files without source files in command line,
6991         * device/include/pic16 (all headers): added ID location macros,
6992         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
6993         entries for ID location bytes,
6994         * (pic16_assignIdByteValue): NEW,
6995         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
6996         added field dumpcalltree to pic16_options_t,
6997         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
6998         is used instead of pic16_Gstack_base_addr, check if (ifx) before
6999         emitting rFalseIfx label after check_carry label,
7000         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
7001         pic16_emitDIRegs), NEW
7002         * (pic16glue): dump .calltree file when option --calltree found,
7003         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
7004         * (_pic16_genAssemblerPreamble): emit ID locations after
7005         configuration registers,
7006         * (pic16_linkCmd): modifications of the link command,
7007         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
7008         * (pic16_pCodeInitRegisters): don't init stack registers,
7009         * (pic16_findPrevInstruction): fixed bug,
7010         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
7011         bug with immediate registers,
7012         * (buildCallTree): traces stack push and pop,
7013         * (pct2): dump also stack usage for each function,
7014         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
7015         * (pic16_allocDirReg): various modifications,
7016         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
7017         fixed to 1,
7018
7019 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
7020
7021         * src/pic16/pcode.c: removed buggy double colon
7022
7023 2004-07-01 Borut Razem <borut.razem AT siol.net>
7024
7025         * support/scripts/sdcc.nsi: added include/pic16 to setup
7026
7027 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
7028
7029         * device/lib/Makefile.in: fixed bug in target objects-pic16,
7030         * device/lib/pic16/Makefile: prefixed with dash (-) command under
7031         target 'clean',
7032         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
7033         specific command line arguments. Also added sample lkr script
7034         for placing a variable at a specific memory bank.
7035         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
7036         at a specific memory bank,
7037         * (pic16_dump_isection): fixed bug which caused string literals to
7038         be omitted when dumping idata section,
7039         * (pic16_groupRegistersInSection): added code to handle registers
7040         in specific memory banks,
7041         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
7042         public, all references are renamed too,
7043         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
7044         AOP_DPTR2,
7045         * (pic16_storeForReturn): added case to handle when dest is WREG,
7046         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
7047         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
7048         pic16_rel_udata, check to see if that register is marked as being
7049         a member of a specific memory bank,
7050         * (pic16_printIvalCharPtr): added code to add string literals either
7051         to code or the idata sections,
7052         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
7053         also accept the 'udata' pragma,
7054         * src/pic16/main.h: new structure types sectName and sectSym
7055         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
7056         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
7057         * (pic16_findPrevInstruction): fixed, it returned nothing,
7058         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
7059         instruction combinations,
7060         * (pic16_FixRegisterBanking): heavily reorganised,
7061         * (pic16_AnalyzeBanking): if generating banksel directives is
7062         disabled, then don't call FixRegisterBanking at all,
7063         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
7064         completely removed,
7065         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
7066
7067 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
7068
7069         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
7070         Phuah Yee Keat <yk.phuah AT nestac.com>
7071
7072 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
7073
7074         * src/pic16/glue.c (pic16createInterruptVect): function now emits
7075         correctly the IVT even if it is relocated to some other location
7076
7077 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
7078
7079         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
7080         * device/include/pic16/pic18f2220.h: NEW,
7081         * device/lib/pic16/libdev/pic18f2220.c: NEW,
7082         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
7083         * src/pic16/device.c (struct Pics16): added info for 18f2220,
7084         * src/pic16/device.h (struct pic16_options): added ivt_loc and
7085         nodefaultlibs, ivt_loc is the location of the interrupt vector
7086         table, and nodefaultlibs signs that default libraries should not be
7087         linked in link stage,
7088         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
7089         according to --ivt-loc argument,
7090         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
7091         when pragma stack is found,
7092
7093 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7094
7095         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
7096         256 (range check), 257 (do while), 258.a-f (bit banging
7097         f.e. on 3-wire SPI bus)
7098
7099 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7100
7101         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
7102         variables used exclusively within a loop
7103
7104 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
7105
7106         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
7107
7108 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7109
7110         * src/SDCClrange.c (computeClash): fixed bug #971834
7111
7112 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7113
7114         * src/mcs51/gen.c (genCmp): fixed bug #975903
7115         * src/hc08/gen.c (operandsEqu),
7116         * src/ds390/gen.c (operandsEqu),
7117         * src/z80/gen.c (operandsEqu),
7118         * src/pic/gen.c (operandsEqu),
7119         * src/pic16/gen.c (operandsEqu),
7120         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
7121         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
7122
7123 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7124
7125         * src/SDCCcse.c (cseBBlock): fixed bug #966963
7126
7127 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
7128
7129         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
7130         default case in switch statement,
7131         * glue.c (pic16_initPointer): expr is initialised via decoarteType
7132         to eliminate problem with initialisation of pointers, but problem
7133         still exists,
7134         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
7135         * (emitStaticSegment): removed various lines emitting debug info,
7136         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
7137         added processor registers for utilizing EEPROM,
7138         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
7139         configurable and set 8
7140
7141 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
7142
7143         * .version: increased version number to 2.4.2,
7144
7145         Cumulative patch for pic16 port
7146         * src/pic16/device.c: changed scheme to dump initial values for
7147         variables in idata segment, all print_idata* functions were removed,
7148         now the pic16_printIval* will be called,
7149         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
7150         * _pic16_printPointerType, pic16_printPointerType,
7151         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
7152         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
7153         NEW, similar to the respective functions in SDCCglue.c,
7154         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
7155         way, emitting hex bytes,
7156         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
7157
7158 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7159
7160         * src/avr/ralloc.c (serialRegAssign),
7161         * src/xa51/ralloc.c (serialRegAssign),
7162         * src/pic/ralloc.c (serialRegAssign),
7163         * src/pic16/ralloc.c (serialRegAssign),
7164         * src/hc08/ralloc.c (serialRegAssign),
7165         * src/z80/ralloc.c (serialRegAssign),
7166         * src/ds390/ralloc.c (serialRegAssign),
7167         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
7168
7169 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7170
7171         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
7172         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
7173
7174 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
7175
7176         Cumulative patch for pic16 port:
7177         * src/pic16/device.h (typedef PIC16_device) modified fields for
7178         defining microcontrollers,
7179         * src/pic16/device.c: added new info for all devices in Pics16 array,
7180         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
7181         to be optimised out by the pCode optimiser,
7182         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
7183         specially, bug reported by G.M. Gallant,
7184         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
7185         as force'd so that cannot be optimised out by pCode optimiser,
7186         * src/pic16/pcode.c,
7187         * src/pic16/pcodepeeph.c,
7188         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
7189         they are disabled by default, but can be enabled explicit with
7190         command argument --denable-peeps, for testing,
7191         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
7192         --pomit-ivt in COMPILE_FLAGS
7193
7194 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7195
7196         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
7197           compilation on MSVC
7198
7199 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
7200
7201         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
7202
7203 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7204
7205         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
7206         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
7207
7208 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
7209
7210         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
7211         would only assign 0x300001 register.
7212
7213 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
7214
7215         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
7216         in COMPILE_FLAGS. Thanks to G. Gallant for report.
7217
7218 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7219
7220         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
7221         for ds80c400
7222         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
7223         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
7224         added peephole 254 (left shift), 255 (jump table)
7225
7226 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
7227
7228         * device/lib/Makefile.in: removed comment line with model-pic16,
7229         * (target port-specific-objects-pic16): the libraries and objects
7230         are copied to the build directory form the device/lib/pic16/bin
7231         directory
7232
7233         Cumulative patch concerning pic16 port:
7234         * library directory has been re-organized,
7235         * added support for PIC18F1220,
7236         * added headers and library sources for chips 18f1220,18f6520,
7237         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
7238
7239         * configuration registers setting has changed, now each supported
7240         device has a complete description of the registers it uses,
7241         * all initialisations are moved to idata sections, these section
7242         can be absolute or relocatable,
7243         * fixed initialisation of codespace variables,
7244         * fixed warning about PCLATU and gpsim,
7245         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
7246         * (genAssign): use table reads when assigning from variables in codespace,
7247         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
7248         char/int variables placed in codespace,
7249         * (pic16_emitConfigRegs): NEW, emits a list with configuration
7250         registers set in .asm file, no need for --pomit-config-words anymore,
7251         * (pic16glue): some 8051 legacy segments are commented out
7252         (to be removed completely),
7253         * added support for alternative assembler and linker with --asm=
7254         and --link= command line arguments,
7255         * peepholes are disabled automatically in the port, no need to
7256         specify on command line,
7257         * port supports natively char/int/long multiplication, but converts
7258         all divisions to support functions,
7259         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
7260         to the file set in variable $2,
7261         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
7262         strings in ASCII format and not in hex,
7263         * ralloc.c (serialRegAssign): added a triplet of conditional calls
7264         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
7265         allocate proper register if iCodes aren't temporary,
7266
7267 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
7268
7269         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
7270
7271 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
7272
7273         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
7274         is commented out
7275
7276 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7277
7278         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
7279         computed address is reused
7280         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
7281         multi-byte bitfields
7282
7283 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7284
7285         * src/z80/gen.c: (genArrayInit): must check for pointers too
7286
7287 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
7288
7289         * support/regression/tests/zeropad.c: never meant to commit the
7290           nestedstruct test: removed, added check for GCC version
7291
7292 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
7293
7294         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
7295         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
7296         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
7297           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
7298           bugs 928906 and 954082 half-empty initializers
7299         * src/SDCCsymt.h,
7300         * src/SDCCsymt.c (getAllocSize): added for above fix
7301         * src/z80/gen.c (genArrayInit): fixed bug 741044
7302         * support/regression/tests/zeropad.c: added tests
7303
7304 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
7305
7306         * src/pic16/device.c (pic16_dump_section): corrected bug which
7307         caused some symbols of the libraries to be misplaced
7308
7309 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7310
7311         * src/pic16/glue.c,
7312         * src/pic16/ralloc.h,
7313         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
7314         to fix conflict with pic port
7315
7316 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
7317
7318         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
7319         externs configuration variables,
7320         * src/pic16/ralloc.h,
7321         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
7322         prototype in header, commented out some debug messages
7323
7324 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
7325
7326         * src/pic16/glue.c,
7327         * src/pic16/main.c,
7328         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
7329         for gpasm COFF object generation. Thanks to D. Hawkins for
7330         his patch info
7331
7332 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7333
7334         * src/ds390/main.c,
7335         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
7336         Brock for spotting this)
7337         * src/ds390/gen.c (genEndFunction),
7338         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
7339         interrupt handler and critical. Disable push/pop optimizations when
7340         peephole optimizations disabled.
7341
7342 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7343
7344         Updated pic16 library sources and headers.
7345         * device/lib/pic16/pic18f*/ ,
7346         * device/include/pic16/*.h: modified to handle structured SFR
7347         definitions
7348
7349 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
7350
7351         * src/port.h (PORT structure): added hook initPaths, now each
7352         port can declare its own default search paths,
7353         which can been seen with the --print-search-dirs option,
7354         see pic16 port for example,
7355         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
7356         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
7357         * (doPrintSearchDirs): NEW, replaces in a central manner the
7358         printing of search dirs which was split in set*Paths functions,
7359         * (main): added call to port->initPaths and doPrintSearchDirs,
7360         * src/avr/main.c,
7361         * src/ds390/main.c,
7362         * src/hc08/main.c,
7363         * src/izt/i186.c,
7364         * src/izt/tlcs900h.c,
7365         * src/mcs51/main.c,
7366         * src/pic/main.c,
7367         * src/pic16/main.c: modified port structures to reflect addition of
7368         initPaths hook,
7369
7370         * src/pic16/device.c (regCompare): registers are finally sorted by name,
7371         * (pic16_dump_section): for registers in same address reserve memory once,
7372         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
7373         to no_banksel,
7374         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
7375         result is greater in size than right or left,
7376         * (pic16_genUMult8X8_8): there are some cases where the result can
7377         be 16 bits size, so handle these,
7378         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
7379         * (pic16_outBitC): modified to emit pcodes,
7380         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
7381         or not,
7382         * (genDivOneByte): implemented algorithm to divide 8-bits,
7383         * (genCmp): uncommented goto, but issues still exist,
7384         * (genAnd): fixed a bug with variables >8bits,
7385         * (genPackBits): optimization added that uses BCF/BSF to change a
7386         single bit,
7387         * (genAssign): fixed bug when assigning floating point literals,
7388         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
7389         __sdcc_gsinit_startup label,
7390         * src/pic16/main.c (_pic16_init): removed search directory
7391         initialisations,
7392         * (_pic16_initPaths): NEW, used to initialise search directories,
7393         * (_hasNativeMulFor): support functions for all except char/int
7394         multiplication, and char division,
7395         * (PIC16_port struct): modified entry for native mul support,
7396         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
7397         no_banksel option,
7398         * (buildCallTree): call to register_usage is ifdef'ed out,
7399
7400 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7401
7402         * device/include/string.h: applied Stas Sergeev's patch to make this
7403         header file compatible with the preprocessor -Wundef option
7404         * src/SDCCmain.c (main): abort compilation if preprocessor reports
7405         failure (fixes bug #941458)
7406
7407 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7408
7409         * src/SDCCopt.c (killDeadCode): fixed bug #907733
7410         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
7411         that the variable, not the function, should be static
7412         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
7413         to be consistent with non-literal case
7414
7415 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7416
7417         * src/SDCCast.c (isConformingBody): fixed bug #949967
7418         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
7419         convilong): fixed bug #952086
7420
7421 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7422
7423         * src/SDCCmem.c (allocVariables): fixed bug #955321
7424
7425 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7426
7427         * src/hc08/main.c (_hc08_genAssemblerEnd),
7428         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
7429         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
7430         completely eliminated the use of a temporary file
7431         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
7432         when more than one file linked
7433         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
7434
7435 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7436
7437         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
7438         which fixes bug #543481
7439         * support/regression/tests/bug-751703.c: fixed comments left from a
7440         cut and paste error
7441         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
7442         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
7443         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
7444         scopes
7445         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
7446         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
7447         are now changed to underscores in moduleName
7448
7449 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7450
7451         * as/mcs51/lkmem.c: better fix for bug #954173
7452
7453 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
7454         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7455
7456         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
7457         * device/include/c8051f000.h,
7458         * device/include/c8051f120.h,
7459         * device/include/c8051f300.h,
7460         * device/include/c8051f310.h,
7461         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
7462         PWM16) and detab'ed
7463
7464 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7465
7466         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
7467         and mailing lists, doc'ed --no-peep-comments, removed reference
7468         to knoppix (newest version has no LyX/LaTeX), other minor changes
7469         * src/SDCCglue.c (glue): save 2 bytes stack space with
7470         option --main-return. The ljmp could probably be avoided too
7471
7472 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7473
7474         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
7475
7476 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7477
7478         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
7479         * src/SDCCopt.c (isLocalWithoutDef),
7480         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
7481         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
7482         (credit to Maarten Brock for patch #949363, on which this is based)
7483         * support/regression/tests/bug-751703.c: some test cases of extern used
7484         within inner scopes.
7485
7486 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7487
7488         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
7489         SPEC_STRUCT
7490         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
7491         struct definitions
7492         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
7493         dwWriteLabel): fix to create valid debugger symbols even when
7494         the module name has non-alphanumeric symbols in it
7495         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
7496         when a variable's allocation has been optimized away
7497
7498
7499 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7500
7501         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
7502         * src/hc08/main.c,
7503         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
7504         * src/mcs51/main.c,
7505         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
7506         * src/ds390/main.c,
7507         * src/z80/gen.c (z80_emitDebuggerSymbol),
7508         * src/z80/main.c,
7509         * src/pic/gen.c (pic14_emitDebuggerSymbol),
7510         * src/pic/main.c,
7511         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
7512         * src/pic16/main.c,
7513         * src/avr/gen.c (avr_emitDebuggerSymbol),
7514         * src/avr/main.c,
7515         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
7516         * src/xa51/main.c,
7517         * src/SDCCdebug.c (emitDebuggerSymbol),
7518         * src/SDCCdebug.h,
7519         * src/port.h: added a debugger struct to the port struct. Added a
7520         callback for defining debugger symbols
7521
7522         * src/SDCCast.c (createLabel),
7523         * src/SDCC.y (labeled_statement): mark all compiler generated labels
7524         with isitmp = 1
7525         * src/SDCCicode.h,
7526         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
7527         iCode back to the ast for the function
7528
7529         * src/hc08/ralloc.c (hc08_assignRegisters),
7530         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
7531         unneeded fields from the regs struct.
7532         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
7533         pushReg() & pullReg() functions instead of emitcode()
7534
7535         * src/hc08/gen.c (genLabel, genhc08Code),
7536         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
7537
7538         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
7539         debugger hooks
7540
7541         * src/hc08/gen.c (genEndFunction, genhc08Code),
7542         * src/hc08/gen.h,
7543         * src/mcs51/gen.c (genEndFunction, gen51Code),
7544         * src/mcs51/gen.h,
7545         * src/ds390/gen.c (genEndFunction, gen390Code),
7546         * src/ds390/gen.h,
7547         * src/z80/gen.c (genEndFunction, genZ80Code),
7548         * src/z80/gen.h,
7549         * src/z80/z80.h,
7550         * src/pic/gen.c (genEndFunction, genpic14Code),
7551         * src/pic/gen.h,
7552         * src/pic16/gen.c (genEndFunction, genpic16Code),
7553         * src/pic16/gen.h,
7554         * src/avr/gen.c (genEndFunction, genAVRCode),
7555         * src/avr/gen.h,
7556         * src/xa51/gen.c (genEndFunction, genXA51Code),
7557         * src/xa51/gen.h,
7558         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
7559         specific code to cdbFile.c and out of the backend code generators
7560
7561         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
7562         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
7563         starting address is now 0
7564
7565         * as/hc08/asm.h,
7566         * as/hc08/m08pst.c,
7567         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
7568         assembler directive for DWARF support
7569         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
7570
7571         * src/src.dsp,
7572         * src/Makefile.in,
7573         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
7574
7575 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7576
7577         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
7578         and inappropriate peephole optimization in jump tables
7579
7580 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7581
7582         * as/hc08/m08pst.c,
7583         * src/SDCCglue.c: sdccopt works for the hc08 port now
7584
7585 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
7586
7587         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
7588
7589 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7590
7591         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
7592
7593 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7594
7595         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
7596         rules
7597         * src/SDCCmain.c,
7598         * src/SDCCglobl.h,
7599         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
7600         comments from the peephole optimizer replacement rules
7601         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
7602         symbols
7603         * src/SDCCcse.c (updateSpillLocation),
7604         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
7605         equivalents
7606         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
7607         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
7608         objects far pointers
7609
7610 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7611
7612         * src/SDCCsymt.h: a missing part of my last change
7613         * src/pic/ralloc.c (regTypeNum),
7614         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
7615
7616 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7617
7618         * src/SDCCicode.h,
7619         * src/SDCCicode.c (aggrToPtrDclType),
7620         * src/SDCCptropt.h,
7621         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
7622         ptrPseudoSymConvert),
7623         * src/pic/ralloc.c (regTypeNum),
7624         * src/pic16/ralloc.c (regTypeNum),
7625         * src/hc08/ralloc.c (regTypeNum),
7626         * src/ds390/ralloc.c (regTypeNum),
7627         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
7628         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
7629
7630 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7631
7632         * link/z80/lkmain.c (afile),
7633         * as/hc08/lkmain.c (afile),
7634         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
7635         prevent a pointer problem when a filename has no directory and
7636         no extension specified.
7637
7638 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7639
7640         * link/z80/lkmain.c (afile): allow periods in directory names
7641         * link/z80/lkmain.c (afile),
7642         * as/mcs51/lkmain.c (afile),
7643         * as/hc08/lkmain.c (afile): allow linker script file to have an
7644         extension other than ".lnk"
7645         * link/z80/lklex.c (getfid),
7646         * link/z80/lkmain.c (parse),
7647         * as/mcs51/lklex.c (getfid),
7648         * as/mcs51/lkmain.c (parse),
7649         * as/hc08/lklex.c (getfid),
7650         * as/hc08/lkmain.c (parse): Support comments in the linker script
7651         file on lines by themselves and after filenames
7652
7653 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7654
7655         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
7656
7657 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7658
7659         * src/z80/peeph-z80.def: removed some peephole rules that don't
7660         work with multibyte arithmetic (fixed bug #937126)
7661         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
7662         to registers and not global variables
7663         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
7664         geniCodePreInc, geniCodePostDec, geniCodePreDec,
7665         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
7666         checking for assignments not internally generated (fixed bug #931895)
7667         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
7668         structure member (fixed bug #930072)
7669
7670 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7671
7672         * src/SDCCmain.c (linkEdit),
7673         * src/hc08/main.c (_hc08_parseOptions),
7674         * as/hc08/Makefile.in,
7675         * as/hc08/aslink.h,
7676         * as/hc08/asm.h,
7677         * as/hc08/m08pst.c,
7678         * as/hc08/lkrloc.c (relr, rele),
7679         * as/hc08/lkarea.c (lnkarea)
7680         * as/hc08/lkmain.c (afile, parse),
7681         * as/hc08/lkelf.c: support for ELF output
7682         * as/hc08/lks19.c (s19),
7683         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
7684
7685 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7686
7687         * as/mcs51/lkihx.c: Fixed bug #899105.
7688
7689 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7690
7691         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
7692         .dsp files from Unix to DOS.
7693
7694 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7695
7696         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
7697         function pointers; we have been compliant for several months now.
7698         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
7699         change that was accidently commented out
7700         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
7701         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
7702         bug #922319
7703
7704 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7705
7706         * src/hc08/gen.c: output of all of the internal debugging information
7707         is now controlled by the D() macro; it is disabled by default
7708
7709 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7710
7711         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
7712         harder to keep the same registers during a CAST iCode
7713         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
7714         long via int can be done in a single cast, if the signedness is
7715         correct.
7716         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
7717         putchar() in tinibios.c in ds390's library
7718
7719 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
7720
7721         * src/SDCCast.c (decorateType): fixed bug #898889,
7722         cast result of a literal complement too
7723         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
7724         fixed check for bitfields
7725
7726 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
7727
7728         * src/SDCCicode.c (geniCodeLogic): made it static,
7729         (geniCodeLogicAndOr): added in order to fix bug #905492,
7730         (ast2iCode): fixed bug #905492
7731         * support/regression/tests/bug-905492.c: added
7732         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
7733         (processParms): fixed bug #927659: don't copy parms, this will clear
7734         decorated flag
7735         * support/regression/tests/bug-927659.c: added
7736
7737 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
7738
7739         * src/SDCCast.c (addCast): don't cast float to char
7740         * device/lib/libsdcc.lib: added _memmove
7741
7742 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
7743
7744         * device/lib/large/Makefile: fixed parallel execution by
7745         replacing `make` by `$(MAKE)`
7746
7747 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7748
7749         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
7750         offsets (fixes bug #923936)
7751
7752 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
7753
7754         * device/lib/small/Makefile: fixed parallel execution by
7755         replacing `make` by `$(MAKE)`
7756
7757 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7758
7759         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
7760
7761 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
7762
7763         * src/pic/gen.c (genCpl): multi-byte complements were not working.
7764         * src/regression/Makefile: Regression test was not running.
7765
7766 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7767
7768         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
7769         complement if possible
7770         * src/SDCCval.c (valComplement),
7771         * src/SDCCicode.c (operandOperation): fixed complement of literal
7772         * support/regression/tests/onebyte.c (testComplement): added
7773
7774 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
7775
7776         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
7777         return an optimized tree; actually replace actParm with the new tree
7778         * src/SDCCast.h: added some parantheses to remove side effects
7779         * support/regression/tests/bug-920866.c
7780
7781 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
7782         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
7783         Bit operands were not being handled properly in the pic14 port.
7784         (now src/regression/add.c passes again).
7785
7786 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7787
7788         * src/SDCC.y (labeled_statement): case and default no longer require
7789         a following statement (RFE #893037)
7790
7791 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7792
7793         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
7794         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
7795         disabled (fixes bug #916294)
7796         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
7797         "mov a,acc"; patch provided by Lenny Story
7798         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
7799
7800 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7801
7802         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
7803         functions
7804         * src/ds390/gen.c (genFunction, genEndFunction),
7805         * src/ds390/ralloc.c (ds390_assignRegisters),
7806         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
7807         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
7808         pushed if there are parameters passed on the stack. Also, a cleaner
7809         way to decide if r0/r1 should be pushed/popped. (Together they fix
7810         bug #918693)
7811
7812 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7813
7814         * doc/sdccman.lyx,
7815         * device/lib/mcs51/crtpagesfr.asm,
7816         * device/lib/mcs51/crtxinit.asm,
7817         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
7818         to avoid confusion with Si Lab's SFRPAGE register.
7819
7820 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7821
7822         * src/SDCCglue.c (emitMaps): allow public sfr variables
7823         * src/SDCCglue.c (initialComments): include compiler build date
7824         with compiler version and put the timestamp of the generated
7825         assembly file on a serperate line to be less confusing.
7826         * src/port.h: added genInitStartup hook
7827         * src/avr/main.c,
7828         * src/ds390/main.c,
7829         * src/hc08/main.c,
7830         * src/pic/main.c,
7831         * src/pic16/main.c,
7832         * src/xa51/main.c,
7833         * src/z80/main.c: genInitStartup initialize as NULL (default to
7834         historical behaviour)
7835         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
7836         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
7837         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
7838         library instead of hard coding it into the compiler.
7839         * support/regression/ports/mcs51-stack-auto/spec.mk,
7840         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
7841         * device/lib/mcs51/Makefile,
7842         * device/lib/small/Makefile,
7843         * device/lib/large/Makefile,
7844         * device/lib/mcs51/crtpagesfr.asm,
7845         * device/lib/mcs51/crtstart.asm,
7846         * device/lib/mcs51/crtxclear.asm,
7847         * device/lib/mcs51/crtxinit.asm,
7848         * device/lib/mcs51/crtclear.asm,
7849         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
7850         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
7851         and into user configurable files.
7852         * device/lib/clean.mk: clean mcs51 directory too
7853         * support/regression/tests/longlit.c: added static to T1 declaration
7854         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
7855         accesses in the initialization code
7856
7857 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7858
7859         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
7860         OSCTRIMVAL as noted in bug #916008
7861
7862 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7863
7864         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
7865         in loops with multiple exits (reported as incorrect registers
7866         used by Martin Helmling in Sdcc-user list)
7867
7868 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7869
7870         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
7871         made ds390 register extensions look less like error messages
7872
7873 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7874
7875         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
7876         reported by Adam Wozniak in Sdcc-user list
7877
7878 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
7879
7880         * src/SDCCast.c (decorateType): fixed with bug and promotion in
7881         arithmetic optimizations, added debug output
7882
7883 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
7884
7885         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
7886         * sdcc.spec: updated and split sdcc into 3 rpms
7887         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
7888         needed for literals of LEFT_OP and '+'
7889         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
7890         introduced RESULT_TYPE_NOPROM
7891         (geniCodeMultiply): fixed logic for decision if mul is optimized to
7892         left shift
7893         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
7894         limited promotion to int only for '*'
7895         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
7896
7897 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
7898
7899         * src/pic16/gen.c (genSkip),
7900         (genc16bit2lit), (gencjneshort): commented out
7901         (is_LitOp): new helper function, checks operand type
7902         (genCmpEq): rewritten
7903
7904 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
7905
7906         * support/regression/tests/bug-908454.c: added
7907
7908 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
7909
7910         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
7911         * src/SDCCicode.c (usualBinaryConversions): op needs int type
7912         (geniCodeCast): cosmetic, don't preserve bit storage class
7913         (geniCodeLeftShift): added promotion
7914         (geniCodeLogic): fixed regression
7915         * src/SDCCsymt.c (computeTypeOr): accept bits too
7916         (compareType): 2nd part of fix for bug #908454, needed for bitfields
7917
7918 2004-03-07  Borut Razem <borut.razem AT siol.net>
7919
7920         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
7921
7922 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
7923
7924         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
7925         version of pic16_genPackRegisters which does not check if ic is a
7926         CAST operator,
7927         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
7928         function cause string1.c regression test fails
7929
7930 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
7931
7932         * sim/ucsim/configure.in,
7933         * sim/ucsim/configure,
7934         * sim/ucsim/doc/Makefile.in: use docdir
7935         * src/SDCC.y: fixed sbit atrributes
7936         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
7937         * src/SDCCast.c (decorateType): |^& need special promotion handling
7938         * src/SDCCast.h,
7939         * src/SDCCsymt.h: moved definition of RESULT_TYPE
7940         * src/SDCCsymt.h (computeType),
7941         * src/SDCCicode.c: computeType() needs op
7942         * src/SDCCsymt.c (checkTypeSanity),
7943         * doc/sddman.lyx: "plain" bitfields are unsigned
7944         * src/SDCCsymt.c (computeTypeOr): added
7945         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
7946         |^& ops
7947         * src/SDCCval.c (val*): computeType() needs op
7948         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
7949         * support/regression/tests/onebyte.c: added tests for |^&
7950
7951 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
7952
7953         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
7954         for writing icode into asm output.
7955
7956 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
7957
7958         * src/pic16/device.c: added some debug lines enabled
7959         with macro DEBUG_CHECK,
7960         * src/pic16/genarith.c: more debug in genPlus,
7961         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
7962         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
7963         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
7964         * (aopForSym): onStack symbols are re-placed in data memspace,
7965         and onStack flag is cleared,
7966         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
7967         copy temporary pcodeop,
7968         * (genPcall): added warning for not updating PCLATU,
7969         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
7970         always true for pic16 port,
7971         * (genMultOneWord): NEW, supports integer multiplication,
7972         * (genMult): modified to call genMultOneWord,
7973         * (ifxForOp): added warning when return NULL,
7974         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
7975         flag is set before call to operandFromSymbol for implicit
7976         added structures,
7977         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
7978         options.intlong_rent are set by default,
7979         * (_hasNativeMulFor): modified to allow port generation of integer
7980         multiplication,
7981         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
7982         set regtype to REG_SFR for all registers, restricting seting the
7983         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
7984
7985 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7986
7987         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
7988         more than 500 times in the regression tests
7989
7990 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7991
7992         * support/Util/SDCCerr.h,
7993         * support/Util/SDCCerr.c,
7994         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7995         enumerator_list),
7996         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
7997         for symbol conflicts.
7998         * support/valdiags/tests/enum.c,
7999         * support/valdiags/tests/tentdecl.c,
8000         * support/valdiags/tests/struct.c: expect possible error messages
8001         referring to original symbol definitions.
8002         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
8003         * src/SDCCsymt.h,
8004         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
8005
8006 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
8007
8008         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
8009
8010 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
8011
8012         * src/pic16/ralloc.c (newReg): fixed bug #908929
8013
8014 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8015
8016         * src/ds390/gen.c: added missing #include "main.h"
8017
8018 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
8019
8020         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
8021         checking if symbol is already in set,
8022         * src/pic16/device.h: prototype for checkAddSym,
8023         * src/pic16/gen.c: (_G): added entry interruptvector,
8024         * (assignResultValue): removed some commented out lines,
8025         * (genFunction): check for ISR via sym->type, absolute section for
8026         interrupt code is created via a new pBlock, the goto instruction is
8027         placed now correctly at the interrupt vector position, changed all
8028         references from ivec to _G.interruptvector,
8029         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
8030         is the interrupt is a high priority one, same for return from ISR,
8031         * src/pic16/glue.c: changed all calls of addSetHead for publics and
8032         externs to calls of checkAddSym,
8033         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
8034         pic16_pcode_verbose flag is set,
8035         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
8036         * src/pic16/pcoderegs.c: message about how many registers are saved
8037         will only be emitted if pic16_pcode_verbose flag is set,
8038
8039 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8040
8041         * src/ds390/ralloc.h,
8042         * src/ds390/ralloc.c (ds390_regWithIdx),
8043         * src/ds390/gen.c (emitcode),
8044         * src/ds390/main.h,
8045         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
8046         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
8047         ds390operandCompare, getRegsRead, getRegsWritten,
8048         initializeAsmLineNode): customized instruction size calculation for
8049         ds390, started basis for some register optimizations
8050         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
8051         corresponding assembly output
8052         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
8053         missing push/pop of r0/r1. Optimized push/pops
8054
8055 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8056
8057         * src/mcs51/main.c (instructionSize): fixed ACALL size
8058         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
8059
8060 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
8061
8062         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
8063         the sorting of rlist with NULL elements
8064         * (print_idataType, print_idata): NEW to create idata sections
8065         * src/pic16/device.h: idataSymSet new variable
8066         * src/pic16/gen.c (genFunction): fixed some bugs in string
8067         comparing, improved the absolute section creation for ISRs,
8068         added FSR0L/FSR0H in registers that are saved in an ISR,
8069         * (genInline): fixed the processing of inline snippets,
8070         now they undergo no process by the peephole optimizer
8071         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
8072         are placed in idataSymSet,
8073         * (pic16emitStaticSeg): extern symbols are added in externs,
8074         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
8075         switching when aboslute variables are placed in access bank memory
8076         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
8077         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
8078         commented out with #if,
8079         * (pic16_packRegisters): reintroduce the check for CAST because some
8080         symbols are not correctly handled,
8081         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
8082         pCodeInstruction instead of pCode,
8083         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
8084         pCodeAsmDir definition,
8085         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
8086         directive, then the argument directive is emitted without the leading
8087         tab, hack for inline labels which must be in the first column,
8088         * (compareLabel,pic16_findNextInstruction),
8089         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
8090         * (insertBankSwitch): modified for the new pCodeAsmDir,
8091
8092 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8093         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
8094
8095         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
8096         instance,
8097         * (pushSide): commented out with #if,
8098         * (assignResultValue): fixed some typos in saving
8099         registers,
8100         * (genPcall): FIXED and sync'ed with genCall,
8101         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
8102         * (genNearPointerGet): fixed to handle some more cases,
8103         implementation scheme via table reads,
8104         * (genConstPointerGet): modified to access code memory correct,
8105         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
8106         and improved to handle some cases
8107         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
8108         instead of "RETLW" for init data
8109         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
8110         not IN_DIRSPACE, work around to reduce bank switching when aboslute
8111         variables are placed in access bank memory (<0x80 and >=0xf80),
8112         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
8113         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
8114         TBLWT_POSTDEC,TBLWT_PREINC
8115         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
8116         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
8117         directives
8118         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
8119         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
8120         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
8121         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
8122
8123 2004-02-29  Borut Razem <borut.razem AT siol.net>
8124
8125         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
8126         support/Util/findme.h, support/Util/system.h: enhance binary relative
8127         search for lib and include by using findProgramPath()
8128
8129 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8130
8131         * src/SDCCpeeph.h,
8132         * src/SDCCpeeph.c (pcDistance),
8133         * src/port.h,
8134         * src/mcs51/ralloc.h,
8135         * src/mcs51/ralloc.c (mcs51_regWithIdx),
8136         * src/mcs51/main.h,
8137         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
8138         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
8139         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
8140         size calculation port specific, started basis for some register
8141         optimizations
8142         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
8143         missing push/pop of r0/r1. Optimized push/pops
8144         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
8145         * device/lib/_modsint.c (_modsint),
8146         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
8147         and stack version so regression tests pass
8148
8149 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
8150
8151         * src/Makefile.in (dep): include SLIBOBJS in dependency check
8152         * src/SDCCast.c (decorateType): catch another small optimization
8153         with '?' operator
8154         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
8155         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
8156         modified to finally use computeType() all over SDCC,
8157         see Feature Request #877103
8158         * src/SDCCval.h: cosmetic
8159         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
8160         valCompare(); regression tested in muldiv.c
8161         * support/regression/tests/muldiv.c (testMod): mod sign follows
8162         dividend only
8163
8164 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
8165
8166         * src/SDCCast.c (decorateType): fixed bug #902362
8167         * doc/INSTALL.txt: fixed install instructions for win32
8168
8169 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
8170
8171         * device/include/Makefile.in (install): fixed by replacing spaces
8172         by tabs
8173         * doc/README.txt,
8174         * doc/INSTALL.txt: updated for release
8175         * doc/sdccman.lyx: added warning for --xstack being buggy
8176
8177 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
8178
8179         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
8180         to eliminate build warnings.
8181         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
8182
8183 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
8184            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8185
8186         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
8187         removed -penable-stack, added comment for stack pragma, added
8188         warning for not initializing the stack/frame registers, removed
8189         comment at interrupts section
8190
8191         Stack is made permanent, there is no ability to disable stack usage.
8192         * src/pic16/device.h,
8193         * src/pic16/device.c: removed all references to USE_STACK macro,
8194         * src/pic16/device.c (pic16_dump_section): when no elements in
8195         rlist, free rlist before return,
8196         * (pic16_dump_int_registers): NEW, internal registers are a new set
8197         of general purpose registers reused by each function,
8198         * (checkAddReg): returns 1 if registers is added to set,
8199         * (pic16_groupRegistersInSection): when a registers is of type
8200         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
8201         * src/pic16/device.h: memRange and Assigned Memory are deleted,
8202         SRCASECMP macro is moved here from device.c
8203         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
8204         PO_PCLATU, PO_PRODL, PO_PRODH,
8205         * (pic16_pCodeOpType, genMinus,
8206         changed compares to "a" register, with AOP_ACC,
8207         * (pic16_genPlus): fixed some bugs and indented properly,
8208         * (pic16_addSign): changed size to size+offset in the MOVWF
8209         instruction,
8210         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
8211         multiply 8-bit operand by literal, result is 8-bit,
8212         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
8213         multiply 2 8-bit operand, result is 8-bit,
8214         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
8215         genUMult8X*_16,
8216         * src/pic16/gen.c: changed accUse to contain WREG only,
8217         * (pic16_emitcomment): renamed to pic16_emitpcomment,
8218         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
8219         true, do not use immediate addressing any more unless sym is a
8220         pointer in codespace,
8221         * (aopForRemat): do not use immediate addressing when symbol not in
8222         codespace and when symbol's address is requested,
8223         * (aopOp): for-loop in if(sym->accUse) is modified for the new
8224         accUse size (= 1),
8225         * (aopGet): added case for AOP_ACC and don't return "accumulator
8226         bug" but WREG instead,
8227         * (popGetTempReg): pushes contents of temporary register in stack,
8228         * (popReleaseTempReg): pops contents of temporary register from
8229         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
8230         * (pic16_popGet): separated case AOP_ACC to return register WREG
8231         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
8232         or PO_IMMEDIATE and initializes their instance/offset appropriately,
8233         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
8234         the use of immediate pointers to certain cases only.
8235
8236         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
8237         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
8238         * (assignResultValue, genCall, genRet): modified to use the new
8239         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
8240         genPcall is still broken,
8241         * (genFunction): added code to create 'A' type pBlocks when
8242         interrupt functions are generated, code not extensively tested yet,
8243         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
8244         * (genEndFunction): modified so ISRs pop stored registers from stack,
8245         * (genMultOneByte): cleanup,
8246         * (AccRsh): added flag andmask, to and result with appropriate mask,
8247         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
8248         * (genDataPointerGet): fixed and reenabled its use,
8249         * (genNearDataPointerGet): bugs fixed,
8250         * (genDataPointerSet): bugs fixed,
8251         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
8252         pic16_DumpSymbol, pic16_DumpOp,
8253         * src/pic16/genutils.h: function prototypes for the above functions,
8254         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
8255         pointers,
8256         * (pic16emitRegularMap): many many many improvements, but needs a
8257         major cleanup,
8258         * src/pic16/main.c: enable_stack in pic16_options is removed,
8259         * (_pic16_parseOptions): removed command line options -penable-stack,
8260         * (_process_pragma): emit stack symbol only when stack pragma is
8261         processed,
8262         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
8263         redirected to FSR0L/FSR0H pair,
8264         * (pic16_get_op, pic16_get_op2): modifications and improvements,
8265         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
8266         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
8267         for immediates,
8268         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
8269         * (dumpPicOptype): NEW,
8270         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
8271         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
8272         with movff instruction,
8273         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
8274         added pic16_int_regs, some packRegsFor* functions are commented out,
8275         because produce errors,
8276         * src/pic16/NOTES: minor modifications
8277
8278 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8279
8280         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
8281         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
8282         --pack-iram.
8283         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
8284         * as/mcs51/lkaomf51.c: fixed bug #895763
8285
8286 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
8287
8288         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
8289
8290 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8291
8292         * doc/sdccman.lyx: added details about the HC08 storage classes and
8293         interrupts, fixed the register usage info for z80 & gbz80
8294
8295 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
8296
8297         * doc/sdccman.lyx: added more pic16 port documentation
8298         * device/include/pic16/: added header pic18fregs.h
8299
8300 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
8301
8302         * doc/sdccman.lyx: added Vangelis' contribution
8303
8304 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8305
8306         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
8307         extend to the next CALL or PCALL, not just to the next CALL.
8308
8309 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
8310
8311         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
8312
8313 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8314
8315         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
8316         bug #895752 and a better fix for bug #716790
8317
8318 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8319
8320         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
8321
8322 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8323
8324         * doc/sdccman.lyx: minor changes, minor changed
8325
8326 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
8327
8328         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
8329         which can't handle SDCC_NEWONEBYTEOPS,
8330         (geniCodeMultiply): removed conversion from mult to shift for pic14
8331         and pic16
8332
8333 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8334
8335         * src/hc08/gen.h,
8336         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
8337         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
8338         thus fixing bug #895406
8339
8340 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
8341
8342         * device/lib/_modsint.c,
8343         * device/lib/_modslong.c: sign follows divisor only
8344         * src/hc08/gen.c (genMultOneByte): if result size is 1,
8345         signs or signedness can be ignored
8346         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
8347         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
8348         added optimization for IFX,
8349         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
8350         arguments;
8351         reenabled optimization for IFX, which was removed on 2004-01-11
8352         * src/SDCCast.h: added return type IFX
8353         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
8354         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
8355         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
8356         SDCC_OLDONEBYTEOPS selects the old behaviour
8357         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
8358         changed again and commented promotion rule
8359         * src/SDCCval.c (valDiv): promotion no longer necessary
8360         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
8361         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
8362         rewritten
8363         * support/regression/tests/onebyte.c: added
8364
8365 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
8366
8367         * gen.c (genInline): reverted to old code for assemnling inline
8368         code because of bug reported James Chadd
8369
8370 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
8371
8372         * ralloc.h: missing declarations from previous patch,
8373         seems that patch for ralloc.h was never applied, fixed
8374
8375 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8376            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
8377
8378         * pcode.c,
8379         * pcode.h,
8380         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
8381         indirect addressing. Marked FSR0 as deprecated
8382         * gen.c (pointerCode): commented out, not needed now
8383         (pic16_popGet2p): new MOVFF helper function
8384         (genGenPointerGet),
8385         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
8386         (shiftRLong): removed duplicate debugging info
8387
8388 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8389
8390         * src/ds390/gen.c (genNearPointerGet),
8391         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
8392         optimization with bits, but not bitfields.
8393         * src/ds390/ralloc.c (packRegisters),
8394         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
8395
8396 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
8397
8398         * src/SDCCcse.c (algebraicOpts): copy operands before modification
8399
8400 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8401
8402         * src/SDCCsymt.h,
8403         * src/SDCCicode.c (operandFromSymbol),
8404         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
8405         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
8406         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
8407         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
8408         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
8409         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
8410         bug #892038
8411         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
8412         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
8413         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
8414         * src/SDCCsymt.c (newSymbol),
8415         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
8416         enumerator_list),
8417         * src/SDCCval.h,
8418         * src/SDCCval.c (newiList): fixed bug #885705
8419
8420 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8421
8422         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
8423         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
8424
8425 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8426
8427         * device/include/c8051f120.h,
8428         * device/include/c8051f300.h,
8429         * device/include/c8051f310.h: added/updated header files for Silicon
8430         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8431         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
8432         in new section Submitting patches
8433
8434 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8435
8436         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
8437         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8438         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8439         genGenPointerSet),
8440         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
8441         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8442         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8443         genGenPointerSet),
8444         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
8445         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8446         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8447         genGenPointerSet),
8448         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
8449         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8450         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8451         genGenPointerSet): fixed bug #892400
8452         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
8453         to eliminate build warnings.
8454         * src/SDCCast.c (processParms),
8455         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
8456         fixed bug 751859
8457         * support/valdiag/valdiag.py: added GCC to the list of defines active
8458         when compiling with gcc
8459
8460 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8461
8462         * support/Util/SDCCerr.h,
8463         * support/Util/SDCCerr.c,
8464         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
8465         with an incomplete type (fixed bug #883734)
8466         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
8467
8468 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8469
8470         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
8471
8472 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8473
8474         * src/SDCCast.c (decorateType),
8475         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
8476         function pointer implementation
8477         * support/regression/tests/funptrs.c: added tests to verify both forms
8478         of function pointers work correctly. Added tests to verify parameters
8479         are passed in the correct order.
8480
8481 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
8482
8483         * device.c (regCompare): registers are sorted by ascending
8484         address and increasing size,
8485         * main.c (_pic16_finaliseOptions): removed the declaration
8486         of compiler macro MCU. Now a macro of the format pic18fxxxx
8487         will be defined from the command line
8488
8489 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8490             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
8491
8492         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
8493         PCOP_RLCF was overwritten!
8494         * gen.c (genSkip): commented out calls to pic16_emitcode,
8495         * (genCmpEQ): fixed "long" compares, only high word did get compared,
8496         * (genlshTwo),
8497         * (genRRC): added debugging info,
8498         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
8499         overwritten while shifting,
8500         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
8501         overwritten while shifting,
8502         * (AccLsh),
8503         * (AccRsh),
8504         * (shiftLLeftOrResult),
8505         * (shiftRLeftOrResult),
8506         * (shiftRLong),
8507         * (shiftLLong): Implemented with pic16_emitpcode
8508         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
8509         * (genLeftShift): Fixed bug, operand for shift by variable always
8510         was "and"ed with 0x0f,
8511         * (genLeftShiftLiteral),
8512         * (genrshTwo),
8513         * (genRightShiftLiteral): added debugging info,
8514         * (genrshFour): added comment,
8515         * (genRightShift): determined signedness from operand "left"
8516         instead of "result"
8517
8518 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8519
8520         * src/SDCCicode.c (geniCodeParms),
8521         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
8522         function pointers, fixed function pointer bugs #861242 and #861896
8523
8524 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8525
8526         * device/include/c8051f000.h,
8527         * device/include/c8051f120.h,
8528         * device/include/c8051f300.h: added header files for Silicon
8529         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8530
8531 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
8532
8533         * src/SDCCast.c (processParams): added new type flow and restructured
8534         (gatherAutoInit): added new type flow
8535         (addCast): cosmetic changes
8536         (getLeftResultType): added new type flow for array indices, patch
8537         provided by Stas, see FR #877103
8538         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
8539         array index patch by Stas
8540         * src/SDCCast.h: added prototype getResultTypeFromType()
8541         * src/SDCCval.h,
8542         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
8543         * src/pic/glue.c (pic14emitStaticSeg),
8544         * src/pic16/glue.c (pic16emitStaticSeg),
8545         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
8546         for initialization of symbols
8547         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
8548         * support/Util/SDCCerr.h:
8549         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
8550         * .version: bumped version number to 2.3.8
8551         * device/include/Makefile.in (install),
8552         * doc/Makefile (install): changed to 'rm `find ...`' construct to
8553         avoid warnings
8554
8555 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
8556
8557         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
8558         Slade Rich fixed an optimization bug
8559         * src/pic/pcodepeep.c,
8560         * src/pic/pcoderegs.c
8561         * doc/Makefile (install): added test for directory
8562
8563 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8564
8565         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
8566         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
8567         * src/pic/ralloc.c (getRegPtr, getRegGpr),
8568         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
8569         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
8570         * as/mcs51/asexpr.c (term),
8571         * as/hc08/asexpr.c (term): fixed bug #887146
8572
8573 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8574
8575         * src/z80/gen.c (genMult): handle single byte result product
8576         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
8577         DUMMY_READ_VOLATILE (fixed bug #886367)
8578
8579 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8580
8581         * support/regression/tests/libmullong.c: fixed logic, on little endian
8582         hosts we ended without a mullong_wrapper()
8583
8584 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8585
8586         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
8587         virus/worm forged address usage.
8588
8589 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8590
8591         Fixed promotion, it should be done on AST level:
8592         * src/SDCCast.c (addCast): added promotion to int
8593         (decorateType): updated call to upCast()
8594         * src/SDCCicode.c (geniCodeLeftShift): removed call to
8595         usualUnaryConversions()
8596
8597 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
8598
8599         * support/regression/tests/literalop.c (mulWrapper): Added a
8600         wrapper to remove integer overflow warnings.
8601
8602         * support/regression/tests/float_trans.c: Made work on host.
8603
8604         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
8605         location of sz80.
8606
8607         * support/regression/generate-cases.py (main): Changed from inline
8608         to a main method.
8609
8610         * doc/Makefile (install): Changed to depth first to get rid of
8611         missing directory install warning.
8612
8613         * as/Makefile (install-doc): Made work on Mac.
8614
8615 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
8616
8617         * src/SDCCast.c: added an additional type flow in decorateType() of
8618         opposite direction, see feature request #860006; it's enabled at runtime
8619         by setting the environment variable SDCC_NEWTYPEFLOW
8620         * src/SDCCast.h: changed prototype of decorateType()
8621         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
8622         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
8623         'char' to 'int' can be omitted, if both operands are 'unsigned char';
8624         see feature request #877103
8625         * src/SDCCval.c: updated call of decorateType()
8626         (valBitwise): fixed bug #882876
8627         (valMinus): added promotion
8628         (valLogicAndOr): result is unsigned
8629         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
8630         * src/SDCCsymt.c (computeType),
8631         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
8632         must not cause an unsigned operation
8633         * src/pic/glue (pic14emitRegularMap),
8634         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
8635
8636 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
8637
8638         * src/pic/pcode.c (PCodeID): commented out left over debug code
8639
8640 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
8641
8642         * support/valdiag/tests/overflow.c: added shift tests
8643         * src/pic/device.c,
8644         * src/pic/gen.c,
8645         * src/pic/gen.h,
8646         * src/pic/glue.c,
8647         * src/pic/main.c,
8648         * src/pic/pcode.c,
8649         * src/pic/pcode.h,
8650         * src/pic/pcodepeep.c,
8651         * src/pic/pcoderegs.c,
8652         * src/pic/ralloc.c,
8653         * src/pic/ralloc.h: applied patch from Slade Rich;
8654         added support for multiple code pages and multiple RAM banks on the
8655         PIC 14 port. The ASM files now no longer simply assume all the
8656         code / RAM are in the same page / bank. This means the linker can
8657         safely allocate code/RAM of separate ASM files to different pages/banks.
8658         * doc/sdccman.lyx: added Slade's tips
8659         * src/mcs51/peeph.def: fixed bug #880768
8660
8661 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8662
8663         * src/hc08/ralloc.c (rematStr): fixed bug #879282
8664         * src/SDCCast.c (decorateType): fixed bug #880197
8665
8666 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
8667
8668         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
8669         getopt.h.
8670
8671         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
8672         strtof is not part of C89 and isn't included with Mac OS X.
8673
8674 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8675
8676         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
8677         shiftL2Left2Result): fixed bug #879326
8678         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
8679         (genMultOneByte): fixed bug in signed vs unsigned multiplication
8680         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
8681         address fetch for clr instruction
8682         * device/lib/hc08/_mulint.c: created optimized assembly version
8683         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
8684
8685 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
8686
8687         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
8688         proposed in FR #877103
8689
8690 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
8691
8692         * src/SDCCval.c (cheapestVal): added missing checks
8693         * src/SDCCicode.c (usualBinaryConversions): fixed condition
8694         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
8695
8696 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
8697
8698         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
8699         equal operands
8700
8701 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
8702
8703         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
8704         loaded with the linker search paths (-L arguments) and the libraries
8705         to be linked with the current source (-l arguments). Changes
8706         currently will affect only the pic16 port.
8707         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
8708         include path the port specific paths and port specific libraries,
8709         * gplink command now contains the $3 argument,
8710         * src/pic16/device.h,
8711         * src/pic16/device.c,: structure PIC_device is made public and
8712         renamed to PIC16_device, the same for variable Pics which is renamed
8713         to Pics16. Updated all references to them.
8714         * src/pic16/glue.c (pic16glue): corrected bug with code
8715         initialization which bypassed the variable initializations block.
8716
8717         * device/lib/pic16/Makefile.rules: removed --penable-stack from
8718         COMPILE_FLAGS and added the --nostdinc option
8719
8720 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8721
8722         * device/include/mc68hc908jb8.h: Register defs for another member
8723         of the hc08 family. Contributed by Bjorn Bringert - thanks!
8724
8725 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
8726
8727         Documenting changes from previous commits.
8728         * configure.in (version 1.56),
8729         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
8730         when generating output files to configure the pic16 library,
8731         but now I've commented it out, since gputils aren't installed in the
8732         SF compile farm, so library won't compile
8733
8734         * device/lib/Makefile.in (version 1.56): initially I've added in
8735         target 'all' the prerequestive 'model-pic16' so it compiled the
8736         pic16 library, but now I've commented it out for the same reasons
8737         above,
8738         * added targets 'model-pic16' and 'objects-pic16' to compile the
8739         library
8740         * added target 'port-specific-objects-pic16' to handle the
8741         generated libraries and copy them into the build/ directory
8742         * added target 'clean-intermediate-pic16' to clean intermediate
8743         files into pic16 directory
8744         * in target 'installdirs' added line to create directory pic16 in
8745         the installation path
8746
8747         * device/include/Makefile.in (version 1.11): in target 'install'
8748         added lines to copy all header files to installation path,
8749         * in target 'installdirs' added line create directory for pic16
8750         headers in the installation path
8751
8752 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
8753
8754         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
8755          a function call
8756
8757 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
8758
8759         * configure,
8760         * device/lib/configure.in,
8761         * device/lib/configure: fixed for autoconf 2.57
8762
8763 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8764
8765         * src/z80/main.c (_parseOptions): fixed the portmode= command line
8766         option so that it actually works. Made it specific to the z80, since
8767         the gbz80 doesn't have these kinds of I/O ports.
8768
8769 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8770
8771         * device/include/z180.h,
8772         * device/lib/_memcpy.c,
8773         * device/lib/_memmove.c,
8774         * device/lib/_mulint.c,
8775         * device/lib/ser_ir.c,
8776         * device/lib/ser_ir_cts_rts.c,
8777         * device/lib/_strcmp.c,
8778         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
8779         * src/z80/main.c (_process_pragma): add support for pragmas bank and
8780         portmode; added deprecation warning for bank= and protmode= forms.
8781         Also, guard against buffer overflow.
8782         * src/z80/gen.c (aopGet): generate better code for sfr banked read
8783
8784 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8785
8786         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
8787         changed interrupt vector table generation to only emit declared vectors.
8788         * device/include/Makefile.in: added missing backslash
8789         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
8790
8791 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8792
8793         Mainly changes to support compilation of the device libraries
8794         * src/pic16/device.c: stack is allocated via symbol and not
8795         via literal number. The symbol is placed in the corresponding
8796         position of the data ram
8797         * (pic16_dump_section): relocatable and absolute uninitialized
8798         data are now emitted in sorted order to reduce section naming,
8799         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
8800         weren't marked as being in the access bank,
8801
8802 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8803
8804         Added portion of GNU PIC Library under the directory
8805         device/include/pic16 and device/lib/pic16. These files
8806         contain the declarations of SFRs for the PIC18Fxx2 devices.
8807         The directory is initialized via configure from toplevel.
8808
8809 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
8810
8811         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
8812         the spilllocations to be compared correctly
8813
8814 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8815
8816         * src/SDCCast.c (decorateType): fixed bug introduced today
8817
8818 2004-01-12  Borut Razem <borut.razem AT siol.net>
8819
8820         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
8821         doc/sdccman.lyx: upper case pragmas are deprecated
8822
8823 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8824
8825         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
8826         in simpler and even better code
8827
8828 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
8829
8830         * src/SDCCicode.c (operandOperation): fixed bug #874819
8831         * src/SDCCast.c (decorateType): fixed
8832         char foo (unsigned long ul) { return ul > 0; }
8833
8834 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8835
8836         * doc/sdccman.lyx: Moved and added some sections, small changes
8837         all over. Telling LaTeX to be less strict with word spacing
8838         to better keep the right margin. Changed some notes about
8839         maintainance of the ports in section 3.2.1 - is it OK like this?
8840
8841 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8842
8843         SDCC source changes:
8844         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
8845         convilong): modified to inform the pic16 port that builtin functions
8846         are external
8847
8848         PIC16 PORT specific changes:
8849         * src/pic16/device.c pic16_dump_equates() added,
8850         processor registers declared internally by the port are emitted in
8851         the translation as equates,
8852         * src/pic16/gen.c: inline code is passed unprocessed to the
8853         translation,
8854         * (pic16_popGetLit2): fnuction modified to take second operand as
8855         pCodeOp pointer and not as literal,
8856         * (popRegFromIdx): prefixed with pic16_,
8857         * (pic16_popCombine2): modified to receive already allocated pCode
8858         operands,
8859         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
8860         * (genFunction): initializes local stack frame and pushes on stack
8861         all the registers used by this function,
8862         * (genEndFunction): restores all registers from stack and restores
8863         stack frame,
8864         * src/pic16/glue.c (pic16emitRegularMap): various changes and
8865         improvements,
8866         * (pic16glue): changed the program startup sequence,
8867         * added new dbName code 'A' for functions placed in absolute section
8868         * src/pic16/main.c: added function attribute _naked,
8869         * added pragma 'code' to place a fnuction at an absolute address,
8870         * added command line arguments --debug-ralloc and --pcode-verbose,
8871         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
8872         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
8873         * (pic16_newpCodeOpLit2): modified to take the second operand as
8874         pCodeOp pointer,
8875         * (pic16_printpBlock): modified to emit each function in a separate
8876         section,
8877         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
8878         UPPER for immediate operands,
8879         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
8880         instruction,
8881         * src/pic16/peeph.def: all peepholes with movff are commented out,
8882         because there is a problem in the pcode peep optimizer,
8883         * src/pic16/ralloc.c: the register allocator can now reuse local
8884         function symbols for another function. This saves register usage.
8885         * src/pic16/ralloc.h: added flag isLocal in structure regs,
8886
8887         Added file src/pic16/NOTES with information about program writing on
8888         the current port version.
8889
8890 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8891
8892         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
8893         and peephole 252 (array access)
8894
8895 2004-01-09  Borut Razem <borut.razem AT siol.net>
8896
8897         * src/SDCCmain.c : fixed #872250: -l command line defined library
8898           files are scanned before standard library files
8899
8900 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8901
8902         * src/SDCCast.c (decorateType): fixed bug #874046
8903
8904 2004-01-09  Borut Razem <borut.razem AT siol.net>
8905
8906         * support/scripts/sdcc.nsi: remove previous installation
8907
8908 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8909
8910         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
8911         bytes for last interrupt vector (mcs51)
8912         * sdcc.spec: fixed typo
8913
8914 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8915
8916         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
8917         gen51Code): more efficient parameter receive for --model-large
8918         ("bug" #845294)
8919
8920 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8921
8922         * src/ds390/main.c,
8923         * src/z80/main.c: added missed needLinkerScript flags (more than
8924         one port structure defined in these file)
8925         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
8926         bug #795325
8927
8928 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
8929
8930         * src/SDCCmain.c: removed various references to DEFAULT_PORT
8931         * src/port.h: added flag needLinkerScript in port->linker
8932         structure to inform whether to create a .lnk file or not,
8933         * src/avr/main.c,
8934         * src/ds390/main.c,
8935         * src/hc08/main.c,
8936         * src/mcs51/main.c,
8937         * src/pic/main.c,
8938         * src/pic16/main.c,
8939         * src/xa51/main.c,
8940         * src/z80/main.c: changed appropriately to configure
8941         needLinkerScript flag
8942         * src/pic/gen.c,
8943         * src/pic16/gen.c (genAddrOf): fixed bug #863624
8944         * src/pic/glue.c: added variable udata_section_name to
8945         override default uninitialized data segment definition for
8946         devices only with SHAREBANK memory (reported from Erik Epetrich)
8947         * (pic14emitOverlay): modified to emit a commented overlay segment
8948         directive when no overlay data exist
8949         * (picglue): modified to emit uninitialized data segment
8950         according to udata_section_name
8951         * src/pic/main.c (_pic14_parseOptions): added command line
8952         options --udata-section-name=[name] to override default
8953         udata definition name
8954         * modified _linkCmd and _asmCmd to include compiler passed
8955         arguments via -W option
8956         * src/pic16/main.c: added $l in _asmCmd, changed extension for
8957         object file from '.rel' to '.o' in port->linker structure,
8958         changed size of fptr from 2 to 3 in port structure
8959
8960 2004-01-07  Borut Razem <borut.razem AT siol.net>
8961
8962         * support/scripts/sdcc.nsi: update PATH
8963         * support/scripts/sdcc.ico: craeted
8964
8965 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
8966
8967         * device/include/Makefile.in: fix install
8968         * doc/Makefile: fix install
8969
8970 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8971
8972         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
8973         in bug #860505
8974         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
8975         how the function variable allocation summary is displayed; also
8976         include information about variables allocated to the overlay
8977         segment
8978
8979 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8980
8981         * as/mcs51/lkmain.c: Help about -Y option
8982         * as/mcs51/lkarea.c: Fixed gcc warnings
8983
8984 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8985
8986         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
8987         fixed warning
8988         * support/valdiag/tests/overflow.c: added
8989         * src/SDCCast.c (decorateType),
8990         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
8991         LEFT_OP (left shift)
8992
8993 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8994
8995         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
8996         (default behaviour).
8997
8998 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8999
9000         A python script to validate compiler diagnostic messages. It can be
9001         used to verify that sdcc complains about bad c source code and
9002         gives a good location of the error.
9003         * support/valdiag/Makefile,
9004         * support/valdiag/valdiag.py,
9005         * support/valdiag/tests/*
9006
9007 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9008
9009         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
9010         * src/SDCCsymt.c (newEnumType),
9011         * src/SDCCsymt.h
9012         * support/Util/SDCCerr.c,
9013         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
9014         enum related bugs.
9015         * support/regression/tests/enum.c: added test for enum values that
9016         require at least 2 bytes of storage.
9017
9018 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
9019
9020         * src/common.h: added ifndef/define/endif macros
9021         around the header file.
9022         Bug reported from Jesus Calvino-Fraga
9023
9024 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
9025
9026         * sdcc.spec: updated
9027         * device/include/Makefile.in: don't install CVS directories
9028         * device/lib/Makefile.in: added removal of CVS directories after install
9029         * doc/Makefile: fixed install, added local_icons
9030         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
9031         * src/mcs51/gen.c (genRightShift): fixed bug #870788
9032         * src/ds390/gen.c (genRightShift): fixed bug #870788
9033         * src/SDCCast.c (decorateType): fixed bug #870781
9034
9035 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
9036
9037         PIC16 port related changes:
9038         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
9039         added variable stackPos,
9040
9041         * gen.c: genCall, assignResultValue: added support for
9042         pushing/retrieving function parameters to/from stack,
9043         genFunction,genEndFunction: setup stack frame for the
9044         generated function,
9045         genAddrOf: will be changed according to bug 863624
9046
9047         * added files genutils.c and genutils.h which contain gen*
9048         debugged and optimised functions extracted from gen.c
9049
9050         * glue.c: added variable 'externs' which holds extern symbols,
9051         pic16emitRegularMap: is modified to properly handle relocatable
9052          symbols under the new scheme,
9053         pic16createInterruptVect: is modified
9054         pic16printPublics: is modified to emit 'global' assembler directives,
9055         added pic16_printExterns to print extern symbols,
9056         pic16glue: initializes stack/frame pointer in the beginning of
9057         the assembly output. Temporary hack, will be corrected later,
9058         because gplink yet does not support stack and SDCC does not
9059         yet support a type of crt0.o object to create the final binary.
9060
9061         * Removed many lines that contain 8051 legacy code.
9062         * The code is finally placed under a 'code' directive.
9063         * Added port specific options.
9064
9065         * _process_pragma: simplified since now we do not need *special*
9066         include file to define SFR registers. But a separate header
9067         will be needed. This will be developed later.
9068         * _pic16_parseOptions: added, parses port specific options:
9069         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
9070         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
9071         --preplace-udata-with=
9072
9073         * _pic16_setDefaultOptions: modified to initialize section names,
9074         but hack is temporarly out of order since it needs improvement.
9075         * _pic16_genAssemblerPreamble: configuration words are emitted by
9076         their address instead of their name. This part is incomplete and
9077         supports only the 18Fxx2 devices. Other devices will emit an error
9078         during assembly since they do not contain the same set of config
9079         registers
9080         * _pic16_genIVT: is modified,
9081
9082         * pcode.c: added definitions for some hardware registers that are needed
9083         for stack support
9084         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
9085         All PCI entries are updated. Now LFSR is supported.
9086         * Removed pic16_pciTRIS is mentioned by mdubuc in source
9087         * added pic16_newpCodeOpLit2 to support instructions with
9088         two literal arguments
9089         * pic16_pCode2str: corrected code that emits assembler instructions
9090         with two literal operands and those that have an access bit modifier
9091         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
9092         this fixes a bug which caused some labels to be lost, when an
9093         assembler directive was added, i.e. banksel,
9094         * pic16_FixRegisterBanking: improved logic that causes the insertion
9095         of bank switching,
9096         * InlineFunction: functions that are called once, are not any more
9097         inlined. This can be a port option in the future,
9098
9099         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
9100
9101         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
9102         hold the corresponding uninitialized symbols,
9103         * pic16_allocProcessorRegister: registers have explicit marked the
9104         accessBank field,
9105         * pic16_allocInternalRegister: registers are explicit marked as
9106         not used,
9107         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
9108         processing list, so bit registers were lost,
9109         *
9110
9111         * ralloc.h: added field 'accessBank' and original symbol operand
9112         in register definition,
9113         * removed the field isMapped from register definition,
9114
9115         ** Several functions have been removed from various sources:
9116         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
9117         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
9118         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
9119         pic16_assignRelocatableRegisters
9120
9121         ** others have been introduced:
9122         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
9123         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
9124
9125 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
9126
9127         * support/scripts/inc2h.pl: changed definition of BIT_AT
9128         to emit 'sbit at' instead of 'bit at'. This was a request.
9129
9130         PIC16 port related preliminary changes:
9131         * gen.c: prefixed function popRegFromString with
9132         pic16_ and all references to it corrected
9133         * pcode.c: all pic16_pc_* hardware registers prefixed
9134         with underscore (_),
9135         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
9136         * ralloc.c: newReg(): when register is REG_SFR then
9137         set address to rIdx,
9138         pic16_allocProcessorRegister(): marks register wasUsed=0
9139         pic16_writeUsedRegs(): added a call to assign processor
9140         registers via pic16_assignFixedRegisters
9141
9142 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9143
9144         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
9145         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
9146         variables in unused register banks.  Also the SSEG is placed
9147         wherever there is enough space for it, and IDATA can be anywhere
9148         in internal RAM.  For now compile using -Wl-Y[stack_size].
9149         The mem file is different for this option as well, since it
9150         makes no sense of talking about DSEG lenght.
9151
9152 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
9153
9154         * src/SDCClrange.c: fixed bug 869095 that caused segfault
9155         in certain cases, e.g. when ROM assignment, patch provided
9156         from Albert den Haan.
9157
9158 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
9159
9160         Many signedness and type propagation fixes:
9161         * src/SDCCicode.c: made geniCodeCast() static
9162         replaced SPEC_ by IS_ (cosmetic)
9163         (operandOperation): fixed div and mod operation
9164         (usualBinaryConversions): added support for promotion of char
9165         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
9166         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
9167         (geniCodeAdd): an array index will stay unsigned, even if promoted
9168         from char to int
9169         (geniCodeArray): ditto
9170         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
9171         * src/SDCCsymt.c (computeType): added more support for char;
9172         promotion of char is selectable by promoteCharToInt, fixed signedness
9173         for all cases
9174         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9175         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
9176         * src/SDCCval (val*): replaced signedness calculation by
9177         computeType()
9178         rearranged if-branches (cosmetic)
9179         (valShift): added warning W_SHIFT_CHANGED
9180         (valCompare): fixed problem with different types
9181         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
9182         * support/regression/tests/literalop.c: added many cases
9183         * support/regression/tests/ast_constant_folding.c: changed finally to
9184         'unsigned int'
9185         * .version: new year, new version: 2.3.7
9186         * src/SDCCmain.c (main): applied patch #866468
9187         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
9188         provided by Scott Bronson
9189         * doc/sdccman.lyx: updated documentation for sdcdb
9190         updated and added chapter tips
9191
9192 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9193
9194         * src/SDCCsymt.h: missing from yesterday's commits
9195
9196 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9197
9198         * src/SDCC.y (struct_or_union_specifier),
9199         * support/Util/SDCCerr.c,
9200         * support/Util/SDCCerr.h: verify that struct & union tags are used
9201         as declared.
9202
9203 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9204
9205         * src/SDCCglobl.h: missing from yesterday's commits
9206
9207 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9208
9209         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
9210         sft_attributes, struct_declaration, parameter_declaration,
9211         type_name, start_block, declaration_list),
9212         * src/SDCC.lex (check_type): support redefinition of typedef names
9213
9214 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9215
9216         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
9217         aligned xdata arrays. Erik helped me with the if clause.
9218
9219 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9220
9221         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
9222         warning
9223
9224 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9225
9226         * src/SDCCast.h,
9227         * src/SDCCast.c (newAst_),
9228         * src/SDCCicode.h,
9229         * src/SDCCicode.c (ast2iCode, newiCode),
9230         * src/SDCCglobl.h,
9231         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
9232         expr, statement, expression_statement, selection_statement,
9233         iteration_statement, expr_opt, jump_statement): foundation for tracking
9234         sequence points
9235         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
9236         point code too)
9237
9238 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9239
9240         * support/Util/SDCCerr.c,
9241         * src/SDCCast.h,
9242         * src/SDCCast.c (createCase, createDefault, decorateType),
9243         * src/SDCClabel.c (labelUnreach),
9244         * src/SDCC.y (labeled_statement, jump_statement): More improvements
9245         to error messages.
9246         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
9247         (with thanks to Stas Sergeev)
9248         * device/include/time.h,
9249         * device/lib/time.c (CheckTime): suppress unreachable code warning
9250
9251 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9252
9253         * src/SDCCast.c (createIvalCharPtr),
9254         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
9255         bug #753752)
9256         * support/regression/tests/nullstring.c: tests for these two bugs
9257
9258 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9259
9260         * support/Util/SDCCerr.h,
9261         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
9262         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
9263         about storage class and 'at' used inside struct or union
9264         * src/SDCCBBlock.c (iCodeFromeBBlock),
9265         * src/SDCCcse.c (ifxOptimize),
9266         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
9267         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
9268         printIval, emitStaticSeg, emitOverlay),
9269         * src/SDCClabel.c (deleteIfx),
9270         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
9271         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
9272         gatherAutoInit, processParms),
9273         * support/Util/SDCCerr.h,
9274         * support/Util/SDCCerr.c (werrorfl): Support for better error location
9275         reporting for post-parse errors.
9276
9277 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9278
9279         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
9280         implicit casts via union; they don't work on big endian systems
9281         (possible fix for bug #861138)
9282
9283 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9284
9285         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
9286         * src/mcs51/main.c: fixed the fix for bug #737001
9287
9288 2003-12-15  Borut Razem <borut.razem AT siol.net>
9289
9290         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
9291
9292 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9293
9294         * support/makebin/makebin.c: put output in binary mode
9295
9296 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9297
9298         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
9299         xdata and data memory on startup. Set the environment variable
9300         SDCC_NOGENRAMCLEAR to disable this.
9301         * src/mcs51/peephole.def,
9302         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
9303         (allows non-interrupt and interrupt code to safely compete for a resource
9304         without the non-interrupt code having to disable interrupts)
9305
9306 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9307
9308         * src/SDCCicode.c (geniCodeAdd),
9309         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
9310         with valFromType if type might be a pointer and host is big endian).
9311         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
9312         types, not just integer types.
9313         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
9314         multiply defined with mismatching "at" address.
9315
9316 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9317
9318         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
9319         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
9320         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
9321         with embedded nulls (fixed bug #753752)
9322
9323 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9324
9325         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
9326         Apparently this did not see much testing (endless loop)
9327
9328 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9329
9330         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
9331
9332 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9333
9334         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
9335         gracefully handle NULL memmap pointers
9336
9337 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9338
9339         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
9340         instead of deleting the iCode when an operand is volatile
9341         * src/z80/gen.c (genDummyRead),
9342         * src/mcs51/gen.c (genDummyRead),
9343         * src/ds390/gen.c (genDummyRead),
9344         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
9345         not just IC_RIGHT
9346         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
9347         * src/SDCC.y: fixed bug #850420
9348
9349 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9350
9351         Applied z80 i/o port patch from Peter Townson and fixed some operators
9352         to better handle operands in A register.
9353         * device/include/z180.h
9354         * src/SDCC.y
9355         * src/SDCCglue.c
9356         * src/z80/gen.c
9357         * src/z80/gen.h
9358         * src/z80/main.c
9359         * src/z80/peeph-z80.def
9360         * src/z80/peeph.def
9361         * src/z80/z80.h
9362
9363 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9364
9365         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
9366
9367 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9368
9369         * device/lib/hc08/_mullong.c: Removed extra #endif
9370
9371 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9372
9373         * sim/ucsim/hc08.src/inst.cc,
9374         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
9375         carries from x to h
9376         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
9377         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
9378         * device/include/stdarg.h: fixed varargs for hc08
9379         * device/lib/Makefile.in,
9380         * device/lib/hc08/Makefile,
9381         * device/lib/hc08/_mulint.c,
9382         * device/lib/hc08/_mullong.c: fixed some endian problems
9383
9384 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9385
9386         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
9387         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
9388         * device/lib/_gptrget.c,
9389         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
9390
9391 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9392
9393         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
9394         * src/SDCCast.c (astErrors): fixed bug #846007
9395         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
9396
9397 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9398
9399         * src/SDCCast.c (decorateType): disabled a transformation I added in
9400         revision 1.188 (access to fields of a structure at an absolute address);
9401         it breaks with bitfields, extern declarations, and gcse analysis.
9402         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
9403         could be assigned through a pointer, so don't complain.
9404         * src/SDCCast.c (astErrors),
9405         * src/SDCCast.h,
9406         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
9407
9408 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
9409
9410         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
9411         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
9412         output of __config directives, since gpasm now supports them
9413         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
9414         pre-processor macro, i.e. -DMCU=p18f452
9415         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
9416         and modified to handle 'cast' icode similarly to '=' icode
9417         * src/pic16/device.h (typedef struct PIC_device): added field
9418         'extMIface' to indicate that chip has external memory interface
9419         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
9420         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
9421         18F8720
9422
9423 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9424
9425         * src/SDCC.y (pointer): fixed bug #846006
9426         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
9427         * src/SDCCast.c (decorateType): fixed bug #846009
9428         * src/ds390/peeph.def,
9429         * src/ds390/gen.c (genAnd, genOr),
9430         * src/mcs51/peeph.def,
9431         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
9432
9433 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9434
9435         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
9436         * src/SDCCdflow.c
9437         * src/SDCCcse.c
9438         * src/SDCCcse.h
9439         * src/SDCCBBlock.h
9440         * src/SDCCBBlock.c
9441
9442 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
9443
9444         fixed bug #845089
9445         * src/SDCCbitv.h,
9446         * src/SDCCbitv.c: added function to free a bitvector
9447         * src/SDCClrange.h,
9448         * src/SDCClrange.c: added function to recompute the liveranges
9449         * src/avr/ralloc.c,
9450         * src/ds390/ralloc.c,
9451         * src/hc08/ralloc.c,
9452         * src/mcs51/ralloc.c,
9453         * src/pic/ralloc.c,
9454         * src/pic16/ralloc.c,
9455         * src/xa51/ralloc.c,
9456         * src/z80/ralloc.c: recompute the liveranges after register packing
9457
9458 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
9459
9460         * src/SDCCloop.c (newInduction): fixed bug #845630
9461
9462 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9463
9464         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
9465         inadvertantly left behind from my 2003-11-12 change
9466
9467 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9468
9469         Updated headers I neglected to commit yesterday.
9470         * src/SDCClrange.h,
9471         * src/SDCCicode.h
9472
9473 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9474
9475         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
9476         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
9477         * src/SDCCopt.c (eBBlockFromiCode),
9478         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
9479         the creation of the key hash table from the sequencing so it can be used
9480         earlier (for some GCSE bug fixes still pending)
9481
9482 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9483
9484         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
9485         * support/regression/tests/addsub.c: testing genPlus shortcut
9486
9487 2003-11-15  Borut Razem <borut.razem AT siol.net>
9488
9489         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
9490
9491 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9492
9493         * src/SDCCcse.c (cseBBlock): fixed bug #527779
9494         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
9495         ordering is immaterial.
9496         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
9497
9498 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9499
9500         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
9501         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
9502         (SIGSEV) of bug #840381
9503         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
9504         unlink new file before rename if new and old filenames are the same)
9505
9506 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9507
9508         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
9509         uninitialized variables) for the mcs51. Set environment variable
9510         SDCC_GENRAMCLEAR to test.
9511         xdata initialization slightly shorter
9512
9513 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9514
9515         * src/SDCCsymt.h,
9516         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
9517         #838241 & 780691 (basicly the same bug)
9518         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
9519         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
9520
9521 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
9522
9523         * src/SDCCmain.c (linkEdit): "fix" #834252
9524
9525 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9526
9527         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
9528         * src/SDCCast.h,
9529         * src/SDCC.y: fixed bug #819403
9530
9531 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9532
9533         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
9534         the reentrant attribute.
9535         * src/hc08/gen.c (genPackBits): added missing stack readjustment
9536         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
9537         simulation
9538         * src/SDCCast.c (decorateType): fixed bug with storage class not being
9539         updated during pointer dereference; f.e. ~(((char *)1)*) was being
9540         erroneously reduced to a literal.
9541         * src/hc08/ralloc.c (packRegisters, rematStr),
9542         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
9543         some cases
9544
9545 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9546
9547         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
9548         * doc/sdccman.lyx: changed from 'article' to 'book'
9549         * doc/Makefile: readded test_suite_spec and cdbfileformat
9550
9551 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
9552
9553         * device/include/stdlib.h: include malloc.h to comply with ANSI
9554         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
9555
9556 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9557
9558         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
9559         * doc/clean.mk: also remove *.out files
9560         * doc/sdccman.lyx: some additions, larger top/bottom margins
9561
9562 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9563
9564         * src/SDCC.y: fixed bug #837365
9565         * support/regression/tests/bitopcse.c
9566         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
9567         a symbol (might be valop instead)
9568         * device/lib/Makefile.in: added errno.c to HC08SOURCES
9569         * device/lib/clean.mk: added hc08 to the cleaning list
9570
9571 2003-11-04  Borut Razem <borut.razem AT siol.net>
9572
9573         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
9574           made 2003-11-04
9575         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9576           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
9577           malloc is declared in standard stdlib.h
9578
9579 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9580
9581         * device/lib/hc08/Makefile: need to clean .rel not .o files
9582         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
9583
9584 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9585
9586         * src/port.h,
9587         * src/hc08/main.c,
9588         * src/mcs51/main.c,
9589         * src/ds390/main.c,
9590         * src/z80/main.c,
9591         * src/avr/main.c,
9592         * src/pic/main.c,
9593         * src/pic16/main.c,
9594         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
9595         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
9596         tests (which uses the port's oclsExpense function)
9597         * src/SDCC.y,
9598         * src/SDCCast.c,
9599         * src/SDCCicode.c,
9600         * src/hc08/gen.c,
9601         * src/ds390/gen.c,
9602         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
9603
9604 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9605
9606         * src/SDCCcse.c (ifxOptimize),
9607         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
9608         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
9609         deleting the IFX iCode.
9610         * src/hc08/ralloc.c: reduced unneeded slocs
9611         * src/hc08/gen.c: fixed bug in asmopToBoolean
9612
9613 2003-11-04  Borut Razem <borut.razem AT siol.net>
9614
9615         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
9616           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9617           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
9618           transferred to configure
9619
9620 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
9621
9622         Use headers defined in the C[++] standards:
9623         * sim/ucsim/gui.src/serio.src/fileio.cc
9624         * sim/ucsim/gui.src/serio.src/frontend.cc
9625         * sim/ucsim/gui.src/serio.src/main.cc
9626         * sim/ucsim/gui.src/serio.src/posix_signal.cc
9627         * support/Util/NewAlloc.c
9628         * as/hc08/lklibr.c
9629         * as/mcs51/lklibr.c
9630         * as/z80/aslist.c
9631         * as/z80/assym.c
9632
9633 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9634
9635         * Added MSVC projects for hc08 assembler and linker:
9636         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
9637         /as/hc08/link_hc08.dsp
9638
9639 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
9640
9641         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
9642
9643 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
9644
9645         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
9646
9647 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9648
9649         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
9650
9651 2003-10-31  Borut Razem <borut.razem AT siol.net>
9652
9653         * support/cpp2/cpplib.h,
9654           support/cpp2/cpplib.c,
9655           support/cpp2/cpplex.c,
9656           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
9657           to switch _asm block preprocessing on / off. Default is
9658           #pragma preproc_asm +
9659
9660 2003-10-31  Borut Razem <borut.razem AT siol.net>
9661
9662         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
9663           when outputting comment blocks (when executed with -C option) and
9664           _asm (SDCPP specific) blocks
9665
9666 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9667
9668         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
9669
9670 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
9671
9672         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
9673
9674 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
9675
9676         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
9677         * src/SDCCast.c (decorateType): fixed bug #832664
9678
9679 2003-10-31  Borut Razem <borut.razem AT siol.net>
9680
9681         * support/cpp2/cpplex.c: fixed for SDCPP:
9682           comments(when executed with -C option) and _asm blocks
9683           were included even if they where in skipped #if block.
9684           Applied solution from GCC cpp 3.3.2
9685
9686 2003-10-31  Borut Razem <borut.razem AT siol.net>
9687
9688         * src/SDCC.lex: sdcc now understands both formats:
9689           '# <line_number> <file_name>' and
9690           '#line <line_number> <file_name>'
9691         * support/cpp2/cppmain.c: sdcpp now generates the standard
9692           '# <line_number> <file_name>' instead of former
9693           '#line <line_number> <file_name>'
9694
9695 2003-10-30  Borut Razem <borut.razem AT siol.net>
9696
9697         * support/cpp2/cpphash.h,
9698         * support/cpp2/cpplib.h
9699         * support/cpp2/cpplex.c,
9700         * support/cpp2/cppmain.c,
9701         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
9702
9703 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9704
9705         Fixed a number of problems revealed by bug #827883.
9706         * src/SDCCloop.c (loopInvariants): Spill location of the
9707         result operand should be recomputed if extracted from
9708         a loop. Also, don't extract assignments of an iTemp
9709         from a literal.
9710         * src/SDCCast.c (isConformingBody): loop reversal should
9711         not occur if the control variable is involved with a
9712         relational operator.
9713
9714 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
9715
9716         * .version: bumped to 2.3.6 to reflect the big improvements
9717         made by Erik and Klaus. Thanks!
9718
9719 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
9720
9721         Replaced the livrange code.
9722         * src/SDCClrange.c: added new LR code
9723         * src/SDCCloop.c,
9724         * src/SDCCBBlock.h: removed remainig parts from old LR code
9725         * src/ds390/ralloc.c,
9726         * src/ds390/gen.c: minor fixes to make it work with new code
9727
9728 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9729
9730         * as/hc08/asm.h,
9731         * as/hc08/lkrloc.c,
9732         * src/hc08/gen.c,
9733         * src/hc08/ralloc.c: Fix various warnings related to the hc08
9734         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
9735         (tweaked fix for bug #818696)
9736
9737 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9738
9739         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
9740
9741 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9742
9743         * src/SDCCmain.c,
9744         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
9745         * src/mcs51/gen.c (gencjneshort),
9746         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
9747         more efficient (per Scott Bronson's suggestion)
9748
9749 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9750
9751         Extended the semantics of the critical keyword to include
9752         individual statements. See RFE #827755 and #799831
9753         * src/SDCC.y
9754         * src/SDCCicode.c
9755         * src/SDCCopt.c
9756         * src/SDCCast.c
9757         * support/Util/SDCCerr.c
9758         * support/Util/SDCCerr.h
9759         * src/mcs51/gen.c
9760         * src/ds390/gen.c
9761         * src/hc08/gen.c
9762
9763 2003-10-19  Borut Razem <borut.razem AT siol.net>
9764
9765         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
9766
9767 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9768
9769         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
9770         Fixed bug #818696
9771         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
9772         and predecrement operand is displayed
9773
9774 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9775
9776         * src/SDCCval.c (valMinus): fixed bug #826041
9777
9778 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9779
9780         Some hc08 related updates that I missed earlier
9781         * sim/ucsim/stypes.h
9782         * support/regression/ports/hc08/spec.mk
9783
9784 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9785
9786         New target "hc08" for the Motorola 68hc08 family of micros
9787
9788         * configure
9789         * configure.in
9790         * Makefile
9791         * src/hc08/*
9792         * src/SDCCmain.c
9793         * src/port.h
9794         * sim/ucsim/hc08.src/*
9795         * sim/ucsim/configure.in
9796         * src/ucsim/configure
9797         * sim/ucsim/packages_in.mk
9798         * as/hc08/*
9799         * as/Makefile
9800         * device/include/mc68hc908qy.h
9801         * device/lib/hc08/*
9802         * device/lib/Makefile.in
9803         * support/regression/ports/hc08/*
9804         * support/regression/Makefile
9805
9806 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9807
9808         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
9809         regression test
9810         * src/ds390/gen.c (genCast): fixed bug #821957
9811
9812 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9813
9814         * device/lib/logf.c: "fixed" overlay bug
9815         * support/regression/ports/host/spec.mk: added m library
9816         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
9817         * support/regression/tests/float_trans: added (for Eric)
9818
9819 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
9820
9821         * src/mcs51/gen.c (genCpl): fixed bug
9822         http://sf.net/mailarchive/message.php?msg_id=6263915
9823
9824 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
9825
9826         * src/SDCCast.c (decorateType): added extended constant folding
9827         * src/SDCCsymt.c (computeType): cleanup
9828         * src/SDCCval.c (valShift): minor optimization
9829         * support/regression/tests/ast_constant_folding.c: added
9830
9831 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9832
9833         * src/SDCCmain.c: removed some unintended changes
9834
9835 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9836
9837         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
9838         * src/z80/gen.c: fixed part of bug #817589
9839         * src/SDCCsymt.c (checkFunction): fixed bug #817895
9840
9841 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
9842
9843         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
9844         * src/SDCCcflow.c
9845         * src/SDCCcse.c
9846         * src/SDCCdflow.c
9847         * src/SDCClabel.c
9848         * src/SDCClrange.c
9849         * src/SDCCmem.c
9850         * src/SDCCopt.c
9851         * src/SDCCpeeph.c
9852         * src/SDCCset.c
9853         * src/avr/ralloc.c
9854         * src/ds390/ralloc.c
9855         * src/izt/ralloc.c
9856         * src/mcs51/ralloc.c
9857         * src/pic/ralloc.c
9858         * src/pic16/ralloc.c
9859         * src/xa51/ralloc.c
9860         * src/z80/ralloc.c
9861         * src/z80/gen.c: removed unused label "release:"
9862
9863 2003-10-06  Borut Razem <borut.razem AT siol.net>
9864
9865         * src/SDCC.lex: removed definition of unused variables
9866           save_optimize and save_options
9867
9868 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
9869
9870         * clean.mk: removed '=' in "-maxdepth=1"
9871         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
9872         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
9873
9874 2003-10-06  Borut Razem <borut.razem AT siol.net>
9875
9876         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
9877           my_unput() replaced by unput()
9878
9879 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
9880
9881         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
9882         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
9883         type-punned pointer will break strict-aliasing rules"
9884         Old LR behaviour is again default; Klaus' LR can be choosen by
9885         defining the environment variable LRKLAUS
9886         * src/SDCCBBlock.h
9887         * src/SDCCloop.c
9888         * src/SDCClrange.c
9889         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
9890         * clean.mk: fixed removal of files in bin/CVS/
9891         * device/lib/clean.mk: fixed removal of directories small and large
9892         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
9893         * src/SDCCicode.c,
9894         * src/SDCCval.c: removed superflous test for pedantic
9895
9896 2003-10-05  Borut Razem <borut.razem AT siol.net>
9897
9898         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
9899           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
9900           message "unmatched #pragma SAVE and #pragma RESTORE"
9901
9902 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9903
9904         * doc/sdccman.lyx: various additions and updates (interrupts, inline
9905           assembly, critical functions, atomic, nojtbound)
9906
9907 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
9908
9909         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
9910         * src/SDCCBBlock.h
9911         * src/SDCCloop.c
9912         * src/SDCCloop.h
9913         * src/SDCClrange.c
9914
9915 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9916
9917         * src/z80/gen.h,
9918         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9919         * src/mcs51/gen.h
9920         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9921         * src/ds390/gen.h
9922         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9923         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
9924         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
9925
9926 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9927
9928         * src/z80/gen.c (genRet): fixed bug #524753
9929         * src/z80/gen.c (genCast): fixed internal error on cast from
9930         pointer to long
9931         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
9932         fix for bug #477835 to the z80
9933         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
9934         for tracking iCodes in the peephole optimizer for z80
9935
9936 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9937
9938         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
9939         the other part of bug #814548
9940         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
9941
9942 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
9943
9944         * src/SDCCcse.c: fixed part of bug #814548
9945
9946 2003-09-28  Borut Razem <borut.razem AT siol.net>
9947
9948         * src/asm.c: rewrite of printILine() to use temporary file instead
9949           a pipe
9950         * src/xa51/main.c: commented out declaration of int rewinds
9951
9952 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9953
9954         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
9955
9956 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9957
9958         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
9959         * src/asm.c (printILine): Fixed bug #811015
9960
9961 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9962
9963         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
9964         freeing.
9965
9966 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9967
9968         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
9969         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
9970         to correctly handle general case of AOP_PAIRPTR
9971         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
9972
9973 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9974
9975         * src/mcs51/ralloc.c (fillGaps),
9976         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
9977         register positioning bug)
9978
9979 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
9980
9981         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
9982
9983 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9984
9985         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
9986         genCodePointerGet, genGenPointerGet, genFarPointerSet,
9987         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
9988         (ralloc doesn't intentionally do this now, but perhaps later)
9989         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
9990         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
9991         register positioning bugs (Fixed bug #762602 and #795325)
9992         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
9993         (Fixed bug #808779)
9994         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
9995         lines that --i-code-in-asm generates
9996
9997 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9998
9999         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
10000         trying to fclose a FILE* that was already closed.
10001
10002 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10003
10004         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
10005         of const struct should be treated as if const themselves)
10006
10007 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
10008
10009         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
10010
10011 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10012
10013         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
10014         Unix (/n) and DOS (/r/n) line terminations.
10015
10016 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10017
10018         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
10019         bug #613775
10020
10021 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10022
10023         * src/mcs51/gen.c (genFunction, genEndFunction),
10024         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
10025         and restore of EA so that stack offsets to parameters are
10026         correct when using both critical and reentrant/stack-auto.
10027         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
10028         size (can be triggered in error if sloc is shared between
10029         different sized objects)
10030         * device/include/float.h: fixed macros to explicitly use
10031         unsigned long where needed
10032
10033 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
10034
10035         Feature req. 799831: added code to allow nesting of critical functions
10036         * src/mcs51/gen.c (genFunction, genEndFunction)
10037         * src/ds390/gen.c (genFunction, genEndFunction)
10038
10039 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10040
10041         * src/SDCCsymt.c (sclsFromPtr),
10042         * src/SDCCsymt.h,
10043         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
10044         support for standard C idiom of memory mapped variables; for
10045         example, *((xdata int*)0x1234) = 1 is now internally equivalent
10046         to xdata int at 0x1234 tempvar = 1.
10047         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
10048         provided by Akiya ISHIDA
10049
10050 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
10051
10052         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
10053         * src/SDCCval.c (constVal): added reduction from int to char
10054         * src/SDCCval.c (valMult, valDiv): fixed sign handling
10055         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
10056         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
10057         to ignore the sign
10058         * support/regression/tests/shifts.c: fixed
10059
10060 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10061
10062         * src/z80/gen.c (genXor): Fixed bug #805445
10063
10064 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10065
10066         Fixed bug #621531 (const & volatile confusion in the type chain).
10067         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
10068         refer to the const or volatile state of the pointer itself.
10069
10070         * src/SDCCast.c
10071         * src/SDCCglue.c
10072         * src/SDCCicode.c
10073         * src/SDCCsymt.c
10074         * src/SDCCval.c
10075         * src/SDCC.y
10076         * src/SDCCsymt.h
10077         * src/pic/gen.c
10078         * src/pic/ralloc.c
10079         * src/pic16/gen.c
10080         * src/pic16/ralloc.c
10081         * support/regression/tests/const.c
10082
10083 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10084
10085         When checking for duplicated modules, use absolute paths
10086         instead of relative paths.  Files changed:
10087
10088         * as/mcs51/lklib.c
10089         * link/z80/lklib.c
10090
10091 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10092
10093         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
10094
10095 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10096
10097         * device/include/string.h: added size_t typedef, changed
10098         prototypes to use size_t, eliminated separate reentrant and
10099         non-reentrant declarations, added _memmove declaration
10100         * device/lib/_memcpy.c: changed to use size_t instead of int,
10101         changed /4 to >>2 to avoid division library call
10102         * device/lib/_memcmp.c,
10103         * device/lib/_memset.c,
10104         * device/lib/_strncat.c,
10105         * device/lib/_strncpy.c,
10106         * device/lib/_strncmp.c: changed to use size_t instead of int
10107         * device/lib/_memmove.c: new file (fixed bug #772294)
10108         * device/lib/Makefile.in: added _memmove.c
10109         * device/lib/z80/asm_strings.s: fixed bug #772290
10110         * support/regression/tests/bitfields.c: attempt to fix host assertion
10111         failure on amd64-unknown-linux2.2
10112
10113 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10114
10115         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
10116         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
10117         * as/z80/asmain.c (main): fixed bug #801766
10118
10119 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
10120
10121         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
10122         compilers
10123
10124 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10125
10126         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
10127         reported in bug #800609
10128
10129 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
10130
10131         * Top header beautifications in src/pic16 directory:
10132           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
10133           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
10134           pcoderegs.h, ralloc.c, ralloc.h
10135         * main.c: added top header and GPL license notice
10136         * pcode.c: fixed the if-conditional warning
10137
10138 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
10139
10140         * device/lib/_mullong.c: replaced int by short for gcc
10141
10142 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10143
10144         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
10145         and JUMPTABLE iCodes properly now (worked by accident before)
10146         * src/mcs51/gen.c (leftRightUseAcc),
10147         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
10148         iCode properly now. Use getSize instead of nRegs since a & b
10149         aren't part of the nRegs tally.
10150
10151 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
10152
10153         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
10154         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
10155           before instructions that use the _STATUS register
10156
10157 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
10158
10159         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
10160         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
10161         fetching of the pointer
10162         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
10163         copied from genNearPointerSet()
10164         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
10165         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
10166         If they pop r0/r1 they must be called in the opposite order than aopOp().
10167         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
10168         (resp. --stack-auto), prepared for --xstack
10169
10170 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10171
10172         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
10173
10174 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
10175
10176         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
10177         these ports have their own __sdcc_external_start()
10178
10179 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
10180
10181         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10182         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
10183         type for bits was changed. It resulted in bit variables becoming
10184         global, which is not permitted in PIC 14 assembly output.
10185
10186 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10187
10188         * doc/sdccman.lyx: various additions and updates. Rearranged sections
10189
10190 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10191
10192         Z80 and MCS51 linkers complaint if a public symbol is defined
10193         in more than one library module:
10194
10195         * as/mcs51/lklib.c
10196         * link/z80/lklib.c
10197         * as/mcs51/Makefile.in
10198
10199 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10200
10201         A few small changes that speed up the peephole optimizer.
10202
10203         * src/SDCCpeeph.c
10204
10205 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10206
10207         Try to make the peephole optimizer smarter by maintaining
10208         an association between the assembly source code and the
10209         iCodes that originated them. Put this information to use
10210         with a new peephole rule condition "notVolatile" so that
10211         the rules can be aggressive yet still safe.
10212
10213         * src/SDCCpeeph.c
10214         * src/SDCCpeeph.h
10215         * src/mcs51/gen.c
10216         * src/mcs51/peeph.def
10217
10218 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10219
10220         Fixed bug #741761
10221
10222         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
10223         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
10224         if the left or right operand symbols have the accuse flag set.
10225
10226 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10227
10228         Changed the type of the result of the ! (NOT) operator to char;
10229         previously it returned the same type as the source. This allows
10230         us to eliminate all the genFloatNot functions (all of its target
10231         implementations were very buggy) since !float can use the same
10232         code as !long now.
10233
10234         * src/SDCCicode.c (ast2iCode): ! returns char
10235         * src/mcs51/gen.c (genNot, genNotFloat),
10236         * src/ds390/gen.c (genNot, genNotFloat),
10237         * src/z80/gen.c (genNot, genNotFloat),
10238         * src/pic/gen.c (genNot, genNotFloat),
10239         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
10240
10241 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
10242
10243         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
10244         1. Interrupt would not compile properly. Ensure PCLATH register is saved
10245            during interrupts. Ensure WSAVE is located at a shared bank address.
10246         2. Fixed page selection in some places
10247         3. Fixed BTFSS/C to where necessary use registers directly and not simply
10248            the registers name strings.
10249         4. Fixed "signed / unsigned compare" compiler warnings.
10250         5. The PIC port manages its own allocation of the general purpose
10251            registers, but makes no attempt to reuse them. As a result when
10252            compiling it soon runs out of general purpose registers. Some
10253            additional code was added to the files pcode.c and device.c to walk
10254            through the function call tree and rename the registers so that they
10255            get reused.
10256
10257         * src/pic/device.c
10258         * src/pic/gen.c
10259         * src/pic/glue.c
10260         * src/pic/pcode.c
10261         * src/pic/pcode.h
10262         * src/pic/ralloc.c
10263         * src/pic/ralloc.h
10264         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
10265         genPlus() & genMinus() when the result is the same as left or right
10266
10267 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10268
10269         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
10270
10271 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10272
10273         Made bitfield a distinct type from bit so that bitfields
10274         convert as per ANSI C and bits retain their traditional
10275         boolean style behaviour. Implemented bitfield support in
10276         the z80 port.
10277
10278         * src/SDCCsymt.h,
10279         * src/SDCCsymt.c,
10280         * src/SDCCast.c,
10281         * src/cdbFile.c,
10282         * src/mcs51/gen.c,
10283         * src/ds390/gen.c: bit v bitfield split
10284         * src/z80/gen.c: New support for bitfields
10285         * support/regression/tests/bitfields.c: reenabled z80,
10286         added more tests
10287
10288 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10289
10290         Rules 246.x, 247.x relate to bitfields, the others speed up
10291         access to xdata mapped I/O devices.
10292
10293         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
10294
10295 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10296
10297         Cleaned up genPackBits and genUnpackBits and added two helper
10298         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
10299         for literal assignments in genPackBits (thanks to Frieder for
10300         reminding me).
10301
10302         * src/mcs51/gen.c
10303         * src/ds390/gen.c
10304
10305 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10306
10307         Fixed bug #748310 (pointer to function type mishandled when the
10308         function name is omitted). Also fixed a SIGSEGV when a function
10309         attribute (reentrant, etc) is used on a non-function or on a
10310         function but misplaced before the parameter list.
10311
10312         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
10313         bug #748310
10314         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
10315         * support/Util/SDCCerr.h,
10316         * support/Util/SDCCerr.c: Added func attr misuse error msg
10317
10318 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10319
10320         Fixed bug #787649 by anonymous
10321         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
10322         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
10323
10324 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10325
10326         Fixed numerous bitfield problems.
10327
10328         * src/SDCC.y: More bitfield related error checking
10329         * src/SDCCsymt.h,
10330         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
10331         * support/Util/SDCCerr.h,
10332         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
10333         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10334         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
10335         * support/regression/tests/bitfields.c: tests added
10336
10337 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10338
10339         Made the constant following the "interrupt" keyword optional. If
10340         omitted, the function will not automatically be given an entry
10341         in the interrupt vector table (similar to #pragma NOIV, but
10342         less syntacticly kludgy). The interrupt number is also now
10343         range checked. Also fixed a bug in the high order bit example
10344         in the manual.
10345
10346         * src/SDCC.y
10347         * src/SDCCmem.c
10348         * src/SDCCglue.c
10349         * src/SDCCsymt.h
10350         * support/Util/SDCCerr.c
10351         * support/Util/SDCCerr.h
10352         * doc/sdccman.lyx
10353
10354 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
10355
10356         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
10357         * src/SDCCicode.c (operandOperation): rewritten some ops
10358         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
10359         * src/SDCCsymt.c (computeType): literals are handled the same way as any
10360         other type
10361         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
10362         be re-activated by defining REDUCE_LITERALS)
10363         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
10364         unsigned, but are signed by default
10365         * src/SDCCval.c (constVal): rearranged
10366         * src/SDCCval.c (valMod): preliminary fix
10367         * src/SDCCval.c (valCastLiteral): use TYPE_* types
10368         * support/regression/literalop.c: added, work in progress
10369
10370 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10371
10372         Generate warnings for useless declarations like "char data;"
10373         that don't do what new users expect.
10374
10375         * src/SDCC.y
10376         * support/Util/SDCCerr.h
10377         * support/Util/SDCCerr.c
10378
10379 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
10380
10381         * src/SDCCval.c (valMult): fix overflow detection of negative int
10382
10383 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10384
10385         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
10386
10387         Changes to support big endian targets:
10388
10389         * src/ports.h
10390         * src/SDCCglue.c
10391         * src/avr/main.c
10392         * src/ds390/main.c
10393         * src/izt/i186.c
10394         * src/mcs51/main.c
10395         * src/pic/main.c
10396         * src/pic16/main.c
10397         * src/xa51/main.c
10398         * src/z80/main.c
10399
10400 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
10401
10402         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
10403         * device/lib/time.c: fixed warning "integer overflow in expression"
10404
10405 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
10406
10407         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
10408         * src/SDCCval.c (constVal): changed default to signed; hex and octal
10409         constants are unsigned; added recognition of "u" flag for unsigned
10410         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
10411         * src/SDCCval.c (valDiv, valMod): fixed signdness
10412         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
10413         signedness of modulo, left and right shift
10414         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
10415         * support/Util/SDCCerr.h: added warning W_INT_OVL
10416         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
10417         * src/SDCCast.c (ast_print): improved output of constants
10418
10419 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10420
10421         Fixed some warnings when building with MSVC:
10422
10423         * as/mcs51/asdata.c
10424         * as/z80/asdata.c
10425         * as/mcs51/asm.h
10426         * as/z80/asm.h
10427         * link/z80/aslink.h
10428         * link/z80/lkdata.c
10429         * link/z80/lkeval.c
10430         * link/z80/lkgb.c
10431         * link/z80/lkihx.c
10432         * link/z80/lks19.c
10433         * link/z80/lksym.c
10434         * support/cpp2/cpplib.c
10435         * src/ds390/gen.c
10436         * src/mcs51/gen.c
10437
10438 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
10439
10440         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
10441
10442 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10443
10444         * support/librarian/clean.mk: Do not remove Makefile.
10445         * support/librarian/Makefile: added.
10446
10447 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10448
10449         Added librarian to MSVC build:
10450         * all.dsp
10451         * sdcc.dsw
10452         * support/librarian/librarian.dsp
10453
10454         'configure' not needed for librarian, removed:
10455         * support/librarian/configure
10456         * support/librarian/configure.in
10457         * support/librarian/config_in.h
10458         * support/librarian/Makefile.in
10459
10460         Hopefully these ones built the librarian and the rest of sdcc properly:
10461         * Makefile
10462         * Makefile.common.in
10463
10464         Messed up 'configure', so revert to previous version:
10465         * configure
10466         * configure.in
10467
10468 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
10469
10470         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
10471         there, while the mantissa of a double is "only" 53 bits wide.
10472
10473 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10474
10475         Adding sdcclib to the build.  MSVC project coming soon.
10476         Files added/changed:
10477
10478         * support/librarian/clean.mk
10479         * support/librarian/configure
10480         * support/librarian/configure.in
10481         * support/librarian/config_in.h
10482         * support/librarian/Makefile.bcc
10483         * support/librarian/Makefile.in
10484         * support/librarian/sdcclib.c
10485         * Makefile.bcc
10486         * Makefile
10487         * Makefile.common.in
10488         * configure
10489         * configure.in
10490
10491 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10492
10493         Linker now complaints if linked modules have conflicting options, for
10494         example, one compiled using --model-large and another one compiled with
10495         --model-small.  The following files were modified:
10496
10497         * as/mcs51/asdata.c
10498         * as/mcs51/aslink.h
10499         * as/mcs51/asm.h
10500         * as/mcs51/asmain.c
10501         * as/mcs51/asout.c
10502         * as/mcs51/i51pst.c
10503         * as/mcs51/lkdata.c
10504         * as/mcs51/lklibr.c
10505         * as/mcs51/lkmain.c
10506         * as/z80/asdata.c
10507         * as/z80/asm.h
10508         * as/z80/asmain.c
10509         * as/z80/asout.c
10510         * as/z80/z80pst.c
10511         * link/z80/aslink.h
10512         * link/z80/lkdata.c
10513         * link/z80/lklibr.c
10514         * link/z80/lkmain.c
10515         * src/SDCCglue.c
10516
10517 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10518
10519         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
10520         as/mcs51/lklibr.c: Generate a warning when a library is not found.
10521
10522 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
10523
10524         * src/z80/mappings.i: fix _mul[us][int,long] entries
10525
10526 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10527
10528         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
10529
10530 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10531
10532         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
10533         * support/regression/tests/bitopcse.c: added
10534         fixed warning:
10535         * src/avr/gen.c:
10536         * src/pic/gen.c:
10537         * src/pic16/gen.c:
10538         * src/z80/gen.c:
10539         * src/xa51/gen.c:
10540
10541 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10542
10543         added support for new library format to z80, gbz80 linkers:
10544         *link/z80/aslink.h
10545         *link/z80/lklex.c
10546         *link/z80/lklib.c
10547         *link/z80/lklist.c
10548
10549 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10550
10551         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
10552         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
10553
10554 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
10555
10556         added DUMMY_READ_VOLATILE:
10557         * src/SDCC.y:
10558         * src/avr/gen.c:
10559         * src/xa51/gen.c:
10560         * src/z80/gen.c:
10561         * src/pic/gen.c:
10562         * src/pic16/gen.c:
10563         * src/mcs51/gen.c:
10564         * src/ds390/gen.c:
10565         * src/SDCCcse.c (algebraicOpts): many improvements
10566         * src/SDCCcse.h: removed algebraicOpts()
10567         * src/SDCCicode.c (picDummyRead): added
10568
10569 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10570
10571         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
10572         "Insufficient space in data memory".
10573
10574 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10575
10576         * src/mcs51/gen.c: fixed bug #771358
10577         * src/z80/gen.c: fixed bug #759087
10578
10579 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
10580
10581         * src/pic16/glue.c: minor cleanup by Vangelis
10582
10583 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10584
10585         * device/include/regc515c.h: fixed #758477
10586         * device/lib/_gptrget.c: saving some cycles in generic pointer get
10587         * device/lib/_gptrput.c: saved a few bytes
10588         * my tab spacing is 8, yours too?)
10589         * device/lib/_ser.c: process RX bytes earlier than TX bytes
10590         * device/lib/serial.c: process RX bytes earlier than TX bytes
10591         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
10592
10593 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10594
10595         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
10596
10597 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10598
10599     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
10600
10601 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
10602
10603         * device/lib/Makefile.in: bad fix, reverted to 1.43
10604
10605 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
10606
10607         * device/lib/Makefile.in: added missing z80 object files
10608
10609 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
10610
10611         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
10612         pic16 progress by Vangelis:
10613         * src/SDCCglobl.h:
10614         * src/SDCCmain.c:
10615         * src/pic/Makefile:
10616         * src/pic:
10617         * pic/Makefile:
10618         * pic16/device.c:
10619         * pic16/device.h:
10620         * pic16/gen.c:
10621         * pic16/gen.h:
10622         * pic16/genarith.c:
10623         * pic16/glue.c:
10624         * pic16/main.c:
10625         * pic16/pcode.c:
10626         * pic16/pcode.h:
10627         * pic16/pcodepeep.c:
10628         * pic16/peeph.def:
10629
10630 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10631
10632     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
10633
10634 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10635
10636     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
10637     added gbz80 build to MSVC project.
10638     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
10639     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
10640     from 8051 stuff and setup so it links using a .lnk file.
10641
10642 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10643
10644     * support/librarian/sdcclib.c: sdcc librarian.
10645     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
10646     with sdcclib.
10647
10648 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10649
10650     * as/mcs51/lkmain.c: properly handle extensions in function afile.
10651
10652 2003-07-02  Borut Razem <borut.razem AT siol.net>
10653
10654         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
10655         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
10656         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
10657         src/xa51/main.c, src/z80/main.c:
10658         virtualization of glue() function: each port has it's own glue function,
10659         which is accessed by do_glue function pointer in PORT.general structure
10660
10661 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
10662
10663         * DS800C400 fun, improved ROM interface and tinibios.
10664
10665 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
10666
10667         * More support for DS80C400. Now includes beginning of interface to ROM.
10668
10669 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
10670
10671         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
10672
10673 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10674
10675         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
10676
10677 2003-06-19  Borut Razem <borut.razem AT siol.net>
10678
10679         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
10680
10681 2003-06-19  Borut Razem <borut.razem AT siol.net>
10682
10683         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
10684         fixed Z80 port - crt0.o: cannot open.
10685
10686 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
10687
10688         * support/Util/MySystem.c (merge_command): revert bad fix
10689
10690 2003-06-18  Borut Razem <borut.razem AT siol.net>
10691
10692         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
10693
10694 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10695
10696         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10697         option --use-stdout sends errors to stdout instead of stderr.
10698
10699 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
10700
10701         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
10702
10703 2003-06-15  Borut Razem <borut.razem AT siol.net>
10704
10705         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
10706         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
10707         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
10708         fixed width array of pointers replaced with sets;
10709         multiple include and lib paths ared transferred to preprocessor and linker
10710         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
10711         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
10712         fixed width array of pointers
10713         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
10714         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
10715         fixupPath(), getPathDifference()
10716         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
10717         fixed width array of pointers
10718
10719 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
10720
10721         * src/pic16/ralloc.c: fix warnings
10722         * src/pic16/pcode.c: fix warning
10723
10724 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
10725
10726          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
10727         know all the details, but essentially this set of changes enable
10728         the pic16 port to generate movff instructions and generate assembler
10729         directives,
10730         * src/SDCCmain.c:
10731         * src/pic16/gen.c:
10732         * src/pic16/glue.c:
10733         * src/pic16/pcode.c:
10734         * src/pic16/device.c:
10735         * src/pic16/main.c:
10736         * src/pic16/pcode.h:
10737         * src/pic16/pcoderegs.c:
10738         * src/pic16/ralloc.c:
10739         * src/pic16/ralloc.h:
10740
10741 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10742
10743         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10744         added option --vc, so sdcc errors and warnings are compatible with
10745         Microsoft Visual Studio.
10746
10747 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10748
10749         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
10750           device/lib/libfloat.lib: added atof function.
10751
10752 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
10753
10754         * doc/sdccman.lyx: updated to Lyx 1.3
10755         * doc/cdbfileformat.lyx: updated to Lyx 1.3
10756         * doc/test_suite_spec.lyx: updated to Lyx 1.3
10757         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
10758
10759 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
10760
10761         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
10762
10763 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10764
10765         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
10766           additions to the "related tools/documentation" section
10767
10768 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
10769
10770         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
10771
10772 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
10773
10774         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
10775         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
10776
10777 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
10778
10779         * doc/sdccman.lyx: fix double dash and other minor things
10780         * doc/Makefile: fix double dash
10781
10782 2003-05-28  Karl Bongers(patches from Martin Helmling)
10783         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
10784           condition and ignore commands.
10785
10786 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10787
10788         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
10789           is in parts still quite out of date, I did changes as far as I felt makes sense
10790           for a non-native english speaker.
10791           Please feel free to add to the manual or to correct my changes.
10792         * doc/Makefile: undid touching the date of intermediate tex files.
10793
10794 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10795
10796         * doc/sdccman.lyx: Manual has an index now
10797
10798 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
10799
10800         Finalize muluint/mulsint and mululong/mulslong merging:
10801         * device/lib/_mulint.c
10802         * device/lib/_mullong.c
10803         * device/lib/gbz80/mul.s
10804         * device/lib/gbz80/stubs.s
10805         * device/lib/z80/mul.s
10806         * device/lib/z80/stubs.s
10807         * src/SDCCsymt.c (initCSupport)
10808
10809 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10810
10811         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
10812         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
10813           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
10814           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
10815           instead of /Zm500.
10816
10817 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10818
10819         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
10820           the regression tests I'm not brave enough to enable 245.b, 245.c
10821         * doc/sdccman.lyx: added latex preamble for hyperref package.
10822           Using pdflatex this will give you a hyperlinked pdf file with
10823           bookmarks. (prepend '%' before /usepackage if this breaks something)
10824
10825 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10826
10827          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
10828
10829 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
10830
10831         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
10832
10833 2003-05-21    <johan AT balder>
10834
10835         * src/SDCCglue.c (printIval): fixed bug #739934
10836
10837 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10838
10839         Applied patch from bug 737905 (renamed yylineo to mylineno):
10840         * src/altlex.c
10841         * src/SDCCast.c
10842         * src/SDCglobl.h
10843         * src/SDCC.lex
10844         * src/SDCCsymt.c
10845         * src/SDCCval.c
10846         * src/pic16/pcode.c: Cleaned warnings
10847         * src/pic16/pcodeflow.c: Cleaned warnings
10848         * src/pic16/pcoderegs.c: Cleaned warnings
10849
10850 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
10851
10852         * src/pic16/pcode.c: Cleaned warnings
10853         * src/pic16/pcodepeep.c: Cleaned warnings
10854         * src/pic16/ralloc.c: Cleaned warnings
10855
10856 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10857
10858         * doc/sdccman.lyx: fixed bug 739745
10859         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
10860
10861 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
10862
10863         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
10864         it can be defined with CFLAGS when running configure
10865         * src/SDCCmain.c: fixed compiling + linking with object files
10866
10867 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
10868
10869         * configure.in: configure for pic16 port,
10870             added --disable-pic16-port
10871         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
10872         * src/SDCCmain.c: linkOptions is changed to set *,
10873             added if/endif conditional macros to remove options help
10874             messages from optionsTable when a port is not configured, added
10875             support for the PIc16 port in the ports table, when executing
10876             the compiler with no port specified on command line, a default
10877             port is selected with the new macro DEFAULT_PORT which is
10878             defined in port.h, in setDefaultOptions() linkOptions is removed
10879             from initialization assignment, since now it is a set,
10880             parseCmdLine uses setParseWithComma for linkOptions, in
10881             linkEdit() linkOptions are accessed with new function indexSet()
10882             which returns the i'th item of a set variable. See SDCCset.c, in
10883             linkEdit() when calling buildCmdLine(), added linkOptions as
10884             last argument. Now users can pass arguments to gplink via the
10885             -Wl option, main() uses pic16glue() to glue up pic16 programs
10886         * src/SDCCpeeph.c: various changes to support pic16
10887         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
10888             return the i'th item of the set
10889         * src/SDCCset.h: added function prototype for indexSet()
10890         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
10891         * src/clean.mk: added pic16 in CLEANALLPORTS variable
10892         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
10893             added macro DEFAULT_PORT
10894         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
10895         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
10896             generated
10897         * src/pic16/glue.c: commented out some error producing lines
10898         * src/pic16/main.c: __config directives are commented out to stop
10899             gpasm complaining and test the linkage with gplink, _linkCmd and
10900             _asmCmd changed to be more gplink and gpasm friendly
10901         * src/pic16/peeph.def: peep rule 3 is commented out, since it
10902             produced an error when parsed, peep rule 12 is added to utilize
10903             movff, but it is commented out since the pCode does not support
10904             yet a command with 2 address arguments
10905
10906 2003-05-18    <johan AT balder>
10907
10908         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10909         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10910 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
10911
10912         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
10913   Added feature to script commands from file.
10914
10915 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
10916
10917         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
10918         * src/SDCCutil.c: include ctype.h for win32
10919
10920 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
10921
10922         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
10923
10924 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
10925
10926         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
10927   Fixed so you can set breakpoints prior to run, run does not stop
10928   on entry now.  Add tbreak.  Other enhancements and fixes for use
10929   with ddd.
10930
10931 2003-05-12  Borut Razem <borut.razem AT siol.net>
10932
10933         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
10934
10935 2003-05-11  Borut Razem <borut.razem AT siol.net>
10936
10937         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
10938         the path of bin directory, so that PATH is the only env. variable, which has to be set
10939         in case of standard installation.
10940         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
10941         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
10942         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
10943
10944 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10945
10946         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
10947         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
10948         temp files are in the port dir; clean the gen/test directory when
10949         generating new test.c
10950         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
10951         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
10952         * support/regression/tests/zeropad.c: added
10953
10954 2003-05-09    <johan AT balder>
10955
10956         * src/SDCCglue.c: fixed bug #597940
10957
10958 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
10959
10960         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10961   cache sfr, optimize next,step, fix off by one sourceline,
10962   support ddd list function.
10963         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
10964
10965 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10966
10967         * support/regression/HTMLgen.py: added compare_s2f()
10968         * support/regression/Makefile: redo 1.27
10969         * support/regression/generate-cases.py: redo 1.5
10970
10971 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
10972
10973         * support/regression/tests/float.c: workaround 33 bit hex constant
10974         * support/regression/tests/simplefloat.c: fix division for host
10975
10976 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
10977
10978         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
10979         that tame's the PIC's over-aggressive optimizer.
10980
10981 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10982
10983          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
10984          support for MSVC.
10985
10986 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
10987
10988         Initial support for DS80C400. "Hello world" runs on TINIm400
10989         (with polled I/O).
10990
10991 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
10992
10993          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10994          * Some notes on ddd usage added in debugger/README
10995          Martin Helmling adding more features and fixes for ddd GUI debugger.
10996          Code added for nexti, stepi, up, down, and other adjustments.
10997
10998 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
10999
11000         * src/pic/pCodepeep.c non-wildcard asmops are now handled
11001         * src/pic/peeph.def Added two rules to optimize carry manipulation
11002         * src/pic/* removed debug printfs
11003
11004 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
11005
11006         * debugger/mcs51/cmd.c: added header newalloc.h
11007
11008 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
11009
11010         * as/Makefile: new EXEEXT
11011         * as/z80/Makefile: remove trailing slash of BUILDIR
11012         * as/z80/clean.mk: new EXEEXT
11013         * Makefile.common.in: add to CFLAGS (and others), don't replace it
11014         * support/cpp2/Makefile.in: new EXEEXT
11015         * src/pic/glue.c (pic14emitRegularMap): fixed warning
11016
11017 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
11018
11019         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
11020         EXEEXT was introduced to fix all related problems with targets
11021         "clean", "install" and "uninstall"; a couple of further flaws
11022         especially with "clean" have been fixed too
11023         * as/mcs51/Makefile.in
11024         * as/mcs51/clean.mk
11025         * as/z80/Makefile
11026         * Makefile
11027         * clean.mk
11028         * debugger/mcs51/Makefile.in
11029         * debugger/mcs51/clean.mk
11030         * link/z80/Makefile
11031         * link/z80/Makefile.in
11032         * link/z80/clean.mk
11033         * link/Makefile
11034         * packihx/Makefile.in
11035         * packihx/clean.mk
11036         * sim/ucsim/Makefile
11037         * sim/ucsim/clean.mk
11038         * sim/ucsim/avr.src/Makefile.in
11039         * sim/ucsim/avr.src/clean.mk
11040         * sim/ucsim/s51.src/Makefile.in
11041         * sim/ucsim/s51.src/clean.mk
11042         * sim/ucsim/xa.src/Makefile.in
11043         * sim/ucsim/xa.src/clean.mk
11044         * sim/ucsim/z80.src/Makefile.in
11045         * sim/ucsim/z80.src/clean.mk
11046         * sim/ucsim/main_in.mk
11047         * sim/ucsim/packages_in.mk
11048         * sim/ucsim/gui.src/Makefile.in
11049         * sim/ucsim/gui.src/serio.src/Makefile.in
11050         * sim/ucsim/gui.src/serio.src/clean.mk
11051         * src/Makefile.in
11052         * src/clean.mk
11053         * support/cpp2/Makefile.in
11054         * support/cpp2/clean.mk
11055         * support/makebin/Makefile
11056         * support/makebin/clean.mk
11057         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
11058         * doc/sdccman.lyx: --program-suffix no longer needed
11059
11060 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
11061
11062          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
11063          Martin Helmling added support for ddd GUI debugger.
11064          Code added to display assembly, set variables, and other commands
11065          to interface to ddd.
11066
11067 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
11068
11069         * as/Makefile: fix target clean
11070         * as/clean.mk: fix target clean
11071         * as/z80/clean.mk: fix target clean
11072
11073 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
11074
11075         * Makefile.common.in: added  AT EXEEXT AT
11076         * configure.in: removed all mingw32 stuff
11077         * configure: rebuilt from configure.in
11078         * doc/sdccman.lyx: updated section "installation"
11079         * support/scripts/sdcc_mingw32: adapted to configure
11080         * support/scripts/sdcc_cygwin_mingw32: added
11081
11082 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
11083
11084         * src/pic Added object file support for the PIC port
11085         * src/pic Applied patch from Craig Franklin (this started the object file support)
11086         * src/regression Updated the PIC regression tests for object files
11087
11088 2003-04-20  Borut Razem <borut.razem AT siol.net>
11089
11090         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
11091           lklex.c: In function `getfid':
11092           lklex.c:203: warning: array subscript has type `char'
11093         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
11094           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
11095         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
11096           stack handling macros
11097
11098 2003-04-19  Borut Razem <borut.razem AT siol.net>
11099
11100         * "handling space characters in file path" task:
11101         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
11102         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
11103         * support/Util/MySystem.h: make it self-sufficient
11104         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
11105           src/z80/main.c, sdcc/as/mcs51/lklex.c:
11106           handling space characters in file path
11107         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
11108           (it will be used by assemblers, which have their own includes, e.g. gpasm)
11109         * support/Util/MySystem.c: handling space characters in executable's path
11110
11111 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
11112
11113         * as/z80/Makefile: fix permanent rebuild of z80
11114         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
11115         * support/regression/tests/bitfields.c: added Johan's bitfields.c
11116
11117 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
11118
11119         * src/SDCCopt.c: add special case optimization to replace modulo by
11120           a power of two with a bitwise AND.
11121
11122 2003-04-18    <johan AT balder>
11123
11124         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
11125
11126 2003-04-17    <johan AT balder>
11127
11128         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
11129         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
11130
11131 2003-04-13  Borut Razem <borut.razem AT siol.net>
11132
11133         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
11134         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
11135           fixed mingw problem in adl_NORMALIZE_PATH
11136
11137 2003-04-12  Borut Razem <borut.razem AT siol.net>
11138
11139         * fixed "#pragma SAVE/RESTORE can not be nested":
11140         * src/SDCC.lex: reworked pragma handling functions
11141         * sdcc/src/SDCCglobl.h: reworked stack handling macros
11142         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
11143
11144 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11145
11146         * src/SDCCutil.c (pathEquivalent): defined but not used
11147         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
11148         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
11149         * configure: rebuilt from configure.in
11150         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11151         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
11152         * device/include/Makefile.in: replace sdcc_datadir
11153         * device/lib/Makefile.in: replace sdcc_datadir
11154         * Makefile.common.in: add LDFLAGS from configure
11155         * packihx/Makefile.in: use LDFLAGS
11156         * src/Makefile.in: use LDFLAGS
11157         * support/cpp2/Makefile.in: add LDFLAGS from configure
11158         * support/makebin/Makefile: use LDFLAGS
11159         * .version: bumped version number to 2.3.5
11160
11161 2003-04-12  Borut Razem <borut.razem AT siol.net>
11162
11163         * completed "different paths" task:
11164         * src/SDCCmacro.c: fixed bug in handling quotes
11165         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
11166         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
11167
11168 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
11169
11170         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
11171
11172 2003-04-11 kevin Vigor <kevin AT vigor.nu>
11173
11174         * ds390/gen.c ds390/peeph.def: fix bug 706781
11175
11176 2003-04-11  Borut Razem <borut.razem AT siol.net>
11177
11178         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
11179
11180 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
11181
11182         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
11183         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
11184          set - this bit used to not be set...).
11185         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
11186           bad code in PIC Port
11187         * src/regression/and2.c added to test bug 609268
11188         * src/regression/Makefile added and2.c to regression test
11189
11190
11191 2003-04-08    <johan AT CP255758-A>
11192
11193         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
11194         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
11195         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
11196
11197 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
11198
11199         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
11200         fix bug #487815
11201         * support/cpp2/Makefile.in: fix bug #487815
11202         * configure: rebuilt from configure.in
11203         * Makefile.common.in: docdir changed, new path suffixes
11204         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11205         * sdcc_vc_in.h: reflect changes from sdccconf.h
11206         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
11207         * src/SDCCutil.h: remove BINDIR hack
11208         * doc/sdccman.lyx: update new path hierarchy
11209
11210 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11211
11212         * src/SDCCpeeph.c: added okToRemoveSLOC test
11213
11214 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11215
11216         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
11217
11218 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
11219
11220         * src/SDCCpeeph.c: added labelIsReturnOnly test
11221         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
11222
11223 2003-04-05    <johan AT balder>
11224
11225         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
11226         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
11227         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
11228         * src/SDCCast.c: fixed a warning
11229         * src/SDCCast.h: fixed a warning
11230         * src/SDCCicode.c (operandFromAst): fixed a warning
11231
11232 2003-04-04    <johan AT balder>
11233
11234         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
11235         * src/SDCCast.c (decorateType): fixed bug #715076
11236         * src/SDCC.y: fixed bug #702907
11237
11238 2003-04-03    <johan AT balder>
11239
11240         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
11241         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
11242         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
11243         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
11244         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
11245
11246 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
11247
11248         * _decdptr.c: fix return values
11249         * _gptrget.c: fix return values
11250         * _gptrgetc.c: fix return values
11251         * _gptrput.c: fix return values
11252         * _mulint.c: fix return values
11253         * as/z80/Makefile: fix 'make -j' problem
11254
11255 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
11256
11257         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
11258         * configure.in: big cleanup, updated to autoconf 2.5x
11259         * configure: rebuilt from configure.in
11260         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
11261         * sdcc_vc_in.h: reflect changes from sdccconf.h
11262         * doc/Makefile: fixed a flaw in "make install"
11263
11264 2003-04-02    <johan AT balder>
11265
11266         * src/ds390/gen.c (genCmp): no comments
11267         * src/mcs51/gen.c (genCmp): no comments
11268         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
11269         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
11270
11271 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
11272
11273         * support/regression/generate-cases.py: place generated file in given sub directory
11274         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
11275         * support/regression/Makefile: improvements for 'make -j';
11276         side effect: it's simpler and faster now
11277
11278 2003-03-31  Borut Razem <borut.razem AT siol.net>
11279
11280         * src/z80/main.c: link-{port} and as-{port} defined without path
11281         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
11282
11283 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
11284
11285         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
11286
11287 2003-03-30  Borut Razem <borut.razem AT siol.net>
11288
11289         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
11290           changed type of list parameter to set
11291         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
11292         * src/port.h: changed type of do_assemble() parameter to set
11293         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
11294           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
11295           definition of "cppoutfilename" macro with NULL value in preProcess()
11296         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
11297         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
11298         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
11299           replaced with set *binPathSet
11300         * shash_add() deallocates the item, if allready exsists, before adding the new one
11301         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
11302
11303 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
11304
11305         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
11306           a nested for loop bug in the PIC port
11307         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
11308           for loops
11309
11310 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
11311
11312         * support/Util/dbuf.h: remove C++ stuff to make it portable
11313
11314 2003-03-28  Borut Razem <borut.razem AT siol.net>
11315
11316         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
11317           literal strings in stringLiteral()
11318         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
11319         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
11320           to the project
11321
11322 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
11323
11324         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
11325
11326 2003-03-26    <johan AT balder>
11327
11328         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
11329         * src/ds390/gen.c (saveRegisters): catched symbol abuse
11330         * src/SDCCast.c (decorateType): fixed " -v < 3"
11331
11332 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
11333
11334         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
11335         Added Lenny Story's debug infrastructure changes:
11336         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
11337         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
11338         * src/cdbFile.c: added
11339         * src/SDCCdebug.c: added
11340         * src/SDCCdebug.h: added
11341         * src/SDCCast.c (createFunction)
11342         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
11343         * src/SDCCmain.c (parseCmdLine, main)
11344         * src/SDCCmem.c (redoStackOffsets)
11345         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
11346         * src/SDCCsymt.h
11347         * src/common.h
11348         * src/avr/gen.c (genAVRCode)
11349         * src/ds390/gen.c (gen390Code)
11350         * src/mcs51/gen.c (gen51Code)
11351         * src/pic/gen.c (genpic14Code)
11352         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
11353         * src/xa51/gen.c (genXA51Code)
11354         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
11355
11356 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11357
11358         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
11359         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
11360
11361 2003-03-22    <johan AT balder>
11362
11363         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
11364
11365 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
11366
11367         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
11368         * doc/cdbfileformat.lyx: added, written by Lenny Story
11369         * doc/Makefile: added cdbfileformat.lyx
11370         * doc/clean.mk: added cdbfileformat.lyx
11371
11372 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
11373
11374         * src/mcs51/peeph.def: fix bug #705773
11375
11376 2003-03-20    <johan AT balder>
11377
11378         An sfr/sbit can have an "at #" AND an initializer
11379         * src/SDCCsymt.c (checkSClass):
11380         * src/SDCCmem.c (allocGlobal):
11381         * src/SDCCmem.c (allocLocal):
11382         * src/SDCCast.c (createBlock):
11383
11384 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
11385
11386         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
11387
11388 2003-03-16    <johan AT balder>
11389
11390         Undid the hackup of const and volatile, the problem is much bigger
11391         * src/SDCC.y:1.65
11392         * src/SDCCast.c:1.171
11393         * src/SDCCglue.c:1.138
11394         * src/SDCCicode.c:1.146
11395         * src/SDCCsymt.c:1.150
11396         * src/SDCCval.c:1.65
11397
11398 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
11399
11400         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
11401         * src/ds390/gen.c (genAddrOf): fixed bug #704087
11402
11403 2003-03-13    <johan AT balder>
11404
11405         Hackup const and volatile modifiers in type chains a bit:
11406         * src/SDCC.y:1.63
11407         * src/SDCCast.c:1.169
11408         * src/SDCCglue.c:1.136
11409         * src/SDCCicode.c:1.143
11410         * src/SDCCsymt.c1.146
11411         * src/SDCCsymt.h1.59
11412         * src/SDCCval.c:1.63
11413
11414 2003-03-12    <johan AT balder>
11415
11416         * src/SDCCBBlock.h: more LRH debugging junk
11417         * src/SDCCcflow.h: more LRH debugging junk
11418         * src/SDCCloop.c: more LRH debugging junk
11419         * src/SDCC.y (struct_declaration): fixed bug #697590
11420         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
11421         * src/ds390/gen.c (aopForRemat): fixed bug #700031
11422         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
11423
11424 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11425         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
11426         test function names must now match exactly).
11427         * src/SDCCcse.c: added special case in findCheaperOp to allow
11428         extending a short integer. Makes less awful code for bug 700121 test case.
11429
11430 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11431
11432         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
11433         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
11434
11435 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11436
11437         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
11438         actually called (operandsNotEqual() was called for all
11439         operandsNotEqualX tests).
11440
11441 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11442
11443         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
11444         with shorter literals. Fixes bug 700121.
11445
11446 2003-03-11    <johan AT balder>
11447
11448         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
11449
11450 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
11451
11452         * src/SDCCloop.c (mergeRegions): an evil beast is dead
11453         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
11454
11455 2003-03-10  Borut Razem <borut.razem AT siol.net>
11456
11457         * src/SDCCmain.c: pipe preprocessor's output
11458         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
11459         * sdcc_vc_in.h: define pclose as _pclose for WIN32
11460         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
11461         which closes all pipes in pipeSet set
11462         * src/SDCCset.c: free deleted item in function deleteSetItem()
11463         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
11464         moved from z80 to src subproject
11465         * .version: increased version number to 2.3.4
11466
11467 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
11468
11469         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
11470         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
11471         * support/regression/ports/xa51/spec.mk: fix typo
11472
11473 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
11474
11475         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
11476
11477 2003-03-09  Borut Razem <borut.razem AT siol.net>
11478
11479         * src/SDCCmain.c: pipe preprocessor's output
11480         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
11481         * sdcc_vc_in.h: define pclose as _pclose for WIN32
11482         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
11483         which closes all pipes in pipeSet set
11484         * src/SDCCset.c: free deleted item in function deleteSetItem()
11485         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
11486         moved from z80 to src subproject
11487
11488 2003-03-09  Borut Razem <borut.razem AT siol.net>
11489
11490         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
11491         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
11492         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
11493         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
11494         * src/SDCCglobl.h: unification of WIN32 native definitions
11495
11496 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11497
11498         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
11499
11500 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
11501
11502         * src/configure.in:   check for endianess (even while cross-compiling)
11503         * src/configure:      check for endianess (even while cross-compiling)
11504         * src/configure_in.h: check for endianess (even while cross-compiling)
11505         * src/avr/gen.c:        remove old endianess stuff
11506         * src/mcs51/gen.c:      remove old endianess stuff
11507         * src/ds390/gen.c:      remove old endianess stuff
11508         * src/pic/gen.c:        remove old endianess stuff
11509         * src/pic/genarith.c:   remove old endianess stuff
11510         * src/pic/glue.c:       fix endianess check
11511         * src/pic16/gen.c:      remove old endianess stuff
11512         * src/pic16/genarith.c: remove old endianess stuff
11513         * src/pic16/glue.c:     fix endianess check
11514         * src/xa51/gen.c:       remove old endianess stuff
11515         * src/z80/gen.c:        fix endianess check
11516         * src/SDCCglue.c:       fix endianess check
11517         * src/ds390/peeph.def: fix bug 700036
11518
11519 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
11520
11521         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
11522         * src/configure: find appropriate data-types on host for SDCC's int and long
11523         * src/configure.in: find appropriate data-types on host for SDCC's int and long
11524         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
11525         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
11526
11527 2003-03-07    <johan AT balder>
11528
11529         Just a big NOOP:
11530                 some minor cleanups before the big shot
11531                 OP_DEFS and OP_USES now use Kevin's protection
11532                 new option --nolabelopt
11533
11534         * src/SDCCBBlock.c:
11535         * src/SDCCast.c,:
11536         * src/SDCCcflow.c:
11537         * src/SDCCcse.c:
11538         * src/SDCCicode.c:
11539         * src/SDCCicode.h:
11540         * src/SDCClabel.c:
11541         * src/SDCCloop.c:
11542         * src/SDCCmain.c:
11543         * src/ds390/ralloc.c:
11544         * src/mcs51/ralloc.c:
11545         * src/pic/ralloc.c:
11546         * src/xa51/ralloc.c:
11547         * src/z80/ralloc.c:
11548
11549 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
11550
11551         * src/pic/pcode.c (get_op): fix 64 bit warnings
11552         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
11553         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
11554         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
11555         * support/regression/tests/malloc.c: fix 64 bit warnings
11556
11557 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
11558
11559         * src/mcs51/gen.c (genMinus): fixed bug 696436
11560
11561 2003-03-02  Borut Razem <borut.razem AT siol.net>
11562
11563         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
11564
11565 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
11566
11567         * configure.in: test for mkstemp
11568         * sdccconf_in.h: add HAVE_MKSTEMP
11569
11570 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
11571
11572         * device/include/ctype.h: removed warning while using --stack-auto
11573         * device/include/malloc.h: removed warning while using --stack-auto
11574         * device/include/string.h: removed warning while using --stack-auto
11575
11576 2003-02-23  Borut Razem <borut.razem AT siol.net>
11577
11578         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
11579         because NDEBUG is defined (see man assert)
11580         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
11581
11582 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11583
11584         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
11585         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
11586
11587 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11588
11589         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
11590         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
11591
11592 2003-02-18    <johan AT balder>
11593
11594         * as/mcs51/asmain.c (asmbl): module can start with a digit
11595         * as/z80/asmain.c (asmbl): module can start with a digit
11596
11597 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
11598
11599         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
11600         * src/asm.c: fix pipe() for Mingw32
11601
11602 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
11603
11604         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
11605         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
11606         make -V work again; --c1mode reads now from stdin
11607         * doc/sdccman.lyx: added --c1mode
11608         * support/Util/SDCCerr.c: new messages for c1 mode
11609         * support/Util/SDCCerr.h: new messages for c1 mode
11610         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
11611
11612 2003-02-15    <johan AT balder>
11613
11614         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
11615
11616 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
11617
11618         * doc/sdccman.lyx: Environment variables, -o and other minor things
11619
11620 2003-02-14    <johan AT balder>
11621
11622         * src/xa51/main.c: before anyone really tries to use it :)
11623
11624         * Install doc's in share/sdcc/doc
11625         * removed some obsolete files
11626         * Do a proper make distclean and uninstall
11627         M Makefile.common.in
11628         R sdccbuild.sh
11629         M as/Makefile
11630         M device/include/Makefile.in
11631         M device/lib/Makefile.in
11632         M doc/sdccman.lyx
11633         M link/Makefile
11634         M sim/ucsim/doc/Makefile.in
11635         M src/clean.mk
11636         R src/avr/peeph.rul
11637         R src/xa51/peeph.rul
11638         M support/cpp2/Makefile.in
11639         M support/makebin/Makefile
11640
11641
11642 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
11643
11644         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
11645
11646 2003-02-10  Borut Razem <borut.razem AT siol.net>
11647
11648         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
11649         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
11650         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
11651         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
11652         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
11653         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
11654         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
11655         src/z80/Makefile.bcc: Borland Makefile cleanup
11656         * as/z80/Makefile.bcc: Added Borland Makefile
11657         * support/cpp2/borland.h: Removed
11658
11659 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
11660
11661         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
11662         * src/SDCC.lex: new pragma NOIV
11663         * src/SDCCglobl.h: new pragma NOIV
11664         * src/SDCCmem.c: new pragma NOIV
11665
11666 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11667
11668         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
11669
11670 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11671
11672         * src/SDCCmain.c: signal handling is switched off by --debug
11673         * doc/Makefile: small fix for install; use clean.mk again
11674         * doc/clean.mk: clean *.pdf and *.html too
11675
11676 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
11677
11678         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
11679         * device/lib/printfl.c: fix a ds390 bug by making it portable
11680         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
11681         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
11682         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
11683         * debugger/mcs51/cmd.c: converted multi-line string literals
11684         * sim/ucsim/globals.cc: converted multi-line string literals
11685         * src/SDCCmain.c: introduced signal handler to remove temp files
11686         * doc/Makefile: small tweaks, implement clean
11687         * doc: removed generated files
11688
11689 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11690
11691         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
11692         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
11693         Address Record is not correctly generated for DS390."
11694
11695 2003-02-02  Borut Razem <borut.razem AT siol.net>
11696
11697         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
11698         * as/mcs51/asm.h: fixed compilation with Borland C
11699         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
11700         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
11701         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
11702         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
11703         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
11704         src/z80/Makefile.bcc: delete $(LIB) only if exist
11705         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
11706
11707 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
11708
11709         * device/include/malloc.h: introduced NULL
11710         * device/include/string.h: introduced NULL
11711         * device/include/stdlib.h: introduced NULL
11712         * device/lib/_memcpy.c: removed NULL
11713         * device/lib/_strcat.c: removed NULL
11714         * device/lib/_strchr.c: removed NULL
11715         * device/lib/_strcmp.c: removed NULL
11716         * device/lib/_strcpy.c: removed NULL
11717         * device/lib/_strcspn.c: removed NULL
11718         * device/lib/_strlen.c: removed NULL
11719         * device/lib/_strncat.c: removed NULL
11720         * device/lib/_strncmp.c: removed NULL
11721         * device/lib/_strncpy.c: removed NULL
11722         * device/lib/_strpbrk.c: removed NULL
11723         * device/lib/_strrchr.c: removed NULL
11724         * device/lib/_strspn.c: removed NULL
11725         * device/lib/_strstr.c: removed NULL
11726         * device/lib/_strtok.c: removed NULL
11727         * device/lib/malloc.c: removed NULL, include own header
11728
11729 2003-02-02    <johan AT balder>
11730
11731         * 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
11732         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
11733         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
11734         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
11735         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
11736         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
11737
11738 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11739
11740         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
11741         area 'DATA'"
11742
11743 2003-02-01    <johan AT balder>
11744
11745         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
11746
11747 2003-01-31    <johan AT CP255758-A>
11748
11749         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
11750
11751 2003-01-30    <johan AT balder>
11752
11753         * src/SDCCBBlock.c: automatic bug detection
11754         * src/SDCCicode.c: automatic bug detection
11755
11756 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11757
11758         * src/SDCCglobl.h:   now --xram-size 0 works
11759         * src/SDCCmain.c:    now --xram-size 0 works
11760
11761 2003-01-29    <johan AT balder>
11762
11763         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
11764
11765 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11766
11767         * as/mcs51/aslink.h: Added options --xram-size and --code-size
11768         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
11769         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
11770         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
11771         * src/SDCCglobl.h:   Added options --xram-size and --code-size
11772         * src/SDCCmain.c:    Added options --xram-size and --code-size
11773
11774 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
11775
11776         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
11777         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
11778
11779 2003-01-27    <johan AT balder>
11780
11781         * src/SDCC.y: fixed bug #613764
11782
11783 2003-01-26    <johan AT balder>
11784
11785         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
11786         * src/SDCCsymt.h: fixed bug #673374
11787         * src/SDCCglue.c: fixed bug #661910
11788         * src/SDCCast.c: fixed bug #458099 and 673374
11789
11790 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
11791
11792         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
11793         * as/mcs51/strcmpi.h: added
11794         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
11795         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
11796         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
11797         * as/mcs51/assym.c: strcmpi -> as_strcmpi
11798         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
11799         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
11800         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
11801         * as/mcs51/Makefile.aslink: new module strcmpi
11802         * as/mcs51/Makefile.asx8051: new module strcmpi
11803         * as/mcs51/Makefil.bcc: new module strcmpi
11804         * as/mcs51/Makefile.in: new module strcmpi
11805         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
11806
11807 2003-01-26    <johan AT balder>
11808
11809         * src/SDCCglue.c: reverted back to 1.124
11810         * src/SDCCast.c: reverted back to 1.156
11811         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
11812
11813 2003-01-25    <johan AT balder>
11814
11815         * src/SDCCglue.c: A better fix for bug #661910
11816         * src/SDCCast.c: A better fix for bug #661910
11817         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
11818
11819 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11820
11821         * src/Makefile.in: remove spawn.o
11822         * src/SDCCmain.c: remove spawn.h
11823         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
11824         * src/spawn.c: removed
11825         * src/spawn.h: removed
11826         * support/regression/ports/ds390/spec.mk: link with -r
11827
11828 2003-01-24    <johan AT CP255758-A>
11829
11830         * src/ds390/gen.c (aopOp): fixed bug #667458
11831         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
11832         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
11833         (createIvalCharPtr): an ival doesn't always have a storage class anymore
11834
11835 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11836
11837         * src/mcs51/peeph.def: better assembler identation by Frieder
11838         * src/mcs51/gen.c: better assembler identation by Frieder
11839
11840 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
11841
11842         * as/z80/string.h: removed for gcc 3.2
11843         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
11844         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
11845
11846 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11847
11848         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
11849         * src/SDCCpeeph.c (replaceRule): fix bug #663503
11850         * support/regression/Makefile: separate temp files for ports
11851         * support/regression/generate-cases.py: separate temp files for ports
11852         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11853         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11854
11855 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11856
11857         * moved tinitalk to device/examples/ds390
11858
11859 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
11860
11861         * as/mcs51/lkmem.c: rflag is for DS390
11862         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
11863         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
11864                          (linkEdit): move mem- and map-files the same way as ihx-files
11865         * src/z80/main.c (_setDefaultOptions): removed --generic
11866         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
11867         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
11868         * src/pic/glue.c (picglue): --c1mode works again
11869         * src/pic16/glue.c (pic16glue): --c1mode works again
11870         * src/asm.c (printCLine): fix #660034
11871
11872 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
11873
11874         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
11875         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
11876         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
11877         * as/mcs51/lkmem (summary): better fix for sp problem
11878         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
11879         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
11880         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
11881                                               remove --stack-after-data
11882
11883 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
11884
11885         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
11886         * src/SDCCutil.c (join): ugly bug: missing '\0'
11887         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
11888
11889 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11890
11891         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
11892         * src/port.h: typo
11893         * src/pic/main.c (_asmCmd): gpasm supports -o
11894         * src/z80/main.c: more general macros
11895         * device/lib/Makefile.in: remove intermediate files
11896
11897 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11898
11899         * .version: Bumped version number to 2.3.3
11900         * src/SDCCBBlock.c: new option -o
11901         * src/SDCCglobl.h: new option -o
11902         * src/SDCCglue.c: new option -o
11903         * src/SDCCmain.c: new option -o
11904         * src/asm.c: new option -o
11905         * src/ds390/main.c: new option -o
11906         * src/pic/glue.c: new option -o
11907         * src/pic/pcode.c: new option -o
11908         * src/pic/ralloc.c: new option -o
11909         * src/pic16/glue.c: new option -o
11910         * src/pic16/pcode.c: new option -o
11911         * src/pic16/ralloc.c: new option -o
11912         * src/z80/main.c: new option -o
11913         * device/lib/Makefile.in: use -o
11914         * support/regression/ports/ds390/spec.mk: use -o
11915         * support/regression/ports/gbz80/spec.mk: use -o
11916         * support/regression/ports/mcs51/spec.mk: use -o
11917         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
11918         * support/regression/ports/z80/spec.mk: use -o
11919         * support/regression/ports/ucz80/spec.mk: use -o
11920         * support/regression/ports/xa51/spec.mk: use -o
11921         * support/regression/fwk/lib/timeout.c: fix usage string
11922
11923 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
11924         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
11925
11926 2003-01-07    <johan AT balder>
11927
11928         * src/SDCCast.c (decorateType): fixed bug #600035
11929
11930 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
11931         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
11932         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
11933         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
11934         * src/pic/pcode.c: outcommented unused variable to remove warnings
11935         * src/pic/ralloc.c: outcommented unused variable to remove warnings
11936
11937 2003-01-06    <karl AT turbobit.com>
11938         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
11939    regression tests.
11940
11941 2003-01-06    <johan AT balder>
11942
11943         * src/SDCCicode.c: fixed array add
11944
11945 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
11946         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
11947         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
11948
11949 2003-01-04    <johan AT balder>
11950
11951         * src/SDCCval.c (getNelements): fixed the initialized array of structures
11952
11953 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11954         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
11955
11956 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11957         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
11958         * support/regression/tests/bug-524697.c: fit mem usage into 8032
11959
11960 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11961         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
11962
11963 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
11964         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
11965
11966 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
11967         * src/mcs51/main.c: removed {bindir}{sep} from aslink
11968
11969 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11970
11971     * in /sdcc/as/mcs51/ changed these files in order to create an
11972     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
11973     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
11974     following files to include the previous two files: aslink.dsp,
11975     Makefile.aslink, Makefile.bcc, and Makefile.in.
11976
11977     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
11978     .adb instead of .cdb
11979
11980 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11981
11982         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
11983         value from option --iram-size.
11984
11985 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11986
11987         * /sdcc/as/mcs51/lklist.c: added boundary check before using
11988         dram[] array.
11989
11990 2002-09-18    <wiml AT hhhh.org>
11991
11992         * SDCClrange.h: exposed setFromRange() and setToRange()
11993         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
11994           packRegsForAccUse() (bug 542397)
11995         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
11996           multiple times and emitting the fetch operations more than once
11997           added aopGetUsesAcc() function to allow binary operators to
11998           fetch their operands in the correct order; made genMinus() emit
11999           compact code for X = LITERAL - Y
12000
12001 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12002         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
12003         sprintf() in line 1267.
12004
12005 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12006         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
12007         like ports.
12008
12009 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
12010         Changes to aslink (All the changes are marked with 'JCF'):
12011
12012         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
12013         summary().
12014
12015         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
12016         area BSEG.  Also moves, if possible, the DATA area down into the internal
12017         ram so more space is available.
12018
12019         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
12020         sflag.
12021
12022         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
12023         not bytes.  Function summary() which creates a memory usage summary
12024         file with extension .mem.  Reports of overlaping stack and small stack
12025         size.  If the space for the stack is less than 16 bytes aslink trows a
12026         warning.
12027
12028         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
12029         the 8051.  Option 'y' for memory summary output file.
12030
12031         Changes to sdcc (All the changes are marked with 'JCF'):
12032
12033         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
12034
12035         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
12036         overlaying area for it (uses RegBankUsed[4]).
12037
12038         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
12039         bank zero as used by default.  By default aslink locates the stack
12040         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
12041         the creation of the .mem file.  Delegates the allocation of data area
12042         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
12043         the begining of the stack area to aslink.
12044
12045         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
12046         glue() in SDCCglue.c creates an area for it.
12047
12048 2002-09-03  Borut Razem <borut.razem AT siol.net>
12049         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
12050         sdcc/src/pic/glue.c:
12051         introduced atexit() handler for teporay files removal in case of
12052         errors, assertions, ...
12053
12054 2002-08-29  Borut Razem <borut.razem AT siol.net>
12055         * sdcc/support/cpp2/auto-host_vc_in.h:
12056         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
12057         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
12058         Maybe there is a similar problem with BORLANDC? It should be checked!
12059
12060         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
12061         corrected improper use of assert: the assignment to clr variable was done inside the assert.
12062         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
12063         was not executed, and the compiler (cl) launched a warning:
12064         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
12065
12066 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
12067         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
12068
12069 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
12070         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
12071
12072         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
12073           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
12074           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
12075           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
12076           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
12077           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
12078           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
12079         - added Release configuration in VS projects
12080         - review of compiler an linker options
12081         - VC .exe files are generated in bin_vc directory, not to interfere
12082           with binaries generated from other projects (cygwin, mingw, bcc ...)
12083
12084         * sdcc/src/yacc.dsp: added
12085
12086         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
12087         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
12088         and insert the version number definitions from .version
12089
12090         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
12091
12092         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
12093         added - genarate auto-host.h using auto-host_vc_in.h as template
12094
12095         * sdcc/sdcc_vc.h,
12096         removed from CVS, generated automatically
12097
12098 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
12099         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
12100
12101 2002-08-11  Borut Razem <borut.razem AT siol.net>
12102         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
12103
12104 2002-08-10  Borut Razem <borut.razem AT siol.net>
12105         * src/SDCCmain.c (main):
12106         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
12107         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
12108         The consequence was that some temporary files were not removed.
12109
12110         * src/SDCCglue.c:
12111         unification of code in functions tempfilename() and tempfile():
12112         function tempnam() is defined in Visual Studio 6.0 and .NET
12113
12114         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
12115
12116         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
12117           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
12118         - removed compiler command line option /WX: Treats all warnings as errors
12119         - update a list of source files, included into the project
12120
12121         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
12122           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
12123         changed project type to Generic Project so that can be correcly converted to VS.NET project
12124
12125         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
12126
12127         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
12128
12129         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
12130
12131         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
12132         added return 0 statements after assert() to make compiler happy
12133
12134         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
12135         added newline in the def file to keep MSC compiler satisfied
12136
12137         * sdcc/src/z80/gen.c:
12138         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
12139           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
12140         - solved MSC error in function aopDump()
12141
12142         * sdcc_vc.h: define PREFIX as "\\sdcc"
12143
12144 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
12145         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
12146
12147 2002-06-22  Scott Dattalo <scott AT dattalo.com>
12148         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
12149         - Rewrote the register banking algorithm.
12150         - Added pCode live-range analysis to registers (for now, only non-used and
12151         singly-used registers optimized away)
12152
12153         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
12154
12155         * 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.
12156
12157 2002-05-10  Scott Dattalo <scott AT dattalo.com>
12158         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
12159
12160 2002-04-22  Michael Hope  <michaelh AT vroom>
12161
12162         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
12163
12164         * configure.in (DD_COPT): Added include support required for gbdk.
12165
12166         * .version: Bumped version number just to increase it.
12167
12168         * src/SDCCmain.c: Added -nostdinc to the default options.
12169
12170 2002-04-15  Michael Hope  <michaelh AT vroom>
12171
12172         * device/lib/z80/printf.c (sprintf): Added.
12173
12174         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
12175
12176         * src/z80/peeph.def: Added transpose redundent load rule.
12177
12178         * src/z80/main.c: Added force callee saves for jaune.
12179
12180         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
12181
12182         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
12183
12184 2002-03-28  Johan Knol  <johan AT balder>
12185
12186         * src/SDCCval.c: fixed bug #532436
12187
12188 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12189         * /src/port.h:
12190         Added "char *Processor" field to the port structure.
12191
12192         * /src/SDCCmain.c:
12193         Added -p option. Allows port dependent processor to be specified.
12194
12195         * all ports:
12196         Initialized the new field char *Processor field to NULL in all ports
12197
12198         * /src/pic/*:
12199         Compiler generated registers for interrupt context saving
12200         were not getting allocated.
12201
12202 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
12203
12204         * /src/SDCCast.c:
12205         Fixed left shift. Will promote the left side of a left shift
12206         if a) left shifting more than size of operand or b) when assigned
12207         to something size > size of left side
12208
12209 2002-03-14  Scott Dattalo <scott AT dattalo.com>
12210         * src/pic/*
12211         tons of changes. Register allocation has been
12212         rewritten. Added customization for the various PICs. Flow
12213         analysis is restructured. ...
12214
12215         * src/pic/device.h:
12216         Added
12217
12218         * src/pic/device.c:
12219         Added. device.c is a PIC port hack to accomodate variations
12220         in PIC devices.
12221
12222 2002-03-13  Michael Hope  <michaelh AT vroom>
12223
12224         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
12225
12226 2002-03-04  johanknol  <johanknol AT manik>
12227
12228         * /src/SDCCval.c: fixed
12229
12230         const unsigned char arr[][2] = { { 0, 1 } };
12231         t18.c:1: error: Initializer element is not constant
12232
12233 2002-03-04  bela  <bela AT manik>
12234
12235         * /device/include/mcs51reg.h:
12236         ds89c420 register definition update
12237
12238 2002-03-03    <johan AT FRIJA>
12239
12240         * support/Util/SDCCerr.c: did something, but don't no why anymore
12241
12242         * support/regression/tests/bug-524691.c: made it a little less shy
12243
12244         * src/SDCCast.c (decorateType): fixed bug #524697
12245
12246         * src/SDCCast.c: made some lineno improvements
12247
12248         * src/SDCCval.c (getNelements): changed warning to error
12249
12250         * src/SDCCglue.c (printIvalArray): changed warning to error
12251
12252         * src/SDCCicode.c: fixed a warning for mingw
12253
12254         * src/SDCCast.c (decorateType): fixed the << promotion for ops
12255
12256         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
12257
12258 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
12259
12260         * src/ds390/peeph.def:
12261         Added some more peephole rules
12262
12263         * src/ds390/gen.c: Various fixes & enhancements
12264
12265         * src/SDCClrange.c, src/SDCClrange.h:
12266         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
12267
12268         * src/ds390/ralloc.c:
12269         various fixes & enhancements (ds390) specific
12270
12271         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
12272         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
12273         from rallocs.
12274
12275         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
12276
12277 2002-03-02    <johan AT FRIJA>
12278
12279         * src/SDCCast.c (decorateType): fixed bug #524708
12280
12281         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
12282
12283         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
12284
12285 2002-03-01  Michael Hope  <michaelh AT vroom>
12286
12287         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
12288
12289         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
12290
12291 2002-03-01    <johan AT FRIJA>
12292
12293         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
12294
12295         * src/SDCCast.c (decorateType): fixed bug #524209
12296
12297         * src/SDCCval.c (valNot): fixed bug #524195
12298
12299 2002-02-26    <johan AT balder>
12300
12301         * src/xa51/gen.c: fixed a warning
12302
12303         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
12304
12305         * src/SDCCast.c (decorateType): fixed bug #522534
12306
12307 2002-02-23    <johan AT balder>
12308
12309         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
12310
12311 2002-02-22    <johan AT balder>
12312
12313         * src/SDCCast.c: fixed bug #514865
12314
12315         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
12316
12317 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
12318
12319         * sdcc/src/SDCCloop.c:
12320         Previous fix was not good. basic blocks that have "break" or "return" are
12321         not really partof a loop , but live ranges used in these blocks should
12322         be live thru the entire loop, so set partOfLoop but don't add them to
12323         loop region
12324
12325 2002-02-21    <johan AT FRIJA>
12326
12327         * src/SDCCcse.c: fixed bug #514308
12328
12329 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
12330
12331         * src/SDCCloop.c:
12332         Fixed BUG #519583. If a conditional block ended in a return/break
12333         statement inside a loop, it was not being considered part of the loop.
12334
12335         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
12336
12337 2002-02-10  Karl Bongers <karl AT turbobit.com>
12338
12339         * debugger/*:
12340         Fixed up SDCDB debugger somewhat.  Updated debugger/README
12341         with lots of comments and notes.
12342
12343         * device/examples/test2.c:
12344         Fix bug, "red" variable not being initialized(compiler complained).
12345
12346         * device/examples/Makefile, examples/test3.c:
12347         Add Makefile in device/examples folder, compiles test3.c
12348         for use as a multiple module SDCDB test case.
12349
12350         * sim/ucsim/cmd.src/cmdset.cc:
12351         Took out debug printfs in ucsim "next" command.
12352
12353         * sim/ucsim/xa.src:
12354         Karl and Johan start ucsim XA support.  Most dissassembly working,
12355         about 75% emulation done(plenty of work remaining).
12356
12357         * sim/ucsim/z80.src:
12358         Add Z80 support to ucsim, add test-ucz80 regression test,
12359         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
12360         Notice z80 compiler fails on examples/test3.c/crc code.
12361
12362 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
12363
12364         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
12365         Added support for --parms-in-bank1
12366
12367         * src/ds390/peeph.def:
12368         added a few more peephole optimzations
12369
12370         * src/ds390/main.c:
12371         1) added __builtin_inp & __builtin_outp used to read in data of given length
12372            from a memory mapped port
12373         2) added __builtin_memcmp
12374         3) added __builtin_swapw swap bytes of a short
12375
12376         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
12377         1) handle multiple send & receives from register bank1
12378         2) ralloc can now allocate DPTR1 to some liveRanges
12379
12380         * src/SDCCsymt.c, src/SDCCsymt.h:
12381         changes to handle multiple sends & receives
12382
12383         * src/SDCCptropt.h:
12384         added some pointer arithmetic optimization
12385
12386         * src/SDCCptropt.c:
12387         added some pointer arithmetic optimizations but not stable yet so not
12388         called from anywhere (will get this working shortly)
12389
12390         * src/SDCCopt.c: fixed for multiple sends & receives
12391
12392         * src/SDCCmain.c:
12393         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
12394         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
12395            set preprocessor defines (depending on options)
12396
12397         * src/SDCCicode.c, src/SDCCicode.h:
12398         changes made to handle multiple sends & receives
12399
12400         * src/SDCCglobl.h:
12401         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
12402
12403         * src/SDCCcse.c, src/SDCCcse.h:
12404         added function findbackward def (to be used in upcoming optimization)
12405
12406         * src/SDCCcflow.c, src/SDCCcflow.h:
12407         added function returnAtEnd - to determine if a basic block terminates with
12408         a RETURN iCode
12409
12410         * src/SDCCast.c, src/SDCCast.h:
12411         added option parms-in-bank1
12412
12413         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
12414         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
12415         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
12416         adjusted for --parms-in-bank1 option
12417
12418         * device/include/string.h:
12419         donot redefine "reentrant" keyword
12420
12421         * device/include/ds80c390.h: Added some more SFRs
12422
12423 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
12424
12425         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
12426
12427 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
12428
12429         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
12430
12431 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
12432
12433         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
12434
12435 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
12436
12437         * Added --xram-movc option
12438
12439 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
12440
12441         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
12442
12443 2002-01-11  Johan Knol
12444
12445         * Added math lib of Jesus Calvino-Fraga
12446
12447 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
12448
12449         * src/SDCCmain.c (processFile): fix processing of ../../src.c
12450         * support/regression/Makefile: new target test-mcs51-stack-auto
12451         * support/regression/ports/mcs51-stack-auto/spec.mk: added
12452
12453 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
12454
12455         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
12456
12457 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
12458
12459         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
12460
12461 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
12462
12463         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
12464
12465         * src/SDCCglue.h: add definition for printIvalChar()
12466
12467 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
12468
12469         * src/SDCCast.c: fix #498138 by Johan
12470
12471         * src/SDCCglue.c: fix #498138 by Johan
12472
12473 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
12474
12475         * support/regression/Makefile: fix clean
12476
12477         * support/regression/ports/ds390/support.c: fix transmission of last character
12478
12479 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
12480
12481         * /sdcc/src/ds390/gen.c:
12482         a) improved computing address of stack variable
12483         b) took out some #if 0 code
12484         c) improved parmBytes adjustment
12485         d) improved genPlusIncr & genMinusIncr
12486         e) genCmp could generate bad code (when left assigned to DPTR)
12487         f) Fixed bug in hasInc
12488
12489         * /sdcc/src/ds390/ralloc.c:
12490         a) packRegsForSupport could mess up live information (Fixed)
12491         b) packRegsDPTRuse could be incorrect for left & right shift
12492
12493         * /sdcc/src/mcs51/ralloc.c:
12494         packRegsForSupport could mess up the live information (Fixed)
12495
12496         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
12497
12498         * /sdcc/src/SDCCast.c:
12499         can reverse a loop even if function call is present as long
12500         as the loop control variable is local & is not passed as parameter
12501
12502 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12503
12504         * /sdcc/ChangeLog: *** empty log message ***
12505
12506         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
12507         More builtin function additions for TININative
12508
12509         * /sdcc/src/ds390/ralloc.c:
12510         Had broken the regression testsuite
12511
12512         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
12513
12514         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
12515         Added funcattr hasStackParms will be set for reentrant functions when there
12516         are paramteres on the stack, this helps in minimizing frame pointer generation
12517         typeFromStr can handle function pointers now
12518
12519         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
12520         *** empty log message ***
12521
12522 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12523
12524         * /src/ds390/gen.c, /src/ds390/main.c:
12525         More builtin function additions for TININative
12526
12527         * /src/ds390/ralloc.c:
12528         Had broken the regression testsuite
12529
12530         * /src/SDCCast.c: Fixed a bug in dumptree
12531
12532         * /src/SDCCsymt.c, /src/SDCCsymt.h:
12533         Added funcattr hasStackParms will be set for reentrant functions when there
12534         are paramteres on the stack, this helps in minimizing frame pointer generation
12535         typeFromStr can handle function pointers now
12536
12537         * /doc/builtins.txt, /doc/TININative.txt:
12538         *** empty log message ***
12539
12540
12541 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12542
12543         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
12544         ALPHA version for -mTININative
12545
12546         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
12547         updated to reflect changes in the port structure
12548
12549         * /src/port.h:
12550         added function do_assemble (similar to do_link) if non-null this function
12551         will be called to do assembly (-mTININative) requires a multi command
12552         assembly
12553         added function genAssemblerEnd will be called to generate assembler Epilogue
12554
12555         * /src/SDCCsymt.c:
12556         added _JavaNative to debug info printing
12557
12558         * /src/SDCCmain.c: added option --tini-libid
12559         added port->do_assemble function (-mTININative) has a multi command assemble
12560
12561         * /src/SDCCglue.c: Disabled "constExpr" check
12562         added port->genAssemblerEnd function
12563
12564         * /src/SDCCglobl.h: Added option --tini-libid value
12565
12566         * /src/SDCCast.h:
12567         tookout optimizeCompare from the header (has no external references)
12568
12569         * /src/SDCCast.c: made one more function "static"
12570
12571 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
12572
12573         * src/z80/mappings.i: Added z80asm support.
12574
12575         * src/z80/main.c: Added z80asm support on --asm=z80asm
12576
12577         * src/z80/gen.c: Fixed asm portability issues.
12578
12579         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
12580
12581         * src/SDCCglue.c (printExterns): Added global/extern split.
12582
12583 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
12584
12585         * support/regression/Makefile: added test for mcs51 model large
12586
12587         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
12588
12589         * support/regression/ports/gbz80/spec.mk: added -mgbz80
12590
12591 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
12592
12593         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
12594
12595 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
12596
12597         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
12598
12599         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
12600
12601 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
12602
12603         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
12604
12605         * support/regression/tests/simplefloat.c: Port to mcs51.
12606
12607 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
12608         * support/regression/tests/bug-485362.c: Added.
12609
12610         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
12611
12612         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
12613
12614         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
12615
12616         * src/z80/gen.c (aopDump): Added a dump function.
12617
12618 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
12619         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
12620
12621         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
12622
12623         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
12624
12625         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
12626
12627         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
12628
12629         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
12630
12631         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
12632
12633         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
12634
12635         * support/regression/ports/ds390/support.c: Use tinibios.
12636
12637         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
12638
12639 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
12640
12641         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
12642         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
12643
12644         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
12645
12646         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
12647
12648 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
12649
12650         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
12651
12652         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
12653         (packRegsForIYUse): Created and optimised.
12654
12655 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12656
12657         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
12658 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
12659
12660         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
12661
12662         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
12663
12664         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
12665
12666 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12667
12668         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
12669
12670         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
12671
12672 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12673
12674         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
12675
12676         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
12677
12678         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
12679
12680 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12681
12682         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
12683         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
12684         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
12685
12686         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
12687
12688         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
12689         (genNotFloat): Added.
12690         (genUminusFloat): Added.
12691
12692         * device/lib/z80/Makefile: Added floating pt stubs.
12693
12694         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
12695
12696         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
12697
12698         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
12699
12700 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12701
12702         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
12703
12704         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
12705
12706         * sdcc/support/regression/Makefile: Add port ds390.
12707
12708         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
12709
12710         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
12711
12712         * sdcc/support/regression/ports/ds390/spec.mk: Added.
12713
12714         * sdcc/support/regression/ports/ds390/support.c: Added.
12715
12716         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
12717
12718         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
12719
12720         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
12721
12722 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12723
12724         * device/include/malloc.h: Added z80 and gbz80 support.
12725
12726         * device/lib/gbz80/heap.s: Added.
12727
12728         * device/lib/z80/heap.s: Added.
12729
12730         * device/lib/malloc.c: Added z80 and gbz80 support.
12731
12732         * support/regression/tests/malloc.c (testMalloc): Added.
12733
12734         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
12735
12736         * support/regression/tests/bug-478094.c: Added.
12737
12738         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
12739
12740 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
12741
12742         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
12743
12744         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
12745
12746         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
12747
12748         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
12749
12750         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
12751
12752 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12753
12754         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
12755
12756 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
12757
12758         * support/regression/tests/bug-477927.c: Added.
12759
12760         * src/z80/peeph.def: Added minor rules.
12761
12762         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
12763
12764         * src/z80/peeph.def: Added jump optimisation modification.
12765
12766 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
12767
12768         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
12769
12770 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
12771
12772         * support/regression/tests/funptrs.c: Added.
12773
12774 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
12775
12776         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
12777
12778 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
12779
12780         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
12781
12782         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
12783
12784         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
12785         (movLeft2ResultLong): Created.
12786
12787         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
12788         (joinPushes): Added.  Joins two char pushes into a word push.
12789
12790 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
12791
12792         * support/cpp2/Makefile.in (install): Added creation of dest dir.
12793
12794         * support/makebin/Makefile (install): Added creation of dest dir.
12795
12796 2001-10-24 Karl Bongers <karl AT turbobit.com>
12797
12798         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
12799
12800 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
12801
12802         * src/z80/ralloc.c: Turned off faulty pack for one use.
12803
12804         * src/z80/peeph-gbz80.def: Removed redundent restart options.
12805
12806         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
12807
12808 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
12809
12810         * support/regression/Makefile: Improved clean
12811
12812         * support/regression/ports/gbz80/spec.mk: Added clean
12813
12814         * support/regression/ports/host/spec.mk: Added clean
12815
12816         * support/regression/ports/z80/spec.mk: Added clean
12817
12818         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
12819
12820         * support/regression/ports/mcs51/timeout.c: little improvements
12821
12822 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
12823
12824         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
12825
12826         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
12827
12828         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
12829
12830 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
12831
12832         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
12833
12834         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
12835
12836 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
12837         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
12838
12839         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
12840
12841         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
12842
12843         * src/mcs51/main.c (_linkCmd): Added bin path to command.
12844
12845         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
12846
12847         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
12848
12849         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
12850
12851         * support/regression/tests/longor.c: Added.
12852
12853 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
12854
12855         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
12856
12857         * as/mcs51/aslink.h: define PATH_MAX
12858
12859         * as/mcs51/asm.h: define PATH_MAX
12860
12861         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
12862
12863         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
12864
12865         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
12866
12867         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
12868
12869         * src/SDCCglobl.h: define PATH_MAX
12870
12871         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
12872
12873         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
12874
12875 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
12876
12877         * src/z80/gen.c (gencjneshort): Fixed
12878
12879         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
12880
12881 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
12882
12883         * support/regression/tests/bug-469671.c: Added.
12884
12885         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
12886
12887 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
12888
12889         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
12890
12891         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
12892
12893 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
12894
12895         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
12896
12897         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
12898
12899         * src/device/lib/_mullong.c : removed hint: nooverlay bug
12900
12901         * src/device/lib/_divuint.c : removed hint: nooverlay bug
12902
12903         * src/device/lib/_divulong.c: removed hint: nooverlay bug
12904
12905         * src/device/lib/_moduint.c : removed hint: nooverlay bug
12906
12907         * src/device/lib/_modulong.c: removed hint: nooverlay bug
12908
12909 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
12910
12911         * 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.
12912
12913         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
12914
12915         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
12916
12917 2001-10-07    <johan AT FRIJA>
12918
12919         * device/lib/gets.c (gets): fixed the return value.
12920
12921 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
12922         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
12923
12924         * 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.
12925
12926         * 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.
12927
12928         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
12929
12930         * src/pic/gen.c: Removed Safe_strdup.
12931
12932         * configure.in: Added option to enable libgc support.
12933
12934         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
12935         (bitVectUnion): Optimised.
12936         (bitVectIntersect): Optimised.
12937         (bitVectBitsInCommon): Optimised.
12938         (bitVectCplAnd): Optimised.
12939
12940         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
12941
12942 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12943
12944         * src/SDCCmain.c: distinguish between assembler debug and plain options
12945
12946         * src/avr/main.c:   remove standard assembler options
12947
12948         * src/ds390/main.c: remove standard assembler options
12949
12950         * src/mcs51/main.c: remove standard assembler options
12951
12952         * src/port.h: removed "PENDING" comment
12953
12954 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12955
12956         * src/device/lib/_mulint.c  : new, with assember functions
12957
12958         * src/device/lib/_mullong.c : new, with assember functions
12959
12960         * src/device/lib/_divuint.c : with assember functions
12961
12962         * src/device/lib/_divsint.c : with assember functions
12963
12964         * src/device/lib/_divulong.c: with assember functions
12965
12966         * src/device/lib/_divslong.c: with assember functions
12967
12968         * src/device/lib/_moduint.c : with assember functions
12969
12970         * src/device/lib/_modsint.c : with assember functions
12971
12972         * src/device/lib/_modulong.c: with assember functions
12973
12974         * src/device/lib/_modslong.c: with assember functions
12975
12976         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
12977
12978         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
12979
12980         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
12981                                       replaced _mululong.c and _mulslong.c by _mullong.c
12982
12983 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12984
12985         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
12986
12987 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12988
12989         * src/SDCCglue.c: test, if win32api is available for MINGW
12990
12991 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12992
12993         * src/SDCCsymt.c: no more _modifier in printTypeChain()
12994         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
12995         * support/regression/ports/gbz80/spec.mk: removed GENERIC
12996         * support/regression/ports/host/spec.mk: removed GENERIC
12997         * support/regression/ports/mcs51/spec.mk: removed GENERIC
12998         * support/regression/ports/z80/spec.mk: removed GENERIC
12999
13000 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
13001
13002         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
13003
13004         * support/regression/tests/bug-467035.c: Created.
13005
13006 2001-10-01    <johan AT FRIJA>
13007
13008         * src/SDCC.y: fixed bug #466586 part 1
13009
13010 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
13011
13012         * SDCCicode.c: z80 has no generic pointers
13013         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
13014
13015 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
13016
13017         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
13018
13019 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
13020
13021         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
13022
13023         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
13024
13025 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
13026
13027         * configure.in: Fixed up so that ucsim is only configured once.
13028
13029         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
13030
13031         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
13032         (getPathDifference): As above.
13033
13034         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
13035
13036         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
13037
13038 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
13039         * .version: Updated to 2.3.1
13040
13041         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
13042         Added copyright header.
13043
13044         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
13045         (assemble): Added support for macro based assembler commands.
13046         (linkEdit): Added support for macro based linker commands.
13047         (preProcess): Changed the pre-processor to use macros.
13048         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
13049         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
13050
13051         * device/lib/z80/crt0.s: Added module name for debugging.
13052
13053 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
13054
13055         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
13056
13057         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
13058
13059         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
13060
13061         * src/Makefile.in: Added SDCCmacro and SDCCutil
13062
13063 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
13064
13065         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
13066
13067 2001-09-16    <johan AT FRIJA>
13068
13069         * 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.
13070
13071 2001-09-15    <johan AT FRIJA>
13072
13073         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
13074         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
13075
13076 2001-09-11    <johan AT FRIJA>
13077
13078         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
13079
13080 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
13081
13082         * support/regression/tests/bug-460444.c: Added test case.
13083
13084         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
13085         (genCast): Added justification for all of the asserts.
13086
13087 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
13088
13089         * support/regression/support.c: _xdata replaced by xdata
13090
13091         * support/regression/spec.mk: removed _generic
13092
13093 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
13094
13095         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
13096
13097         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
13098         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
13099
13100         * src/z80/peeph.def: Added a rule to optimise shift then compare.
13101
13102         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
13103
13104         * support/regression/tests/bug-460010.c: Added test case.
13105
13106         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
13107
13108 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
13109
13110         * support/regression/Makefile: inter-port-clean adjusted for mcs51
13111
13112         * support/regression/testfwk.c: removed workaround for bug #436344
13113
13114         * support/regression/tests/bp.c: use less memory with mcs51
13115
13116         * support/regression/tests/bug-441448.c: use less memory
13117
13118         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
13119
13120         * support/regression/collate-results.py: typo
13121
13122 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
13123
13124         * support/regression/tests/fetchoverlap.c: Added new test case.
13125
13126         * support/regression/tests/bp.c: Added new test case.
13127
13128         * support/regression/tests/bug-448984.c: Added new test case.
13129
13130         * support/regression/tests/pow2shifts.c: Added new test case.
13131
13132         * src/z80/gen.c: Turned off the noise it normally generates for the release.
13133         (genlshTwo): Fixed right shift for count > 8.
13134
13135         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
13136
13137 2001-09-08    <johan AT FRIJA>
13138
13139         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
13140
13141 2001-09-07    <johan AT FRIJA>
13142
13143         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
13144
13145         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
13146
13147 2001-09-06    <johan AT FRIJA>
13148
13149         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
13150         * bernhard noted me at this: "() equals to (void)" (1.38)
13151
13152 2001-09-05    <johan AT FRIJA>
13153
13154         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
13155
13156 2001-09-04    <johan AT FRIJA>
13157
13158         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
13159
13160
13161 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
13162
13163         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
13164
13165 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
13166
13167         * link/z80/aslink.h: Fixed path for PATH_MAX
13168
13169 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
13170
13171         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
13172
13173         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
13174
13175         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
13176
13177         * 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.
13178
13179 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
13180
13181         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
13182         (genCmp): Fixed up genCmp for the GB with longs.
13183
13184         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
13185
13186         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
13187
13188         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
13189
13190         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
13191
13192 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
13193
13194         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
13195
13196 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
13197
13198         * 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.
13199
13200         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
13201
13202 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
13203
13204         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
13205
13206         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
13207
13208 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
13209
13210   * sim/ucsim/configure:    little improvement of Cygwin-detection
13211   * sim/ucsim/configure.in: little improvement of Cygwin-detection
13212   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
13213   * support/regression/tests/bug-221100.c: small changes for mcs51
13214   * support/regression/tests/bug-221168.c: small changes for mcs51
13215   * support/regression/tests/bug-227710.c: small changes for mcs51
13216   * support/regression/tests/staticinit.c: small changes for mcs51
13217   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
13218   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13219   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
13220
13221 $Revision$