f4154efc8508eb3cc0ed0eed1de457f77d9bf365
[fw/sdcc] / ChangeLog
1 2006-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * as/link/aslink.h,
4         * as/link/mcs51/lkihx.c (newArea),
5         * as/link/mcs51/lkrloc.c: renamed newArea() to ihxNewArea()
6         * as/link/mcs51/lkihx.c (ihx): output reset vector as start address
7
8 2006-11-11 Raphael Neider <rneider AT web.de>
9
10         * src/pic/pcode.c (newpCodeOpBit): search SymbolTab for referenced
11           bitfield symbols, fixes #1579535 (once more...).
12
13 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
14
15         * support/regression/generate-cases.py,
16         * support/regression/fwk/include/testfwk.h,
17         * support/regression/fwk/lib/testfwk.c: used code pointers,
18           (about 50kByte less code generated for mcs51)
19
20 2006-11-06 Borut Razem <borut.razem AT siol.net>
21
22         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
23           debugger/mcs51/configure: fixed failed check because the function
24           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
25           who submitted the patch for gpsim.
26         * debugger/mcs51/configure.in: removed the result message
27         * debugger/mcs51/Makefile.in: fixed the config.status warning
28           "... seems to ignore the --datarootdir setting"
29
30 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
31
32         * device/include/mcs51/c8051f020.h,
33         * device/include/mcs51/c8051f040.h,
34         * device/include/mcs51/c8051f060.h,
35         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
36         * src/z80/gen.c (gencjneshort),
37         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
38
39 2006-10-31 Borut Razem <borut.razem AT siol.net>
40
41         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
42           debugger/mcs51/configure: get readline version
43
44 2006-10-30 Borut Razem <borut.razem AT siol.net>
45
46         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
47         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
48           debugger/mcs51/configure: locate readline even when cross compiling
49         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
50
51 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
52
53         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
54           serial port.
55
56 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
57
58         * device/include/malloc.h,
59         * device/lib/calloc.c,
60         * device/lib/free.c,
61         * device/lib/malloc.c,
62         * device/lib/realloc.c: moved definition of struct into sources
63         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
64
65 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
66
67         * as/asx8051.dsp: corrected output directories
68         * as/link/hc08: new directory for hc08 linker
69         * as/hc08/aslink.h,             as/link/aslink.h,
70         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
71         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
72         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
73         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
74         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
75         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
76         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
77         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
78         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
79         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
80         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
81         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
82         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
83         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
84         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
85         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
86         * as/link/hc08/conf.mk,
87         * configure,
88         * configure.in,
89         * Makefile.in,
90         * sdcc.dsw: moved hc08 linker to as/link/hc08
91         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
92         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
93         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
94         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
95         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
96         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
97         * as/link/mcs51/aslink.dsp,
98         * as/link/mcs51/Makefile.in: factored out the common files
99         * as/hc08/lkstore.c: deleted, use the one already in as/link/
100         * as/clean.mk: extra cleaning common files
101         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
102         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
103         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
104
105 2006-10-29 Raphael Neider <rneider AT web.de>
106
107         * src/pic/ralloc.c (newReg): create aliases for registers with
108           multiple names to fix #1579535 and #1584001,
109           (regWithIdx,dirregWithName): resolve aliases on lookup
110         * src/pic/pcode.c (DoBankSelect): die with error message on failing
111           bankselect
112         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
113           to prevent build errors on small devices
114
115 2006-10-28 Raphael Neider <rneider AT web.de>
116
117         * src/pic/gen.c (genFunction,genCall): drop "same code page"
118           assumption within interrupt handlers, fixes #1584940
119         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
120           "emitted" to avoid emitting them again in udata
121
122 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
123
124         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
125         Removed.
126
127 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
128
129         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
130         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
131         on/off CR to CRLF conversion.
132
133 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
134
135         * doc/sdccman.lyx: updated IRQ section
136
137 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
138
139         * device/lib/serial_io.c: removed
140         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
141         replacements for serial_io.c
142
143 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
144
145         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
146
147 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
148
149         * device/lib/serial_io.c: Default putchar() and getchar() for
150           mcs51 uses serial port.
151
152 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
153
154         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
155
156 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
157
158         * support/regression/ports/mcs51/support.c: smaller
159         _sdcc_external_startup()
160         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
161
162 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
163
164         * device/lib/gbz80/crt0.s,
165         * device/lib/gbz80/crt0_rle.s,
166         * device/lib/gbz80/div.s,
167         * device/lib/gbz80/fstubs.s,
168         * device/lib/gbz80/heap.s,
169         * device/lib/gbz80/mul.s,
170         * device/lib/gbz80/putchar.s,
171         * device/lib/gbz80/stubs.s,
172         * device/lib/z80/crt0.s,
173         * device/lib/z80/crt0_rle.s,
174         * device/lib/z80/div.s,
175         * device/lib/z80/fstubs.s,
176         * device/lib/z80/heap.s,
177         * device/lib/z80/mul.s,
178         * device/lib/z80/putchar.s,
179         * device/lib/z80/stubs.s: reverted, I was mistaken
180
181 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
182
183         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
184         * support/regression/ports/mcs51/support.c: removed race
185         condition on TI in _putchar allowing to use serial port mode 0
186
187 2006-10-20 Borut Razem <borut.razem AT siol.net>
188
189         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
190
191 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
192
193         * device/lib/gbz80/crt0.s,
194         * device/lib/gbz80/crt0_rle.s,
195         * device/lib/gbz80/div.s,
196         * device/lib/gbz80/fstubs.s,
197         * device/lib/gbz80/heap.s,
198         * device/lib/gbz80/mul.s,
199         * device/lib/gbz80/putchar.s,
200         * device/lib/gbz80/stubs.s,
201         * device/lib/z80/crt0.s,
202         * device/lib/z80/crt0_rle.s,
203         * device/lib/z80/div.s,
204         * device/lib/z80/fstubs.s,
205         * device/lib/z80/heap.s,
206         * device/lib/z80/mul.s,
207         * device/lib/z80/putchar.s,
208         * device/lib/z80/stubs.s: removed all leading underscores from area names
209
210 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
211
212         * support/regression/ports/mcs51/support.c: use highest baudrate so the
213           regression tests are not waiting in the simulator for simulated
214           transmission of debug output
215
216 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
217
218         * device/lib/printf_large.c: slightly smaller
219         * doc/sdccman.lyx: do not use spaces within html links
220
221 2006-10-16 Borut Razem <borut.razem AT siol.net>
222
223         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
224           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
225           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
226           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
227           debugger/mcs51/configure:
228           [ 1185668 ] add gnu readline support to sdcdb - enabled
229
230 2006-10-16 Raphael Neider <rneider AT web.de>
231
232         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
233           fixes #1577882, removes close to all banking optimizations
234
235 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
236
237         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
238           variables in code memory
239         * support/regression/tests/absolute.c: added test for this
240
241 2006-10-15 Raphael Neider <rneider AT web.de>
242
243         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
244           devices,
245           (BankSelect): emit BANKSEL before touching linker-placed regs,
246           fixes #1570934
247
248 2006-10-10 Raphael Neider <rneider AT web.de>
249
250         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
251         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
252         * src/pic/main.c (_pic14_parseOptions),
253         * src/pic/main.h: mostly reverted to previous state, now use results
254             from SDCCmain.c's argument parsing
255
256 2006-10-10 Borut Razem <borut.razem AT siol.net>
257
258         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
259           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
260           [ 1185668 ] add gnu readline support to sdcdb -
261           prepared for READLINE, not enabled yet,
262           thanks to <tal.bav AT gmail.com>
263
264 2006-10-10 Raphael Neider <rneider AT web.de>
265
266         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
267         * src/pic16/devices.inc,
268         * device/include/pic16 (pic18f[24]620.h),
269         * device/include/pic18fregs.h,
270         * device/lib/pic16/pics.all,
271         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
272             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
273             Gary Plumbridge and Anton Strobl
274
275 2006-10-10 Raphael Neider <rneider AT web.de>
276
277         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
278           --stack-siz=NUM options to configure the argument passing stack
279         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
280         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
281           (pic14_getSharebankSize): obey --stack-siz=NUM,
282           (pic14_getSharebankAddress): obey --stack-loc=NUM
283
284 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
285
286         * doc/sdccman.lyx: added to the manual
287         * doc/figures/ddd_example.png: added (neither pdflatex nor
288         most browsers seem to like the .eps file)
289
290 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
291
292         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
293         to /tmp and /var/tmp acc. LSB
294         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
295         RESULT_TYPE_IFX
296         * support/regression/tests/onebyte.c: added test
297
298 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
299
300         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
301
302 2006-10-05 Borut Razem <borut.razem AT siol.net>
303
304         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
305           thanks to dfulab:
306           - sdcc.dsw: changed property eol-style to CRLF
307           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
308
309 2006-10-04 Raphael Neider <rneider AT web.de>
310
311         * device/include/pic/{pic16f84.h,pic16f84a.h},
312         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
313           from patch #1522504, thanks to Robas Teodor
314
315 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
316
317         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
318           fixes bug 1566015
319
320 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
321
322         * src/pic16/glue.c (pic16emitMaps),
323         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
324         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
325         * device/lib/pic16/libc/string/memcpypgm2ram.c,
326         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
327           Philipp Krause
328         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
329         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
330
331 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
332
333         * support/librarian/sdcclib.c: Added option -l.
334         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
335           usage totals.
336         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
337           using Windows command prompt.
338
339 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
340
341         * device/lib/libsdcc.lib: added module rand
342         * src/ds390/ralloc.c (rematStr),
343         * src/hc08/ralloc.c (rematStr),
344         * src/mcs51/ralloc.c (rematStr),
345         * src/z80/ralloc.c (rematStr): made output more consistent
346         * src/mcs51/gen.c: cosmetic changes
347
348 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
349
350         * src/port.h: added mem.cabs_name to PORT
351         * src/ds390/main.c,
352         * src/hc08/main.c,
353         * src/mcs51/main.c,
354         * src/pic16/main.c,
355         * src/pic/main.c,
356         * src/xa51/main.c,
357         * src/z80/main.c: added cabs_name initializers
358         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
359           constants
360           (emitMaps): emit absolutes in code memory into cabs_name
361         * src/SDCCmem.c,
362         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
363         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
364         * support/regression/fwk/include/testfwk.h: added define for at
365         * support/regression/tests/absolute.c: added, new
366
367 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
368
369         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
370           optimizations, see also patch 887161 by Stas Sergeev
371         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
372           to be necessary anymore,
373           (102, 103, 104, 127): renamed all occurances of bp to _bp
374
375 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
376
377         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
378           thanks Weston T. Schmidt for patch 1555221
379         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
380         * src/SDCCicode.c(geniCodeMultiply): small optimization
381
382 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
383
384         * device/include/stdlib.h: added rand prototypes
385         * device/lib/rand.c: new, added
386         * device/lib/Makefile.in: added rand.c
387         * src/z80/peeph.def,
388         * src/z80/peeph-gbz80.def,
389         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
390
391 2006-09-20 Raphael Neider <rneider AT web.de>
392
393         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
394
395 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
396
397         * as/link/aslink.h: cosmetic changes
398         * as/link/mcs51/Makefile.in,
399         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
400
401 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
402
403         * as/link/aslink.h,
404         * as/link/mcs51/aslink.h,
405         * as/link/z80/aslink.h: merged and moved to as/link/
406         * as/link/lkstore.c,
407         * as/link/mcs51/lkstore.c: moved to as/link/
408         * as/link/clean.mk: remove *.o
409         * as/link/mcs51/alloc.h: deleted
410         * as/link/mcs51/lkarea.c: added lnksect prototype
411         * as/link/mcs51/lkdata.c,
412         * as/link/mcs51/lklex.c,
413         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
414         * as/link/mcs51/lkmem.c,
415         * as/link/mcs51/lknoice.c: removed include strcmpi.h
416         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
417         * as/link/mcs51/aslink.dsp,
418         * as/link/mcs51/Makefile.aslink,
419         * as/link/mcs51/Makefile.bcc,
420         * as/link/mcs51/Makefile.in: updated for moved files
421         * as/link/z80/lkarea.c,
422         * as/link/z80/lkhead.c,
423         * as/link/z80/lklex.c,
424         * as/link/z80/lklibr.c,
425         * as/link/z80/lklist.c,
426         * as/link/z80/lkmain.c,
427         * as/link/z80/lkrloc.c,
428         * as/link/z80/lksym.c: synced with mcs51
429         * as/link/z80/lkdata.c,
430         * as/link/z80/lkeval.c,
431         * as/link/z80/lkihx.c,
432         * as/link/z80/lks19.c: cosmetic changes
433         * as/link/z80/Makefile.in,
434         * as/link/z80/linkgbz80.dsp,
435         * as/link/z80/linkz80.dsp: updated for moved files
436
437 2006-09-16 Borut Razem <borut.razem AT siol.net>
438
439         * debugger/mcs51/sdcdb.c: partially fixed
440           [ 1203664 ] sdcdb fails to open files w. two "." periods
441         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
442           debugger/mcs51/symtab.h: fixed indenting
443         * configure.in, configure: up to date with latest Maarten's changes
444
445 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
446
447         as/link/mcs51
448         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
449         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
450         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
451         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
452         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
453         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
454         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
455         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
456         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
457         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
458         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
459         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
460         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
461         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
462         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
463         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
464         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
465         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
466         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
467         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
468         as/link/mcs51/alloc.h,
469         as/link/mcs51/clean.mk,
470         as/link/mcs51/conf.mk,
471         as/link/mcs51/Makefile.bcc,
472         as/link/mcs51/Makefile.in,
473         as/link/mcs51/readme.390,
474         as/link/mcs51/strcmpi.c,
475         as/link/mcs51/strcmpi.h,
476         as/mcs51/clean.mk,
477         as/mcs51/Makefile.bcc,
478         as/mcs51/Makefile.in,
479         configure,
480         Makefile.in,
481         sdcc.dsw: moved mcs51 linker to as/link/mcs51
482
483 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
484
485         * as/link,
486         * as/link/Makefile.in,
487         * as/link/z80/linkgbz80.dsp,
488         * as/link/z80/linkz80.dsp,
489         * configure,
490         * link,
491         * link/clean.mk,
492         * link/Makefile.in,
493         * link/README,
494         * link/z80,
495         * link/z80/aslink.h,
496         * link/z80/clean.mk,
497         * link/z80/conf.mk,
498         * link/z80/linkgbz80.dsp,
499         * link/z80/linkz80.dsp,
500         * link/z80/lkarea.c,
501         * link/z80/lkdata.c,
502         * link/z80/lkeval.c,
503         * link/z80/lkgb.c,
504         * link/z80/lkgg.c,
505         * link/z80/lkhead.c,
506         * link/z80/lkihx.c,
507         * link/z80/lklex.c,
508         * link/z80/lklibr.c,
509         * link/z80/lklist.c,
510         * link/z80/lkmain.c,
511         * link/z80/lkrloc.c,
512         * link/z80/lks19.c,
513         * link/z80/lksym.c,
514         * link/z80/Makefile.in,
515         * Makefile.in,
516         * sdcc.dsw: moved link/ to as/link/
517
518 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
519
520         * as/mcs51/i51mch.c (machine): fixed warning
521
522 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
523
524         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
525
526 2006-09-09 Borut Razem <borut.razem AT siol.net>
527
528         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
529           sdcdb WIN32 native port
530         * src/clean.mk: fixed
531
532 2006-09-08 Borut Razem <borut.razem AT siol.net>
533
534         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
535
536 2006-09-08 Raphael Neider <rneider AT web.de>
537
538         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
539         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
540             to gplink to disable processor mismatch warning and to allow
541             the use of devices with only aliased (shared) memory banks,
542           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
543
544 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
545
546         * doc/sdccman.lyx: Some re-formating plus example on using
547           #pragma preproc_asm +/-
548
549 2006-09-07 Borut Razem <borut.razem AT siol.net>
550
551         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
552           section
553
554 2006-09-06 Borut Razem <borut.razem AT siol.net>
555
556         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
557           line at sdcc.nsi:153
558         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
559
560 2006-09-05 Borut Razem <borut.razem AT siol.net>
561
562         * configure.in, configure: support for winsock2
563         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
564           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
565           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
566           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
567           debugger/mcs51/symtab.h: sdcdb WIN32 native port
568
569 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
570
571         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
572           and OP_DEFS
573         * support/regression/tests/bug1551947.c: new, added
574         * src/SDCCsymt.h: strings are char* not byte*
575
576 2006-09-05 Raphael Neider <rneider AT web.de>
577
578         * device/lib/pic16/libdev/pic18f4550.c,
579           device/include/pic16/pic18f4550.h: added PORTD/TRISD
580             declarations/definitions from patch #1520949
581
582 2006-09-05 Raphael Neider <rneider AT web.de>
583
584         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
585           byte-aligned bitfields, fixes #1539278
586
587 2006-09-05 Raphael Neider <rneider AT web.de>
588
589         * src/pic/gen.c (genReceive): skip unreferenced arguments,
590           fixes #1544120
591
592 2006-09-04 Borut Razem <borut.razem AT siol.net>
593
594         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
595         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
596           -mno-cygwin is a part of the compiler name
597         * support/scripts/sdcc_mingw32: don't disable ucsim
598
599 2006-09-03 Borut Razem <borut.razem AT siol.net>
600
601         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
602         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
603
604 2006-09-03 Raphael Neider <rneider AT web.de>
605
606         * src/pic/ralloc.c,
607         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
608           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
609           fixes #1550049
610
611 2006-09-01 Borut Razem <borut.razem AT siol.net>
612
613         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
614           to make ppc-osx happy
615
616 2006-08-31 Borut Razem <borut.razem AT siol.net>
617
618         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
619         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
620         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
621         * support/regression/ports/ds390/spec.mk,
622           support/regression/ports/mcs51/spec.mk,
623           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
624           To run regression tests in mingw environment:
625           make DEV_NULL=NUL CC=gcc
626
627 2006-08-30 Borut Razem <borut.razem AT siol.net>
628
629         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
630           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
631           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
632           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
633           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
634           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
635           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
636           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
637           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
638           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
639           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
640           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
641           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
642           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
643           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
644           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
645           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
646           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
647           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
648           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
649           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
650           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
651           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
652           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
653           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
654           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
655           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
656           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
657           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
658           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
659           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
660           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
661           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
662           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
663           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
664           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
665           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
666           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
667           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
668           ucsim WIN32 native port
669
670 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
671
672         * doc/sdccman.lyx: added note on dynamic memory heap initialization
673
674 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
675
676         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
677         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
678
679 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
680
681         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
682         * support/regression/tests/bug1546986.c: new, added
683         * as/mcs51/.cvsignore,
684         * debugger/mcs51/.cvsignore,
685         * src/.cvsignore: deleted
686
687 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
688
689         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
690           definitions)
691
692 2006-08-20 Borut Razem <borut.razem AT siol.net>
693
694         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
695           removed cl_listen_console::match(), cl_console::match(),
696           restructured cl_commander::proc_input()
697
698 2006-08-16 Borut Razem <borut.razem AT siol.net>
699
700         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
701           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
702           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
703
704 2006-08-14 Borut Razem <borut.razem AT siol.net>
705
706         * support/regression/Makefile.in,
707           support/regression/ports/pic14/gpsim.cmd,
708           support/regression/ports/pic14/spec.mk,
709           support/regression/ports/pic14/support.c:
710           added pic14 regression test
711
712 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
713
714         * as/doc/asxhtm.html: documented changed ABS behaviour
715         * as/doc/README: fixed some typos
716
717 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
718
719         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
720           not defined on host
721
722 2006-08-12 Borut Razem <borut.razem AT siol.net>
723
724         * support/regression/fwk/include/testfwk.h,
725           support/regression/fwk/lib/testfwk.c,
726           support/regression/generate-cases.py,
727           support/regression/Makefile.in:
728           regression test framework does not depend on function pointers and
729           variable arguments
730
731 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
732
733         * device/include/stddef.h: c temporary hack to fix bug 1518273
734
735 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
736
737         * device/include/mcs51/cc2510fx.h: added
738         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
739           to projects.
740
741 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
742
743         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
744         * as/z80/Makefile.in: added strcmpi.c
745         * as/z80/z80adr.c: added upper case registers and lower case conditionals
746         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
747
748 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
749
750         * device/lib/gbz80/asm_strings.s,
751         * device/lib/gbz80/crt0_rle.s,
752         * device/lib/gbz80/div.s,
753         * device/lib/gbz80/mul.s,
754         * device/lib/gbz80/shift.s,
755         * device/lib/z80/asm_strings.s,
756         * device/lib/z80/crt0_rle.s,
757         * device/lib/z80/div.s,
758         * device/lib/z80/mul.s,
759         * device/lib/z80/shift.s: changed to all lower case menmonics except the
760           flags which are all upper case
761
762 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
763
764         * as/z80/asm.h: made CASE_SENSITIVE 1
765         * link/z80/aslink.h: made CASE_SENSITIVE 1
766         * src/z80/gen.c (throughout): made all conditionals upper case
767         * support/regression/tests/bug1503067.c: new
768
769 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
770
771         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
772           (shiftIntoPair): added case 2 for PAIR_IY,
773           (setupToPreserveCarry): replaced parameters with iCode and check if
774            PAIR_DE is in use to fix bug 1399290,
775           (genPlus, genMinus): updated call to setupToPreserveCarry
776         * support/regression/tests/bug1399290.c: new
777
778 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
779
780         * device/lib/Makefile.in (Z80SOURCES): enabled float support
781         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
782         * src/ds390/gen.c (shiftRLong),
783         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
784         * src/mcs51/gen.c (sameReg): changed to sameByte,
785           (xch_a_aopGet): new,
786           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
787            shiftRLong): fixed bug 1533966
788         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
789           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
790         * support/regression/Makefile.in: disabled z80, enabled ucz80
791         * support/regression/tests/float_trans.c: enabled test for z80 and host
792         * support/regression/tests/shifts2.c: new, for testing bug 1533966
793
794 2006-08-01 Borut Razem <borut.razem AT siol.net>
795
796         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
797           comparison is always false due to limited range of data type
798           on PPC64 machine (openpower-linux1) where "char = unsigned char"
799
800 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
801
802         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
803         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
804         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
805         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
806
807 2006-07-31 Borut Razem <borut.razem AT siol.net>
808
809         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
810           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
811           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
812           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
813           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
814           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
815           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
816           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
817           enable ucsim mingw compilation. Serial port is disabled,
818           since it uses termios.h API, which is not available on native
819           WIN32
820
821 2006-07-31 Borut Razem <borut.razem AT siol.net>
822
823         * Small Device C Compiler 2.6.0 released
824         * support/scripts/sdcc.nsi: added FULL_DOC option
825         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
826
827 2006-07-28 Borut Razem <borut.razem AT siol.net>
828
829         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
830         * doc/INSTALL.txt: updated
831
832 2006-07-27 Borut Razem <borut.razem AT siol.net>
833
834         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
835           device/lib/pic/libdev/Makefile.in: fixed bug
836           [ 1438354 ] pic libsdcc: distclean doesn't work
837         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
838           device/lib/pic16/libio/Makefile.in: fixed bug
839           [ 1438344 ] pic16 lib: clean doesn't work properly
840         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
841
842 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
843
844         * device/lib/pic/libsdcc/fsdiv.c,
845         * device/lib/pic/libsdcc/fsmul.c,
846         * device/lib/pic16/libsdcc/float/fsdiv.c,
847         * device/lib/pic16/libsdcc/float/fsmul.c,
848         * device/lib/_fsdiv.c,
849         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
850         * support/regression/tests/bug1520966.c: added
851         * doc/knownbugs.html: removed [ 1520966 ] from the list
852
853 2006-07-25 Borut Razem <borut.razem AT siol.net>
854
855         * configure.in, configure, sdccconf_in.h: fixed bug
856           [ 1519095 ] regression test onebyte.c fails on ppc64 host
857         * doc/knownbugs.html: removed [ 1519095 ] from the list
858
859 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
860
861         * doc/knownbugs.html: added, contains list of known bugs at release
862         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
863
864 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
865
866         * device/include/mcs51/compiler.h: added SFRX for xdata based special
867           function registers and corrected defaults with additional warning
868         * device/lib/malloc.c: cosmetic changes
869         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
870         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
871           (fillGaps): and used it
872
873 2006-07-20 Raphael Neider <rneider AT web.de>
874
875         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
876           output unless SDCCPICDEBUG is set
877         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
878           output if SILENT is set
879
880 2006-07-11 Borut Razem <borut.razem AT siol.net>
881
882         * doc/README.txt: updated
883
884 2006-07-10 Borut Razem <borut.razem AT siol.net>
885
886         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
887           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
888           in WIN32 installation
889         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
890           release candidate 1
891
892 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
893
894         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
895         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
896
897 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
898
899         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
900
901 2006-07-06 Borut Razem <borut.razem AT siol.net>
902
903         * support/regression/tests/bitfields.c:
904           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
905         * support/regression/tests/constantRange.c:
906           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
907
908 2006-07-04 Borut Razem <borut.razem AT siol.net>
909
910         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
911           src/port.mk,
912           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
913           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
914           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
915           reverted changes from 2006-07-03
916         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
917         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
918           added CPPFLAGS, used by the host port
919
920 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
921
922         * support/regression/valdiag/tests/switch.c,
923         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
924         * support/regression/tests/libmullong.c: fixed for host
925         * support/regression/ports/host/spec.mk: disable all warnings for host,
926         SDCC runs with --less-pedantic too
927
928 2006-07-03 Borut Razem <borut.razem AT siol.net>
929
930         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
931           defined CPPFLAGS
932         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
933         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
934           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
935           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
936           include ../port.mk
937         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
938           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
939           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
940           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
941
942 2006-07-02 Raphael Neider <rneider AT web.de>
943
944         * src/pic16/devices.inc,
945         * device/include/pic16/pic18fregs.h,
946         * device/include/pic16/pic18f4550.h,
947         * device/lib/pic16/pics.all,
948         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
949
950 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
951
952         * as/hc08/lkaomf51.c (OutputName),
953         * as/mcs51/lkaomf51.c (OutputName),
954         * as/z80/asmain.c (asmbl),
955         * src/ds390/main.c (asmLineNodeFromLineNode),
956         * src/hc08/ralloc.c (hc08_assignRegisters),
957         * src/mcs51/main.c (asmLineNodeFromLineNode),
958         * src/xa51/ralloc.c (checkRegMask),
959         * src/xa51/gen.c (emitcode),
960         * src/z80/gen.c (_emit2),
961         * src/SDCCast.c (searchLitOp),
962         * src/SDCCglobl.h,
963         * support/packihx/packihx.c,
964         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
965         * src/ds390/gen.c (aopPutUsesAcc),
966         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
967         * support/regression/tests/libmullong.c (mullong_wrapper),
968         * src/SDCCsymt.c (powof2),
969         * src/SDCCast.c,
970         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
971         * src/SDCCsymt.h: added TYPE_TARGET_*
972         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
973         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
974         SDCCast because 1) header problems 2) this is the right place
975         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
976         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
977         prototype
978
979 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
980
981         * src/SDCCicode.h: removed buggy semicolon in unused macro
982         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
983         search for previous definiton of auto symbols too,
984         (findPrevUse): fixed logic of emitWarnings
985
986 2006-06-26 Raphael Neider <rneider AT web.de>
987
988         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
989           PCLATH and PCLATU on interrupts, potentially fixes #1505141
990
991 2006-06-25 Raphael Neider <rneider AT web.de>
992
993         * device/lib/pic/libm: NEW, added math library functions
994         * device/lib/pic/libsdcc: NEW; added float support functions
995         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
996         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
997           NEW, added math related headers
998         * device/include/asm/pic/features.h: NEW
999         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
1000           (popGet): allow larger offsets for AOP_PCODE,
1001           (genDataPointerSet): handle literals explicitly, more debug output,
1002           (genAssign): fixed for float using aopLiteral ;-)
1003         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
1004           GOTO initialisation routine
1005         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
1006           flag on registers, fixes #1469043 (local variables do not work)
1007         * src/pic/main.c (_pic14_do_link),
1008         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
1009           available
1010
1011 2006-06-25 Borut Razem <borut.razem AT siol.net>
1012
1013         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
1014           characters printed (not including the trailing '\0' used to end
1015           output to strings). Problem detected in regression test bug-927659.c.
1016           NOTE: printf() family functions should return int instead
1017           unsigned int!
1018         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
1019           specifier are printed as themselves
1020         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
1021           support flags, width and precision specifiers
1022
1023 2006-06-24 Borut Razem <borut.razem AT siol.net>
1024
1025         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
1026           to the list of sdcc tagrets not supporting bit type
1027         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
1028           testfor pic16 due to bug:
1029           [ 1511794 ] pic16: regression test bug-895992.c fails
1030
1031 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
1032
1033         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
1034         * src/SDCCglue.c (initPointer), fixed bug 1496419
1035         * support/regression/tests/bug1496419.c: new, added
1036
1037 2006-06-22 Borut Razem <borut.razem AT siol.net>
1038
1039         * support/regression/ports/pic16/support.c: use gpsim usart module from
1040           libgpsim_modules library
1041
1042 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1043
1044         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
1045         IP0H to IPH0.
1046
1047 2006-06-19 Raphael Neider <rneider AT web.de>
1048
1049         * src/pic/glue.h,src/pic16/glue.h: added prototypes
1050         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
1051           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
1052           (pic14printExterns,pic14printPublics,pic16printPublics,
1053           pic16_printExterns): use new functions to emit symbols
1054           (picglue,pic16glue): emit publics before emitting externs
1055         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
1056           locally defined functions to avoid bug #1443651
1057         * support/regression/tests/bug-716242.c: removed pic16 workaround
1058         * support/regression/ports/pic16/spec.mk: ignore errors during build
1059
1060 2006-06-19 Raphael Neider <rneider AT web.de>
1061
1062         * src/pic/glue.h: added pic14aopLiteral prototype
1063         * src/pic/glue.c (pic14aopLiteral): return unsigned int
1064         * src/pic/gen.c: removed stdint.h dependency
1065           (aopGet): use Safe_strdup()
1066           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
1067           (genDataPointerSet): use pic14aopLiteral()
1068         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
1069           for pic16; thanks to Bernhard and Maarten
1070
1071 2006-06-18 Borut Razem <borut.razem AT siol.net>
1072
1073         * support/regression/tests/structflexarray.c: flexible array members
1074           not supported by gcc < 3
1075         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
1076           GUI tool by default
1077         * src/pic/gen.c: don't include [p]strdin.h on solaris
1078         * support/Util/pstdint.h: addad svn attributes
1079         * support/regression/tests/constantRange.c,
1080           support/regression/tests/rotate.c: include inttypes.h instead
1081           stdint.h on solaris, addad svn attributes
1082
1083 2006-06-18 Raphael Neider <rneider AT web.de>
1084
1085         * src/SDCCsymt.c (initCSupport): change return type of divschar to
1086           int for PIC16
1087         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
1088           (pic16_genMinusBits): simplified sign-extension
1089           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
1090             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
1091             adjusted to correctly handle mixed-signed operands, disabled
1092             now unused multiplciation routines
1093         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
1094           (assignResultValue): added argument denoting the size of the result
1095             as returned by the function (fixes upcasts in assigning from
1096             function calls: char foo(); int i = foo();)
1097           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
1098             function result to assignResultValue
1099           (genMult): disabled inlined multiplication code
1100           (genDiv): augmented to also handle the modulus operator, fixed to
1101             handle mixed-signed operands correctly
1102           (genMod): simply call genDiv, disabled unused code
1103           (genAssign): fixed missing (sign-)extension on result
1104         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
1105             valid char operands, allow signed operands for native code, added
1106             division and modulo operator handling
1107         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
1108
1109         As a consequence, onebyte.c (if split into two files) and muldiv.c
1110         pass regression tests.
1111
1112 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1113
1114         * doc/Makefile.in: two runs of makeindex seem needed to get
1115         correct page references in the index of sdccman.pdf
1116         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
1117
1118 2006-06-17 Borut Razem <borut.razem AT siol.net>
1119
1120         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
1121
1122 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1123
1124         * doc/sdccman.lyx: updated, added (porting source code, debugging),
1125         mentioned ec2drv and paulmon
1126
1127 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
1128
1129         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
1130           consecutive abs areas
1131           (find_empty_space, allocate_space): added map to handle codemap or
1132            xdatamap,
1133           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
1134            absolute idata and xdata
1135         * as/mcs51/lkmem.c (summary2): updated legend
1136
1137 2006-06-16 Raphael Neider <rneider AT web.de>
1138
1139         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
1140
1141 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
1142
1143         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
1144           1208515
1145         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
1146
1147 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
1148
1149         * src/port.h (struct PORT): added field gp_tags, to hold the tag
1150         value of generic pointers,
1151         * src/avr/main.c,
1152           src/ds390/main.c,
1153           src/hc08/main.c,
1154           src/izt/i186.c,
1155           src/izt/tlcs900h.c,
1156           src/mcs51/main.c,
1157           src/pic/main.c,
1158           src/pic16/main.c,
1159           src/xa51/main.c,
1160           src/z80/main.c: PORT structure, added elements for gp_tags field,
1161         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
1162         fields in the PORT structure of each port,
1163         * src/SDCCast.c (decorateType): allow processing of generic pointers
1164         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
1165         S_FIXED symbols
1166
1167 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
1168
1169         * link/z80/lkgb.c,
1170         * link/z80/lkgg.c,
1171         * src/pic16/gen.c,
1172         * src/pic16/main.c,
1173         * src/pic16/pcode.c,
1174         * src/pic/main.c,
1175         * src/pic/pcoderegs.c,
1176         * src/SDCCicode.c,
1177         * src/SDCCmain.c,
1178         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
1179           bug 1504689 on minGW
1180
1181 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1182
1183         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
1184
1185 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
1186
1187         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
1188
1189 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
1190
1191         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
1192           for optimization
1193
1194 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
1195
1196         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
1197         to a char variable. Fixed bug #1504211
1198         * device/include/pic16/adc.h,
1199         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
1200         and fixed bug #1364390
1201
1202 2006-06-10 Borut Razem <borut.razem AT siol.net>
1203
1204         * CVSROOT: removed the CVS left-over
1205
1206 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1207
1208         * as/hc08/asmain.c (asexit),
1209         * as/hc08/lkmain.c (lkexit),
1210         * as/mcs51/asmain.c (asexit),
1211         * as/mcs51/lkmain.c (lkexit),
1212         * src/SDCCglue.c (DEFSETFUNC),
1213         * src/SDCCmain.c (linkEdit, assemble),
1214         * support/librarian/sdcclib.c (AddRel),
1215           replaced unlink() by standard C remove()
1216         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
1217         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
1218           gatherImplicitVariables): new, added to fix bug 608752,
1219           (createFunction): added gatherImplicitVariables()
1220         * src/SDCCast.h: added createRMW prototype
1221         * src/SDCCsymt.h (struct symbol): added infertype
1222         * support/regression/tests/bug608752.c: new, added
1223
1224 2006-06-10 Raphael Neider <rneider AT web.de>
1225
1226         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
1227           multibyte dummy reads (fixes #1503234)
1228
1229 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1230
1231         * device/include/mcs51/compiler.h: new, added header file to enable
1232           creating common sfr definition header files for different compilers
1233
1234 2006-06-05 Raphael Neider <rneider AT web.de>
1235
1236         * src/pic16/{pcode.h,genarith.c}:
1237           introduced pCodeOp combining any two pCodeOps (previously only
1238           two register operands could be combined), removed pcop2 from
1239           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
1240         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
1241         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
1242           rewritten to use new PO_TWO_OPS
1243         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
1244         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
1245           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
1246           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
1247           (pic16_get_op): embraced return arg to allow #define return(x),
1248             added new case for combined opcodes
1249           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
1250           (pic16_pCode2str,pic16_getRegFrompCodeOp,
1251            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
1252
1253 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
1254
1255         * src/SDCCval.c (checkConstantRange): added
1256         * src/SDCCval.h: added checkConstantRange
1257         * support/Util/SDCCerr.c,
1258         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
1259         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
1260         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
1261         * src/SDCCast.c (decorateType): added checkConstantRange,
1262         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
1263         can be emitted with the correct always true/false warning,
1264         added optimization for double '!';
1265         result of decorateType() must be assigned back to the tree, because
1266         decorateType() can change the tree
1267         * src/SDCCicode.c (geniCodeLogic),
1268         (geniCodeAssign): replaced new checkConstantRange, added warnings,
1269         (checkConstantRange): removed, it was only a fragment which never
1270         emitted a warning
1271         * src/SDCCsymt.c (computeType): fixed promotion for
1272         "-1 < (unsigned bit) b"
1273         * src/pic/ralloc.c (packRegsForAssign),
1274         * src/pic16/ralloc.c (packRegsForAssign),
1275         * src/hc08/ralloc.c (packRegsForAssign),
1276         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
1277         from mcs51
1278         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
1279         * support/regression/tests/constantRange.c: added
1280         * support/valdiag/tests/constantRange.c: added
1281         * support/valdiag/valdiag.py: added -DPORT_HOST=1
1282
1283 2006-06-02 Borut Razem <borut.razem AT siol.net>
1284
1285         * support/regression/ports/pic16/support.c: increase stack size
1286           to 255 bytes
1287         * support/regression/Makefile.in: sort tests by name so that the
1288           resutlts can be compared on different machines / platforms
1289
1290 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1291
1292         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
1293         * src/ds390/gen.c (emitLabel): new, added,
1294           (genDjnz): fixed stack overflow bug,
1295           (throughout): cosmetic changes to sync with mcs51/gen.c,
1296           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
1297         * src/mcs51/gen.c (genEndFunction): small optimization,
1298           (throughout): cosmetic changes to sync with ds390/gen.c
1299
1300 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1301
1302         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
1303           (_print_format): fixed printing pointers
1304         * src/mcs51/gen.c (emitLabel, movb): new, added,
1305           (genAssign): small optimization,
1306           (genDjnz): fixed stack overflow bug,
1307           (throughout): replaced sprintf with SNPRINTF,
1308           replaced mcs51_regWithIdx with REG_WITH_INDEX,
1309           replaced emitcode("mov", "b,...") with MOVB(...),
1310           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
1311           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1312         * src/mcs51/peeph.def: added rules 140 and 264
1313         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
1314           so they may get optimized into registers
1315
1316 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
1317
1318         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
1319           immediately when encountered,
1320           (printUsage): always use stderr even on windows
1321
1322 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
1323
1324         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
1325         (processParms): fixed bug #1247551
1326         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
1327         parseCmdLine, main): print '--version' to stdout,
1328         print 'help' to stdout if --help is given,
1329         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
1330         arguments are given; fixed --help
1331
1332 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
1333
1334         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
1335         * support/regression/tests/bug-1493710.c: added
1336
1337 2006-05-27 Borut Razem <borut.razem AT siol.net>
1338
1339         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
1340           static instead auto
1341         * support/regression/ports/pic16/support.c: increase stack size
1342           from default 64 bytes to 128 bytes
1343         * support/regression/tests/staticinit.c,
1344           support/regression/tests/float.c: regression tests fully enabled
1345           for pic16 port by putting the initialized data arrays into the code
1346           section
1347         * support/regression/ports/pic16/spec.mk: don't link default libraries.
1348           This was changed by mistake in the previous version.
1349
1350 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
1351
1352         * src/pic16/gen.c (genFunction, genEndFunction): some
1353         beautifications, fixed bug with falsely restoring FSR2 in large
1354         stack model, thanks to Beau E. Cox for reporting the bug
1355
1356 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1357
1358         * debugger/mcs51/break.c,
1359         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
1360           use %p to print pointers, made address variables unsigned
1361         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
1362         * debugger/mcs51/symtab.c (parseSymbol): must return something
1363         * src/mcs51/gen.c (aopForSym): small optimization,
1364            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
1365           (freeAsmop): added missing break,
1366           (aopPut): removed parameter bvolatile, determine it inside the function,
1367           (saveRegisters, unsaveRegisters): small optimization,
1368           (genIpush): removed pointless check,
1369           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
1370           replaced sprintf with SNPRINTF,
1371           replaced strcpy with strncpyz,
1372           updated aopPut calls,
1373           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1374         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
1375
1376 2006-05-24 Borut Razem <borut.razem AT siol.net>
1377
1378         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
1379           modification of test for the pic16 port, put the array to the code
1380           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
1381
1382 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1383
1384         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
1385         * support/Util/pstdint.h: added
1386
1387 2006-05-22 Borut Razem <borut.razem AT siol.net>
1388
1389         * src/regression/Makefile: removed bool2.c test, added -q linker option
1390         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
1391           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
1392           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
1393           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
1394           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
1395           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
1396           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
1397           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
1398           define SUPPORT_BIT_TYPES 0, removed unused bit variables
1399
1400 2006-05-22 Raphael Neider <rneider AT web.de>
1401
1402         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
1403           bug #1492360 (problematic due to generic pointers, see code)
1404
1405 2006-05-22 Borut Razem <borut.razem AT siol.net>
1406
1407         * support/regression/ports/pic16/specs.mk: removed stack size linker
1408           directive
1409         * support/regression/tests/array.c,
1410           support/regression/tests/bitopcse.c,
1411           support/regression/tests/bug-908454.c,
1412           support/regression/tests/malloc.c: modified for pic16 regression test
1413         * support/regression/tests/bitfields.c:
1414           pic16 - excluded bitfileds of size > 8
1415         * support/regression/tests/bp.c: pic16 - reduced data size
1416         * support/regression/tests/bug-221100.c: pic16 - reduced data size
1417         * support/regression/tests/bug-460010.c:
1418           pic16 - used the absolute address the fits in memory
1419         * support/regression/tests/bug-716242.c:
1420           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
1421         * support/regression/tests/float.c:
1422           pic16 - excluded - data size too big
1423         * support/regression/tests/onebyte.c:
1424           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
1425         * support/regression/tests/shifts.c:
1426           pic16 - function names probably have to differ in first X characters
1427           (gpasm limitation?)
1428         * support/regression/tests/staticinit.c:
1429           pic16 - excluded some tests due error: no target memory available for
1430           section ".idata"
1431
1432 2006-05-22 Borut Razem <borut.razem AT siol.net>
1433
1434         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1435           second try. Thanks Stas Sergeev once more.
1436
1437 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1438
1439         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
1440           (genLeftShift, genRightShift): fixed bug 1491627
1441         * src/hc08/peeph.def (rules 7, 8.x): added
1442         * support/regression/tests/shifts.c (ShiftLeftByParam,
1443           ShiftRightByParam, testShiftByParam): added to test variable shifting
1444
1445 2006-05-20 Raphael Neider <rneider AT web.de>
1446
1447         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
1448         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
1449           (allocReg): add only new registers to dynAllocRegs,
1450           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
1451             #1489055, #1445850, and probably #1483693
1452
1453 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
1454
1455         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
1456         bug in for-loop that didn't emit the last of CONFIG and ID registers
1457
1458 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
1459
1460         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
1461           with offset
1462         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
1463           1489016, 1434401 and 1490124
1464         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
1465           1489016, 1434401 and 1490124
1466
1467 2006-05-17 Borut Razem <borut.razem AT siol.net>
1468
1469         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1470           thanks Stas Sergeev
1471
1472 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1473
1474         * device/include/mcs51/P89c51RD2.h,
1475         * device/include/mcs51/P89LPC901.h,
1476         * device/include/mcs51/P89LPC922.h,
1477         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
1478
1479 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1480
1481         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
1482         to fix missing stack pragma in compiled binary object file,
1483
1484 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
1485
1486         * support/packihx/configure.in,
1487         * support/packihx/configure: removed warning, autoconf >= 2.5x can
1488         determine sizeof basic types even while cross compiling
1489
1490 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
1491
1492         * src/avr/gen.c (aopop),
1493         * src/ds390/gen.c (aopOp),
1494         * src/hc08/gen.c (aopOp),
1495         * src/mcs51/gen.c (aopop),
1496         * src/pic16/gen.c (pic16_aopOp),
1497         * src/pic/gen.c (aopOp),
1498         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
1499         if size of operand is smaller than spill location
1500
1501 2006-05-12 Borut Razem <borut.razem AT siol.net>
1502
1503         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
1504           have to have CR/LF line endings even if they are checked out on *nix
1505           or on WIN32 in cygwin binmode
1506
1507 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
1508
1509         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
1510         * device/include/ds80c390.h: added sfr16 definitions
1511         * src/ds390/gen.c,
1512         * src/ds390/gen.h,
1513         * src/ds390/main.c,
1514         * src/ds390/ralloc.c,
1515         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
1516           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
1517           bit returning functions
1518         * support/regression/tests/sfr16.c: enabled test on ds390
1519
1520 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1521
1522         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
1523         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
1524
1525 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1526
1527         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
1528         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
1529           (cl_address_space constructor): removed expensive initialization,
1530           (cl_address_space::get_cell): extended for late initialization,
1531           (cl_address_space::*): use late initialization,
1532           (cl_address_decoder::activate): removed expensive initialization,
1533           This reduced regression test running time by 25%
1534
1535 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
1536
1537         * packihx/,
1538         * configure.in,
1539         * configure,
1540         * sdcc.dsw,
1541         * Makefile.bcc,
1542         * Makefile.in,
1543         * support/packihx/Makefile.in,
1544         * support/packihx/clean.mk,
1545         * support/packihx/Makefile.bcc,
1546         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
1547
1548 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1549
1550         * src/SDCCval.c (valNot): fix for regression test failure
1551           of not.c on big endian hosts
1552
1553 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1554
1555         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
1556
1557 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1558
1559         * device/lib/mcs51/Makefile.in: changed string comparison operator
1560           to = for POSIX compliance; == is bash extension
1561
1562 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1563
1564         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
1565           kosmonaut_pirx
1566
1567 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
1568
1569         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
1570         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
1571         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
1572         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
1573         bug report #1478657,
1574
1575 2006-05-05 Borut Razem <borut.razem AT siol.net>
1576
1577         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
1578           making the html
1579
1580 2006-05-02 Borut Razem <borut.razem AT siol.net>
1581
1582         * doc/Makefile.in: removed *.ind dependency since there is no rule to
1583           create *.ind, which made make to fail if invoked with -j 2
1584
1585 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
1586
1587         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
1588           Hubert Sack for patch 1479782
1589
1590 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
1591
1592         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
1593
1594 2006-05-01 Raphael Neider <rneider AT web.de>
1595
1596         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
1597           (create_pic): store only prefix-free device name,
1598           (init_pic): check for device names with "16" prefix,
1599           (list_valid_pics),
1600         * src/pic/device.h (struct PIC_device),
1601         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
1602             stored device name,
1603         * device/include/pic/pic12f{635,675,629,683}.h,
1604         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
1605         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
1606         * device/include/pic/pic16f505.h,
1607         * device/lib/pic/libdev/pic16f505.c: removed
1608         * device/include/pic/pic14devices.txt: added support for pic12f
1609             devices, removed unsupported non 16-bit devices
1610             [above changes provided by patch from Zik Saleeba]
1611         * src/pic/*, src/pic16/*, device/include/pic16/*,
1612           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
1613
1614 2006-05-01 Borut Razem <borut.razem AT siol.net>
1615
1616         * configure.in, configure, doc/Makefile.in:
1617           sync with nightly build makefile - latex, dvipdf and dvips
1618           not needed any more
1619
1620 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
1621
1622         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
1623         in the library source
1624
1625 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
1626
1627         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
1628
1629 2006-04-28 Raphael Neider <rneider AT web.de>
1630
1631         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
1632         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
1633           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
1634         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
1635
1636 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
1637
1638         * device/lib/pic/libdev/Makefile.in,
1639         * device/lib/hc08/Makefile.in,
1640         * device/lib/gbz80/Makefile.in,
1641         * device/lib/z80/Makefile.in,
1642         * device/lib/ds390/Makefile.in,
1643         * device/lib/ds400/Makefile.in: added srcdir to include search path,
1644         thanks to Borut for the bug report
1645         * configure.in,
1646         * configure: always create doc/Makefile independent from --enable-doc
1647         * Makefile.in: always install from directory doc independent from
1648         --enable-doc
1649         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
1650         removed
1651         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
1652         * doc/Makefile.in: install *.txt if present
1653         * device/include/Makefile.in (install): added installation of pic/*.inc
1654         and pic/*.txt files again, they were erroneously removed
1655
1656 2006-04-28 Raphael Neider <rneider AT web.de>
1657
1658         * src/pic/{gen.c,main.h,pcode.c},
1659         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
1660             concerning signedness with casts
1661
1662 2006-04-28 Raphael Neider <rneider AT web.de>
1663
1664         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
1665             definition of an interrupt handler,
1666         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
1667             interrupt handler stuff from picglue() to separate routine,
1668           (picglue): enabled definition of intr handlers in files w/o main()
1669
1670 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1671
1672         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
1673           compilation with MSVC 2005 Express Edition (VC8)
1674
1675 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
1676
1677         * device/lib/Makefile: fixed build of gbz80 lib
1678
1679 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1680
1681         * support/regression/tests/bug-460010.c,
1682         * support/regression/tests/bug-524691.c,
1683         * support/regression/tests/bug-716242.c: removed conditional defines
1684           that are already in testfwk.h
1685
1686 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1687
1688         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
1689           (AccAXRsh1): added, shift right by 1,
1690           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
1691            AccAXLrl1
1692         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
1693
1694 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
1695
1696         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
1697         remove cast to same type
1698         * src/SDCCast.c (decorateType): fix for RFE 1475742,
1699         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
1700         * as/z80/Makefile,
1701         * link/z80/Makefile: removed, they have moved to
1702         Makefile.in files
1703         * configure,
1704         * configure.in: replaced duplicate message about ucsim by missing sdcpp
1705         * install-sh: fix bug #1204398 by setting umask 0022
1706         * device/lib/Makefile: separate build of z80 and gbz80 lib
1707
1708 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
1709
1710         Enabled VPATH feature: changed nearly all Makefiles (149 files).
1711         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
1712
1713         One basic decision: e.g. src/clean.mk includes further files. In order
1714         to make this work there are two solutions:
1715         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
1716           run configure on them. This way they can use
1717           'include $(srcdir)/port-clean.mk'
1718         - always include clean.mk by the Makefile at the same level. To avoid
1719           that `make clean` tries to include and build Makefile.dep the
1720           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
1721           implemented, because now even `make uninstall` doesn't create
1722           Makefile.in. clean.mk could be eliminated by pasting it in
1723           Makefile.in.
1724
1725         * debugger/mcs51/Makefile.in: build own objects from library sources
1726         (SLIB, SDCC) in current directory
1727
1728         * configure, configure.in: renamed --disable-device-lib-build in
1729         --disable-device-lib; added --enable-doc, the required tools are
1730         searched by configure; added result message; the toolchain for the
1731         belonging ports are now only built, if the port is enabled.
1732
1733         * support/regression/*: all output is written in directory gen, because
1734         the fwk and ports directories don't livet in the build tree using vpath
1735
1736         * doc/sdccman.lyx: renamed --disable-device-lib-build to
1737         --disable-device-lib, added --enable-doc, added section VPATH
1738
1739         * sim/ucsim/configure.in,
1740         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
1741         z80 are enabled by default
1742
1743 2006-04-24 Raphael Neider <rneider AT web.de>
1744
1745         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
1746             to config word, "pic14_"-prefixed some extern functions
1747           (pic14_emitConfigWord): emit __config directive(s) if assignment to
1748             config word has been found
1749         * src/pic/device.h: added prototypes
1750         * src/pic/pcode.c: added "pic14_"-prefix where needed
1751         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
1752             fixup
1753         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
1754             words,
1755           (pic14emitRegularMap): ignore config words,
1756           (pic14createInterruptVect): moved generating __config directives away
1757           (picglue): have __config directives emitted
1758
1759 2006-04-24 Borut Razem <borut.razem AT siol.net>
1760
1761         * doc/Makefile: sync with nightly build makefile
1762
1763 2006-04-24 Raphael Neider <rneider AT web.de>
1764
1765         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
1766             registers that have not been assigned proper liveranges,
1767             fixes #1469504 and #1474602,
1768           (pCodeRegOptimizeRegUsage): fixed typo in comment
1769
1770 2006-04-24 Borut Razem <borut.razem AT siol.net>
1771
1772         * device/examples/main8051.c: deleted - it was removed from CVS
1773           24.mar.2000 and after that modified 18.feb.2001, so it reappered
1774           after the transition to Subversion
1775         * src/SDCCalloc.h: deleted - it was removed  from CVS
1776           3.feb.2001 and after that modified 18.feb.2001, so it reappered
1777           after the transition to Subversion
1778         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
1779           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
1780           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
1781           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
1782
1783 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
1784
1785         * as/asx8051.dsp: added mcs51/strcmpi.h
1786         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
1787         * as/hc08/aslink.h: updated lnksect prototype
1788         * as/hc08/asm.h,
1789         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
1790         * as/hc08/asmain.c,
1791         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
1792           (newdot): handle A_ABS
1793         * as/hc08/asout.c,
1794         * as/mcs51/asout.c (outarea): output address
1795         * as/hc08/lkaomf51.c,
1796         * as/mcs51/lkaomf51.c: disabled unused array UsageType
1797         * as/hc08/m08pst.c,
1798         * as/mcs51/i51pst.c,
1799         * as/z80/z80pst.c: "ABS" is not A_OVR
1800         * as/hc08/lkarea.c (newarea): read a_addr,
1801           (lnkarea): added codemap array, sort absolute areas to the front,
1802            combine all GSINITx/GSFINAL,
1803           (find_empty_space, allocate_space): new functions,
1804           (lnksect): return next address, handle absolute sections
1805         * as/mcs51/lkarea.c (newarea): read a_addr,
1806           lnksect2 prototype changed,
1807           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
1808           (find_empty_space, allocate_space): new, factored out of lnksect2,
1809           (lnksect2): return next address, handle absolute sections
1810         * as/hc08/lkhead.c,
1811         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
1812         * as/hc08/lklibr.c (addfile, fndsym),
1813         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
1814           index out of range and detect both '\' and '/'
1815         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
1816         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
1817           regression tests (ds390 cannot return bool yet)
1818         * doc/sdccman.lyx: changed version number, document changed --no-peep,
1819           document critical interrupts on z80, document changed SDCC define
1820         * src/asm.c (_asxxxx_mapping): fixed .org directive,
1821           (_a390_mapping): added .org directive
1822         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
1823           (genMultOneByte): fixed warnings
1824         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
1825           ones
1826         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
1827         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
1828           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
1829         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
1830         * src/pic16/main.c: removed newReg prototype
1831         * src/pic16/pcode.c,
1832         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
1833           warnings
1834         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
1835           ones
1836         * src/pic16/ralloc.c
1837         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
1838           to fix warnings
1839         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
1840           from short to PIC_OPTYPE
1841         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
1842         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
1843           optype from short to PIC_OPTYPE
1844         * src/port.h: made int_size unsigned to fix warnings
1845         * src/SDCC.y: fixed warning on MSVC
1846         * src/SDCCicode.c (getArraySizePtr): return unsigned int
1847         * src/SDCCopt.c (convertToFcall): fixed warnings
1848         * src/SDCCsymt.h: removed double prototype for genSymName
1849         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
1850           offset int to fix warnings
1851
1852 2006-04-22 Borut Razem <borut.razem AT siol.net>
1853
1854         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1855           references to CVS replaced with Subversion
1856
1857 2006-04-21 Borut Razem <borut.razem AT siol.net>
1858
1859         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1860           references to CVS replaced with Subversion
1861
1862 2006-04-19 Borut Razem <borut.razem AT siol.net>
1863
1864         * src/version.awk: adapted for svn
1865         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
1866           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
1867           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
1868           /binutils-avr/etc/*.vi, *.jin: removed all properties
1869           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
1870
1871 2006-04-19 Borut Razem <borut.razem AT siol.net>
1872
1873         * CVS to Subversion migration completed
1874
1875 2006-04-18 Borut Razem <borut.razem AT siol.net>
1876
1877         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
1878           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
1879
1880 2006-04-17 Borut Razem <borut.razem AT siol.net>
1881
1882         * device/include/Makefile.in: added pic/*.inc to the installation
1883
1884 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
1885
1886         * support/regression/collate-results.py: fixed output in case of
1887         a valdiag error
1888         * support/regression/generate-cases.py: fixed splitting of pathnames
1889         with dots
1890         * as/hc08/lklibr.c (addfile),
1891         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
1892
1893 2006-04-11 Raphael Neider <rneider AT web.de>
1894
1895         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
1896         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
1897         * src/pic16/pcode.c (assignValnums): fixed #1460578
1898
1899 2006-04-11 Raphael Neider <rneider AT web.de>
1900
1901         * device/lib/pic/libdev/*.c,
1902         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
1903           fixes #1468739, enables compilation in --std-c99 mode
1904         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
1905
1906 2006-04-11 Raphael Neider <rneider AT web.de>
1907
1908         * src/pic/device.c (find_device): removed debug output
1909           (list_valid_pics): enabled verbose listing of supported devices
1910         * device/include/stdbool.h: define bool as char for pic14/16 as well
1911
1912 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1913
1914         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
1915
1916 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1917
1918         * .version: bumped version to 2.5.6
1919         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
1920
1921 2006-04-06 Raphael Neider <rneider AT web.de>
1922
1923         * .version: bumped version to 2.5.6 (pic14 ABI changed)
1924         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
1925         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
1926           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
1927             pic14_constructAbsMap
1928           (pic14printPublics): declare absolute global symbols as global
1929           (pic14createInterruptVect),
1930         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
1931           (newReg): assume new registers unused, use correct name in
1932             hashtable (reg->name instead of name), more debugLog output
1933         * src/pic/device.h (PIC_device): added fields for verbose output
1934         * src/pic/device.c: moved device definition to pic14devices.txt,
1935             added routines for runtime parsing of pic14devices.txt,
1936             added support for second config word
1937         * src/pic/main.c (_process_pragma): removed #pragma maxram,
1938           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
1939           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
1940           (_pic14_parseOptions): moved pCodeInitRegisters here
1941           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
1942         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
1943           (pCodeInitRegisters): rewrapped comments, perpared new approach to
1944             handling the pseudo stack
1945         * device/lib/Makefile.in: ignore failures in objects-pic16,
1946         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
1947         * device/lib/pic/NEWS: document new dependency on picXXX.lib
1948         * device/lib/pic/Makefile.subdir,
1949         * device/lib/pic16/Makefile.subdir: improved clean rules
1950         * device/lib/pic/libdev/: NEW, pic14 device libraries
1951         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
1952         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
1953         * device/include/Makefile.in: create subdir and install pic14 headers
1954         * device/include/pic/p16f_common.inc: removed unused declarations
1955         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
1956             PICs from inc2h.pl v1.6,
1957             replaced BIT_AT macros with struct declarations
1958         * device/include/pic/pic14devices.txt: definition of supported devices,
1959             all above improvements contributed by Zik Saleeba, thanks
1960         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
1961         * support/scripts/sdcc.nsi: also install pic14 device libraries and
1962             headers
1963
1964 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1965
1966         * device/include/mcs51/c8051f410.h: added interrupt numbers,
1967         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
1968           thanks to Charles Olds
1969
1970 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1971
1972         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
1973
1974 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1975
1976         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
1977         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
1978         * support/regression/bug1464657.c: added, new test
1979
1980 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1981
1982         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
1983           version number
1984
1985 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1986
1987         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
1988           --no-peep and --peep-file <file> are used don't use default rules but
1989           do use the <file>
1990
1991 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1992
1993         * src/mcs51/gen.c (genCall): fixed bug 1457608
1994
1995 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1996
1997         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
1998         changes seem to cause (trigger?) problems with the build system.
1999
2000 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
2001
2002         * src/SDCCpeeph.c (operandsLiteral): new, added,
2003           (callFuncByName): inserted operandsLiteral
2004         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
2005
2006 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2007
2008         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
2009         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
2010
2011 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2012
2013         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
2014           implemented patch 1120823 Thanks to Willy De la Court (normal
2015           interrupts need an interrupt number now if they are made critical),
2016           and enabled nesting of critical functions though not for gbz80
2017           (genCritical, genEndCritical): added functions
2018           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
2019         * src/z80/mappings.i: added "ei" to all mappings
2020
2021 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2022
2023         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
2024         submitted by the Debian SDCC maintainer Aurelien Jarno:
2025         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
2026         archive with gcc 4.1 on mips and wrote the patch"
2027
2028 2006-03-16 Raphael Neider <rneider AT web.de>
2029
2030         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
2031           the left operand is shorter than the result (c* = lit-c* + int),
2032           fixes bug #1450796
2033         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
2034           OP_SYMBOL
2035
2036 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2037
2038         * src/.version: increased version number to 2.5.5
2039         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
2040         linking is done manually in pic16 port's _linkEdit,
2041         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
2042         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
2043         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
2044         allocate asmop as AOP_ACC,
2045         (aopForRemat): added parameter 'bool result' in function declaration,
2046         (pic16_aopGet): return AOP_ACC when accessing WREG,
2047         (pic16_popGetTempReg): minor modification,
2048         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
2049         'pic16_allocWithIdx',
2050         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
2051         calling function in absolute addresses,
2052         (genAssign): take into account AOP_ACC asmop,
2053         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
2054         * src/pic16/pcoderegs.c: some debug functions and lines added,
2055         * src/pic16/ralloc.c (decodeRegType): added but commented out,
2056         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
2057         register too,
2058         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
2059         call to allocReg, not by manually allocating a new one,
2060         (pic16_assignRegisters): now before going through the register
2061         allocating functions mark all registers as free. This eliminates some
2062         side effects resulting from peephole parser done earlier in the backbone
2063
2064 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
2065
2066         * src/SDCCicode.c (geniCodeLogic),
2067         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
2068
2069 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
2070
2071         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
2072           (genSend): bugfix, do not allocate and free twice,
2073           (shiftRLong): handle partially overlapping aops
2074         * support/regression/tests/bitopcse.c: fixed warning redefined idata
2075
2076 2006-03-08 Borut Razem <borut.razem AT siol.net>
2077
2078         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
2079           for pic16
2080
2081 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
2082
2083         * support/regression/tests/bug1409955.c: new, added
2084         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
2085         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
2086           (aopForSym, aopOp): increment asmop.allocated if reused,
2087           (freeAsmop): decrement asmop.allocated and check for zero instead of
2088           using asmop.freed,
2089           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
2090           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
2091            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
2092            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
2093            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
2094            genSignedRightShift, genRightShift, genDataPointerGet,
2095            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
2096            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
2097             in reverse order from allocation,
2098           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
2099             added swappedLR to keep track
2100         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
2101           pdata & code for GCC, z80, gbz80 & hc08
2102         * support/regression/tests/zeropad.c: moved defines to testfwk.h
2103
2104 2006-03-08 Raphael Neider <rneider AT web.de>
2105
2106         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
2107
2108 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
2109
2110         * device/include/mcs51/c8051f410.h: new SiLabs mcu
2111         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
2112         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
2113
2114 2006-03-06 Borut Razem <borut.razem AT siol.net>
2115
2116         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
2117           made the linker quiet
2118
2119 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
2120
2121         * src/pic16/gen.c (genPcall): fixed bug #1443644
2122         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
2123         which dumps before the function entry point a data byte which represents
2124         the number of the local variables used by the specified function, added
2125         'xinst' for initial support for Extended Instruction Support,
2126         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
2127         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
2128         port->fun_prefix anymore (may change later),
2129         (genFunction, genEndFunction): do not store/restore local registers for
2130         _main (this should take care the --main-return command line option in
2131         the future),
2132         (genOr): removed some legacy pic-port instructions,
2133         * src/pic16/genarith.c (genAddLit): re-enabled old code because
2134         performing operations with SFR's causes data to be written more than
2135         once to each SFR. Perhaps SFRs should be handled in special cases...
2136         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
2137         pcode.h
2138         * src/pic16/main.c (_process_pragma): stack bound checking did not take
2139         into account for stack starting position,
2140         (struct OPTIONS pic16_optionsTable): added command line argument
2141         --extended or -y for Extended Instruction Support,
2142         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
2143         (deassignLRs): *** perhaps the most important change, old 'for' code
2144         (commented out for reference), didn't account for some registers which
2145         were left marked 'not free' after a pointer operation. The change
2146         reduces register usage a lot in some cases
2147
2148 2006-03-04 Borut Razem <borut.razem AT siol.net>
2149
2150         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
2151           _clean
2152         * support/regression/tests/bug-524697.c: decreased array size for
2153           mcs51 to fit into the internal RAM
2154         * support/regression/Makefile.in: a little bit more verbose
2155
2156 2006-03-03 Borut Razem <borut.razem AT siol.net>
2157
2158         * support/regression/fwk/lib/testfwk.c,
2159           support/regression/fwk/include/testfwk.h: introduced function
2160           _prints(), nonrecursive _printn(), call _initEmu() from main()
2161         * support/regression/ports/gbz80/support.asm,
2162           support/regression/ports/ucz80/support.asm,
2163           support/regression/ports/z80/support.asm,
2164           support/regression/ports/ds390/support.c,
2165           support/regression/ports/hc08/support.c,
2166           support/regression/ports/host/support.c,
2167           support/regression/ports/mcs51/support.c,
2168           support/regression/ports/xa51/support.c: added empty _initEmu()
2169           function
2170         * support/regression/ports/pic16/gpsim.cmd,
2171           support/regression/ports/pic16/spec.mk,
2172           support/regression/ports/pic16/support.c,
2173           support/regression/Makefile.in: added pic16 regression test
2174
2175 2006-03-01 Raphael Neider <rneider AT web.de>
2176
2177         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
2178           genConstPointerGet): use safe way of generating MOVFF to cover
2179             literals as well as registers, fixes bug #1440527
2180         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
2181             dereference
2182           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
2183             more correctly, fixes bug #1232186
2184           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
2185         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
2186             gplink guess the correct processor in more cases, applied patch
2187             from Till Riedel attached to and fixing bug #1436552
2188
2189 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2190
2191         * support/regression/tests/array.c: added, contains check for #1434401
2192         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
2193
2194 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
2195
2196         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
2197         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
2198         * device/include/mcs51/c8051f326.h,
2199         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
2200         * device/include/mcs51/c8051f000.h,
2201         * device/include/mcs51/c8051f018.h,
2202         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
2203           PCON_IDLE,PCON_STOP and added sfr16 definitions
2204
2205 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2206
2207         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
2208           genGetWord): fixed bug 1409955
2209
2210 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2211
2212         * device/include/hc08/mc68hc908gp32.h,
2213         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
2214
2215 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
2216
2217         * src/SDCCast.c (constExprValue): return NULL if not a value
2218         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
2219         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
2220         * support/regression/tests/bitfields.c: enabled signed bitfield for all
2221
2222 2006-02-13 Borut Razem <borut.razem AT siol.net>
2223
2224         * src/regression/ptrarg.c: added, fails due to bug #1430967
2225         * src/regression/Makefile: ptrarg.c added, ...
2226
2227 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2228
2229         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
2230         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
2231
2232 2006-02-11 Borut Razem <borut.razem AT siol.net>
2233
2234         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
2235           print "Processor: xxx" message to stdout only if --verbose
2236
2237 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2238
2239         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
2240         * support/regression/tests/bug1426356.c: added
2241         * support/regression/tests/bitfields.c: removed 2 tests
2242
2243 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2244
2245         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
2246         * device/include/mcs51/c8051f330.h,
2247         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
2248           PCON_IDLE,PCON_STOP and added sfr16 definitions
2249         * device/lib/_divsint.c,
2250         * device/lib/_divuint.c,
2251         * device/lib/_divulong.c,
2252         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
2253           register bank bug for small stackauto
2254
2255 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2256
2257         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
2258
2259 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
2260
2261         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
2262         * all.dsp: corrected several bin paths
2263         * device/include/mcs51/c8051f120.h,
2264         * device/include/mcs51/c8051f300.h,
2265         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
2266           to PCON_IDLE,PCON_STOP
2267         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
2268         * device/lib/printf_large.c (output_float): fixed bug 1388703
2269         * support/regression/tests/bug1057979.c: added test for bug 1388703
2270
2271 2006-02-08 Raphael Neider <rneider AT web.de>
2272
2273         * src/pic/pcode.c (pciTRIS): fixed typo,
2274           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
2275           (LinkFlow): fixed handling of flows that end in a call,
2276           (ReuseReg): perform safety check earlier
2277         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
2278             to work with flows at the beginning of a pBlock,
2279             fixes #1426557 (Symbol not previously defined),
2280           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
2281             usage information
2282           (RemoveUnusedRegisters): update register usage info
2283         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
2284             created, reuse existing ones instead
2285         * src/pic/gen.c (genPcall): fixed #1424719
2286
2287 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
2288
2289         * link/z80/lkmain.c,
2290         * link/z80/lklex.c,
2291         * link/z80/lkdata.c,
2292         * link/z80/aslink.h: fixed build on current cygwin:
2293         replaced getline() by lk_getline()
2294
2295 2006-02-01 Borut Razem <borut.razem AT siol.net>
2296
2297         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
2298           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
2299           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
2300           src/regression/bool1.c, src/regression/bool2.c,
2301           src/regression/bool3.c, src/regression/call1.c,
2302           src/regression/compare.c, src/regression/compare10.c,
2303           src/regression/compare2.c, src/regression/compare3.c,
2304           src/regression/compare4.c, src/regression/compare5.c,
2305           src/regression/compare6.c, src/regression/compare7.c,
2306           src/regression/compare8.c, src/regression/compare9.c,
2307           src/regression/configword.c, src/regression/for.c,
2308           src/regression/inline.c, src/regression/mult1.c,
2309           src/regression/nestfor.c, src/regression/or1.c,
2310           src/regression/pointer1.c, src/regression/ptrfunc.c,
2311           src/regression/rotate1.c, src/regression/rotate2.c,
2312           src/regression/rotate3.c, src/regression/rotate4.c,
2313           src/regression/rotate5.c, src/regression/rotate6.c,
2314           src/regression/rotate7.c, src/regression/string1.c,
2315           src/regression/struct1.c, src/regression/sub.c,
2316           src/regression/sub2.c, src/regression/switch1.c,
2317           src/regression/while.c, src/regression/xor.c,
2318           src/regression/create_stc, src/regression/simulate,
2319           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
2320           regression tests
2321         * src/regression/gpsim_assert.h: added
2322
2323 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
2324
2325         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
2326         ((void (code *) (void)) 0) ();
2327         * as/hc08/aslex.c,
2328         * as/hc08/aslink.h,
2329         * as/hc08/asm.h,
2330         * as/hc08/asmain.c,
2331         * as/hc08/lkdata.c,
2332         * as/hc08/lklex.c,
2333         * as/hc08/lkmain.c,
2334         * as/mcs51/aslex.c,
2335         * as/mcs51/aslink.h,
2336         * as/mcs51/asm.h,
2337         * as/mcs51/asmain.c,
2338         * as/mcs51/lkdata.c,
2339         * as/mcs51/lklex.c,
2340         * as/mcs51/lkmain.c,
2341         * as/z80/aslex.c,
2342         * as/z80/asm.h,
2343         * as/z80/asmain.c: fixed build on current cygwin:
2344         replaced getline() by as_getline()
2345
2346 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
2347
2348         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
2349         declarator in the symbol chain
2350         * src/SDCCsymt.h,
2351         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
2352         parameter list for function pointers
2353         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
2354         * support/regression/tests/bug-716242.c: added
2355
2356 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
2357
2358         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
2359         offset if possible
2360         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
2361
2362 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
2363
2364         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
2365         inifinitely recurseable, added static
2366         * support/regression/tests/bug-1408066.c: added
2367
2368 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
2369
2370         * src/SDCCicode.h,
2371         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
2372         renamed, added possibility to create "postLoopLbl"-labels
2373         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
2374         newiTempLoopHeaderLabel
2375         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
2376         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
2377         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
2378         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
2379         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
2380         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
2381         (basicInduction): fixed bug #136564, made static,
2382         (loopInduction): changed parameter of basicInduction, made static,
2383         (addPostLoopBlock): added
2384         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
2385         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
2386         findLoopEndSeq
2387         * support/regression/tests/bug-136564.c: added
2388         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
2389         --std-sdcc99 to LIBSDCCFLAGS
2390
2391 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
2392
2393         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
2394         while loop
2395         * support/regression/tests/bug-1406131.c: added
2396
2397 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
2398
2399         * src/SDCCast.c (decorateType): fix promotion of unary minus
2400         * src/SDCCsymt.c (computeType): beautified
2401         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
2402         (valUnaryPM, valComplement): fix sign and promotion,
2403         (valNot): ANSI: result type is int (SDCC: unsigned char)
2404         * support/regression/tests/uminus.c: speedup by removing superflous
2405         test case 'int'
2406         * support/regression/tests/onebyte.c: added promotion and signedness
2407         tests for unary minus
2408         * support/regressions/tests/bug-477927.c: disable warning about
2409         uninitialized variables
2410         * support/regression/tests/not.c: added
2411
2412 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
2413
2414         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
2415         * src/mcs51/gen.c (gen51Code): show final register usage after
2416         fillGaps in asm with --i-code-in-asm
2417         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
2418         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
2419         incUsed, rliveClear, adjustIChain): made static,
2420         (setFromRange): excluded because it's unused,
2421         (findPrevUseSym, markWholeLoop): added,
2422         (findPrevUse): rewritten; fixes bug 895992; now a complete search
2423         through all branches of predecessors enables sdcc to emit the warning
2424         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
2425         (rlivePoint): made static, added parameter emitWarnings which is only
2426         true during the first run out of two,
2427         (findRecursiveSucc, findRecursivePred): removed,
2428         (computeLiveRanges): made static, added parameter emitWarnings,
2429         (dumpIcRlive): added for debugging only
2430         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
2431         removed prototype of setFromRange()
2432         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
2433         in call of computeLiveRanges()
2434         * support/regression/tests/bug-895992.c: added
2435         * support/regression/tests/bug-971834.c: added
2436         * support/valdiag/tests/bug-895992.c: added
2437         * support/valdiag/tests/bug-971834.c: added
2438
2439 2005-12-18 Raphael Neider <rneider AT web.de>
2440
2441         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
2442           (genUnpackBits): improved code for direct operands,
2443           (genPackBits): improved code for literal assignment to bitfields
2444             and for direct destination operands (no FSR indirection),
2445             prevented redundant AND, fixes #1362800,
2446           (AccLsh): added parameter to disable masking of the result
2447         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
2448           skip instructions with side-effects (like incfsz),
2449           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
2450         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
2451         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
2452           fixes #1375263
2453
2454 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
2455
2456         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
2457         volatile variables as spill location
2458
2459 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
2460
2461         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
2462         replacing literals
2463         * support/regression/tests/bug-1376320.c: added
2464
2465 2005-12-08 Raphael Neider <rneider AT web.de>
2466
2467         * src/pic/device.c: renamed is_shared to pic14_is_shared
2468         * src/pic/gen.c (genIfx): re-enabled handling of sbits
2469         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
2470           (is_valid_identifier): added for above workaround
2471
2472 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
2473
2474         * device/lib/Makefile.in: fixed to enable port-specific-objects
2475         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
2476           char, thanks Hubert Sack
2477         * doc/sdccman.lyx: documented --xstack-loc,
2478           elaborated a bit more on interrupts and pitfalls,
2479           removed "setjmp/longjmp unsupported",
2480           documented some unsupported C99 features
2481         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
2482         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
2483           if, thanks Hubert Sack
2484         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
2485         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
2486           make make_library
2487         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
2488           regression tests can report resource usage (rfe 700441)
2489         * support/regression/collate-results.py: report resource usage
2490         * support/regression/ports/ds390/spec.mk,
2491         * support/regression/ports/hc08/spec.mk,
2492         * support/regression/ports/mcs51/spec.mk,
2493         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
2494         * support/regression/ports/ds390/uCsim.cmd,
2495         * support/regression/ports/hc08/uCsim.cmd,
2496         * support/regression/ports/mcs51/uCsim.cmd,
2497         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
2498         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
2499           library, use the default one
2500         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
2501           building the library
2502
2503 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2504
2505         * config.dsp: added dependency on .version and configure_vc.awk
2506         * device/include/setjmp.h: updated for --stack-auto and --xstack
2507         * device/include/mcs51/at89c51snd1c.h: corrected line endings
2508         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
2509         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
2510         * device/lib/libsdcc.lib: added _setjmp
2511         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
2512           (decorateType): fixed bug 1372851,
2513           (optimizeGetHbit): fixed warning
2514         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
2515           array initialisation
2516         * support/regression/tests/bug1057979.c: added test for bug 1358192
2517         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
2518
2519 2005-12-03 Borut Razem <borut.razem AT siol.net>
2520
2521         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
2522           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
2523
2524 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2525
2526         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
2527         createIval): implement symbol independant "flexible array member",
2528         (createIvalCharPtr): implemented flexible array initialisation with a
2529         string
2530         * src/SDCCsymt.c (copyStruct): removed,
2531         (getSize): fixed misleading comment,
2532         (getAllocSize): removed, the additional allocation size is now in
2533         sym->flexArrayLength,
2534         (checkStructFlexArray): new, syntax checks for flexible array members,
2535         (compStructSize): added syntax checks for "flexible array members"
2536         (copyStruct): removed,
2537         (copyLinkChain): removed inefficient fix for bug 770487
2538         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
2539         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
2540         symbol->flexArrayLength
2541         * src/SDCCerr.c,
2542         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
2543         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
2544         * support/regression/tests/structflexarray.c: added
2545         * support/valdiag/tests/structflexiblearray.c: added
2546
2547 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2548
2549         * src/SDCCast.c (decorateType): fixed bug 1368489
2550         * support/Util/SDCCerr.c,
2551         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
2552
2553 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2554
2555         * device/include/mcs51/at89c51snd1c.h: added file submitted by
2556           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
2557
2558 2005-11-27 Borut Razem <borut.razem AT siol.net>
2559
2560         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
2561           support/cpp2/mkdeps.h: added command line option
2562           -obj-ext=<extension> to SDCPP to define object file externion, used
2563           for generation of make dependencies (-M)
2564         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
2565
2566 2005-11-26 Borut Razem <borut.razem AT siol.net>
2567
2568         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
2569           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
2570           added pic and pic16 libraries
2571
2572 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2573
2574         * device/include/float.h: Corrected typo in prototype of __fsgt
2575
2576 2005-11-25 Borut Razem <borut.razem AT siol.net>
2577
2578         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
2579           added creation of model-mcs51-stack-auto libraries
2580
2581 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
2582
2583         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
2584         and fields-list too
2585         * src/SDCCast.c (createIvalArray): removed obsolete comment
2586
2587 2005-11-24 Borut Razem <borut.razem AT siol.net>
2588
2589         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
2590           added missing device/lib/mcs51/crt*.asm sources
2591
2592 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
2593
2594         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
2595
2596 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
2597
2598         * device/lib/_fs2schar.c,
2599         * device/lib/_fs2sint.c,
2600         * device/lib/_fs2slong.c: optimized inline asm
2601
2602 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2603
2604         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2605           Better handling of floats between -1.0 and 0.0.
2606
2607 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2608
2609         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
2610           (the missing "if"s prohibited removal of redundant labels)
2611
2612 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2613
2614         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2615           Properly convert floats between -1.0 and 0.0 to long, int, and char
2616           types (max integer value of negative floats tends to zero).
2617         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2618           Removed changes made so to work properly with floats between
2619           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
2620           and _fs2char.c
2621
2622 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2623
2624         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
2625         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
2626         (genCast) cosmetic change
2627         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
2628         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
2629         from mcs51
2630         * support/regression/tests/bitfields (testSignedBitfields): added
2631
2632 2005-11-18 Borut Razem <borut.razem AT siol.net>
2633
2634         * sdcc/device/lib/Makefile.in: remove all unnecessary files
2635         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
2636           introduced SILENT option to make building of pic16 libraries less
2637
2638 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2639
2640         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2641           Now they work properly with floats between -1.0 and 0.0
2642         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
2643
2644 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2645
2646         * src/SDCCicode.c (printOperand): added missing else
2647
2648 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2649
2650         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
2651         reformatted for better readability
2652         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
2653         signed bitfields
2654
2655 2005-11-17 Borut Razem <borut.razem AT siol.net>
2656
2657         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
2658           introduced SILENT option to make building of pic16 libraries less
2659           verbose - used for nightly snapshot build
2660         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
2661           available on Win32 platforms.
2662         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
2663           medium, large, pic and pic16
2664
2665 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2666
2667         * device/lib/printf_large.c: Temporary patch for bug 1358192:
2668           printf("%f"...) sets fraction to zero.
2669
2670 2005-11-16 Raphael Neider <rneider AT web.de>
2671
2672         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
2673           fixes #1357221
2674         * src/pic/gen.c (genIfx): implemented for CARRY bit
2675         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
2676           to generic pointers, fixes #1357332,
2677           (pic16_movLit2f): NEW,
2678           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
2679
2680 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2681
2682         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
2683
2684 2005-11-11 Raphael Neider <rneider AT web.de>
2685
2686         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
2687         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
2688           compute pointer's type from operand,
2689           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
2690           improved single bit reads, fixes bug #1353379
2691
2692 2005-11-09 Borut Razem <borut.razem AT siol.net>
2693
2694         * support/scripts/sdcc.nsi: added lib/pic to the package
2695
2696 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
2697
2698         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
2699
2700 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2701
2702         * support/regression/tests/bug1348008.c: added
2703         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
2704         * support/regression/tests/bug1337835.c: updated comment
2705
2706 2005-11-06 Borut Razem <borut.razem AT siol.net>
2707
2708         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2709           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2710           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2711           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2712           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
2713           dynamic construction of cl_error_class and derivates - 2.nd try
2714
2715 2005-11-05 Borut Razem <borut.razem AT siol.net>
2716
2717         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
2718           bug, which caused Bus Errors on sparc solaris
2719
2720 2005-11-04 Borut Razem <borut.razem AT siol.net>
2721
2722         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2723           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2724           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2725           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2726           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
2727           and derivates to resolve the initialization problem on OSX
2728
2729 2005-11-02 Borut Razem <borut.razem AT siol.net>
2730
2731         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2732           corrected typo - #include <winsock2.h>
2733
2734 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
2735
2736         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
2737           (_asxxxx_mapping): added org directive for future enhancements
2738
2739 2005-11-01 Borut Razem <borut.razem AT siol.net>
2740
2741         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2742           enabled sockets on WIN32
2743         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
2744
2745 2005-10-31 Borut Razem <borut.razem AT siol.net>
2746
2747         * support/regression/generate-cases.py: escape backslashes in {testcase}:
2748           WIN32 backslash path delimiters should be escaped when used in C strings
2749         * support/regression/tests/bitfields.c: exclude failing assertions for
2750           __CYGWIN32__ and __MINGW32__ hosts
2751
2752 2005-10-30 Borut Razem <borut.razem AT siol.net>
2753
2754         * src/SDCCutil.c: corrected double comparison typo
2755
2756 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
2757
2758         * device/lib/medium/Makefile: added for new memory model medium
2759         * device/include/asm/mcs51/features.h: updated for medium/pdata
2760         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
2761           added Multiply & Accumulate sbit's and MAC0_PAGE define
2762         * device/include/mcs51/c8051f300.h: added sfr16 definitions
2763         * device/include/mcs51/c8051f310.h: added sfr16 definitions
2764         * device/lib/_mullong.c: update for medium model
2765         * device/lib/incl.mk: added medium model
2766         * doc/sdccman.lyx: documented medium model
2767         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
2768         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
2769         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
2770         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
2771           (allocParms): set SCLS and OCLS to pdata for medium model
2772         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
2773           for pdata,
2774           (powof2): return <0 if not power of 2
2775         * src/avr/gen.c (genBitWise): use updated powof2
2776         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
2777           (shiftR2Left2Result): small optimization in setup, save acc when storing,
2778           (shiftLLeftOrResult): use B if necessary
2779         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
2780         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
2781         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
2782         * support/regression/Makefile.in: added test-mcs51-medium
2783         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
2784
2785 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
2786
2787         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
2788         specifier unsigned
2789         * device/lib/time.c (mktime): fixed bug 1334315
2790
2791 2005-10-28 Raphael Neider <rneider AT web.de>
2792
2793         * device/include/pic/p16f_common.inc: added common declarations
2794         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
2795
2796 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2797
2798         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
2799           (aopPutUsesAcc): added to predict accumulator use,
2800           (assignResultValue): save acc if necessary,
2801           (genMinusDec): store result if indirectly addressed,
2802           (genDivOneByte):  save acc if necessary,
2803           (movLeft2Result): bugfix if left already in acc,
2804           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
2805             attention to accumulator use (esp. pdata),
2806           (genReceive): receive pdata correctly
2807         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
2808         * src/SDCCicode.h: added isOperandInPagedSpace prototype
2809
2810 2005-10-27 Raphael Neider <rneider AT web.de>
2811
2812         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
2813
2814 2005-10-27 Raphael Neider <rneider AT web.de>
2815
2816         * .version: changed version to 2.5.4
2817         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
2818         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
2819           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
2820             arithmetics support routines
2821         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
2822         * device/lib/Makefile.in: also create installdir for pic
2823
2824         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
2825           pic14 port as well
2826         * src/pic/device.c (dump_sfr): rewritten to delegate register
2827           placement to the linker (use `extern sym' rather than sym EQU addr),
2828           (validAddress): fixed to check last specified address
2829         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
2830           (popGetLit): truncate literal value to 8 bit,
2831           (popGet): moved assert to more appropriate place
2832           (popGetExternal): create pCode operand from and mark the according
2833             symbol as being `extern'
2834           (popGetAddr): added sanity check on immediate's offset, provide
2835             GPOINTER tag on demand
2836           (aopPut): fixed for immediates,
2837           (mov2w_op): move operand's address or contents to WREG (depending on
2838             operand type), safer variant of mov2w,
2839           (movwf,call_libraryfunc): NEW, handy abbreviations,
2840           (get_argument_pcop,get_return_val_pcop,pass_argument,
2841           get_returnvalue): interface for accessing function parameters and
2842             return values,
2843           (assignResultValuei,genRet): use new parameter/return value interface
2844           (pic14_getDataSize): back to old version handling generic pointers,
2845           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
2846             provided implementation and/or fixed old one,
2847           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
2848             calls, removed legacy 8051 reference code
2849           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
2850           (loadSignToC): NEW, move the operands sign bit to CARRY,
2851           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
2852             genRightShiftSigned, accepts negative shift counts,
2853           (setup_fsr): load FSR and adjust IRP (indirect memory access),
2854           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
2855             generic pointers, __data pointers and __code pointers,
2856           (genUnpackBits,genPackBits): rewritten to work with generic pointers
2857             and signed bitfields, limit bitfields to 8 bit,
2858           (genDataPointerGet): fixed number of bytes read,
2859           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
2860           (genPointerGet,genPointerSet): fixed handling of __code pointers,
2861             pointers to constant data are no longer assumed to point to __code
2862             space, removed invalid pointer types,
2863           (bitpatternFromVal): retrieve the PICs representation of an integer
2864             or float literal,
2865           (genDataPointerSet): fixed assigning to po_immediate operands,
2866           (genGenPointerSet): implemented as library call,
2867           (genIfx): fixed incorrect condition,
2868           (genAddrOf): limit generic pointers' addresses to 2 bytes,
2869             provide GPOINTER tag according to destination's storage class,
2870           (genCast): added code to handle casting to generic pointers, added
2871             sign-/zero extension of the result
2872           (aop_isLitLike,op_isLitLike): fixed handling of immediates
2873         * src/pic/gen.h: added macros to access IRP bit in STATUS register
2874         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
2875           extend the result
2876         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
2877           address/register resides in the shared banks
2878           (emitSymbolToFile): improved to handle global and `pinned' symbols,
2879             put all variables into separate sections (have the linker arrange
2880             them)
2881           (picglue): put init code and interrupt handlers in separate sections
2882         * src/pic/main.c: added port specific options table, modified to PORT
2883           structure to make GPOINTERs 3 byte, added pic14_options
2884           (_pic14_do_link): private linking routine (update paths to libraries,
2885             add libsdcc.lib by default)
2886         * src/pic/main.h: declare pic14_options
2887         * src/pic/pcode.c: fixed instructions i/o relations,
2888           (RegCond): reverted to correct version,
2889           (newpCodeOpLit): truncate literals to 8 bit,
2890           (genericPrint): added debug output,
2891           (getRegFromInstruction): fixed for various operand types, simplified
2892           (BuildFlow): fixed broken handling of isntructions with labels
2893           (LinkFlow): start at last instruction in flow (skip trailing comments),
2894             pass the flow on to the next instruction after CALL
2895           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
2896           (insertPCodeInstruction): fixed inserting after a skip instruction,
2897           (DoBankSelect): fixed for labeled instructions
2898           (OptimizepBlock): honor --nopeep switch
2899           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
2900         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
2901         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
2902           (pCodeOptime2pCodes): allow disabling this optimization via
2903             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
2904             but is still buggy), started implementation of a dataflow based
2905             pCode optimization (CSE + dead code elimination)
2906           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
2907         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
2908           names are independant of the stack location and therefore portable across
2909           devices
2910
2911 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2912
2913         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
2914           (selectSpil): fixed bug 1337835 by not spilling bit variables
2915         * support/regression/tests/bug1337835.c: added test for this bug
2916         * src/mcs51/peeph.def: restart after rule 3.c,
2917           addded rules 263.x to optimize loading constants
2918
2919 2005-10-26 Raphael Neider <rneider AT web.de>
2920
2921         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
2922         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
2923           (genAssign): emit warning when casting literals to generic pointer
2924             type, also applies when taking the address of a fixed variable,
2925           (genCast): improved casting to generic pointers
2926         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
2927           extern variables, added verbose error message
2928         * device/include/pic16/{string.h,errno.h}: added #pragma library c
2929
2930 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
2931
2932         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
2933         carry must be complemented too
2934         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
2935         could be emitted by genMinus
2936         * src/SDCCval.c (constVal): fixed bug 1305065
2937
2938 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
2939
2940         * src/SDCCast.c (addCast): added promotion for bit variables
2941         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
2942         promotion casts + optimisation
2943         (optimizeGetWord): fix warning 'i' might be used uninitialized
2944         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
2945         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
2946
2947 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
2948
2949         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
2950         all chars are promoted to int; promotion should be handled in SDCCast.c
2951
2952 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2953
2954         * device/lib/_strcmp.c: Fixed bug 1326457
2955
2956 2005-10-11 Raphael Neider <rneider AT web.de>
2957
2958         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
2959         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
2960
2961 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
2962
2963         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
2964         * support/regression/tests/sfr16.c: added test for the sfr32 bug
2965
2966 2005-10-04 Raphael Neider <rneider AT web.de>
2967
2968         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
2969           device/lib/pic16/pics.all: added pic18f1320
2970         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
2971
2972 2005-09-30 Raphael Neider <rneider AT web.de>
2973
2974         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
2975         * src/pic16/devices.inc: NEW, provides device descriptions
2976         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
2977
2978 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2979
2980         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
2981           GETHBIT
2982
2983 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
2984
2985         * doc/sdccman.lyx: updated Highest Order Bit documentation,
2986           documented Any Order Bit, Higher Order Byte and Higher Order Word
2987         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
2988         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
2989           (optimizeGetAbit): new, to get any bit, not only the high bit,
2990           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
2991           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
2992           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
2993           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
2994             RIGHT_OP: also try GETBYTE, GETWORD optimization,
2995             GETABIT, GETBYTE, GETWORD: decorate them,
2996           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
2997           (ast_print): added GETABIT, GETBYTE, GETWORD
2998         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
2999         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
3000           (geniCodeBinary): new generic binary icode,
3001           (ast2iCode): added GETABIT, GETBYTE, GETWORD
3002         * src/port.h: updated comment for PORT.hasExtBitOp
3003         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
3004           (genGetByte): new, to get a single byte,
3005           (genGetWord): new, to get a word from a long,
3006           (gen51Code): added GETABIT, GETBYTE, GETWORD
3007         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
3008
3009 2005-09-23 Raphael Neider <rneider AT web.de>
3010
3011         * configure.in, configure: have device/lib/pic configured
3012         * device/lib/Makefile.in: added model-pic14
3013         * device/lib/clean.mk: added pic/ to clean rule
3014         * device/lib/pic: added rudimentary pic14 library providing support
3015           functions for multiplication/division/generic pointer access
3016         * src/SDCCopt.c (convilong): mark support functions as extern
3017           for pic14 port as well
3018         * src/pic/gen.c (genMult): added assertions,
3019           (genpic14Code): emit warning on unhandled iCodes
3020         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
3021         * src/pic/pcode.c (pCodeOpCopy),
3022         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
3023           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
3024           SFR_REGISTER}), made safe for future extensions
3025         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
3026           instructions even if preceeded by SKIP instructions (also remove
3027           them); removed unused code
3028         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
3029           prevents leaving parts of the structure uninitialized after copying
3030
3031 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
3032
3033         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
3034           ago by me
3035         * support/regression/tests/addsub.c: added test for the bug
3036
3037 2005-09-21 Raphael Neider <rneider AT web.de>
3038
3039         * device/include/pic16/pic18f1220.h,
3040           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
3041         * device/lib/pic16/Makefile.rules: added missing opening paren
3042         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
3043           are provided in genutils.c,
3044           (genUminusFloat,genUminus,genCmpEq): added asserts on different
3045           operand/result sizes,
3046           (genCmp): assert on NULL pointers first, then check deref'ed values
3047         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
3048           result size
3049
3050 2005-09-18 Raphael Neider <rneider AT web.de>
3051
3052         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
3053           as these are now unused,
3054           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
3055         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
3056           local, avoids uninitialized pointer dereference on r->name
3057         * src/pic16/ralloc.c (newReg): fixed indentation
3058
3059 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
3060
3061         * src/SDCCval.c (constVal): fixed bug 730366
3062         * support/Util/SDCCerr.c,
3063         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
3064
3065 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
3066
3067         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
3068
3069 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
3070
3071         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
3072
3073 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3074
3075         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
3076           (hex2dec): made hex_digit unsigned char, removed ascii dependance
3077         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
3078           (hex2dec): made hex_digit unsigned char, removed ascii dependance
3079         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
3080         * packihx/packihx.c (hexDigit): made c unsigned char
3081         * as/mcs51/lklibr.c (fndsym),
3082         * link/z80/lkgb.c (gb),
3083         * link/z80/lklibr.c (fndsym),
3084         * link/z80/lkrloc.c (relr),
3085         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
3086         * src/SDCC.lex (checkCurrFile, process_pragma),
3087         * src/SDCCglue.c (spacesToUnderscores),
3088         * src/SDCCmain.c (setParseWithComma, processFile),
3089         * src/asm.c (tvsprintf, printCLine),
3090         * src/avr/gen.c (emitcode, aopPut),
3091         * src/ds390/gen.c (emitcode),
3092         * src/hc08/gen.c (emitcode, emitinline),
3093         * src/mcs51/gen.c (emitcode, genInline),
3094         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
3095           tokenizeLineNode),
3096         * src/pic/ralloc.c (debugLog),
3097         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
3098           tokenizeLineNode),
3099         * src/pic16/ralloc.c (debugLog),
3100         * src/z80/main.c (_process_pragma):
3101            made all ctype.h function calls safe
3102         * src/SDCCopt.c: include math.h for fabs
3103         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
3104           and used them throughout the code to make ctype.h function calls safe
3105         * src/ds390/main.c (asmLineNodeFromLineNode),
3106         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
3107         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
3108            unsigned char*
3109         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
3110           (newpCodeAsmDir): made ctype.h function calls safe
3111         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
3112           pic16_emitcode):  made lbp unsigned char*
3113         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
3114           (pic16_newpCodeAsmDir): made ctype.h function calls safe
3115         * src/xa51/gen.c (emitcode),
3116         * src/z80/gen.c (_emit2): made lbp unsigned char*
3117         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
3118            char*
3119
3120 2005-09-05 Raphael Neider <rneider AT web.de>
3121
3122         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
3123           access bank splitpoint
3124
3125 2005-09-05 Raphael Neider <rneider AT web.de>
3126
3127         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
3128
3129 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
3130
3131         * .version: changed to version 2.5.3
3132         * doc/sdccman.lyx: changed version to 2.5.3,
3133           documented --codeseg and --constseg and pragma codeseg and constseg,
3134           documented bit parameters (reentrant) and bit returning
3135         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
3136            currFunc->recvSize, but is this ok for all ports?
3137           (ast2iCode): result of ~ on unsigned char must be cast to int for
3138            bool to work
3139         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
3140           function pointers in bit space
3141         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
3142           (processFuncArgs): call port.reg_parm() with reentrancy info
3143         * src/port.h,
3144         * src/avr/main.c,
3145         * src/ds390/main.c,
3146         * src/hc08/main.c,
3147         * src/pic/main.c,
3148         * src/pic16/main.c,
3149         * src/xa51/main.c,
3150         * src/z80/main.c: port.reg_parm prototype extended with
3151           "bool reentrant" parameter
3152         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
3153           options.stackAuto for allocating bit register parameters
3154         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
3155           (genSend): set BitBankUsed if it is,
3156           (selectRegBank): factored out of genCall for use in genPcall,
3157           (genCall): removed redundant dtype assignmen, use selectRegBank,
3158           (genPcall): handle returning in Carry properly, save in F0 if needed,
3159           (genReceive): handle bit register parameters
3160         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
3161           (mcs51_assignRegisters): enable bit registers for all reentrant
3162            functions and don't set BitBankUsed unconditionally
3163         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
3164         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
3165         * support/regression/tests/funptrs.c: added tests for BOOL and for return
3166
3167 2005-08-27 Borut Razem <borut.razem AT siol.net>
3168
3169         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
3170         ppc-osx (Darwin) does not support -u option. It seems that it is
3171         supported only on Linux - GNU cp
3172
3173 2005-08-25 Borut Razem <borut.razem AT siol.net>
3174
3175         * sim/ucsim/gui.src/serio.src/Makefile.in,
3176           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
3177           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3178           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
3179           install and strip, since the strip at /usr/ccs/bin should be used
3180           on solaris
3181
3182 2005-08-24 Borut Razem <borut.razem AT siol.net>
3183
3184         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
3185
3186 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
3187
3188         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
3189         ffffffffu
3190
3191 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
3192
3193         * as/mcs51/aslink.h: completed lkrloc.c prototypes
3194         * as/mcs51/lkmain.c (link_main): fixed warning
3195         * device/include/stdbool.h: ds390 has no advanced bit support yet
3196         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
3197         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
3198         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
3199           and updated their macros
3200         * src/SDCCval.c (constVal): updated comment for renamed b_long
3201
3202 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
3203
3204         * as/mcs51/asdata.c: changed ctype['['] to BINOP
3205         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
3206           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
3207           (oprio): set priority for '['
3208         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
3209            and adb_24_bit
3210         * as/mcs51/asm.h: added defines R_BIT and S_BIT
3211         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
3212         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
3213         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
3214           added overlayable BIT_BANK area
3215         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
3216           (summary2): explain 'T' in legenda
3217         * as/mcs51/lkrloc.c: replaced old K&R style,
3218           (relr): added R_BIT processing,
3219           (errmsg): added "Bit-addressable relocation error",
3220           (adb_bit): added for converting from byte- to bit-addressable space,
3221           (adb_24_bit): added for converting from byte- to bit-addressable space
3222         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
3223            used in reentrant functions now even as return value
3224         * device/lib/_gptrput.c (_gptrput): removed obsolete code
3225         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
3226           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
3227         * src/SDCCglobl.h: added indicator BitBankUsed
3228         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
3229            the bit registers b0-b7
3230         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
3231           (geniCodeCast): fixed bug 1263853,
3232           (geniCodeLogicAndOr): put result in bool or char,
3233           (geniCodeReceive): added parameter func for accessing the return type,
3234           (geniCodeFunctionBody): pass func to geniCodeReceive
3235         * src/SDCCmain.c: added indicator BitBankUsed
3236         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
3237         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
3238           (checkSClass): don't put automatic bool/bit on stack,
3239           (checkFunction): removed check on function cannot return bit
3240         * src/SDCCsymt.h: added newBoolLink prototype
3241         * src/mcs51/gen.c (rb1regs): added bit registers,
3242           (movc): created for assigning to carry,
3243           (pushReg, popReg): created for pushing registers,
3244           (sameRegs): check both AOP_REG and AOP_CRY types,
3245           (aopOp): handle bit registers,
3246           (aopPut): optimization no self-assign,
3247           (saveRegisters): push reg->base (bits) only once for bit registers,
3248            and use pushReg,
3249           (unsaveRegisters): pop reg->base only once and use popReg,
3250           (assignResultValue): added parameter func and return in carry for bits,
3251           (genIpush): optimization no reload in A if not changed,
3252           (genSend): bit parameters in reentrant functions are passed in bit
3253            registers by first assigning to bits in B, then save registers and
3254            copy B to bits,
3255           (genCall): handle returning in Carry properly, save it in F0 if needed,
3256           (genPcall): updated assignResultValue call, this is not safe yet for bit
3257            returning function !!!
3258           (genFunction): don't generate equ's for bit registers and use pushReg,
3259           (genEndFunction): take care of bit returning functions and use popReg,
3260           (genRet): return bit in Carry,
3261           (genIfx): optimize bit registers and other directly addressable bits,
3262           (genReceive): updated assignResultValue call
3263         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
3264           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
3265            registers when using stack-auto
3266         * src/mcs51/ralloc.c (_G): added allBitregs,
3267           (regs8051): added the bit registers,
3268           (createStackSpil): use macro IS_BIT,
3269           (getRegBit): added to allocate a bit register, else spill,
3270           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
3271           (updateRegUsage): factored out to ease stepping while debugging,
3272           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
3273            also allocate bit registers,
3274           (fillGaps): handle bit registers,
3275           (findAllBitregs): added to create bit vector with all bit registers,
3276           (mcs51_allBitregs): returns this bit vector,
3277           (mcs51_assignRegisters): when using stack-auto use bit registers for
3278            passing parameters and creating local variables
3279         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
3280
3281 2005-08-22 Borut Razem <borut.razem AT siol.net>
3282
3283         * device/lib/Makefile.in: replaced find option -or with -o
3284           to make it run on solaris
3285
3286 2005-08-22 Raphael Neider <rneider AT web.de>
3287
3288         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
3289           fixes #1265442 (crash on Solaris)
3290
3291 2005-08-20 Borut Razem <borut.razem AT siol.net>
3292
3293         * configure, configure.in: added tests for libsocket and libnsl libraries,
3294           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
3295           from support/regression/Makefile.in
3296         * support/regression/Makefile.in: added
3297         * device/lib/pic16/Makefile.common.in: force make to use bash shell
3298         * sim/ucsim/libtool: regenerated on sparc-solaris
3299         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3300           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
3301           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
3302           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
3303           sparc-solaris, which doesn't use GNU ld linker
3304         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
3305         * as/Makefile: find on sparc-solaris does not support -maxdepth option
3306
3307 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
3308
3309         * src/mcs51/peeph.def: updated comments
3310
3311 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3312
3313         * device/lib/_gptrget.c,
3314         * device/lib/_gptrput.c: slightly shorter
3315         * doc/sdccman.lyx: incremented version
3316         * src/mcs51/peeph.def: moved peephole comments to the line of first
3317           change to better keep line correlation, reanimated 186.e
3318         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
3319
3320 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3321
3322         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
3323           David Saxton with quotes around file name.
3324
3325 2005-08-15 Borut Razem <borut.razem AT siol.net>
3326
3327         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
3328           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
3329           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
3330           make tests run on x86_64 platform
3331
3332 2005-08-13 Raphael Neider <rneider AT web.de>
3333
3334         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
3335           as it might be executed DURING a build (parallel make is wonderful)
3336
3337 2005-08-13 Raphael Neider <rneider AT web.de>
3338
3339         * device/lib/Makefile.in (port-specific-objects-pic16):
3340           revert to cp $(PORT)/bin/*.* $(PORTDIR)
3341         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
3342           dependency
3343         * device/lib/pic16/Makefile.rules: build subdirs before creating
3344           the library, removed builddir rule, create $(builddir) early in
3345           recurse rule, use empty recurse rule for leaf directories
3346         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
3347           mkdir errors (race condition), removed duplicate suffix "hex"
3348           from clean rules
3349         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
3350         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
3351           prevents mkdir -p from aborting on Alpha
3352
3353 2005-08-12 Raphael Neider <rneider AT web.de>
3354
3355         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
3356           db-statements in order to allow for arrays of pointers in code
3357           sections to be placed without interspersed 0-padding, fixes
3358           bug #1256215
3359         * (emitStatistics): fixed division by zero for pic18f1220
3360         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
3361           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
3362         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
3363         * (pic16_pCodeConstString): keep track of already emitted string
3364           literals to prevent "duplicate definitions of symbol _str_NR"
3365         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
3366           debug message
3367         * device/lib/Makefile.in: ignore failing PIC16 library builds
3368         * device/lib/pic16/Makefile: do not build if gputils are missing
3369         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
3370
3371 2005-08-10 Raphael Neider <rneider AT web.de>
3372
3373         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
3374           my last commit)
3375
3376 2005-08-10 Raphael Neider <rneider AT web.de>
3377
3378         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
3379           Rokas' patch to add the new fixed point type "__fixed16x16"
3380         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
3381           functions for __fixed16x16 arithmetics
3382         * device/lib/pic16: reimplemented the build system to support
3383           a separate build directory, better handling of libio (create
3384           the library in a separate subdir for each architecture) and
3385           easier configuration (centralized in Makefile.common)
3386
3387 2005-08-07 Raphael Neider <rneider AT web.de>
3388
3389         * src/pic16/gen.c (genrshTwo): fixed sign extension
3390         * src/pic16/device.c: added pic18f2320, 4220 and 4320
3391         * device/include/pic16/pic18f2220.h: changed some bit definitions,
3392           added T0CONbits
3393         * device/include/pic16/pic18f4220.h: NEW, header for
3394           pic18f4220 and pic18f4320
3395         * device/include/pic16/pic18fregs.h: added new devices,
3396           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
3397         * device/include/pic16/signal.h: resolved name clashes
3398           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
3399           to also allow testing for interrupt enable bits, added
3400           comments on how to use the macros
3401         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
3402         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
3403           register definitions for the devices
3404         * device/lib/pic16/pics.all: added new devices
3405         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
3406           allocated memory
3407         * device/lib/pic16/libc/stdlib/memfree: do not count
3408           the block header as free memory
3409         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
3410           simplified and added missing end-of-blocklist-marker
3411           (reported by Peter Onion, fixes #1252814)
3412         * (_mergeHeapBlock): fixed loop condition
3413         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
3414           len==0, restructured code
3415         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
3416           up a bit, reduced bitfield accesses, prevent endless loops
3417           in case of heap corruption
3418         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
3419           "unreferenced arguments/must return a value" warnings
3420         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
3421           replaced BAUDREG with SPBRG
3422         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
3423           device/lib/pic16/debug/gstack/gstack.c: replaced
3424           _naked, _asm, _endasm with __naked, __asm, __endasm
3425
3426 2005-08-05 Raphael Neider <rneider AT web.de>
3427
3428         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
3429           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
3430
3431 2005-08-05 Borut Razem <borut.razem AT siol.net>
3432
3433         * device/lib/Makefile.in: added missing ';'
3434         * configure: removed ^M characters
3435
3436 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3437
3438         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
3439           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
3440           License
3441
3442 2005-08-04 Borut Razem <borut.razem AT siol.net>
3443
3444         * configure.in: pic16 libraries build 2nd try - enable running
3445           configure in device/lib/pic16
3446         * configure: regenerated from configure.in
3447         * device/lib/Makefile.in: create $(PORT)/bin directory
3448
3449 2005-08-03 Raphael Neider <rneider AT web.de>
3450
3451         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
3452           to get/set values via pointers
3453         * (genUnpackBits,genPackBits): changed detection of
3454           ptr->bitfield vs. sym.bitfield, fixed access via generic
3455           pointers, removed dead (wrong) code for multibyte bitfields
3456         * (genNearPointerGet, genGenPointerGet): removed useless code,
3457           fixed bitfield detection, fixes #1250594
3458         * (genNearPointerSet): removed useless code
3459         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
3460           and introduced macro pic16_emitpcode that conditionally emits
3461           the origin of the following pCode (useful for debugging SDCC)
3462         * src/pic16/pcode.c: changed (and disabled) some debug outputs
3463         * (createDefmap): fixed handling of LFSR for --optimize-df
3464
3465 2005-08-02 Borut Razem <borut.razem AT siol.net>
3466
3467         * device/lib/Makefile.in: pic16 libraries build enabled since
3468           gputils-0.13.2 are now localy installed at sourceforge's compile farm
3469
3470 2005-08-02 Raphael Neider <rneider AT web.de>
3471
3472         * src/pic16/gen.c (genPackBits): removed deprecated warning
3473         * (genGenPointerSet): fixed bitfield detection
3474
3475 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3476
3477         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
3478
3479 2005-07-31 Raphael Neider <rneider AT web.de>
3480
3481         * device/lib/pic16/libdev/pic18f458.c,
3482           device/include/pic16/pic18f458.h: added missing T0CONbits
3483
3484 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3485
3486         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
3487
3488 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
3489
3490         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
3491
3492 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3493
3494         * device/include/mcs51/at89c51ed2.h: added.
3495
3496 2005-07-23 Raphael Neider <rneider AT web.de>
3497
3498         * src/pic/gen.h: added emitpcode macro for debugging
3499         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
3500           and replace by macro adding debug information on demand
3501         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
3502         * (gencjne): tried to fix; replaced with correct (slower) code
3503         * (gen{Unp,P}ackBits): fixed single bit access
3504         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
3505         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
3506           previous instruction
3507         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
3508           register has to be handled with care (forbidding movement
3509           of assignments/uses, removing assignments completely, ...)
3510         * (pCodeOptime2pCodes): make use of regIsSpecial
3511         * added lots of debugging output (commented out)
3512         * src/pic/rallloc.c (deassignLRs): prevent operand registers
3513           from being reused as result UNLESS it is known to work
3514
3515 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3516
3517         * support/Util/dbuf.h: include <stddef.h> for size_t
3518         * .version: changed to version 2.5.2
3519
3520 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3521
3522         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
3523
3524 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3525
3526         * src/hc08/gen.c (genMinus): fixed bug #1241835,
3527           (genModOneByte): removed needless psha/pula
3528
3529 2005-07-22 Raphael Neider <rneider AT web.de>
3530
3531         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
3532           have PIC14 handled like PIC16, fixes broken pic14 linker calls
3533         * src/pic/gen.c (resolveIfx): do not "invent" labels
3534         * (genSkipc): changed to positive logic
3535         * (genSkipCond): removed as no longer needed
3536         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
3537           backport from PIC16
3538         * (genLeftShift): check operands are in different registers
3539         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
3540           INCF does not update CARRY...
3541         * src/pic/main.c: fixed _linkCmd
3542         * src/pic/pcode.c (unlinkpCode): added inactive code
3543         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
3544           alive (do not assign result and operand overlapping registers)
3545
3546 2005-07-22 Raphael Neider <rneider AT web.de>
3547
3548         * src/pic/device.c (dump_sfr): replaced register declaration with
3549           call to emitSymbolToFile() to avoid duplicate symbols
3550         * (assignRelocatableRegisters): do not declare external symbols
3551         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
3552           right (take size of type, not etype)
3553         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
3554         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
3555         * (packRegsForAccUse): disabled assignment of WREG as
3556           the result reg to prevent occurence of just fixed #1235003,
3557           fixes #1242954
3558         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
3559           symbols (avoids duplicate symbols in .asm file)
3560         * (pic14emitRegularMap): use emitSymbolToFile()
3561         * src/pic/gen.c (aopOp): fixed spillLocation handling
3562         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
3563         * (genDataPointerSet): removed unneccessary variables/output
3564
3565 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
3566
3567         * as/mcs51/lkarea.c: enlarged codemap for banked memory
3568         * device/lib/mcs51/crtbank.asm: added # to 0x0F
3569
3570 2005-07-21 Raphael Neider <rneider AT web.de>
3571
3572         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
3573           architecture cannot handle them efficiently, fixes bug #1235003
3574         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
3575           check for empty sets before using them (fixes bug #1232190)
3576
3577 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
3578
3579         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
3580           (lnksect2): generate warnings for memory overlap
3581         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
3582           constseg to set the name of these segments so you can instruct the linker
3583           to place them in banks
3584         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
3585         * src/SDCCglobl.h: added MODEL_HUGE to enum,
3586           added code_seg and const_seg to options
3587         * src/SDCCglue.c (emitMaps): use options.const_seg,
3588           (createInterruptVect): put interrupt vectors in segment HOME,
3589           (glue): put HOME before static segment and put the main glue in HOME,
3590           (glue): use options.code_seg
3591         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
3592         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
3593           these segments so you can instruct the linker to place them in banks
3594           (linkEdit): use code_loc for HOME segment which should be the first
3595           segment in code memory now
3596         * src/SDCCmem.c: fixed more stuff like bug 1238386
3597         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
3598           (changePointer): don't change function pointers to code pointers for
3599           banked functions,
3600           (compareType): added exceptional check for banked function pointers
3601         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
3602         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
3603           after static in code memory
3604         * src/mcs51/gen.c: added aopLiteralLong prototype,
3605           (aopForSym): use getSize for functions,
3606           (genCall): generate banked calls over one trampoline __sdcc_banked_call
3607           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
3608           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
3609           the segment,
3610           (genPcall): use call for literal function pointers and generate banked
3611           calls over the one trampoline so there's only one place for the user to
3612           modify according to his/hers hardware,
3613           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
3614           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
3615         * src/mcs51/main.c: added keyword banked,
3616           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
3617         * support/Util/SDCCerr.c,
3618         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
3619           needed for passing the bank and address to the trampoline
3620         * device/lib/mcs51/crtbank.asm: added for bankswitching
3621         * device/lib/mcs51/Makefile: added crtbank
3622
3623 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3624
3625         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
3626           for fields at offset 0 of a struct or union as reported
3627           on 2005-07-07 in the developer mailing list.
3628
3629 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
3630
3631         * src/SDCCmem.c: fixed bug 1238386
3632
3633 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3634
3635         * src/mcs51/peeph.def: added labelrefcounting for peepholes
3636           (patch #1144962), added peephole 300, enabled 259.x
3637         * doc/sdccman.lyx: removed screenshot and provided link instead
3638
3639 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3640
3641         * doc/sdccman.lyx: added section about debugging with ddd
3642         * doc/figures/ddd_example.eps: screenshot of debugging session
3643
3644 2005-07-04 Raphael Neider <rneider AT web.de>
3645
3646         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
3647           like CODE pointers, fixes #1115683
3648         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
3649           call, fixes bugs #1232211, #1228110,
3650           fixed wrong casts to pCodeFlow from pCodeInstructions
3651
3652 2005-07-04 Raphael Neider <rneider AT web.de>
3653
3654         * src/pic/gen.c (popGet): changed assert to allow for
3655           bit operands
3656         * (popGetAddr): changed signature to provide
3657           an additional index, patched all call sites
3658         * (genCmpEq): handle literal-like operands correctly
3659         * (genAddrOf): added sanity checks on __code/__data pointers
3660         * (genAssign): added handling of symbols from __code section
3661         * (gencjne): do not generate code for comparisons whose result
3662           is neither stored nor used, fixes bug #1171114
3663         * (AccLsh, AccRsh): operate on operand instead of WREG
3664         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
3665           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
3666           by known count
3667         * rewrote complete shift-by-literal logic, commented unused
3668           functions out
3669         * (genConstPointerGet): get multiple bytes (if result size > 1),
3670           fixed handling of non-immediate addresses
3671         * (genPointerGet): handle CODE pointers like CONST pointers
3672         * (genpic14Code): insert C-SRC lines as Cource-pCodes
3673         * ({aop,op}_isLitLike): NEW, single place to decide whether an
3674           operand is to be treated as a literal or not
3675         * (mov2w,genPcall,genCmpEq),
3676           src/pic/genarith.c: use aop_isLitLike() to decide between
3677           literal/register contents
3678         * (addSign): added missing offset
3679         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
3680           only emit comment in debug-mode,
3681           use {aop,op}_isLitLike throughout the file
3682         * src/pic/glue.c: fix initializers for pointers (work in progress)
3683         * src/pic/pcode.c (get_op): honor index on _const symbols
3684         * ({reset,dump}pCodeStatistics): NEW, estimate code size
3685         * (dumppBlock): added pCode size estimation
3686         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
3687           check for IS_SYMOP before OP_SYMBOL'ing
3688         * fixed indentation, compacted switch-statements
3689         * (allocReg): find free register and allocate it instead of
3690           allocating new registers all the time
3691         * (deassignLRs): prevent POINTER_GET's from being assigned the same
3692           registers as its operands (necessary only for multibyte GETs)
3693
3694 2005-07-01 Raphael Neider <rneider AT web.de>
3695
3696         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
3697           debugging .asm-output macros FENTRY + FEXIT
3698         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
3699           way... I wonder...
3700         * (emitpComment): NEW, printf to pCode
3701         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
3702           offset handling
3703         * (popGetAddr): NEW, variant of popGet to access an immediates
3704           high(er) bytes instead of the n'th byte of memory they reference,
3705           replaced popGet with popGetAddr where neccessary
3706         * (genDataPointerGet): reactivated and fixed implementation
3707         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
3708           accesses
3709         * (genDataPointerSet): fixed multibyte assignments
3710         * (genpic14Code): fixed --i-code-in-asm handling
3711         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
3712         * (genPlus): fixed index-out-of-bounds error
3713         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
3714         * src/pic/ralloc.c: added debugging output macro FENTRY2
3715         * (spillThis): fixed indentation, enbraced for-body for clarity
3716         * (rematStr): commented out as now unused
3717         * (regTypeNum): commented out special spill case (overwrites
3718           arbitrary values)
3719         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
3720
3721 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
3722
3723         * doc/sdccman.lyx: documented sfr16/sfr32,
3724           added example for using storage class with function pointers
3725         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
3726
3727 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
3728
3729         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
3730         * device/lib/_itoa.c,
3731         * device/lib/_ltoa.c: optimized codesize
3732         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
3733           but don't know how to suppress the double warning.
3734         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
3735         * support/Util/SDCCerr.c,
3736         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
3737
3738 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
3739
3740         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
3741           fixed old K&R prototypes
3742         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
3743         * device/lib/_gptrget.c,
3744         * device/lib/_gptrgetc.c,
3745         * device/lib/_gptrput.c: changed versions for new memory indicator values,
3746           also new versions for small generic pointers and banked generic pointers
3747         * src/port.h: added const_name
3748         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
3749         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
3750         * src/SDCCcse.c (findPrevIc): check all associative operators
3751         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
3752         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
3753         * src/SDCCmem.c: updated comments,
3754           set far-space to 0 for pdata, results in optimized code
3755         * src/SDCCmem.h: added macro CONST_NAME
3756         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
3757           moving the info into the highest bits, see also gptrget/gptrput
3758         * src/src.dsp: added sdcc.ico to project files
3759         * src/avr/gen.c (genCast): fixed bug 0x%d
3760         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
3761         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
3762           relation between ptr_type and DCL_TYPE,
3763           (genCast): fixed bug 0x%d
3764         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
3765           (CODE)" for const_name
3766         * src/hc08/gen.c (genCast): fixed bug 0x%d
3767         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
3768           (hc08_port): added "CONST (CODE)" for const_name
3769         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
3770           (aopForRemat, adjustArithmeticResult): disconnected direct relation
3771           between ptr_type and DCL_TYPE,
3772           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
3773           operand* and took AOP() inside function so sfr-ness can be checked,
3774           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
3775           new prototype,
3776           (genFunction, genEndFunction): optimized stack setup,
3777           (genMinus): optimized for literals with ending zeroes (in bytes),
3778           (genCast): fixed bug 0x%d
3779         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
3780           (mcs51_port): added "CONST (CODE)" for const_name
3781         * src/mcs51/peeph.def: made rule 226 more generic
3782         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
3783         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
3784         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
3785         * src/z80/main.c (z80_port): added NULL for const_name,
3786           (gbz80_port): added NULL for const_name
3787         * support/regression/tests/bug663539.c,
3788         * support/regression/tests/sfr16.c: new tests
3789
3790 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3791
3792         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
3793
3794 2005-06-24 Raphael Neider <rneider AT web.de>
3795
3796         * device/lib/pic16/libdev/pic18f[68][567]20.c:
3797           corrected typos...
3798         * device/include/pic16/signal.h: added USBIF
3799           and SIG_USB
3800
3801 2005-06-24 Raphael Neider <rneider AT web.de>
3802
3803         * device/lib/pic16/libdev/pic18f2455.c,
3804           device/include/pic16/pic18f2455.h: NEW
3805         * device/include/pic16/pic18fregs.h,
3806           device/lib/pic16/pics.all,
3807           src/pic16/device.c: added 18f2455
3808         * device/lib/pic16/libdev/pic18f[68][567]20.c,
3809           device/include/pic16/{pic18f[68][567].h,usart.h}:
3810           replaced MULTIPLE_USARTS define with more relaible
3811           compatibility sfrs (for USART access)
3812
3813 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
3814
3815         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
3816           and the output asm file line is printed on two lines.
3817
3818 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3819
3820         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
3821           BGT, BLE, BHI, and BLS instructions
3822         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
3823           genCmpEq): removed
3824         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
3825           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
3826           fixes bug #1216342
3827         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
3828
3829 2005-06-15 Raphael Neider <rneider AT web.de>
3830
3831         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
3832         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
3833         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
3834           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
3835           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
3836
3837 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3838
3839         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
3840           Marcel Telka in bug #1215704
3841
3842 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
3843
3844         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
3845           located in shared memory bank.
3846
3847 2005-05-31 Raphael Neider <rneider AT web.de>
3848
3849         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
3850           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
3851           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
3852
3853 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
3854
3855         * device/lib/_strncpy.c: fixed the fix
3856
3857 2005-05-26 Raphael Neider <rneider AT web.de>
3858
3859         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
3860           initializers with \0, bug #1208187
3861         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
3862           intializers with \0, bug #1208187
3863
3864 2005-05-26 Raphael Neider <rneider AT web.de>
3865
3866         * src/pic16/glue.c (pic16_printIvalChar): fixed string
3867           initializers with \0, bug #1208187
3868         * src/pic16/main.c (_process_pragma): added sanity checks
3869           for stack position and size, emit warnings when appropriate
3870
3871 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3872
3873         * device/lib/_strncpy.c: fixed not filling with \0
3874
3875 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3876
3877         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
3878           createFunction),
3879         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
3880           compound_statement),
3881         * src/SDCCsymt.h,
3882         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
3883
3884 2005-05-24 Raphael Neider <rneider AT web.de>
3885
3886         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
3887
3888 2005-05-24 Raphael Neider <rneider AT web.de>
3889
3890         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
3891           TRISE definitions, closes bug #1162453
3892
3893 2005-05-22 Raphael Neider <rneider AT web.de>
3894
3895         * src/pic16/main.c (_process_pragma): check for missing
3896           arguments to pragmas code and udata
3897         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
3898           consistency fixes to match other headers (thanks to Jim Paris)
3899         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
3900
3901 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3902
3903         * src/SDCCicode.c (isOperandEqual): fixed missing ;
3904
3905 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
3906
3907         * support/regression/tests/bug1198642.c: new test
3908         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
3909         * src/SDCCcse.c (findPrevIc): added comment, please have a look
3910         * support/scripts/resource.h,
3911         * support/scripts/resource.rc,
3912         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
3913         * support/scripts/sdcc.ico: added 32x32 icon
3914
3915 2005-05-18 Raphael Neider <rneider AT web.de>
3916
3917         * device/lib/pic16/libdev/pic18f*.c,
3918         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
3919           keywords to "__sfr" and "__at (X)"
3920         * device/include/pic16/pic18fregs.h: added pic18f4520
3921         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
3922           #1203088 (MPLAB compatibility)
3923
3924 2005-05-17 Raphael Neider <rneider AT web.de>
3925
3926         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
3927         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
3928         * device/lib/pic16/pics.all: added new devices
3929         * src/pic16/device.c: added support for pic18f4520
3930
3931 2005-05-16 Raphael Neider <rneider AT web.de>
3932         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
3933         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
3934         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
3935           convenience function for bit access
3936
3937 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3938
3939         * device/lib/printf_large.c: fixed bug 1193299
3940         * support/regression/tests/bug1057979.c: added test %3.3s
3941
3942 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3943
3944         * device/include/mcs51/8051.h,
3945         * device/include/mcs51/8052.h: made parseable with lint
3946         * device/include/mcs51/lint.h: added include file for (sp)lint
3947         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
3948         * doc/cdbfileformat.lyx,
3949         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
3950
3951 2005-05-14 Raphael Neider <rneider AT web.de>
3952
3953         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
3954         * device/lib/pic16/libc/stdlib/itoa.c (new)
3955         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
3956         * device/lib/pic16/libio/Makefile: exclude subdir according to
3957           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
3958         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
3959         * src/pic16/gen.c (genFunction): prevent annoying warning
3960         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
3961           nameclashes on BeOS
3962         * support/cpp2/cppmain.c (cpp_output_string): new
3963         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
3964           fixes bug 1116802
3965
3966 2005-05-13 Borut Razem <borut.razem AT siol.net>
3967
3968         * src/SDCCmain.c (linkEdit): fixed bug 1195202
3969
3970 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3971
3972         * .version: changed to version 2.5.1; back to bleeding edge development
3973
3974 2005-05-11 Borut Razem <borut.razem AT siol.net>
3975
3976         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
3977           generate PDF version 1.3 documents
3978
3979 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3980
3981         * .version: changed to version 2.5.0
3982
3983 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3984
3985         * doc/sdccman.lyx: updated weblinks, index and smaller updates
3986
3987 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3988
3989         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
3990         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
3991         well as many smaller updates.
3992         * .version: changed to version 2.5.0-pre1
3993
3994 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3995
3996         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
3997
3998 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3999
4000         * support/regression/tests/bug1185672.c: added
4001         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
4002           bug 1185672
4003         * src/mcs51/gen.c (genCall): added comments, made it look safer
4004         * src/mcs51/gen.c (genEndFunction): simplified
4005
4006 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
4007
4008         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
4009
4010 2005-04-14 Borut Razem <borut.razem AT siol.net>
4011
4012         * fixed bug 1045046 - SIGSEGV with really simple code?:
4013           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
4014           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
4015
4016 2005-04-14 Borut Razem <borut.razem AT siol.net>
4017
4018         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
4019           src/pic16/device.h: temporarily disabled experimental #inline pragma
4020           for 2.5.0 release
4021
4022 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
4023
4024         * device/include/z80/stdio.h,
4025         * device/include/z80/string.h: removed these highly incomplete files so
4026           SDCC can use the default ones in device/include/
4027
4028 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4029
4030         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
4031         gcc warning.
4032         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
4033         fix sdcpp warnings.
4034
4035 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4036
4037         * device/include/malloc.h: removed redundant __reentrant prototypes
4038         * device/lib/_mullong.c: added working xstack variant in asm (C version
4039           doesn't pass regression tests)
4040         * device/lib/bpx.c: used __data and made bpx char for mcs51
4041         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
4042           (createFunction): fixed bug with xstackPtr
4043         * src/SDCCcse.c: corrected comments
4044         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
4045           (killDeadCode, eBBlockFromiCode): removed unused code
4046         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
4047           corrected comments
4048         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
4049           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
4050           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
4051           (genModOneByte): fixed warning in MSVC
4052         * src/mcs51/main.c (): added comments
4053         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
4054
4055 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4056
4057         * src/SDCCmain.c (linkEdit): oops, changed one line too many
4058
4059 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
4060
4061         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
4062
4063 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
4064
4065         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
4066         characters arrays of larger size than the declared one.
4067
4068 2005-04-10 Borut Razem <borut.razem AT siol.net>
4069
4070         * src/pic/gen.c (genInline),
4071           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
4072           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
4073           (findNextInstruction), (findPrevInstruction),
4074           (findInstructionUsingLabel),
4075           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
4076         * src/pic/pcode.c (findLabel): added missing '\n'
4077         * src/src.dsp: added SDCCdwarf2.c to the project
4078
4079 2005-04-09 Borut Razem <borut.razem AT siol.net>
4080
4081         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
4082
4083 2005-04-08 Raphael Neider <rneider AT web.de>
4084
4085         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
4086           into the chain after a given one) and mergeDefmapSymbols (combine
4087           defmap entries for each symbol per pcode)
4088         * (createDefmap): have defmap entries merged in the end
4089         * (defmapReplaceSymRef): split defmap entries covering two accesses to
4090           a symbol before replacing one access type's symbol, merge symbols in
4091           the end (replacement symbol might already have an entry)
4092         * (assignValnums): keep reference to written WREG intact
4093
4094 2005-04-08 Raphael Neider <rneider AT web.de>
4095
4096         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
4097           Alpha)
4098
4099 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
4100
4101         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
4102         bytes
4103
4104 2005-04-07 Raphael Neider <rneider AT web.de>
4105
4106         * device/include/pic16/usart.h: added compatibility defines for
4107           devices with more than one USART
4108         * device/include/pic16/pic18f[68][567]20.h: activated above defines
4109
4110 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4111
4112         * device/lib/Makefile.in: updated for port specific include
4113
4114 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4115
4116         * support/regression/ports/mcs51/spec.mk: added mcs51 include
4117
4118 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4119
4120         * device/include/8051.h,
4121         * device/include/8052.h,
4122         * device/include/at89S8252.h,
4123         * device/include/at89c55.h,
4124         * device/include/at89x051.h,
4125         * device/include/at89x51.h,
4126         * device/include/at89x52.h,
4127         * device/include/mcs51reg.h,
4128         * device/include/reg51.h,
4129         * device/include/reg764.h,
4130         * device/include/regc515c.h,
4131         * device/include/sab80515.h: (re)moved these 12 files
4132         * device/include/mcs51/8051.h,
4133         * device/include/mcs51/8052.h,
4134         * device/include/mcs51/at89S8252.h,
4135         * device/include/mcs51/at89c55.h,
4136         * device/include/mcs51/at89x051.h,
4137         * device/include/mcs51/at89x51.h,
4138         * device/include/mcs51/at89x52.h,
4139         * device/include/mcs51/mcs51reg.h,
4140         * device/include/mcs51/reg51.h,
4141         * device/include/mcs51/reg764.h,
4142         * device/include/mcs51/regc515c.h,
4143         * device/include/mcs51/sab80515.h: and added them here
4144
4145 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4146
4147         * device/include/stdarg.h: changed SDCC specific keywords to double
4148           underlined form.
4149         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
4150           mcs51 and ds390.
4151         * device/include/hc08/mc68hc908gp32.h,
4152         * device/include/hc08/mc68hc908jb8.h,
4153         * device/include/hc08/mc68hc908jkjl.h,
4154         * device/include/hc08/mc68hc908qy.h: fixed comments
4155         * device/include/mcs51/README: updated
4156         * device/include/mcs51/c8051f120.h: added PINRSF
4157         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
4158         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
4159           amidst code. Also inline is not supported.
4160
4161 2005-04-06 Raphael Neider <rneider AT web.de>
4162
4163         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
4164         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
4165           callers stack/frame pointers
4166
4167 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4168
4169         * device/include/pic16/usart.h: added, missing in previous commit,
4170         * device/include/pic16/adc.h: fixed typo,
4171         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
4172         commit,
4173         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
4174         <p18fxxx.inc>
4175         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
4176         uninitialized because a bug appears with gplink
4177         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
4178         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
4179         complains for unrecognised option
4180
4181 2005-04-05 Raphael Neider <rneider AT web.de>
4182
4183         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
4184           structs as well (using memcpy)
4185         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
4186           on ISRs (GOTO has no label)
4187         * src/pic16/device.h: added OF_OPTIMIZE_DF
4188         * src/pic16/main.c: added compiler switch --optimize-df to enable the
4189           new data flow analysis/optimization
4190         * src/pic16/pcode.c: added (prototypes for and implementation of)
4191           dataflow analysis functions, fixed pCodeInstructions' inCond and
4192           outCond values, made RCALL a branch instruction
4193         * (pic16_unlinkpCode): keep C line if possible
4194         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
4195           C line moved if possible
4196         * (pic16_getRegFrompCodeOp): NEW, improved version of...
4197         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
4198           to use new pic16_getRegFrompCodeOp (works for more SFRs)
4199         * (pic16_BuildFlow): fixed skip instructions with label (did not start
4200           new flow)
4201         * (pic16_getJumptabpCode): NEW, needed in...
4202         * (LinkFlow): fixed handling of jumptables, calls and conditional
4203           branches
4204         * (pic16_InsertCommentAfter): NEW
4205         * (pic16_pCodeReplace): made verbose and flow preserving
4206         * (AnalyzeFlow): added call to data flow analysis
4207         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
4208         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
4209         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
4210
4211 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4212
4213         * src/SDCCast.c (decorateType): fixed bug #1105626
4214
4215 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
4216
4217         * device/include/asm/pic16/features.h,
4218         * pic18f*.h headers,
4219         * device/include/pic16/adc.h,
4220         * device/include/pic16/delay.h,
4221         * device/include/pic16/i2c.h,
4222         * device/include/pic16/malloc.h,
4223         * device/include/pic16/stdio.h,
4224         * device/include/pic16/stdlib.h,
4225         * device/include/pic16/string.h,
4226         * device/lib/pic16/libc/stdio/printf_tiny.c,
4227         * device/lib/pic16/libc/stdio/printf_small.c,
4228         * device/lib/pic16/libc/stdio/strmgpsim.c,
4229         * device/lib/pic16/libc/stdio/strmmssp.c,
4230         * device/lib/pic16/libc/stdio/strmusart.c,
4231         * device/lib/pic16/libc/stdio/vfprintf.c,
4232         * device/lib/pic16/libc/stdlib/ltoa.c,
4233         * device/lib/pic16/libc/stdlib/putchar.c,
4234         * device/lib/pic16/libc/stdlib/x_ftoa.c,
4235         * device/lib/pic16/libc/stdlib/memchrpgm.c,
4236         * device/lib/pic16/libc/stdlib/memchrram.c,
4237         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
4238         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
4239         * device/lib/pic16/libio/adc/adcbusy.c,
4240         * device/lib/pic16/libio/adc/adcread.c,
4241         * device/lib/pic16/libio/adc/adcsetch.c,
4242         * device/lib/pic16/libio/usart/ubaud.c,
4243         * device/lib/pic16/libio/usart/ubusy.c,
4244         * device/lib/pic16/libio/usart/udrdy.c,
4245         * device/lib/pic16/libio/usart/uopen.c,
4246         * device/lib/pic16/libio/usart/uputc.c,
4247         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
4248         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
4249         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
4250         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
4251         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
4252         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
4253         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
4254         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
4255         specific keywords to double underlined form,
4256         * device/lib/pic16/libc/Makefile.rules,
4257         * device/lib/pic16/libsdcc/Makefile.rules,
4258         * device/lib/pic16/libm/Makefile,
4259         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
4260         to compile with C standard set in Makefile.common
4261         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
4262         rand.c and crc.c in compilation process,
4263         * device/lib/pic16/libsdcc/int/divuint.c,
4264         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
4265         `c' from signed to unsigned,
4266         * device/lib/pic16/startup/crt0.c,
4267         * device/lib/pic16/startup/crt0i.c,
4268         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
4269         keywords to double underlined form, bug fixes in _do_cinit function
4270         which prevented the correct initialization of the .idata segment,
4271         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
4272         core to enter a infinite loop
4273         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
4274
4275 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4276
4277         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
4278
4279 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4280
4281         * device/include/Makefile.in: add support for hc08 subdirectory
4282         * device/include/hc08/: new subdirectory
4283         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
4284         Lucas Loizaga, thanks!
4285         * device/include/hc08/mc68hc908qy.h,
4286         * device/include/hc08/mc68hc908gp32.h,
4287         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
4288         their own directory. Changed internal macro names to use the compiler
4289         reserved namespace. Changed SDCC specific keywords to double
4290         underlined form.
4291         * device/include/math.h,
4292         * device/include/malloc.h,
4293         * device/include/stdarg.h,
4294         * device/include/stdbool.h
4295         * device/include/string.h,
4296         * device/include/tinibios.h,
4297         * device/include/ds400rom.h,
4298         * device/include/8051.h,
4299         * device/include/8052.h,
4300         * device/include/80c51xa.h,
4301         * device/include/at89c55.h,
4302         * device/include/at89S8252.h,
4303         * device/include/at89x51.h,
4304         * device/include/at89x52.h,
4305         * device/include/ds80c390.h,
4306         * device/include/reg764.h,
4307         * device/include/regc515c.h,
4308         * device/include/sab80515.h,
4309         * device/include/mcs51/c8051f000.h,
4310         * device/include/mcs51/c8051f018.h,
4311         * device/include/mcs51/c8051f020.h,
4312         * device/include/mcs51/c8051f040.h,
4313         * device/include/mcs51/c8051f060.h,
4314         * device/include/mcs51/c8051f120.h,
4315         * device/include/mcs51/c8051f300.h,
4316         * device/include/mcs51/c8051f310.h,
4317         * device/include/mcs51/c8051f320.h,
4318         * device/include/mcs51/c8051f330.h,
4319         * device/include/mcs51/c8051f350.h,
4320         * device/include/z180.h: Changed SDCC specific keywords to double
4321         underlined form.
4322
4323 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
4324
4325         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
4326         18F4455,
4327         * (pic16_assignConfigWordValue): disable testing of configuration
4328         register value with config mask,
4329         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
4330         function with port->fun_prefix,
4331         * (genFunction): when generating a naked interrupt function never
4332         create an absolute segment placed in interrupt vector address, place
4333         the actual interrupt function at IVA instead, when an interrupt
4334         function is generated with unspecified interrupt then do not create
4335         the absolute section,
4336         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
4337         code for generating a call to generic pointer get/put function with
4338         a call to function pic16_callGenericPointer(),
4339         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
4340         the call to the generic pointer get/put functions with prefixing the
4341         function name with port->fun_prefix,
4342         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
4343         * src/pic16/main.c (_process_pragma): prefix function with
4344         port->fun_prefix,
4345         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
4346         calling assembler, old 18Fxxxx macro is deprecated,
4347         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
4348         PC_ASMDIR in while condition,
4349         * (findInstruction): add PC_ASMDIR in while condition,
4350         * (buildCallTree): prefix main with port->fun_prefix,
4351         * (pic16_pCode2str): fixed bug that didn't emit the memory access
4352         identifier for variable with banked access in instructions BTFSS,
4353         BTFSC, BCF, BSF, BTG
4354         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
4355         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
4356         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
4357         perform optimization when enviroment variable NO_REG_OPT is set,
4358         * (insideLRBlock): NEW, return 1 if register is inside an
4359         INF_LOCALREGS block,
4360         * (RemoveRegFromLRBlock): remove a register that is completely
4361         eliminated by register optimization, but it is still left in local
4362         register store/restore in/from stack block,
4363         * (Remove2pcodes): after removing register, check to see if it
4364         should be removed from local register store/restore in/from stack
4365         block,
4366         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
4367         DUMMY_READ_VOLATILE,
4368
4369         * device/include/pic16/adc.h: minor prototype modifications and
4370         update,
4371         * device/include/pic16/malloc.h: added GPL notice various
4372         modifications,
4373         * device/include/pic16/stdint.h: NEW, standard header for ints
4374         * device/include/pic16/delay.h: NEW, header for delay functions,
4375         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
4376         delay1mtcy,
4377         * device/include/pic16/signal.h: NEW, header providing helper macros
4378         for implementing signal handlers,
4379         * device/include/pic16/stdio.h: added prototypes for functions,
4380         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
4381         prototypes for stdin and stdout, added macro PUTCHAR to
4382         automatically implement putchar function prototype,
4383         * device/include/pic16/usart.h: modified and updated USART library,
4384         * device/lib/pic16/libio/adc/,
4385         * device/lib/pic16/libio/i2c: some modifications to improve library
4386         performance,
4387         * device/lib/pic16/libc/stdio/: modifications for the new printf*
4388         family of functions,
4389         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
4390         family of functions and other sources,
4391         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
4392         of the PIC18Fxx[28] devices,
4393         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
4394         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
4395         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
4396         _do_cinit function, because the previous failed when local variables
4397         where not placed in the same memory bank,
4398         * device/lib/pic16/libsdcc/char/: various modifications to improve
4399         library performance,
4400         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
4401         information on the new functions of the c library and more...
4402
4403 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4404
4405         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
4406
4407 2005-03-26 Raphael Neider <rneider AT web.de>
4408
4409         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
4410           if condition == CARRY)
4411         * (genCmp): adapted to new genSkipc semantics
4412         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
4413           on rIfx (genCmp was broken)
4414
4415 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4416
4417         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
4418         * src/z80/main.c (_keywords[]),
4419         * src/SDCCglobal.h (struct options),
4420         * src/SDCC.y,
4421         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
4422         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
4423         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
4424         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
4425         always available in leading double underscore form. The C99 support is
4426         mostly missing, but it's a start.
4427         * support/regression/tests/bug-227710.c: fixed nonconforming use of
4428         reserved identifier "__data".
4429
4430 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4431
4432         * src/mcs51/peeph.def: fixed bug 1170013
4433
4434 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
4435
4436         * device/include/mcs51reg.h: fixed bug 842007
4437
4438 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4439
4440         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
4441         last time.
4442
4443 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4444
4445         * src/port.h (struct PORT),
4446         * src/avr/ralloc.c (avr_assignRegisters),
4447         * src/avr/main.c,
4448         * src/ds390/ralloc.c (ds390_assignRegisters),
4449         * src/ds390/main.c,
4450         * src/hc08/ralloc.c (hc08_assignRegisters),
4451         * src/hc08/main.c,
4452         * src/mcs51/ralloc.c (mcs51_assignRegisters),
4453         * src/mcs51/main.c,
4454         * src/pic/ralloc.c (pic14_assignRegisters),
4455         * src/pic/main.c,
4456         * src/pic16/ralloc.c (pic16_assignRegisters),
4457         * src/pic16/main.c,
4458         * src/xa51/ralloc.c (xa51_assignRegisters),
4459         * src/xa51/main.c,
4460         * src/z80/ralloc.c (z80_assignRegisters),
4461         * src/z80/ralloc.h,
4462         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
4463         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
4464         * src/SDCCcse.h,
4465         * src/SDCCdflow.c (computeDataFlow),
4466         * src/SDCCdflow.h,
4467         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
4468         * src/SDCCloop.h,
4469         * src/SDCCcflow.c (*),
4470         * src/SDCCcflow.h,
4471         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
4472         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
4473         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
4474         immedDom() returning wrong block; probably fixes bug #1160833)
4475
4476 2005-03-20 Borut Razem <borut.razem AT siol.net>
4477
4478         * support/scripts/inc2h.pl: WIN32 port
4479
4480 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
4481
4482         * device/lib/makefile.in: added abs.c and labs.c
4483
4484 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
4485
4486         * device/include/stdint.h: added
4487         * device/lib/abs.c: added
4488         * device/lib/labs.c: added
4489         * device/include/stdlib.h: added abs() and labs() prototypes
4490         * device/lib/libsdcc.lib: added abs and labs
4491         * device/include/float.h,
4492         * device/lib/_fsmul.c,
4493         * device/lib/printf_fast.c,
4494         * device/lib/printf_tiny.c: updated comments
4495
4496 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4497
4498         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
4499         bug #1164313
4500
4501 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4502
4503         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
4504         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
4505
4506 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
4507
4508         * device/lib/printf_large.c: removed inline assembly for portability and
4509           readability. Use printf_fast if speed or size are more important.
4510         * src/pic16/gen.c: removed conditions around use of DEBUGpc
4511         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
4512
4513 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
4514
4515         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
4516         prevent compiler warning
4517
4518 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4519
4520         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
4521         moved to level 0 and declared as static. Also they are explicit
4522         placed in access bank. This was necessery because some times they
4523         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
4524         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
4525         optimizations. Currently only compare to unsigned char is implemented,
4526         * src/pic16/gen.c: added fReturnIdx array,
4527         * (struct resolvedIfx) is moved to gen.h and made public,
4528         * (struct _G): added sregsAlloc and sregsAllocSet fields,
4529         * (aopForSym): added an optimization to directly store in stack of
4530         the operand of a SEND iCode,
4531         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
4532         but as registers instead (AOP_REG) using the fReturnIdx array,
4533         * (pic16_freeAsmop): remove the freed register from the
4534         _G.sregsAlloc field,
4535         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
4536         a compare of 'WREG',
4537         * (pic16_popGetTempRegCond): changed function prototype, now
4538         function takes also a bitVector argument v which holds the current
4539         set of registers that are allocated for stack access by aopForSym,
4540         registers allocated in aopForSym for accessing stack symbols are not
4541         any more part of the functions usedRegs field,
4542         * (genCall): some times aopOp is called for a stack variable to be
4543         send, aopForSym might perform the push, if this is true make sure
4544         that genCall doesn't push the variable twice by testing _G.resDirect,
4545         * (genFunction): changed testing for unspecified interrupt number
4546         from 256 to INTNO_UNSPEC,
4547         * modified selection scheme of frame pointer generation. Previously
4548         if function did use local registers a frame pointer was generated,
4549         now a frame pointer is generated only if function has arguments
4550         (that need PLUSW2 register access), or has stack arguments, or the
4551         compiler is not instructed to omit the frame pointer,
4552         * (genEndFunction): before restoring local registers that were saved
4553         in the function preamble, also restore the registers that *might*
4554         have been allocated for stack access,
4555         * (genRet): removed some old comments,
4556         * (genCmp, the active (RN's) version): added a call to the
4557         pic16_genCmp_special function to perform the compare with a more
4558         robust and optimized way,
4559         * (genInline): a feature has been added in inline code generation,
4560         which allows a wildcard variable substitution when writing inline
4561         assembly. Code is incomplete and experimental therefore undocumented,
4562         * (genCast): changed order of aopOp for result and right to allow
4563         aopForSym to directly load the result if possible,
4564         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
4565         perform an optimized compare on some selected special occasions,
4566         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
4567         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
4568         generate an IVT any more,
4569         * src/pic16/main.c (pic16_optionsTable): added command line option
4570         --optimize-cmp,
4571         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
4572         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
4573         macros,
4574         * src/pic16/NOTES: Raphael Neider added in list of active developers
4575         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
4576         jumptable_end to prevent bug #,
4577         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
4578         inCond and outCond fields,
4579         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
4580         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
4581         turn off register spilling,
4582         * (packRegsForOneUse): synced with other ports' versions although it
4583         is not used currently,
4584         * (pic16_packRegisters): added an optimization while reading
4585         structure bitfields, some registers may be saved (malloc code is
4586         decreased by 80 bytes)
4587
4588 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
4589
4590         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
4591         left is a bitfield, if yes, then don't optimize assignment. Perhaps
4592         this can be optimized more?
4593
4594 2005-03-10 Raphael Neider <rneider AT web.de>
4595
4596         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4597           genNearPointerGet): (hopefully) fixed access to bitfields via
4598           pointers (p->bitN = x; and x = p->bitN; failed)
4599
4600 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
4601
4602         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
4603
4604 2005-03-09 Raphael Neider <rneider AT web.de>
4605
4606         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
4607
4608 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
4609
4610         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
4611         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
4612           (regTypeNum): set REG_BIT type if necessary
4613         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
4614         * support/regression/tests/critical.c: check bug 1144613
4615
4616 2005-03-02 Raphael Neider <rneider AT web.de>
4617
4618         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
4619
4620 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4621
4622         * src/avr/ralloc.c (serialRegAssign),
4623         * src/ds390/ralloc.c (serialRegAssign),
4624         * src/hc08/ralloc.c (serialRegAssign),
4625         * src/mcs51/ralloc.c (serialRegAssign),
4626         * src/pic/ralloc.c (serialRegAssign),
4627         * src/pic16/ralloc.c (serialRegAssign),
4628         * src/xa51/ralloc.c (serialRegAssign),
4629         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
4630
4631 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
4632
4633         * src/SDCCast.c (decorateType): fixed bug 1124787
4634
4635 2005-02-20 Hubert Sack <sack AT digiplan.de>
4636         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4637
4638         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
4639         patch #1121755
4640
4641 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4642
4643         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
4644         to keep the correct label reference count when adding/removing references
4645         to labels. A peephole file using this is appended to patch #1144962.
4646
4647 2005-02-14 Raphael Neider <rneider AT web.de>
4648
4649         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
4650         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
4651         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
4652           retrievals of result operand's value on assignment
4653
4654 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
4655
4656         * device/include/pic16/string.h: modified prototype for memccpy()
4657         to memccpy(void *, void *, char, size_t)
4658         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
4659         check whether to omit frame pointer or not,
4660         * (genInline): convert all occurences of "\n" to LF in inline
4661         assembler blocks, this helps formatting the inline text,
4662         * (pic16_loadFSR0): modified prototype,
4663         * (genNearPointerGet, genNearPointerSet): reorganization of code,
4664         removed some 8051 legacy code,
4665         * (genPackBits): enabled handling bitfields exceeding one byte in size,
4666         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
4667         before allocating temporary registers in functions,
4668
4669 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4670
4671         * support/regression/tests/bitvars.c: corrected the "fix"
4672
4673 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4674
4675         * support/regression/tests/bitvars.c,
4676         * support/regression/tests/bitwise.c,
4677         * support/regression/tests/rotate.c: "fixed" problems on Alpha
4678
4679 2005-02-10 Raphael Neider <rneider AT web.de>
4680
4681         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
4682           different size for Alpha
4683         * src/pic16/gen.c (genCmpEq) : improved compare with 0
4684
4685 2005-02-09 Raphael Neider <rneider AT web.de>
4686
4687         * src/SDCC.lex(doPragma) : save and restore warning options as well
4688           (also added new stack plus clone- and copyAndFreeSDCCERRG())
4689         * have #pragma less_pedantic set the errorlevel to WARNING
4690           (fixes #1117001)
4691         * (cloneOptimize) : fixed wrong malloc's size
4692         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
4693           facilitate correct handling of #pragma (save|restore)
4694
4695 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4696
4697         * src/mcs51/gen.c: removed non-standard C nameless struct/union
4698
4699 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
4700
4701         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
4702
4703 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
4704
4705         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
4706
4707 2005-02-02 Raphael Neider <rneider AT web.de>
4708
4709         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
4710         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
4711         * (pic16_storeForReturn): fixed to allow returning function pointers
4712         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
4713         * device/include/pic16/{stddef.h,stdbool.h}: added
4714
4715 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
4716
4717         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
4718
4719 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
4720
4721         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
4722         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
4723          appeared to be required
4724
4725 2005-01-31 Borut Razem <borut.razem AT siol.net>
4726
4727         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
4728           include/mcs51 and include/z80 directories to the package
4729
4730 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4731
4732         * src/hc08/gen.c (genFunction): fixed bug #1112752
4733
4734 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4735
4736         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
4737
4738 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4739
4740         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
4741
4742 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
4743
4744         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
4745
4746 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
4747
4748         * device/include/c8051fxxx.h: removed these 6 files
4749         * device/include/mcs51/c8051fxxx.h: added these 11 new files
4750
4751 2005-01-26 Raphael Neider <rneider AT web.de>
4752
4753         * src/pic16/gen.c (genAssign): fixed assignment from longs
4754           in codespace (were cut to three bytes)
4755         * (genDummyRead): implemented (except for CODESPACE...),
4756           fixed bug #1108575
4757         * src/pic16/glue.c (emitStatistics): beautified
4758         * device/lib/pic16/libm/Makefile: added include path
4759
4760 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4761
4762         * src/z80/gen.c (aopPut): fixed bug #1103902
4763
4764 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4765
4766         * device/lib/expf.c: fixed bug #1095792
4767
4768 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
4769
4770         * device/lib/pic16/libm: added Math library sources
4771
4772 2005-01-24 Raphael Neider <rneider AT web.de>
4773
4774         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
4775           to enable upcast to pCodeOpReg2 (there is no type tag to
4776           differenciate the two and pic16_popGet2p cast into PCOR2)
4777         * src/pic16/main.c (_process_pragma): fixed another malloc bug
4778           (sizeof(sectNames) changed to sizeof(sectName))
4779           Both patches fix segfaults under MinGW.
4780
4781 2005-01-23 Raphael Neider <rneider AT web.de>
4782
4783         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
4784           Safe_[mc]?alloc()'ed variables
4785         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
4786           of (byte sized) temporaries (assign them to WREG for now)
4787         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
4788           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
4789           this might fix SIGSEGVs on MinGW...
4790         * src/SDCCopt.c (killDeadCode): restored original behaviour
4791           (volatile operands might get thrown away though)
4792
4793 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
4794
4795         * src/pic16/gen.c: fixed bug #1106975,
4796         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
4797         pointer update, INTCON is saved, global interrupts are disabled and
4798         restored after updateing TOS.
4799         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
4800         * added function attribute 'shadowregs' to take advantage of shadow
4801         registers,
4802         * added function attribute 'wparam' as an alternative to the wparam
4803         pragma,
4804         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
4805         user declares a non-ISR function as 'shadowregs',
4806         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
4807
4808 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
4809
4810         * .version: bumped version number to 2.4.8
4811         * device/lib/pic16/pics.all: list of PIC18F devices supported by
4812         pic16 port,
4813         * device/lib/pic16/libio/i2c/: I2C module support library,
4814         * device/include/pic16/i2c.h: I2C support library header,
4815         * device/lib/pic16/libc/stdio/: standard IO support sources,
4816         * (printf_small.c): printf_small() source, supports float print,
4817         * (printf_tiny.c): printf_tiny() source, does not support floats,
4818         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
4819         enable global optimizations for entire library source, other
4820         Makefiles in the source tree are also modified to reflect this,
4821         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
4822         function,
4823         * doc/sdccman.lyx: updated to reflect new changes,
4824         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
4825         sym->onStack if-case,
4826         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
4827         sbit, idata, _idata, xdata, _xdata,
4828         * added pragma library, to link an external library, (see doc),
4829         * removed command line options, --pomit-config-words, --pomit-ivt,
4830         --pleave-reset-vector,
4831         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
4832         when calling assembler to reflect memory model used, also define
4833         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
4834         reflect stack model used,
4835         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
4836         on stack return NULL,
4837
4838 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4839
4840         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
4841           of the operands is volatile. Fixes #1020220
4842
4843 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4844
4845         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
4846         * (OptimizeRegUsage): make sure that there is really no other flow where
4847           the first pCode is used
4848
4849 2005-01-22 Raphael Neider <rneider AT web.de>
4850
4851         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
4852           to fix #1106967 (pCode->seq are not set up correctly)
4853
4854 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4855
4856         * src/SDCCglue.c (glue): make sure code area is declared before the
4857         static initialization area.
4858
4859 2005-01-21 Raphael Neider <rneider AT web.de>
4860
4861         * device/lib/Makefile.in: fixed test for pic16 install dir
4862         * device/lib/pic16/*/Makefile*: modified compile flags to enable
4863           optimizations
4864         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
4865           added --optimize-goto compiler switch and pragma wparam documentation
4866         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
4867         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
4868           and PRODH closing bug #1071770 (peephole optimizer)
4869
4870 2005-01-19 Raphael Neider <rneider AT web.de>
4871
4872         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
4873           cmdLine buffers (used when calling sdcpp...) are large enough
4874           (MAX_PATH=256 truncates arguments leading to system halts when
4875           used in MinGW...)
4876         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
4877         * (genUminus): rewritten to for efficiency
4878         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
4879           used uninitialized in some cases)
4880         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
4881           copy the third byte from the int -- now assumes 0x80 (data memory)
4882         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
4883           operands (genAddLit expects the iCode's operands to swapped as
4884           well), fixed leftover bytes (crashed for short left operands)
4885         * (pic16_genMinusDec): performance improvements, removed false
4886           PIC14 emitSKPNCs
4887         * (pic16_genMinus): fixed to cope with differently sized operands
4888         * src/pic16/glue.c (pic16_glue): added new banksel optimization
4889           for --obanksel > 1
4890         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
4891         * src/pic16/graph.[ch]: implementation of directed graphs, used by
4892           new banksel optimization
4893         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
4894           analysis for temporary registers (segfaults...)
4895         * src/pic16/peeph.def: added rule
4896
4897 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
4898
4899         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
4900         which converts a float number to its ASCII representation
4901         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
4902         functions to convert the fractional and integer part of a float to ASCII,
4903         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
4904         realloc.c): added _MALLOC_SPEC to explicit place variables in data
4905         ram
4906         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
4907         _STATMEM macros,
4908         * device/include/pic16/adc.h: added GPL info,
4909         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
4910         a pCodeOp as tested operand,
4911         * (genNearPointerGet): optimized bit testing, does not use
4912         intermediate register for bit value, test directly instead with
4913         BTFSS, BTFSC, works only for single bits,
4914         * (genpic16Code): dump the name of the iCode in the asm,
4915         * src/pic16/ralloc.c (decodeOp): removed static declaration and
4916         renamed to pic16_decodeOp,
4917         * (serialRegAssign): do not allocate a temporary register for iCode
4918         sequences that test a single bit for 1/0
4919
4920 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
4921
4922         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
4923         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
4924         access stack and frame pointers. They are initially assigned to
4925         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
4926         accessing SFRs. Updated all occurences of modification of stack or
4927         frame pointer in gen.c and pcode.c,
4928         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
4929         assigning of a literal value to pointers,
4930         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
4931         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
4932         selected
4933
4934 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
4935
4936         * doc/sdccman.lyx: update documentation about stack pragma, added
4937         some info for stack memory models
4938
4939 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4940
4941         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
4942
4943 2005-01-08 Raphael Neider <rneider AT web.de>
4944
4945         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
4946           udata sections to fix bug #1097823
4947
4948 2005-01-05 Raphael Neider <rneider AT web.de>
4949
4950         * src/pic16/gen.c (genGenericShift): added handling of differently
4951           sized left operand and result
4952
4953 2005-01-04 Raphael Neider <rneider AT web.de>
4954
4955         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
4956         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
4957           to hold the condition bit)
4958         * added new version of genCmp (old code available via #define)
4959         * added new version of genShiftLeft/genShiftRight in a generic
4960           way, now supports shifting by negative values
4961         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
4962           shiftCount (expected by genGenericShift)
4963         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
4964         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
4965           dump
4966         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
4967           is an invalid literal too...)
4968
4969 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
4970
4971         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
4972         from Raphael Neider,
4973         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
4974         for 8-bit literals. This fixes some literal operands which are sign
4975         extended to 16-bits ints when instruction needs only 8-bits.
4976
4977 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
4978
4979         * device/lib/logf.c: added mcs51 assembly version
4980         * device/lib/expf.c: added mcs51 assembly version
4981         * device/lib/_logexpf.c: new shared asm code for expf and logf
4982         * device/include/math.h: add defines for assembly math library
4983         * device/lib/Makefile.in: build new _logexpf.c
4984         * device/lib/libfloat.lib: use new _logexpf.c
4985
4986 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4987
4988         * src/pic/device.c
4989         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
4990           device types which have less than 0x7f registers.
4991
4992 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4993
4994         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
4995
4996 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4997
4998         * device/lib/printf_fast.c: only build on supported arch.
4999         * device/lib/printf_tiny.c: only build on supported arch.
5000         * device/lib/printf_fast_f.c: only build if asm float lib
5001         * device/lib/_fsget1arg.c: only build if asm float lib
5002         * device/lib/_fsget2args.c: only build if asm float lib
5003         * device/lib/_fsnormalize.c: only build if asm float lib
5004         * device/lib/_fsreturnval.c: only build if asm float lib
5005         * device/lib/_fsrshift.c: only build if asm float lib
5006         * device/lib/_fsswapargs.c: only build if asm float lib
5007         * device/include/stdio.h: don't provide print_fast,
5008           print_fast_f, print_tiny prototypes if --xstack used
5009
5010 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
5011
5012         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
5013         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
5014           to the SOURCES
5015
5016 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
5017
5018         * device/lib/printf_fast_f.c: same as printf_fast, but
5019           with floating point enabled
5020         * device/lib/printf_fast.c: minor tweaks
5021         * device/include/stdio.h: add printf_fast_f
5022
5023 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5024
5025         * src/SDCCmain.c: make --float-reent default for mcs51
5026         * device/lib/_fsadd.c: added mcs51 assembly version
5027         * device/lib/_fssub.c: added mcs51 assembly version
5028         * device/lib/_fsmul.c: added mcs51 assembly version
5029         * device/lib/_fsdiv.c: added mcs51 assembly version
5030         * device/lib/_fseq.c: added mcs51 assembly version
5031         * device/lib/_fsneq.c: added mcs51 assembly version
5032         * device/lib/_fsgt.c: added mcs51 assembly version
5033         * device/lib/_fslt.c: added mcs51 assembly version
5034         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
5035         * device/lib/Makefile.in: add _fscmp to build
5036         * device/lib/libfloat.lib: add _fscmp to build
5037
5038 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5039
5040         * device/lib/_fs2slong.c: added mcs51 assembly version
5041         * device/lib/_fs2sint.c: added mcs51 assembly version
5042         * device/lib/_fs2schar.c: added mcs51 assembly version
5043         * device/lib/_fs2ulong.c: added mcs51 assembly version
5044         * device/lib/_fs2uint.c: added mcs51 assembly version
5045         * device/lib/_fs2uchar.c: added mcs51 assembly version
5046         * device/lib/_slong2fs.c: added mcs51 assembly version
5047         * device/lib/_sint2fs.c: added mcs51 assembly version
5048         * device/lib/_schar2fs.c: added mcs51 assembly version
5049         * device/lib/_ulong2fs.c: added mcs51 assembly version
5050         * device/lib/_uint2fs.c: added mcs51 assembly version
5051         * device/lib/_uchar2fs.c: added mcs51 assembly version
5052         * device/include/float.h: added #define to select asm vs c
5053
5054 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
5055
5056         * device/lib/printf_fast.c: improvements to float output
5057         * device/include/float.h: add defines for assembly float library
5058         * device/lib/_fsget1arg.c: receive 1 float arg
5059         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
5060         * device/lib/_fsnormalize.c: normalize a float
5061         * device/lib/_fsreturnval.c: return float, various helper routines
5062         * device/lib/_fsrshift.c: right shift a float's mantissa
5063         * device/lib/_fsswapargs.c: swap 2 floats
5064         * device/lib/Makefile.in: build these 6 new files for mcs51
5065         * device/lib/libfloat.lib: add these 6 files to the library
5066
5067 2004-12-26 Borut Razem <borut.razem AT siol.net>
5068
5069         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
5070           built by gcc 3.4.2
5071
5072 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
5073
5074         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
5075           and fully reentrant and register bank neutral.
5076         * device/lib/printf_fast.c: added float (not enabled by default),
5077           added compact/slower integer (also not enabled by default),
5078           improved size/speed of fast integer code, other minor changes
5079         * device/include/stdio.h, device/lib/Makefile.in,
5080           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
5081
5082 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
5083
5084         * src/pic16/pcode.c: declaring variables other than at the start of a
5085           block is not supported in C by VC6.
5086
5087 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
5088
5089         * applied a previous patch from Raphael Neider that wasn't included
5090         in the previous commits, which fixes infinite loops within jumptable
5091         improvements,
5092         * made some fixes that previous patches introduced
5093
5094 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
5095
5096         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
5097         that fixes an issue with AOP_PCODE asmop's offset,
5098         * (pic16_popCopyReg): update instance field too,
5099         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
5100         function of pic port,
5101         * (genCmp, genAnd, genAssign),
5102         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
5103
5104 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
5105
5106         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
5107         variables initial values to idata section,
5108         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
5109         variables in some functions. This utilizes parmBytes field of iCode
5110         structure to hold the offset of the variable in stack. (might be
5111         able to use the stack field too?)
5112         * applied patch from Raphael Neider # ### , # ###
5113         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
5114         variable initial values in idata section,
5115         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
5116         for static variables with initial value
5117         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
5118         applied fix in while loop from Raphael Neider.
5119
5120 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
5121
5122         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
5123         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
5124         * src/ds390/ralloc.c (serialRegAssign): spill bits
5125         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
5126         * support/Util/SDCCerr.c,
5127         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
5128         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
5129         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
5130
5131 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
5132
5133         * device/include/sdcc-lib.h: inserted LGPL, added includes
5134           asm/ds390/features.h and asm/mcs51/features.h
5135         * device/include/asm/default/features.h,
5136         * device/include/asm/gbz80/features.h,
5137         * device/include/asm/z80/features.h: added empty _AUTOMEM
5138           and _STATMEM
5139         * device/include/asm/ds390/features.h,
5140         * device/include/asm/mcs51/features.h: added files with defines for
5141           _AUTOMEM and _STATMEM indicating automatic and static storage class
5142         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
5143         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
5144         * src/SDCCicode.c (geniCodeCast),
5145         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
5146         * src/SDCCloop.c (loopInduction): removed unused variable lr
5147         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
5148           to convertToFcall to include char modulo (RFE 1065037), added check
5149           if left operand is unsigned and use abs of literal value
5150         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
5151           as it doesn't work after conversion from peephole.def to peephole.rul
5152         * src/mcs51/gen.c (toBoolean): added check for size,
5153           (genModOneByte): optimized code for signed char modulo a literal
5154           power of 2 (thanks to Hubert Sack),
5155           (genRRC): removed unnecessary "clr c",
5156           (genRLC): replaced "add a,acc" with cheaper "rlc a"
5157         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
5158           jump optimization,
5159           swapped rules 256.c and 256.d,
5160           extended 256.d by using new multiple checks (thanks Erik),
5161           added rules 256.e and 256.f,
5162           updated rule 261.a and 261.b to new generated code
5163         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
5164
5165 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5166
5167         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
5168           induction related bugs, including first part of bug #1074377
5169
5170 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
5171
5172         * applied patch from bug-report #1076292,
5173         * applied patches for genAnd and Goto-optimizations for Raphael
5174         Neider,
5175         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
5176         dump a less iCode information,
5177         * src/pic16/device.h (pic16_options_t): added field debgen,
5178         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
5179         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
5180         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
5181         puclic,
5182         * (various functions): added macros FENTRY and FENTRY2 to functions,
5183         to emit function prologue,
5184         * (various functions): fixed indentation,
5185         * (genNearPointerGet): fixed loading of FSR0,
5186         * (genPackBits): applied patch from Raphael Neider to fix updating
5187         of FSR0 and touching only the modified bits,
5188         * src/pic16/genarith.c (various functions): added macros FENTRY to
5189         emit function prologue in comments,
5190         * src/pic16/pcode.h: added functions debugf2, debugf3,
5191         * src/pic16/ralloc.c: partial fix for packForPush caused
5192         segmentation fault,
5193
5194 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5195
5196         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
5197           <stsp AT users.sourceforge.net> with reversed byte order
5198         * support/regression/tests/rotate.c: added (ds390 skips some tests)
5199
5200 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5201
5202         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
5203           bug #1074377
5204         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
5205         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
5206
5207 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5208
5209         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
5210
5211 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5212
5213         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
5214           conditions,
5215           (setFromConditionArgs): friendly operand parser for peephole rules,
5216           (operandBaseName, operandsNotRelated): new peephole condition
5217           "operandsNotRelated" -- similar to "operandsNotSame", but takes
5218           architecture specific register naming into account, handles n-way
5219           comparisons, and supports quoted literals
5220         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
5221
5222 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5223
5224         * src/mcs51/peeph.def: fixed bug #1076940
5225
5226 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5227
5228         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
5229
5230 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5231
5232         Adding support for replacing ljmps with sjmps in jumptables
5233         generated for switch statements. For now you need to set the
5234         environment variable SDCC_SJMP_JUMPTABLE to enable this.
5235         Now 4 algorithms for mcs51 jumptable generation are used:
5236         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
5237         addresses loaded pc-relative for up to 112 cases and stack-pushing
5238         target addresses loaded with offset from dptr for up to 256 cases.
5239
5240         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
5241         * src/mcs51/main.c: adapted constants for switch table generation
5242         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
5243
5244 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
5245
5246         * device/lib/printf_large.c (_print_format): fixed bug 1073386
5247         * support/regression/tests/bug1057979.c: added test for bug 1073386
5248
5249 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5250
5251         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
5252         compilers
5253
5254 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5255
5256         * src/pic16/device.h,
5257         * src/pic16/genarith.c,
5258         * src/pic16/glue.c,
5259         * src/pic16/main.c,
5260         * src/pic16/pcode.c: applied patches #1068154 and #1070213
5261
5262 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
5263
5264         Large cummulative patch for pic16 port.
5265         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
5266         to call when a stack overflow occurs,
5267         * (malloc.h): added CVS Id tag,
5268         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
5269         variable,
5270         * added libc directory. The current version of LibC contains string
5271         functions, ctype functions and macros and some functions of the
5272         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
5273         be extensively tested in the future. Standard disclaimer here.
5274         Library is not automatically build yet. But one can build it by
5275         invoking 'make' inside the libc directory.
5276         * added ADC library under libio. Preliminary version yet.
5277
5278         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
5279         * src/pic16/gen.c (aopForRemat): asmop size is filled by
5280         aopForRemat() now and not by pic16_aopOp(),
5281         * (pic16_popGetTempReg): removed warning messgae when allocating
5282         temporary registers, its a buggy feature and will be removed,
5283         * (pic16_popGet): set register instance field in AOP_CRY,
5284         * (pic16_outBitC): fixed for results in size greater than 1,
5285         * (genUminusFloat): fixed for pic16, ported code from mcs51,
5286         * (pic16_storeForReturn): optimized return of 0,
5287         * (genCmp): experimental code for new genCmp which uses PIC18's
5288         special compare&skip instructions. Initial tests fail some times
5289         with variables grater than 1 byte in size, so new code is disabled,
5290         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
5291         a single bit,
5292         * (genCast): began a fix to optimize the casting of a bit to another
5293         bit, now assigning a bitfield to another bitfield will fail, sorry,
5294         * src/pic16/main.c: disabled the use of lr-support feature,
5295         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
5296         * added some function prototypes, added function _debugf prototype,
5297         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
5298         bits with offset (case PO_GPR_BIT),
5299         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
5300         command line,
5301         * (isBankInstruction): modified to return 0 for no banking instruction,
5302         and 1 for banking instruction,
5303         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
5304         caused stop processing pCodes after a inline assembly block,
5305         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
5306         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
5307         registers when it shouldn't,
5308         * src/pic16/ralloc.c (allocReg): add preliminary support for
5309         supporting a limited set of temporary registers,
5310
5311 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5312
5313         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
5314           genDataPointerSet): ensure assignments always copy in MSB to LSB
5315           order,
5316           (loadRegFromAop): recognize CLRH optimization,
5317           (genFunction): optimize RECEIVE iCodes in reentrant functions
5318
5319 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5320
5321         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
5322           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
5323           selected.
5324         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
5325         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
5326           contiguous with data
5327
5328 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5329
5330         * device/lib/_gptrget.c (_gptrget),
5331         * device/lib/_gptrgetc.c (_gptrgetc),
5332         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
5333           instead of sjmp to ret
5334         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
5335           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
5336
5337 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5338
5339         * .version: bumped version to 2.4.7
5340         * device/lib/_gptrget.c (_gptrget): is now _naked
5341         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
5342         * device/lib/_gptrput.c (_gptrput): is now _naked
5343         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
5344           (createFunction): fixed xstack
5345         * src/SDCCglue.c (emitMaps): set allocation required for bit area
5346         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
5347           or bit either,
5348           (geniCodeCritical): store original interrupt state in an iTemp bit
5349           var unless stack-auto
5350         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
5351         * src/SDCCmain.c (setIncludePath): added include/target to search path
5352         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
5353         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
5354           prototype,
5355           (processFuncArgs): put bit vars in bit area
5356         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
5357           unsaveRBank): fixed xstack,
5358           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
5359           (genFunction, genEndFunction): fixed xstack,
5360           (genAssign): optimization don't walk backwards through mem
5361         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
5362         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
5363         * support/regression/Makefile: also make library (for stack-auto) when
5364           making "all" and added "test-mcs51-xstack-auto"
5365         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
5366         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
5367         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
5368         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
5369         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
5370           make-library by MAKE_LIBRARY
5371         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
5372           regression tests for xstack
5373         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
5374         * support/regression/tests/critical.c: test for critical on mcs51
5375
5376 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5377
5378         * support/regression/ports/ucz80/spec.mk: use include and lib files from
5379           built version of sdcc instead of installed version
5380
5381 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5382
5383         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
5384         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
5385           vprintf.c now
5386         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
5387         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
5388           WARNING: remove device/lib/build/z80/printf.o by hand when
5389           updating from previous build!
5390         * device/lib/z80/printf.c: updated comment
5391         * support/regression/tests/bug1057979.c: test all ports now
5392         * support/regression/tests/bug1065458.c: file added
5393
5394 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5395
5396         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
5397           *_start and *_end symbols for static functions
5398
5399 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
5400
5401         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
5402           and search crt0.o in all library paths,
5403           (setIncludePath): proper handling of --nostdinc,
5404           (setLibPath): proper handling of --nostdlib
5405         * support/regression/Makefile,
5406         * support/regression/ports/ds390/spec.mk,
5407         * support/regression/ports/gbz80/spec.mk,
5408         * support/regression/ports/hc08/spec.mk,
5409         * support/regression/ports/mcs51/spec.mk,
5410         * support/regression/ports/mcs51-large/spec.mk,
5411         * support/regression/ports/mcs51-stack-auto/spec.mk,
5412         * support/regression/ports/z80/spec.mk: use include and lib files from
5413           built version of sdcc instead of installed version
5414         * doc/sdccman.lyx: fixed typo in --nostdinc
5415
5416 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
5417
5418         * src/pic/pcode.c,
5419         * src/pic/device.c,
5420         * src/pic/ralloc.c,
5421         * src/pic/gen.c : added support to generate code for struct bit fields.
5422
5423 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5424
5425         * as/xa51/xa_version.h,
5426         * device/include/errno.h,
5427         * device/include/regc515c.h,
5428         * device/lib/_itoa.c,
5429         * device/lib/_ltoa.c,
5430         * device/lib/ser_ir_cts_rts.c,
5431         * sim/ucsim/xa.src/glob.cc,
5432         * sim/ucsim/xa.src/inst_gen.cc,
5433         * sim/ucsim/xa.src/xa_bit.cc,
5434         * sim/ucsim/xa.src/xa_sfr.cc,
5435         * sim/ucsim/z80.src/inst_dd.cc,
5436         * sim/ucsim/z80.src/inst_fdcb.cc,
5437         * support/scripts/keil2sdcc.pl,
5438         * src/pic16/pic16.dsp,
5439         * src/pic16/pic16a.dsp: corrected cvs line endings
5440         * device/lib/printf_large.c: fixed bug 1057979
5441         * src/pic16/gen.c: fixed non-C standard code
5442         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
5443         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
5444         * support/regression/ports/mcs51/support.c: reload T1 asap
5445         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
5446           pdata use and clear idata startup behaviour
5447         * support/regression/tests/bug1057979.c: added
5448
5449 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
5450
5451         * device/examples/ds390/ow390/ad26.h,
5452         * device/examples/ds390/ow390/cnt1d.h,
5453         * device/examples/ds390/ow390/crcutil.c,
5454         * device/examples/ds390/ow390/ownet.h,
5455         * device/examples/ds390/ow390/owsesu.c,
5456         * device/examples/ds390/ow390/swt12.h,
5457         * device/examples/ds390/ow390/swtoper.c,
5458         * device/examples/ds390/ow390/temp10.h,
5459         * device/examples/ds390/ow390/thermodl.c,
5460         * device/examples/ds390/tinitalk/tinitalk.dsp,
5461         * device/examples/ds390/tinitalk/tinitalk.dsw,
5462         * device/examples/mcs51/clock/hw.h,
5463         * device/examples/mcs51/simple2/go.bat,
5464         * device/examples/serialcomm/windows/serial.h,
5465         * device/examples/xa51/dummy.c,
5466         * device/examples/xa51/hello.c,
5467         * device/include/80c51xa.h,
5468         * device/include/at89x051.h: corrected cvs line endings
5469
5470 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
5471
5472         * src/pic16/main.c (options): added command line --gstack, to trace
5473         stack over/under flows,
5474         * added pragma 'wparam' to allow passing first byte of function
5475         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
5476         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
5477         call to __gstack_test function and sets up the symbol as extern,
5478         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
5479         * popaop): added call to pic16_testStackOverflow,
5480         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
5481         wparamList list,
5482         * (genCall, genPcall): now all parameters are passed via stack
5483         except in functions that are pass to wparam pragma in which WREG is
5484         used too,
5485         * (genPcall): REENTRANT flag is checked to see if variable prototype
5486         contains reentrant keyword, don't call a non-reentrant function, via
5487         a reentrant function pointer or vice versa, functions are never
5488         passed via WREG,
5489         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
5490         D.Winkler,
5491         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
5492         SIGSEGV when accessing a NULL register stucture,
5493         * (pic16_printGPointerType): modified to handle UPPER modifier for
5494         function initializers, changed prototype of function to simpler one,
5495         * (pic16_printIvalFuncPtr): check to see if function is already
5496         added in externs list,
5497         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
5498         optimized a move from W to SFR with a move to the same register
5499         later after a CALL,
5500         * device/lib/pic16/debug: NEW directory, contains debug features
5501         which are enabled when linking with libdebug.lib, currently command
5502         line option --gstack enables stack pointer tracing for over/under
5503         flow, corresponding sources are in debug/gstack
5504
5505 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
5506
5507         * doc/sdccman.lyx: updated SDCC version,
5508         * (PIC16 port): update list of command line options,
5509         * src/pic16/device.h (structure pic16_options_t): added field gstack
5510         to enable stack overflow tracing on push/pops,
5511         * src/pic16/device.c (statistics structure): added statistics
5512         structure,
5513         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
5514         pic16_dump_int_registers): increase statistics counters for each
5515         * variable which is encountered
5516         * (pic16_dump_usection): emit each .udata variable to its own udata
5517         section,
5518         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
5519         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
5520         parameters via stack, otherwise use old scheme,
5521         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
5522         assembler output file,
5523         * src/pic16/main.c: added command line options --gstack to enable
5524         push/pop tracing for stack overflow,
5525         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
5526         instructions): added size of each instruction,
5527         * (pic16_countInstruction): estimate size of instructions in
5528         the_pFile list, inline assembly blocks are not counted,
5529         * (pic16_FixRegisterBanking): trace previous register usage, when
5530         banksel optimizations is greater than 0, don't emit a redudant
5531         banksel directive,
5532
5533 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
5534
5535         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
5536         * src/pic16/ralloc.c : applied same fix for pic16.
5537         * src/pic/gen.c : tidied it up a little.
5538
5539 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5540
5541         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
5542         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
5543
5544 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5545
5546         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
5547
5548 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5549
5550         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
5551         non-reentrant function __modsint in the interrupt function (thus
5552         corrupting math operations during serial I/O)
5553         * device/lib/ser_ir.c: as above, changed buffersize
5554         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
5555         256.c,d for zeroing
5556         * doc/Makefile: added option -t for rsync
5557
5558 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5559
5560         * src/SDCCast.h (struct ast),
5561         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
5562
5563 2004-10-20 Borut Razem <borut.razem AT siol.net>
5564
5565         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
5566         package
5567
5568 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
5569
5570         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
5571         makefile targets,
5572         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
5573         support functions to replace long sequences of MOVFF's from access
5574         bank registers to stack and vice versa,
5575         * src/pic16/device.h: added new field opt_flags, where optimization
5576         flags can be set to enable certain features,
5577         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
5578         * pBlock, (genFunction, genEndFunction): surroung loop for
5579         saving/loading used registers in stack with PC_INFO pCodes,
5580         INF_LREGS. Code in between can then be optimized by pCode optimizer
5581         to support function calls,
5582         * (genDataPointerSet): fixed bug which loaded float fields in
5583         structures with corrupt data,
5584         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
5585         in a standard way debug info on stderr. Feature used for developing
5586         and debugging only,
5587         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
5588         obsolete chunks of code,
5589         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
5590         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
5591         * pic16/src/pcode.c (pic16_newpCodeInfo,
5592         * (pic16_newpCodeOpLocalRegs),
5593         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
5594         feature,
5595         * (pic16_pCodeConstString): printing of the initial value of a
5596         symbol as a comment is inhibited since parsing was already done by
5597         copyStr and output is corrupt,
5598         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
5599
5600 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5601
5602         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
5603
5604 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
5605
5606         * as/mcs51/lkarea.c: removed old K&R style,
5607           (lnksect): changed check on boundary error,
5608           (lnksect2): changed check on boundary error,
5609           (lnksect2): extend XSTK to end of page if size = 1
5610         * as/mcs51/lkmain.c: removed old K&R style,
5611           (Areas51): create l_IRAM symbol
5612         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
5613         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
5614           model-mcs51-stack-auto, added model-mcs51-xstack-auto
5615         * device/lib/_mullong.c: added version to be compiled with xstack
5616         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
5617         * device/lib/mcs51/crtxclear.asm: clear pdata as well
5618         * device/lib/mcs51/crtxstack.asm: fixed comment
5619         * src/SDCCglue.c: maxInterrupts defaults to 0,
5620           (emitMaps): added pdata,
5621           (createInterruptVect): (re)moved default,
5622           (glue): added pdata,
5623           (glue): moved __start__xstack to XSTK with default size 1
5624         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
5625           and options.float_rent when options.stackAuto is set,
5626           (linkEdit): only write XDATA_NAME if provided on command line
5627         * src/SDCCmem.h,
5628         * src/SDCCmem.c: added pdata
5629         * src/port.h: added pdata_name to PORT
5630         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
5631           (saveRegisters, unsaveRegisters): removed usage of B,
5632           (genMinus): fixed accumulator clash,
5633           (genJumpTab): added comment, this needs another look
5634         * src/mcs51/gen.c: added check for "B in use" paranoia,
5635           added pushB() and popB()
5636         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
5637           chance
5638         * src/avr/main.c,
5639         * src/ds390/main.c,
5640         * src/hc08/main.c,
5641         * src/mcs51/main.c,
5642         * src/pic/main.c,
5643         * src/pic16/main.c,
5644         * src/xa51/main.c,
5645         * src/z80/main.c: (reset_regparms) made void parameter explicit and
5646           added PSEG (PAG,XDATA) or NULL to port specifier
5647         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
5648         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
5649           (_mcs51_genInitStartup): removed __start__xstack equ,
5650           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
5651         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
5652         * src/z80/gen.c (_rleAppend): fixed warnings
5653         * support/regression/tests/zeropad.c: added pdata test
5654         * .version: bumped to 2.4.6
5655
5656 2004-10-17 Borut Razem <borut.razem AT siol.net>
5657
5658         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
5659         as a part of nightly build
5660
5661 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
5662
5663         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
5664         WREG holds the first byte function parameters,
5665         * (aopForSym): take special case for symbols which are in FARSPACE
5666         but in CODESPACE too,
5667         * (assignResultValue): modified to take into account _G.useWreg,
5668         * (genCall): don't use wreg for parameter passing when function is
5669         declared as reentrant, too, added optimization INCF to stack
5670         pointer when stack parameter count is 1,
5671         * (genFunction, genEndFunction): refurnished and fixed to not using
5672         wreg for passing parameters when function has varargs or is
5673         reentrant, fixed bug with symbol name compare for generating
5674         functions in absolute address,
5675         * (pic16_storeForReturn): refurnished,
5676         * (genCmp): began writing a new version of the function, not ready
5677         yet, therefore it is disabled,
5678         * (genAssign): do not read code memory when assigning a function to
5679         a pointer function,
5680         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
5681         array of characters, not pointer,
5682         * (pic16initialComments): in debug mode emit an .ident directive for
5683         the assembler,
5684         * (_process_pragma): emit a new warning type (internal to pic16)
5685         when setting stack to default length, emit a similar warning when
5686         placing a function at absolute address and address is not word aligned
5687         * (_pic16_parseOptions): added 'return TRUE' statement,
5688         * (_pic16_linkEdit): if compiling a source, then add the source's
5689         file object, first in the list of objects to link,
5690
5691 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
5692
5693         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
5694         * src/pic/main.c : removed VC warning.
5695         * src/pic/gen.c : changed comment.
5696
5697 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
5698
5699         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
5700         reference to a deprecated symbol _GPTRREG was causing failure to
5701         link. Thanks G. M. Gallant for the info.
5702
5703 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
5704
5705         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
5706         comments for Bugs item #954788.
5707
5708 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
5709
5710         * src/pic16/device.c (pic16_dump_gsection,
5711         * pic16_groupRegistersInSection): handle symbols declared to be in
5712         access bank differently,
5713         * src/pic16/gen.c (struct _G): added field resDirect,
5714         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
5715         send values read from stack directly to result and don't allocate
5716         temporary values,
5717         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
5718         same registers,
5719         * (pic16_sameRegsOfs): NEW,
5720         * (freeAsmop): if _G.resDirect is set then do not mark registers as
5721         free because they were not allocated from temporary pool,
5722         * pic16_popRegFromString): workaround to fix a problem with
5723         allocating variables twice or never,
5724         * (genGenPointerGet): using PRODL instead of FSR0H,
5725         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
5726         instead of FSR0H,
5727         * (genAssign): take advantage of the _G.resDirect flag,
5728         * (genCast): around line 11844, use mov2f instead of directly
5729         MOVFF'ing between operands to account for literal values,
5730         * src/pic16/genutils.c: some new debug functions for gpsim have been
5731         added,
5732         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
5733         float with integer part only,
5734         * src/pic16/main.c (_process_pragma): handle pragma udata access to
5735         place variables in access bank
5736         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
5737         updated sources to reflect recent changes in gen.c
5738
5739 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
5740
5741         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
5742         sources that searched for headers in installation path, now the
5743         device/include/pic16 is used,
5744         * src/pic16/glue.c (pic16glue),
5745         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
5746         .line directives if not in debug mode, this suppresses assembler's
5747         warnings for ignored directives
5748
5749 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5750
5751         * src/port.h: made reset_regparms prototype void parameter explicit.
5752         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
5753         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
5754         * doc/sdccman.lyx: documented warning disabling and how to use
5755           printf_large to make it print floats.
5756         * device/include/stdbool.h: NEW
5757         * device/lib/_atof.c,
5758         * device/lib/_divuint.c,
5759         * device/lib/_divulong.c,
5760         * device/lib/expf.c,
5761         * device/lib/printf_large.c,
5762         * device/lib/sincosf.c,
5763         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
5764         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
5765           a completely reentrant lib.
5766
5767 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
5768
5769         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
5770         * device/include/pic16/stdio.h: fixed bug with colon
5771
5772 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
5773
5774         * device/include/pic16/stdio.h,
5775         * device/include/pic16/stdlib.h,
5776         * device/include/pic16/math.h: NEW
5777         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
5778         declared as _naked to reduce overhead
5779         * device/lib/Makefile.in (target port-specific-objects-pic16):
5780         changed * to *.* so to ignore the CVS directory,
5781         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
5782         stacked variables back in stack,
5783         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
5784         corruption
5785
5786 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
5787
5788         * .version: bumped version number to 2.4.5
5789         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
5790         * support/Util/SDCCerr.c (messages structure): added entry for
5791         W_POSSBUG2
5792
5793         Large cumulative patch for pic16 port and libraries.
5794         * device/include/pic16/sdcc-lib.h,
5795         * device/include/pic16/stdarg.h,
5796         * device/include/asm/pic16/features.h,
5797         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
5798         * device/include/pic16/float.h: changes reentrant keyword with
5799         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
5800         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
5801         updated target build-libraries to include objects from gptr,
5802         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
5803         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
5804         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
5805         all function headings,
5806         * src/SDCCmain.c: added global parameter userIncDirsSet,
5807         * (parseCmdLine): when option -I is encountered add directory to
5808         userIncDirsSet too,
5809         * src/version.awk: added space between control and long,
5810         * src/pic16/NOTES: added some notes for the port,
5811         * src/pic16/gen.c: added prototype for mov2fp function,
5812         * (fReturnpic16[]): properly named return value registers,
5813         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
5814         * (aopForSym): added code to handle symbols with onStack flag set,
5815         symbols onStack are allocated PTRSIZE bytes,
5816         * (aopFreeAsmop): handles special case where asmops are stack objects,
5817         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
5818         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
5819         added argument lock to trace flaws in allocating temporary registers
5820         when developing port,
5821         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
5822         * (pic16_popRegFromString): reenabled allocating a direct register
5823         from string,
5824         * (assignResultValue): various beautifications,
5825         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
5826         referenced function argument,
5827         * (genIpush): reenabled to allow stacked arguments, handles only
5828         ic->parmPush iCodes,
5829         * (genCall, genPcall): major changes to allow for variable argument
5830         functions, fixed a bug with falsely restoring stack pointer after
5831         returning from call,
5832         * (genFunction): pending code for critical function,
5833         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
5834         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
5835         * (genNearPointerGet): fixed bug with indirect reading, was always
5836         reading from INDF0
5837         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
5838         pointers,
5839         * (genAddrOf): rewrote code to take address of a stacked function parameter
5840         * (genCast): fixed casting to generic pointer type,
5841         * src/pic16/gen.h: added AOP_STA,
5842         * (struct asmop): added field stk,
5843         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
5844         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
5845         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
5846         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
5847         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
5848         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
5849         generic pointers,
5850         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
5851         and library paths,
5852         * (pic16_port structure): generic pointer size is set to 3,
5853         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
5854         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
5855         compiler warning,
5856         * src/pic16/ralloc.c (allocReg): prevent allocating register when
5857         operand is an iTemp,
5858
5859 2004-09-24 Martin Helmling <mh AT octo-soft.de>
5860
5861         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
5862         * debugger/mcs51/simi.c: addapt new syntax of s51
5863
5864 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
5865
5866         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
5867         * src/pic16/pcode.c: commented out some calls to free() in order to
5868         fix bug #989576,
5869
5870 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5871
5872         * src/SDCCicode.h,
5873         * src/SDCCicode.c (isiCodeInFunctionCall),
5874         * src/avr/ralloc.c (selectSpil),
5875         * src/pic/ralloc.c (selectSpil),
5876         * src/pic16/ralloc.c (selectSpil),
5877         * src/ds390/ralloc.c (selectSpil),
5878         * src/hc08/ralloc.c (selectSpil),
5879         * src/xa51/ralloc.c (selectSpil),
5880         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
5881         stack in the middle of a function call sequence (fixes bug #1020268)
5882         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
5883         costs associated with the minimum switch case.
5884
5885 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5886
5887         * src/SDCC.lex: fixed bug #1030549
5888
5889 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5890
5891         * src/SDCCcse.h (struct cseDef),
5892         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
5893         over a function call if the CSE is derived from a symbol whose
5894         address has been taken (fixes bug #1029883)
5895         * support/regression/tests/bug-1029883: a new regression test for
5896         this bug
5897
5898 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5899
5900         * src/hc08/gen.c (emitinline): fixed bug #1029778
5901         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
5902         to a cast object is no longer a syntax error ("fixes" bug #1030006,
5903         and starts toward RFE #905167)
5904
5905 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
5906
5907         * src/pic16/gen.c (mov2f): New function to move an operand to
5908         another without considering if it is a literal or a register,
5909         * (pic16_sameRegs): don't check if they are both AOP_REG,
5910         * (AccRsh): removed andmask=0 lines,
5911         * (genLeftShift): duplicated to be improved in future versions,
5912         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
5913         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
5914         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
5915         * (pic16initMnemonics): added initialization for POC_INFSNZW,
5916         * (insertBankSwitch): fixed inserting banksel directives algorithm
5917         for instructions that follow a skip instruction, this fixes a report
5918         for broken subtraction code generation,
5919         * src/pic16/ralloc.c (deassignLRs): do not free register if current
5920         iCode is a left op, just in case result and right share the same
5921         registers
5922
5923 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5924
5925         * src/hc08/main.c,
5926         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
5927         preservation of HX
5928         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
5929         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
5930         on 2004-09-12; it was buggy
5931
5932 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
5933
5934         * src/SDCCsymt.h: removed RESULT_CHECK
5935         * src/SDCCast.c,
5936         * src/SDCCglue.c,
5937         * src/SDCCval.c,
5938         * src/pic/glue.c,
5939         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
5940
5941 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
5942
5943         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
5944         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
5945         configuration values no more rejected by compiler, they are assigned
5946         to configuration registers with a warning message instead,
5947         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
5948         the for-loop so last conf register is emitted too,
5949         * (_pic16_initPaths): link library libsdcc.lib by default,
5950         * (_hasNativeMulFor): modified test for multiplication according to
5951         Raphael Neider's remarks. Integer multiplication is also done with
5952         support functions,
5953         * device/include/pic16/pic18fregs.h: corrected type error in while
5954         testing and including 18f6720 header file
5955
5956 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
5957
5958         * src/pic16/device.h (pic16_options): removed field use_crt,
5959         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
5960         until an optimization to handle single bits is added,
5961         * (pic16_loadFSR0): moved before genUnpackBits,
5962         * (genAnd): some white lines removed,
5963         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
5964         leave_reset flags in pic16_options when using crt modules,
5965
5966 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
5967
5968         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
5969           for bugs 898889 & 979599. Also used some safer print instructions.
5970
5971 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
5972
5973         * src/pic16/device.h (pic16_options_t): added field use_crt,
5974         crt_name, no_crt,
5975         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
5976         catch a probable future bug,
5977         * src/pic16/gen.c: aopIdx function commented out,
5978         * (genAssign): commented out old code which used aopIdx,
5979         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
5980         code, added if conditionals to take into account the --use-crt
5981         command line options,
5982         * src/pic16/main.c (pic16_optionsTable): added new command line
5983         options, --use-crt= and --no-crt,
5984         * (_pic16_linkEdit): now the proper crt object is added in the
5985         linker command line except than when --no-crt is specified,
5986         * src/pic16/pcode.c,
5987         * src/pic16/pcode.h: added some structures and functions for a new
5988         optimization scheme to compansate for instruction overhead between
5989         same iCodes, this scheme is currently under development and is not
5990         working in any way,
5991         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
5992         to && operator,
5993         * device/lib/pic16/startup/crt0i.c,
5994         * device/lib/pic16/startup/crt0iz.c: added global char variable
5995         __uflags to force the generation of an idata section
5996
5997 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
5998
5999         * doc/Makefile,
6000         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
6001         * doc/sdccman.lyx: updated sdcc version to 2.4.4
6002
6003 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6004
6005         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
6006         Frieder) and clarified the default code optimization mode
6007
6008 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6009
6010         * src/SDCC.lex (doPragma, process_pragma),
6011         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
6012         "opt_code_size", and "opt_code_balanced"
6013         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
6014         regrouped options by category, added support for category headers
6015         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
6016         and "--opt-code-size"
6017         * doc/sdccman.lyx: documented these new options and pragmas
6018         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
6019         preference into account
6020
6021 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6022
6023         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
6024           geniCodePreDec): Fixed bug 904237 by generating a warning
6025         * src/SDCCerr.h,
6026         * src/SDCCerr.c: added warning W_SIZEOF_VOID
6027
6028 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
6029
6030         * src/pic/device.c : When no max ram set validate full memory range.
6031         * src/pic/pcode.c,
6032         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
6033
6034 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6035
6036         * device/lib/_gptrget.c,
6037         * device/lib/_gptrput.c: updated comment
6038         * device/lib/calloc.c,
6039         * device/lib/free.c,
6040         * device/lib/malloc.c,
6041         * device/lib/realloc.c: added LGPL, made them reentrant-safe
6042         * src/SDCCcse.c (cseBBlock),
6043         * src/SDCCicode.c (printOperand, geniCodeArray),
6044         * src/SDCCicode.h (struct operand): fixed bug 868103
6045         * support/regression/tests/bug-868103.c: added
6046         * src/SDCCast.c (searchLitOp),
6047         * src/SDCCcse.h (struct cseDef),
6048         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
6049         * src/SDCCicode.h (struct operand),
6050         * src/SDCCsymt.h (struct sym_link),
6051         * src/avr/gen.c (hasInc),
6052         * src/ds390/gen.c (hasInc),
6053         * src/hc08/gen.c (genPlusIncr, hasInc),
6054         * src/mcs51/gen.c (hasInc),
6055         * src/pic16/glue.c (pic16_printIvalChar),
6056         * src/pic16/ralloc.c (regWithIdx),
6057         * src/xa51/gen.c (hasInc) : removed warnings
6058         * src/SDCCast.c (createBlock): added comment ???
6059         * src/hc08/ralloc.c: updated comments
6060
6061 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6062
6063         * doc/sdccman.lyx: updated section on switch statements, added
6064         section about semaphore locking
6065         * doc/Makefile: added option -info for latex2html
6066         * device/lib/_gptrget.c,
6067         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
6068
6069 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
6070
6071         * src/pic/device.h,
6072         * src/pic/device.c,
6073         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
6074          maxram is less than 0x100.
6075
6076 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
6077
6078         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
6079
6080 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6081
6082         * src/port.h,
6083         * src/mcs51/main.c,
6084         * src/ds390/main.c,
6085         * src/z80/main.c,
6086         * src/hc08/main.c,
6087         * src/pic/main.c,
6088         * src/pic16/main.c,
6089         * src/avr/main.c,
6090         * src/xa51/main.c
6091         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
6092         a jump table is the best form for a switch statement, including
6093         automatic insertion of missing cases to make the case range
6094         continuous. Developed in collaboration with Frieder Ferlemann.
6095
6096 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6097
6098         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
6099         accumulator result if it needs sign extension
6100
6101 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6102
6103         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
6104
6105 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6106
6107         * device/lib/gbz80/printf.c,
6108         * device/lib/z80/printf.c: removed define for NULL
6109
6110 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6111
6112         * as/xa51/xa_link.c,
6113         * device/examples/ds390/ow390/ad26.c,
6114         * device/examples/ds390/ow390/cnt1d.c,
6115         * device/examples/ds390/ow390/counter.c,
6116         * device/examples/ds390/ow390/ds2480.h,
6117         * device/examples/ds390/ow390/ds2480ut.c,
6118         * device/examples/ds390/ow390/findtype.c,
6119         * device/examples/ds390/ow390/gethumd.c,
6120         * device/examples/ds390/ow390/owllu.c,
6121         * device/examples/ds390/ow390/ownetu.c,
6122         * device/examples/ds390/ow390/swt12.c,
6123         * device/examples/ds390/ow390/swtloop.c,
6124         * device/examples/ds390/ow390/temp.c,
6125         * device/examples/ds390/ow390/temp10.c,
6126         * device/examples/ds390/ow390/thermo21.c,
6127         * device/examples/ds390/ow390/tinilnk.c,
6128         * device/examples/ds390/ow390/tstfind.c,
6129         * device/examples/serialcomm/windows/serial.cpp,
6130         * device/examples/serialcomm/windows/test_serialcomm.cpp,
6131         * device/include/reg51.h: fixed line endings for cvs
6132
6133 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6134
6135         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
6136         packRegsForAccUse, packRegisters): new accumulator register
6137         packing algorithm
6138         * support/regression/ports/hc08/support.c (_putchar): suppress
6139         warning of unused variable
6140         * src/SDCCicode.c: added SWAP entry to codeTable
6141
6142 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
6143
6144         * device/lib/sprintf.c: forgot to add this file before previous commit
6145
6146 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
6147
6148         * src/pic16/gen.c (genPackBits): added operand right in function
6149         parameters, load result directly if p_type is POINTER (that is
6150         called by genNearPointerSet)
6151         * (genUnPackBits): added operand left in function parameters,
6152         * (genNearPointerGet, genNearPointerSet): prevent the loading of
6153         FSR0 if accessing bitfields,
6154
6155 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
6156
6157         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
6158           _print_format; updated printf, sprintf, vsprintf
6159         * device/include/asm/default/features.h: corrected comment/define
6160         * device/lib/Makefile.in: added sprintf.c
6161         * device/lib/libsdcc.lib: added sprintf module
6162         * device/lib/printf_large.c,
6163         * device/lib/vprintf.c,
6164         * device/lib/sprintf.c: totally refactored printf_large and vprintf
6165           into these 3 files
6166         * support/regression/Makefile: changed ALL_PORTS into a usefull default
6167         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
6168         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
6169           hc08 test
6170         * support/regression/tests/zeropad.c: define idata as data for hc08
6171
6172 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6173
6174         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
6175         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
6176         labels are referenced at least once (even if a reference is not found)
6177         * src/hc08/gen.c (emitcode): set isComment flag for comments
6178         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
6179         loads), rules 6a..6b (optimize jumps to return)
6180
6181 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6182
6183         * device/lib/acosf.c (acosf),
6184         * device/lib/asinf.c (asinf),
6185         * device/lib/atanf.c (atanf),
6186         * device/lib/ceilf.c (ceilf),
6187         * device/lib/cosf.c (cosf),
6188         * device/lib/coshf.c (coshf),
6189         * device/lib/cotf.c (cotf),
6190         * device/lib/fabsf.c (fabsf),
6191         * device/lib/floorf.c (floorf),
6192         * device/lib/log10f.c (log10f),
6193         * device/lib/logf.c (logf),
6194         * device/lib/sinf.c (sinf),
6195         * device/lib/sinhf.c (sinhf),
6196         * device/lib/sqrtf.c (sqrtf),
6197         * device/lib/tanf.c (tanf),
6198         * device/lib/tanhf.c (tanhf),
6199         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
6200         replaced all instances of "reentrant" in the library functions
6201         defined in math.h with this macro.
6202         * support/regression/tests/float_trans.c: reenabled test for hc08
6203
6204 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
6205
6206         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
6207         erroneously deleted
6208
6209 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6210
6211         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
6212         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
6213         multi-byte volatile operands are used
6214         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
6215         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
6216         initialization to area GSINIT0 so that it would always precede
6217         any static initializers in GSINIT
6218         * support/regression/tests/zeropad.c: fixed idata define for hc08
6219         * support/regression/tests/bug-927659.c,
6220         * support/regression/tests/float_trans.c: disabled tests for hc08
6221         pending missing library routines
6222         * .version: increased version number to 2.4.4 - hc08 port now passes
6223         regression tests
6224
6225
6226 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
6227
6228         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
6229         * Makefile.common.in,
6230         * as/Makefile,
6231         * as/hc08/Makefile.in,
6232         * as/mcs51/Makefile.in,
6233         * as/z80/Makefile.in,
6234         * debugger/mcs51/Makefile.in,
6235         * device/include/Makefile.in,
6236         * device/lib/Makefile.in,
6237         * doc/Makefile,
6238         * link/Makefile,
6239         * link/z80/Makefile.in,
6240         * packihx/Makefile.in,
6241         * sim/ucsim/main_in.mk,
6242         * sim/ucsim/avr.src/Makefile.in,
6243         * sim/ucsim/doc/Makefile.in,
6244         * sim/ucsim/gui.src/serio.src/Makefile.in,
6245         * sim/ucsim/hc08.src/Makefile.in,
6246         * sim/ucsim/s51.src/Makefile.in,
6247         * sim/ucsim/xa.src/Makefile.in,
6248         * sim/ucsim/z80.src/Makefile.in,
6249         * src/Makefile.in,
6250         * support/cpp2/Makefile.in,
6251         * support/librarian/Makefile,
6252         * support/makebin/Makefile: added DESTDIR to the install path proposed
6253         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
6254         * doc/sdccman.lyx: added DESTDIR documentation
6255
6256 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
6257
6258         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
6259         instruction for interrupt handlers, use fast returns when returning
6260         from high priority interrupts
6261
6262 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6263
6264         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
6265         code generation
6266         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
6267         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
6268         bugs, ported much of Bernhard's code from mcs51
6269         * src/mcs51/gen.c (genSend),
6270         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
6271         than one when calling a reentrant function
6272         * device/lib/_mullong.c: defined an alternate struct layout for big
6273         endian ports (hc08)
6274
6275 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6276
6277         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
6278         test
6279
6280 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6281
6282         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
6283         are sane and complete before asking the port its prefered parameter
6284         passing method (fixes bug #1017633)
6285         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
6286         and _ret3
6287
6288 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6289
6290         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
6291         problem in bitfields >= 8 bits.
6292
6293 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6294
6295         * src/SDCCsymt.c: undid changes that were not meant to be committed
6296
6297 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6298
6299         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
6300
6301 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6302
6303         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
6304           copied and wrong bit got inverted
6305
6306 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6307
6308         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
6309         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
6310         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
6311         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
6312         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
6313         assignments to bitfields at known addresses
6314         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
6315         reads from bitfields at known addresses
6316         * src/hc08/ralloc.c (packRegisters),
6317         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
6318         genhc08Code): optimize pointer get values used as conditionals
6319         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
6320         and branch
6321
6322 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6323
6324         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
6325         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
6326         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
6327         as conditionals
6328
6329 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6330
6331         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
6332
6333 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6334
6335         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
6336         related problems
6337
6338 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
6339
6340         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
6341
6342 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6343
6344         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
6345         mcs51 port
6346
6347 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6348
6349         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
6350
6351 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6352
6353         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
6354         cases use more compact code.
6355
6356 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
6357
6358         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
6359
6360 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6361
6362         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
6363
6364 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6365
6366         * src/SDCCsymt.h,
6367         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
6368         parameter of changePointer() from symbol* to sym_link*
6369         * src/SDCCast.c (decorateType): call changePointer() for CAST op
6370         * src/SDCCsymt.c (compareType): void* type is castable to other
6371         pointers, but not necesarily an exact match.
6372         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
6373         is no longer blindly treated as an exact match.
6374         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
6375
6376 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
6377
6378         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
6379
6380 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
6381
6382         * src/pic/gen.c,
6383         * src/pic/pcode.c,
6384         * src/pic/ralloc.h,
6385         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
6386
6387 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
6388
6389         * src/pic/device.c,
6390         * src/pic/device.h,
6391         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
6392
6393 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6394
6395         * src/mcs51/gen.c (emitcode): fixed bug #992819
6396
6397 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
6398
6399         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
6400           there's no need to make it worse
6401
6402 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6403
6404         * src/mcs51/ralloc.c (deassignLR),
6405         * src/ds390/ralloc.c (deassignLR),
6406         * src/hc08/ralloc.c (deassignLR),
6407         * src/z80/ralloc.c (deassignLR),
6408         * src/pic/ralloc.c (deassignLR),
6409         * src/pic16/ralloc.c (deassignLR),
6410         * src/avr/ralloc.c (deassignLR),
6411         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
6412         rlivePoint): fixed another part of bug #971834
6413
6414 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6415
6416         * src/z80/main.c: enabled "critical" keyword
6417         * src/z80/mappings.i,
6418         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
6419         functions (fixes bug #979646)
6420         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
6421
6422 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6423
6424         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
6425           such as c:\mydir.
6426
6427 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
6428
6429         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
6430           doesn't disable too much optimizations
6431
6432 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6433
6434         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
6435
6436 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
6437
6438         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
6439
6440 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6441
6442         * src/pic/gen.c tidied up tabs
6443         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
6444         * src/pic/main.c tidied up tabs
6445         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
6446         * src/pic/pcoderegs.c tidied up tabs
6447         * src/pic/ralloc.c tidied up tabs
6448
6449 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
6450
6451         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
6452         to S_FIXED for pic16 port and when symbol is not in level 0,
6453         allocate for S_REGISTER storage class and pic16 port, too,
6454         * src/pic16/device.h: prototype for checkSym,
6455         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
6456         * (pic16_assignConfigWordValue): test the value and the mask to
6457         validate that the value is suitable for the configuration word,
6458         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
6459         collect extern declared symbols, don't emit symbol twice, check
6460         first if symbol is in publics set first,
6461         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
6462         * added command line '--fstack' which enables an experimental
6463         feature for stack access, too buggy to be used yet...
6464         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
6465         * (pic16_allocDirReg): when register has storage class S_REGISTER
6466         allocate in pic16_dynAccessRegs,
6467         * device/include/pic16/pic18f????.h: modified configuration word
6468         naming convention, words started as CONFIG0H but should be CONFIG1H
6469
6470 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6471
6472         * device/include/mcs51reg.h: fixed bug 970993
6473
6474 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
6475
6476         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
6477         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
6478         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
6479         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
6480         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
6481         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
6482           error/warning numbers,
6483           added function setWarningDisabled()
6484         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
6485         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
6486           _memcmp.c _memmove.c calloc.c realloc.c free.c
6487         * support/regression/tests/malloc.c: added tests for new functionality
6488         * support/regression/tests/zeropad.c: added tests for truncated initializers
6489           and initialized char arrays starting with '\x0'
6490         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
6491
6492 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
6493
6494         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
6495
6496 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6497
6498         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
6499         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
6500         peephole 177.e. Thanks to anonymous
6501
6502 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
6503
6504         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
6505         function isn't used in the source but referenced as a
6506         variable initializer then declare it as extern in .asm file
6507
6508 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
6509
6510         * .version: increased version number to 2.4.3
6511
6512         Adding version extension according to ChangeLog CVS revision
6513         * src/Makefile.in (target all): added dependency 'version.h'
6514         * (rule version.h): added rule to create version.h from ChangeLog,
6515         * (rule dep): added dependency version.h,
6516         * src/version.awk: AWK script to create version.h
6517         * src/SDCCdwarf2.c (dwWriteModule),
6518         * src/SDCCglue.c (initialComments),
6519         * src/SDCCmain.c (printVersionInfo): modified to write after
6520         version string the version extension number,
6521         * src/SDCCutil.c: included "version.h"
6522         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
6523         number,
6524         * src/SDCCutil.h: added prototype for getBuildNumber
6525
6526         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
6527         includeDirsSet, too,
6528         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
6529         const char [] is found in function prototype...
6530
6531         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
6532         moving to WREG with source is already in WREG,
6533         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
6534         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
6535         * (aopForSym): stack'ed symbols are partially supported, added
6536         if-clause to support symbols in FARSPACE,
6537         * (sameRegs): added test for AOP_ACC to see if registers are same,
6538         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
6539         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
6540         * (pic16_popRegFromString): will not allocate a new register if it
6541         doesn't find one by name, bug may have introduced...
6542         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
6543         * (genIpush): revived to use pic16 port's stack,
6544         * (genAddrOf): added incomplete case for stack'ed operand,
6545         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
6546         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
6547         can handle multibyte operands,
6548         * src/pic16/glue.c (pic16_printIval*): some debug info added,
6549         * (pic16initialComments): added message for MPLAB compatibility
6550         mode enabled,
6551         * src/pic16/main.h: prototype for pic16_mplab_comp,
6552         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
6553         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
6554         * (_pic16_linkEdit): NEW, handles link stage, transferred here
6555         because of increased complexity of procedure,
6556         * (_process_pragma): stack pragma changed to format 'stack pos len',
6557         emit symbol '_stack_end' to conform with gplink,
6558         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
6559         to search for register,
6560         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
6561         PO_GPR_REGISTER,
6562         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
6563         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
6564         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6565         case for PO_GPR_REGISTER,
6566         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
6567         dies, the new era is ahead !...
6568         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
6569         pic16_dynInternalRegs,
6570         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
6571         * (pic16_allocDirReg): minor optimizations and bug fixes,
6572         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
6573
6574         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
6575         load stack and frame pointer with address of 'stack_end' symbol
6576
6577 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
6578
6579         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
6580         without source code but only variable initializers
6581
6582 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
6583
6584         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
6585         external are not declared as extern to reduce overhead while linking
6586
6587 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
6588
6589         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
6590
6591 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
6592
6593         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
6594           Yee Keat for the patch
6595         * src/SDCCast.c (decorateType): fixed bug #979599
6596         * src/ds390/gen.h: removed local fReturnSizeDS390
6597         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
6598         * src/ds390/gen.c (genAnd, genOr, genXor),
6599         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
6600
6601 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
6602
6603         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
6604         add relFilesSet to $3, manipulate $2 to handle linking of object
6605         files without source files in command line,
6606         * device/include/pic16 (all headers): added ID location macros,
6607         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
6608         entries for ID location bytes,
6609         * (pic16_assignIdByteValue): NEW,
6610         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
6611         added field dumpcalltree to pic16_options_t,
6612         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
6613         is used instead of pic16_Gstack_base_addr, check if (ifx) before
6614         emitting rFalseIfx label after check_carry label,
6615         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
6616         pic16_emitDIRegs), NEW
6617         * (pic16glue): dump .calltree file when option --calltree found,
6618         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
6619         * (_pic16_genAssemblerPreamble): emit ID locations after
6620         configuration registers,
6621         * (pic16_linkCmd): modifications of the link command,
6622         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
6623         * (pic16_pCodeInitRegisters): don't init stack registers,
6624         * (pic16_findPrevInstruction): fixed bug,
6625         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
6626         bug with immediate registers,
6627         * (buildCallTree): traces stack push and pop,
6628         * (pct2): dump also stack usage for each function,
6629         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
6630         * (pic16_allocDirReg): various modifications,
6631         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
6632         fixed to 1,
6633
6634 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
6635
6636         * src/pic16/pcode.c: removed buggy double colon
6637
6638 2004-07-01 Borut Razem <borut.razem AT siol.net>
6639
6640         * support/scripts/sdcc.nsi: added include/pic16 to setup
6641
6642 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
6643
6644         * device/lib/Makefile.in: fixed bug in target objects-pic16,
6645         * device/lib/pic16/Makefile: prefixed with dash (-) command under
6646         target 'clean',
6647         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
6648         specific command line arguments. Also added sample lkr script
6649         for placing a variable at a specific memory bank.
6650         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
6651         at a specific memory bank,
6652         * (pic16_dump_isection): fixed bug which caused string literals to
6653         be omitted when dumping idata section,
6654         * (pic16_groupRegistersInSection): added code to handle registers
6655         in specific memory banks,
6656         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
6657         public, all references are renamed too,
6658         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
6659         AOP_DPTR2,
6660         * (pic16_storeForReturn): added case to handle when dest is WREG,
6661         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
6662         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
6663         pic16_rel_udata, check to see if that register is marked as being
6664         a member of a specific memory bank,
6665         * (pic16_printIvalCharPtr): added code to add string literals either
6666         to code or the idata sections,
6667         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
6668         also accept the 'udata' pragma,
6669         * src/pic16/main.h: new structure types sectName and sectSym
6670         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
6671         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
6672         * (pic16_findPrevInstruction): fixed, it returned nothing,
6673         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
6674         instruction combinations,
6675         * (pic16_FixRegisterBanking): heavily reorganised,
6676         * (pic16_AnalyzeBanking): if generating banksel directives is
6677         disabled, then don't call FixRegisterBanking at all,
6678         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
6679         completely removed,
6680         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
6681
6682 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
6683
6684         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
6685         Phuah Yee Keat <yk.phuah AT nestac.com>
6686
6687 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6688
6689         * src/pic16/glue.c (pic16createInterruptVect): function now emits
6690         correctly the IVT even if it is relocated to some other location
6691
6692 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6693
6694         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
6695         * device/include/pic16/pic18f2220.h: NEW,
6696         * device/lib/pic16/libdev/pic18f2220.c: NEW,
6697         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
6698         * src/pic16/device.c (struct Pics16): added info for 18f2220,
6699         * src/pic16/device.h (struct pic16_options): added ivt_loc and
6700         nodefaultlibs, ivt_loc is the location of the interrupt vector
6701         table, and nodefaultlibs signs that default libraries should not be
6702         linked in link stage,
6703         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
6704         according to --ivt-loc argument,
6705         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
6706         when pragma stack is found,
6707
6708 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6709
6710         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
6711         256 (range check), 257 (do while), 258.a-f (bit banging
6712         f.e. on 3-wire SPI bus)
6713
6714 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6715
6716         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
6717         variables used exclusively within a loop
6718
6719 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
6720
6721         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
6722
6723 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6724
6725         * src/SDCClrange.c (computeClash): fixed bug #971834
6726
6727 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6728
6729         * src/mcs51/gen.c (genCmp): fixed bug #975903
6730         * src/hc08/gen.c (operandsEqu),
6731         * src/ds390/gen.c (operandsEqu),
6732         * src/z80/gen.c (operandsEqu),
6733         * src/pic/gen.c (operandsEqu),
6734         * src/pic16/gen.c (operandsEqu),
6735         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
6736         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
6737
6738 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6739
6740         * src/SDCCcse.c (cseBBlock): fixed bug #966963
6741
6742 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
6743
6744         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
6745         default case in switch statement,
6746         * glue.c (pic16_initPointer): expr is initialised via decoarteType
6747         to eliminate problem with initialisation of pointers, but problem
6748         still exists,
6749         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
6750         * (emitStaticSegment): removed various lines emitting debug info,
6751         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
6752         added processor registers for utilizing EEPROM,
6753         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
6754         configurable and set 8
6755
6756 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
6757
6758         * .version: increased version number to 2.4.2,
6759
6760         Cumulative patch for pic16 port
6761         * src/pic16/device.c: changed scheme to dump initial values for
6762         variables in idata segment, all print_idata* functions were removed,
6763         now the pic16_printIval* will be called,
6764         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
6765         * _pic16_printPointerType, pic16_printPointerType,
6766         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
6767         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
6768         NEW, similar to the respective functions in SDCCglue.c,
6769         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
6770         way, emitting hex bytes,
6771         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
6772
6773 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6774
6775         * src/avr/ralloc.c (serialRegAssign),
6776         * src/xa51/ralloc.c (serialRegAssign),
6777         * src/pic/ralloc.c (serialRegAssign),
6778         * src/pic16/ralloc.c (serialRegAssign),
6779         * src/hc08/ralloc.c (serialRegAssign),
6780         * src/z80/ralloc.c (serialRegAssign),
6781         * src/ds390/ralloc.c (serialRegAssign),
6782         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
6783
6784 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6785
6786         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
6787         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
6788
6789 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
6790
6791         Cumulative patch for pic16 port:
6792         * src/pic16/device.h (typedef PIC16_device) modified fields for
6793         defining microcontrollers,
6794         * src/pic16/device.c: added new info for all devices in Pics16 array,
6795         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
6796         to be optimised out by the pCode optimiser,
6797         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
6798         specially, bug reported by G.M. Gallant,
6799         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
6800         as force'd so that cannot be optimised out by pCode optimiser,
6801         * src/pic16/pcode.c,
6802         * src/pic16/pcodepeeph.c,
6803         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
6804         they are disabled by default, but can be enabled explicit with
6805         command argument --denable-peeps, for testing,
6806         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
6807         --pomit-ivt in COMPILE_FLAGS
6808
6809 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6810
6811         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
6812           compilation on MSVC
6813
6814 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6815
6816         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
6817
6818 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6819
6820         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
6821         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
6822
6823 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
6824
6825         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
6826         would only assign 0x300001 register.
6827
6828 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
6829
6830         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
6831         in COMPILE_FLAGS. Thanks to G. Gallant for report.
6832
6833 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6834
6835         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
6836         for ds80c400
6837         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
6838         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
6839         added peephole 254 (left shift), 255 (jump table)
6840
6841 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
6842
6843         * device/lib/Makefile.in: removed comment line with model-pic16,
6844         * (target port-specific-objects-pic16): the libraries and objects
6845         are copied to the build directory form the device/lib/pic16/bin
6846         directory
6847
6848         Cumulative patch concerning pic16 port:
6849         * library directory has been re-organized,
6850         * added support for PIC18F1220,
6851         * added headers and library sources for chips 18f1220,18f6520,
6852         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
6853
6854         * configuration registers setting has changed, now each supported
6855         device has a complete description of the registers it uses,
6856         * all initialisations are moved to idata sections, these section
6857         can be absolute or relocatable,
6858         * fixed initialisation of codespace variables,
6859         * fixed warning about PCLATU and gpsim,
6860         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
6861         * (genAssign): use table reads when assigning from variables in codespace,
6862         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
6863         char/int variables placed in codespace,
6864         * (pic16_emitConfigRegs): NEW, emits a list with configuration
6865         registers set in .asm file, no need for --pomit-config-words anymore,
6866         * (pic16glue): some 8051 legacy segments are commented out
6867         (to be removed completely),
6868         * added support for alternative assembler and linker with --asm=
6869         and --link= command line arguments,
6870         * peepholes are disabled automatically in the port, no need to
6871         specify on command line,
6872         * port supports natively char/int/long multiplication, but converts
6873         all divisions to support functions,
6874         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
6875         to the file set in variable $2,
6876         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
6877         strings in ASCII format and not in hex,
6878         * ralloc.c (serialRegAssign): added a triplet of conditional calls
6879         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
6880         allocate proper register if iCodes aren't temporary,
6881
6882 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
6883
6884         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
6885
6886 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
6887
6888         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
6889         is commented out
6890
6891 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6892
6893         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
6894         computed address is reused
6895         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
6896         multi-byte bitfields
6897
6898 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6899
6900         * src/z80/gen.c: (genArrayInit): must check for pointers too
6901
6902 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6903
6904         * support/regression/tests/zeropad.c: never meant to commit the
6905           nestedstruct test: removed, added check for GCC version
6906
6907 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
6908
6909         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
6910         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
6911         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
6912           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
6913           bugs 928906 and 954082 half-empty initializers
6914         * src/SDCCsymt.h,
6915         * src/SDCCsymt.c (getAllocSize): added for above fix
6916         * src/z80/gen.c (genArrayInit): fixed bug 741044
6917         * support/regression/tests/zeropad.c: added tests
6918
6919 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
6920
6921         * src/pic16/device.c (pic16_dump_section): corrected bug which
6922         caused some symbols of the libraries to be misplaced
6923
6924 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6925
6926         * src/pic16/glue.c,
6927         * src/pic16/ralloc.h,
6928         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
6929         to fix conflict with pic port
6930
6931 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6932
6933         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
6934         externs configuration variables,
6935         * src/pic16/ralloc.h,
6936         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
6937         prototype in header, commented out some debug messages
6938
6939 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
6940
6941         * src/pic16/glue.c,
6942         * src/pic16/main.c,
6943         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
6944         for gpasm COFF object generation. Thanks to D. Hawkins for
6945         his patch info
6946
6947 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6948
6949         * src/ds390/main.c,
6950         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
6951         Brock for spotting this)
6952         * src/ds390/gen.c (genEndFunction),
6953         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
6954         interrupt handler and critical. Disable push/pop optimizations when
6955         peephole optimizations disabled.
6956
6957 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6958
6959         Updated pic16 library sources and headers.
6960         * device/lib/pic16/pic18f*/ ,
6961         * device/include/pic16/*.h: modified to handle structured SFR
6962         definitions
6963
6964 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6965
6966         * src/port.h (PORT structure): added hook initPaths, now each
6967         port can declare its own default search paths,
6968         which can been seen with the --print-search-dirs option,
6969         see pic16 port for example,
6970         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
6971         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
6972         * (doPrintSearchDirs): NEW, replaces in a central manner the
6973         printing of search dirs which was split in set*Paths functions,
6974         * (main): added call to port->initPaths and doPrintSearchDirs,
6975         * src/avr/main.c,
6976         * src/ds390/main.c,
6977         * src/hc08/main.c,
6978         * src/izt/i186.c,
6979         * src/izt/tlcs900h.c,
6980         * src/mcs51/main.c,
6981         * src/pic/main.c,
6982         * src/pic16/main.c: modified port structures to reflect addition of
6983         initPaths hook,
6984
6985         * src/pic16/device.c (regCompare): registers are finally sorted by name,
6986         * (pic16_dump_section): for registers in same address reserve memory once,
6987         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
6988         to no_banksel,
6989         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
6990         result is greater in size than right or left,
6991         * (pic16_genUMult8X8_8): there are some cases where the result can
6992         be 16 bits size, so handle these,
6993         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
6994         * (pic16_outBitC): modified to emit pcodes,
6995         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
6996         or not,
6997         * (genDivOneByte): implemented algorithm to divide 8-bits,
6998         * (genCmp): uncommented goto, but issues still exist,
6999         * (genAnd): fixed a bug with variables >8bits,
7000         * (genPackBits): optimization added that uses BCF/BSF to change a
7001         single bit,
7002         * (genAssign): fixed bug when assigning floating point literals,
7003         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
7004         __sdcc_gsinit_startup label,
7005         * src/pic16/main.c (_pic16_init): removed search directory
7006         initialisations,
7007         * (_pic16_initPaths): NEW, used to initialise search directories,
7008         * (_hasNativeMulFor): support functions for all except char/int
7009         multiplication, and char division,
7010         * (PIC16_port struct): modified entry for native mul support,
7011         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
7012         no_banksel option,
7013         * (buildCallTree): call to register_usage is ifdef'ed out,
7014
7015 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7016
7017         * device/include/string.h: applied Stas Sergeev's patch to make this
7018         header file compatible with the preprocessor -Wundef option
7019         * src/SDCCmain.c (main): abort compilation if preprocessor reports
7020         failure (fixes bug #941458)
7021
7022 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7023
7024         * src/SDCCopt.c (killDeadCode): fixed bug #907733
7025         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
7026         that the variable, not the function, should be static
7027         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
7028         to be consistent with non-literal case
7029
7030 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7031
7032         * src/SDCCast.c (isConformingBody): fixed bug #949967
7033         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
7034         convilong): fixed bug #952086
7035
7036 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7037
7038         * src/SDCCmem.c (allocVariables): fixed bug #955321
7039
7040 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7041
7042         * src/hc08/main.c (_hc08_genAssemblerEnd),
7043         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
7044         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
7045         completely eliminated the use of a temporary file
7046         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
7047         when more than one file linked
7048         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
7049
7050 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7051
7052         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
7053         which fixes bug #543481
7054         * support/regression/tests/bug-751703.c: fixed comments left from a
7055         cut and paste error
7056         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
7057         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
7058         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
7059         scopes
7060         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
7061         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
7062         are now changed to underscores in moduleName
7063
7064 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7065
7066         * as/mcs51/lkmem.c: better fix for bug #954173
7067
7068 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
7069         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7070
7071         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
7072         * device/include/c8051f000.h,
7073         * device/include/c8051f120.h,
7074         * device/include/c8051f300.h,
7075         * device/include/c8051f310.h,
7076         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
7077         PWM16) and detab'ed
7078
7079 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7080
7081         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
7082         and mailing lists, doc'ed --no-peep-comments, removed reference
7083         to knoppix (newest version has no LyX/LaTeX), other minor changes
7084         * src/SDCCglue.c (glue): save 2 bytes stack space with
7085         option --main-return. The ljmp could probably be avoided too
7086
7087 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7088
7089         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
7090
7091 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7092
7093         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
7094         * src/SDCCopt.c (isLocalWithoutDef),
7095         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
7096         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
7097         (credit to Maarten Brock for patch #949363, on which this is based)
7098         * support/regression/tests/bug-751703.c: some test cases of extern used
7099         within inner scopes.
7100
7101 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7102
7103         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
7104         SPEC_STRUCT
7105         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
7106         struct definitions
7107         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
7108         dwWriteLabel): fix to create valid debugger symbols even when
7109         the module name has non-alphanumeric symbols in it
7110         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
7111         when a variable's allocation has been optimized away
7112
7113
7114 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7115
7116         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
7117         * src/hc08/main.c,
7118         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
7119         * src/mcs51/main.c,
7120         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
7121         * src/ds390/main.c,
7122         * src/z80/gen.c (z80_emitDebuggerSymbol),
7123         * src/z80/main.c,
7124         * src/pic/gen.c (pic14_emitDebuggerSymbol),
7125         * src/pic/main.c,
7126         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
7127         * src/pic16/main.c,
7128         * src/avr/gen.c (avr_emitDebuggerSymbol),
7129         * src/avr/main.c,
7130         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
7131         * src/xa51/main.c,
7132         * src/SDCCdebug.c (emitDebuggerSymbol),
7133         * src/SDCCdebug.h,
7134         * src/port.h: added a debugger struct to the port struct. Added a
7135         callback for defining debugger symbols
7136
7137         * src/SDCCast.c (createLabel),
7138         * src/SDCC.y (labeled_statement): mark all compiler generated labels
7139         with isitmp = 1
7140         * src/SDCCicode.h,
7141         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
7142         iCode back to the ast for the function
7143
7144         * src/hc08/ralloc.c (hc08_assignRegisters),
7145         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
7146         unneeded fields from the regs struct.
7147         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
7148         pushReg() & pullReg() functions instead of emitcode()
7149
7150         * src/hc08/gen.c (genLabel, genhc08Code),
7151         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
7152
7153         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
7154         debugger hooks
7155
7156         * src/hc08/gen.c (genEndFunction, genhc08Code),
7157         * src/hc08/gen.h,
7158         * src/mcs51/gen.c (genEndFunction, gen51Code),
7159         * src/mcs51/gen.h,
7160         * src/ds390/gen.c (genEndFunction, gen390Code),
7161         * src/ds390/gen.h,
7162         * src/z80/gen.c (genEndFunction, genZ80Code),
7163         * src/z80/gen.h,
7164         * src/z80/z80.h,
7165         * src/pic/gen.c (genEndFunction, genpic14Code),
7166         * src/pic/gen.h,
7167         * src/pic16/gen.c (genEndFunction, genpic16Code),
7168         * src/pic16/gen.h,
7169         * src/avr/gen.c (genEndFunction, genAVRCode),
7170         * src/avr/gen.h,
7171         * src/xa51/gen.c (genEndFunction, genXA51Code),
7172         * src/xa51/gen.h,
7173         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
7174         specific code to cdbFile.c and out of the backend code generators
7175
7176         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
7177         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
7178         starting address is now 0
7179
7180         * as/hc08/asm.h,
7181         * as/hc08/m08pst.c,
7182         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
7183         assembler directive for DWARF support
7184         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
7185
7186         * src/src.dsp,
7187         * src/Makefile.in,
7188         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
7189
7190 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7191
7192         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
7193         and inappropriate peephole optimization in jump tables
7194
7195 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7196
7197         * as/hc08/m08pst.c,
7198         * src/SDCCglue.c: sdccopt works for the hc08 port now
7199
7200 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
7201
7202         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
7203
7204 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7205
7206         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
7207
7208 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7209
7210         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
7211         rules
7212         * src/SDCCmain.c,
7213         * src/SDCCglobl.h,
7214         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
7215         comments from the peephole optimizer replacement rules
7216         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
7217         symbols
7218         * src/SDCCcse.c (updateSpillLocation),
7219         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
7220         equivalents
7221         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
7222         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
7223         objects far pointers
7224
7225 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7226
7227         * src/SDCCsymt.h: a missing part of my last change
7228         * src/pic/ralloc.c (regTypeNum),
7229         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
7230
7231 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7232
7233         * src/SDCCicode.h,
7234         * src/SDCCicode.c (aggrToPtrDclType),
7235         * src/SDCCptropt.h,
7236         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
7237         ptrPseudoSymConvert),
7238         * src/pic/ralloc.c (regTypeNum),
7239         * src/pic16/ralloc.c (regTypeNum),
7240         * src/hc08/ralloc.c (regTypeNum),
7241         * src/ds390/ralloc.c (regTypeNum),
7242         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
7243         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
7244
7245 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7246
7247         * link/z80/lkmain.c (afile),
7248         * as/hc08/lkmain.c (afile),
7249         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
7250         prevent a pointer problem when a filename has no directory and
7251         no extension specified.
7252
7253 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7254
7255         * link/z80/lkmain.c (afile): allow periods in directory names
7256         * link/z80/lkmain.c (afile),
7257         * as/mcs51/lkmain.c (afile),
7258         * as/hc08/lkmain.c (afile): allow linker script file to have an
7259         extension other than ".lnk"
7260         * link/z80/lklex.c (getfid),
7261         * link/z80/lkmain.c (parse),
7262         * as/mcs51/lklex.c (getfid),
7263         * as/mcs51/lkmain.c (parse),
7264         * as/hc08/lklex.c (getfid),
7265         * as/hc08/lkmain.c (parse): Support comments in the linker script
7266         file on lines by themselves and after filenames
7267
7268 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7269
7270         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
7271
7272 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7273
7274         * src/z80/peeph-z80.def: removed some peephole rules that don't
7275         work with multibyte arithmetic (fixed bug #937126)
7276         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
7277         to registers and not global variables
7278         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
7279         geniCodePreInc, geniCodePostDec, geniCodePreDec,
7280         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
7281         checking for assignments not internally generated (fixed bug #931895)
7282         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
7283         structure member (fixed bug #930072)
7284
7285 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7286
7287         * src/SDCCmain.c (linkEdit),
7288         * src/hc08/main.c (_hc08_parseOptions),
7289         * as/hc08/Makefile.in,
7290         * as/hc08/aslink.h,
7291         * as/hc08/asm.h,
7292         * as/hc08/m08pst.c,
7293         * as/hc08/lkrloc.c (relr, rele),
7294         * as/hc08/lkarea.c (lnkarea)
7295         * as/hc08/lkmain.c (afile, parse),
7296         * as/hc08/lkelf.c: support for ELF output
7297         * as/hc08/lks19.c (s19),
7298         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
7299
7300 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7301
7302         * as/mcs51/lkihx.c: Fixed bug #899105.
7303
7304 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7305
7306         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
7307         .dsp files from Unix to DOS.
7308
7309 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7310
7311         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
7312         function pointers; we have been compliant for several months now.
7313         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
7314         change that was accidently commented out
7315         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
7316         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
7317         bug #922319
7318
7319 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7320
7321         * src/hc08/gen.c: output of all of the internal debugging information
7322         is now controlled by the D() macro; it is disabled by default
7323
7324 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7325
7326         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
7327         harder to keep the same registers during a CAST iCode
7328         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
7329         long via int can be done in a single cast, if the signedness is
7330         correct.
7331         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
7332         putchar() in tinibios.c in ds390's library
7333
7334 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
7335
7336         * src/SDCCast.c (decorateType): fixed bug #898889,
7337         cast result of a literal complement too
7338         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
7339         fixed check for bitfields
7340
7341 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
7342
7343         * src/SDCCicode.c (geniCodeLogic): made it static,
7344         (geniCodeLogicAndOr): added in order to fix bug #905492,
7345         (ast2iCode): fixed bug #905492
7346         * support/regression/tests/bug-905492.c: added
7347         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
7348         (processParms): fixed bug #927659: don't copy parms, this will clear
7349         decorated flag
7350         * support/regression/tests/bug-927659.c: added
7351
7352 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
7353
7354         * src/SDCCast.c (addCast): don't cast float to char
7355         * device/lib/libsdcc.lib: added _memmove
7356
7357 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
7358
7359         * device/lib/large/Makefile: fixed parallel execution by
7360         replacing `make` by `$(MAKE)`
7361
7362 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7363
7364         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
7365         offsets (fixes bug #923936)
7366
7367 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
7368
7369         * device/lib/small/Makefile: fixed parallel execution by
7370         replacing `make` by `$(MAKE)`
7371
7372 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7373
7374         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
7375
7376 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
7377
7378         * src/pic/gen.c (genCpl): multi-byte complements were not working.
7379         * src/regression/Makefile: Regression test was not running.
7380
7381 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7382
7383         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
7384         complement if possible
7385         * src/SDCCval.c (valComplement),
7386         * src/SDCCicode.c (operandOperation): fixed complement of literal
7387         * support/regression/tests/onebyte.c (testComplement): added
7388
7389 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
7390
7391         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
7392         return an optimized tree; actually replace actParm with the new tree
7393         * src/SDCCast.h: added some parantheses to remove side effects
7394         * support/regression/tests/bug-920866.c
7395
7396 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
7397         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
7398         Bit operands were not being handled properly in the pic14 port.
7399         (now src/regression/add.c passes again).
7400
7401 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7402
7403         * src/SDCC.y (labeled_statement): case and default no longer require
7404         a following statement (RFE #893037)
7405
7406 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7407
7408         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
7409         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
7410         disabled (fixes bug #916294)
7411         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
7412         "mov a,acc"; patch provided by Lenny Story
7413         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
7414
7415 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7416
7417         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
7418         functions
7419         * src/ds390/gen.c (genFunction, genEndFunction),
7420         * src/ds390/ralloc.c (ds390_assignRegisters),
7421         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
7422         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
7423         pushed if there are parameters passed on the stack. Also, a cleaner
7424         way to decide if r0/r1 should be pushed/popped. (Together they fix
7425         bug #918693)
7426
7427 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7428
7429         * doc/sdccman.lyx,
7430         * device/lib/mcs51/crtpagesfr.asm,
7431         * device/lib/mcs51/crtxinit.asm,
7432         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
7433         to avoid confusion with Si Lab's SFRPAGE register.
7434
7435 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7436
7437         * src/SDCCglue.c (emitMaps): allow public sfr variables
7438         * src/SDCCglue.c (initialComments): include compiler build date
7439         with compiler version and put the timestamp of the generated
7440         assembly file on a serperate line to be less confusing.
7441         * src/port.h: added genInitStartup hook
7442         * src/avr/main.c,
7443         * src/ds390/main.c,
7444         * src/hc08/main.c,
7445         * src/pic/main.c,
7446         * src/pic16/main.c,
7447         * src/xa51/main.c,
7448         * src/z80/main.c: genInitStartup initialize as NULL (default to
7449         historical behaviour)
7450         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
7451         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
7452         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
7453         library instead of hard coding it into the compiler.
7454         * support/regression/ports/mcs51-stack-auto/spec.mk,
7455         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
7456         * device/lib/mcs51/Makefile,
7457         * device/lib/small/Makefile,
7458         * device/lib/large/Makefile,
7459         * device/lib/mcs51/crtpagesfr.asm,
7460         * device/lib/mcs51/crtstart.asm,
7461         * device/lib/mcs51/crtxclear.asm,
7462         * device/lib/mcs51/crtxinit.asm,
7463         * device/lib/mcs51/crtclear.asm,
7464         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
7465         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
7466         and into user configurable files.
7467         * device/lib/clean.mk: clean mcs51 directory too
7468         * support/regression/tests/longlit.c: added static to T1 declaration
7469         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
7470         accesses in the initialization code
7471
7472 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7473
7474         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
7475         OSCTRIMVAL as noted in bug #916008
7476
7477 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7478
7479         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
7480         in loops with multiple exits (reported as incorrect registers
7481         used by Martin Helmling in Sdcc-user list)
7482
7483 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7484
7485         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
7486         made ds390 register extensions look less like error messages
7487
7488 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7489
7490         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
7491         reported by Adam Wozniak in Sdcc-user list
7492
7493 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
7494
7495         * src/SDCCast.c (decorateType): fixed with bug and promotion in
7496         arithmetic optimizations, added debug output
7497
7498 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
7499
7500         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
7501         * sdcc.spec: updated and split sdcc into 3 rpms
7502         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
7503         needed for literals of LEFT_OP and '+'
7504         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
7505         introduced RESULT_TYPE_NOPROM
7506         (geniCodeMultiply): fixed logic for decision if mul is optimized to
7507         left shift
7508         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
7509         limited promotion to int only for '*'
7510         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
7511
7512 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
7513
7514         * src/pic16/gen.c (genSkip),
7515         (genc16bit2lit), (gencjneshort): commented out
7516         (is_LitOp): new helper function, checks operand type
7517         (genCmpEq): rewritten
7518
7519 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
7520
7521         * support/regression/tests/bug-908454.c: added
7522
7523 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
7524
7525         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
7526         * src/SDCCicode.c (usualBinaryConversions): op needs int type
7527         (geniCodeCast): cosmetic, don't preserve bit storage class
7528         (geniCodeLeftShift): added promotion
7529         (geniCodeLogic): fixed regression
7530         * src/SDCCsymt.c (computeTypeOr): accept bits too
7531         (compareType): 2nd part of fix for bug #908454, needed for bitfields
7532
7533 2004-03-07  Borut Razem <borut.razem AT siol.net>
7534
7535         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
7536
7537 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
7538
7539         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
7540         version of pic16_genPackRegisters which does not check if ic is a
7541         CAST operator,
7542         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
7543         function cause string1.c regression test fails
7544
7545 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
7546
7547         * sim/ucsim/configure.in,
7548         * sim/ucsim/configure,
7549         * sim/ucsim/doc/Makefile.in: use docdir
7550         * src/SDCC.y: fixed sbit atrributes
7551         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
7552         * src/SDCCast.c (decorateType): |^& need special promotion handling
7553         * src/SDCCast.h,
7554         * src/SDCCsymt.h: moved definition of RESULT_TYPE
7555         * src/SDCCsymt.h (computeType),
7556         * src/SDCCicode.c: computeType() needs op
7557         * src/SDCCsymt.c (checkTypeSanity),
7558         * doc/sddman.lyx: "plain" bitfields are unsigned
7559         * src/SDCCsymt.c (computeTypeOr): added
7560         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
7561         |^& ops
7562         * src/SDCCval.c (val*): computeType() needs op
7563         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
7564         * support/regression/tests/onebyte.c: added tests for |^&
7565
7566 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
7567
7568         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
7569         for writing icode into asm output.
7570
7571 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
7572
7573         * src/pic16/device.c: added some debug lines enabled
7574         with macro DEBUG_CHECK,
7575         * src/pic16/genarith.c: more debug in genPlus,
7576         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
7577         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
7578         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
7579         * (aopForSym): onStack symbols are re-placed in data memspace,
7580         and onStack flag is cleared,
7581         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
7582         copy temporary pcodeop,
7583         * (genPcall): added warning for not updating PCLATU,
7584         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
7585         always true for pic16 port,
7586         * (genMultOneWord): NEW, supports integer multiplication,
7587         * (genMult): modified to call genMultOneWord,
7588         * (ifxForOp): added warning when return NULL,
7589         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
7590         flag is set before call to operandFromSymbol for implicit
7591         added structures,
7592         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
7593         options.intlong_rent are set by default,
7594         * (_hasNativeMulFor): modified to allow port generation of integer
7595         multiplication,
7596         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
7597         set regtype to REG_SFR for all registers, restricting seting the
7598         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
7599
7600 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7601
7602         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
7603         more than 500 times in the regression tests
7604
7605 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7606
7607         * support/Util/SDCCerr.h,
7608         * support/Util/SDCCerr.c,
7609         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7610         enumerator_list),
7611         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
7612         for symbol conflicts.
7613         * support/valdiags/tests/enum.c,
7614         * support/valdiags/tests/tentdecl.c,
7615         * support/valdiags/tests/struct.c: expect possible error messages
7616         referring to original symbol definitions.
7617         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
7618         * src/SDCCsymt.h,
7619         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
7620
7621 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
7622
7623         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
7624
7625 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
7626
7627         * src/pic16/ralloc.c (newReg): fixed bug #908929
7628
7629 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7630
7631         * src/ds390/gen.c: added missing #include "main.h"
7632
7633 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
7634
7635         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
7636         checking if symbol is already in set,
7637         * src/pic16/device.h: prototype for checkAddSym,
7638         * src/pic16/gen.c: (_G): added entry interruptvector,
7639         * (assignResultValue): removed some commented out lines,
7640         * (genFunction): check for ISR via sym->type, absolute section for
7641         interrupt code is created via a new pBlock, the goto instruction is
7642         placed now correctly at the interrupt vector position, changed all
7643         references from ivec to _G.interruptvector,
7644         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
7645         is the interrupt is a high priority one, same for return from ISR,
7646         * src/pic16/glue.c: changed all calls of addSetHead for publics and
7647         externs to calls of checkAddSym,
7648         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
7649         pic16_pcode_verbose flag is set,
7650         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
7651         * src/pic16/pcoderegs.c: message about how many registers are saved
7652         will only be emitted if pic16_pcode_verbose flag is set,
7653
7654 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7655
7656         * src/ds390/ralloc.h,
7657         * src/ds390/ralloc.c (ds390_regWithIdx),
7658         * src/ds390/gen.c (emitcode),
7659         * src/ds390/main.h,
7660         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
7661         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7662         ds390operandCompare, getRegsRead, getRegsWritten,
7663         initializeAsmLineNode): customized instruction size calculation for
7664         ds390, started basis for some register optimizations
7665         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
7666         corresponding assembly output
7667         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
7668         missing push/pop of r0/r1. Optimized push/pops
7669
7670 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7671
7672         * src/mcs51/main.c (instructionSize): fixed ACALL size
7673         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
7674
7675 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
7676
7677         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
7678         the sorting of rlist with NULL elements
7679         * (print_idataType, print_idata): NEW to create idata sections
7680         * src/pic16/device.h: idataSymSet new variable
7681         * src/pic16/gen.c (genFunction): fixed some bugs in string
7682         comparing, improved the absolute section creation for ISRs,
7683         added FSR0L/FSR0H in registers that are saved in an ISR,
7684         * (genInline): fixed the processing of inline snippets,
7685         now they undergo no process by the peephole optimizer
7686         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
7687         are placed in idataSymSet,
7688         * (pic16emitStaticSeg): extern symbols are added in externs,
7689         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
7690         switching when aboslute variables are placed in access bank memory
7691         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
7692         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
7693         commented out with #if,
7694         * (pic16_packRegisters): reintroduce the check for CAST because some
7695         symbols are not correctly handled,
7696         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
7697         pCodeInstruction instead of pCode,
7698         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
7699         pCodeAsmDir definition,
7700         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
7701         directive, then the argument directive is emitted without the leading
7702         tab, hack for inline labels which must be in the first column,
7703         * (compareLabel,pic16_findNextInstruction),
7704         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
7705         * (insertBankSwitch): modified for the new pCodeAsmDir,
7706
7707 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7708         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
7709
7710         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
7711         instance,
7712         * (pushSide): commented out with #if,
7713         * (assignResultValue): fixed some typos in saving
7714         registers,
7715         * (genPcall): FIXED and sync'ed with genCall,
7716         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
7717         * (genNearPointerGet): fixed to handle some more cases,
7718         implementation scheme via table reads,
7719         * (genConstPointerGet): modified to access code memory correct,
7720         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
7721         and improved to handle some cases
7722         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
7723         instead of "RETLW" for init data
7724         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
7725         not IN_DIRSPACE, work around to reduce bank switching when aboslute
7726         variables are placed in access bank memory (<0x80 and >=0xf80),
7727         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
7728         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
7729         TBLWT_POSTDEC,TBLWT_PREINC
7730         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
7731         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
7732         directives
7733         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
7734         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
7735         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
7736         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
7737
7738 2004-02-29  Borut Razem <borut.razem AT siol.net>
7739
7740         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
7741         support/Util/findme.h, support/Util/system.h: enhance binary relative
7742         search for lib and include by using findProgramPath()
7743
7744 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7745
7746         * src/SDCCpeeph.h,
7747         * src/SDCCpeeph.c (pcDistance),
7748         * src/port.h,
7749         * src/mcs51/ralloc.h,
7750         * src/mcs51/ralloc.c (mcs51_regWithIdx),
7751         * src/mcs51/main.h,
7752         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
7753         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7754         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
7755         size calculation port specific, started basis for some register
7756         optimizations
7757         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
7758         missing push/pop of r0/r1. Optimized push/pops
7759         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
7760         * device/lib/_modsint.c (_modsint),
7761         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
7762         and stack version so regression tests pass
7763
7764 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
7765
7766         * src/Makefile.in (dep): include SLIBOBJS in dependency check
7767         * src/SDCCast.c (decorateType): catch another small optimization
7768         with '?' operator
7769         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
7770         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
7771         modified to finally use computeType() all over SDCC,
7772         see Feature Request #877103
7773         * src/SDCCval.h: cosmetic
7774         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
7775         valCompare(); regression tested in muldiv.c
7776         * support/regression/tests/muldiv.c (testMod): mod sign follows
7777         dividend only
7778
7779 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
7780
7781         * src/SDCCast.c (decorateType): fixed bug #902362
7782         * doc/INSTALL.txt: fixed install instructions for win32
7783
7784 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
7785
7786         * device/include/Makefile.in (install): fixed by replacing spaces
7787         by tabs
7788         * doc/README.txt,
7789         * doc/INSTALL.txt: updated for release
7790         * doc/sdccman.lyx: added warning for --xstack being buggy
7791
7792 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
7793
7794         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
7795         to eliminate build warnings.
7796         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
7797
7798 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
7799            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7800
7801         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
7802         removed -penable-stack, added comment for stack pragma, added
7803         warning for not initializing the stack/frame registers, removed
7804         comment at interrupts section
7805
7806         Stack is made permanent, there is no ability to disable stack usage.
7807         * src/pic16/device.h,
7808         * src/pic16/device.c: removed all references to USE_STACK macro,
7809         * src/pic16/device.c (pic16_dump_section): when no elements in
7810         rlist, free rlist before return,
7811         * (pic16_dump_int_registers): NEW, internal registers are a new set
7812         of general purpose registers reused by each function,
7813         * (checkAddReg): returns 1 if registers is added to set,
7814         * (pic16_groupRegistersInSection): when a registers is of type
7815         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
7816         * src/pic16/device.h: memRange and Assigned Memory are deleted,
7817         SRCASECMP macro is moved here from device.c
7818         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
7819         PO_PCLATU, PO_PRODL, PO_PRODH,
7820         * (pic16_pCodeOpType, genMinus,
7821         changed compares to "a" register, with AOP_ACC,
7822         * (pic16_genPlus): fixed some bugs and indented properly,
7823         * (pic16_addSign): changed size to size+offset in the MOVWF
7824         instruction,
7825         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
7826         multiply 8-bit operand by literal, result is 8-bit,
7827         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
7828         multiply 2 8-bit operand, result is 8-bit,
7829         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
7830         genUMult8X*_16,
7831         * src/pic16/gen.c: changed accUse to contain WREG only,
7832         * (pic16_emitcomment): renamed to pic16_emitpcomment,
7833         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
7834         true, do not use immediate addressing any more unless sym is a
7835         pointer in codespace,
7836         * (aopForRemat): do not use immediate addressing when symbol not in
7837         codespace and when symbol's address is requested,
7838         * (aopOp): for-loop in if(sym->accUse) is modified for the new
7839         accUse size (= 1),
7840         * (aopGet): added case for AOP_ACC and don't return "accumulator
7841         bug" but WREG instead,
7842         * (popGetTempReg): pushes contents of temporary register in stack,
7843         * (popReleaseTempReg): pops contents of temporary register from
7844         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
7845         * (pic16_popGet): separated case AOP_ACC to return register WREG
7846         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
7847         or PO_IMMEDIATE and initializes their instance/offset appropriately,
7848         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
7849         the use of immediate pointers to certain cases only.
7850
7851         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
7852         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
7853         * (assignResultValue, genCall, genRet): modified to use the new
7854         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
7855         genPcall is still broken,
7856         * (genFunction): added code to create 'A' type pBlocks when
7857         interrupt functions are generated, code not extensively tested yet,
7858         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
7859         * (genEndFunction): modified so ISRs pop stored registers from stack,
7860         * (genMultOneByte): cleanup,
7861         * (AccRsh): added flag andmask, to and result with appropriate mask,
7862         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
7863         * (genDataPointerGet): fixed and reenabled its use,
7864         * (genNearDataPointerGet): bugs fixed,
7865         * (genDataPointerSet): bugs fixed,
7866         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
7867         pic16_DumpSymbol, pic16_DumpOp,
7868         * src/pic16/genutils.h: function prototypes for the above functions,
7869         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
7870         pointers,
7871         * (pic16emitRegularMap): many many many improvements, but needs a
7872         major cleanup,
7873         * src/pic16/main.c: enable_stack in pic16_options is removed,
7874         * (_pic16_parseOptions): removed command line options -penable-stack,
7875         * (_process_pragma): emit stack symbol only when stack pragma is
7876         processed,
7877         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
7878         redirected to FSR0L/FSR0H pair,
7879         * (pic16_get_op, pic16_get_op2): modifications and improvements,
7880         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7881         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
7882         for immediates,
7883         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
7884         * (dumpPicOptype): NEW,
7885         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
7886         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
7887         with movff instruction,
7888         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
7889         added pic16_int_regs, some packRegsFor* functions are commented out,
7890         because produce errors,
7891         * src/pic16/NOTES: minor modifications
7892
7893 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7894
7895         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
7896         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
7897         --pack-iram.
7898         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
7899         * as/mcs51/lkaomf51.c: fixed bug #895763
7900
7901 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
7902
7903         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
7904
7905 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7906
7907         * doc/sdccman.lyx: added details about the HC08 storage classes and
7908         interrupts, fixed the register usage info for z80 & gbz80
7909
7910 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
7911
7912         * doc/sdccman.lyx: added more pic16 port documentation
7913         * device/include/pic16/: added header pic18fregs.h
7914
7915 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
7916
7917         * doc/sdccman.lyx: added Vangelis' contribution
7918
7919 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7920
7921         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
7922         extend to the next CALL or PCALL, not just to the next CALL.
7923
7924 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
7925
7926         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
7927
7928 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7929
7930         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
7931         bug #895752 and a better fix for bug #716790
7932
7933 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7934
7935         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
7936
7937 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7938
7939         * doc/sdccman.lyx: minor changes, minor changed
7940
7941 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
7942
7943         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
7944         which can't handle SDCC_NEWONEBYTEOPS,
7945         (geniCodeMultiply): removed conversion from mult to shift for pic14
7946         and pic16
7947
7948 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7949
7950         * src/hc08/gen.h,
7951         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
7952         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
7953         thus fixing bug #895406
7954
7955 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
7956
7957         * device/lib/_modsint.c,
7958         * device/lib/_modslong.c: sign follows divisor only
7959         * src/hc08/gen.c (genMultOneByte): if result size is 1,
7960         signs or signedness can be ignored
7961         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
7962         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
7963         added optimization for IFX,
7964         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
7965         arguments;
7966         reenabled optimization for IFX, which was removed on 2004-01-11
7967         * src/SDCCast.h: added return type IFX
7968         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
7969         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
7970         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
7971         SDCC_OLDONEBYTEOPS selects the old behaviour
7972         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
7973         changed again and commented promotion rule
7974         * src/SDCCval.c (valDiv): promotion no longer necessary
7975         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
7976         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
7977         rewritten
7978         * support/regression/tests/onebyte.c: added
7979
7980 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
7981
7982         * gen.c (genInline): reverted to old code for assemnling inline
7983         code because of bug reported James Chadd
7984
7985 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
7986
7987         * ralloc.h: missing declarations from previous patch,
7988         seems that patch for ralloc.h was never applied, fixed
7989
7990 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7991            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7992
7993         * pcode.c,
7994         * pcode.h,
7995         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
7996         indirect addressing. Marked FSR0 as deprecated
7997         * gen.c (pointerCode): commented out, not needed now
7998         (pic16_popGet2p): new MOVFF helper function
7999         (genGenPointerGet),
8000         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
8001         (shiftRLong): removed duplicate debugging info
8002
8003 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8004
8005         * src/ds390/gen.c (genNearPointerGet),
8006         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
8007         optimization with bits, but not bitfields.
8008         * src/ds390/ralloc.c (packRegisters),
8009         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
8010
8011 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
8012
8013         * src/SDCCcse.c (algebraicOpts): copy operands before modification
8014
8015 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8016
8017         * src/SDCCsymt.h,
8018         * src/SDCCicode.c (operandFromSymbol),
8019         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
8020         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
8021         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
8022         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
8023         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
8024         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
8025         bug #892038
8026         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
8027         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
8028         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
8029         * src/SDCCsymt.c (newSymbol),
8030         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
8031         enumerator_list),
8032         * src/SDCCval.h,
8033         * src/SDCCval.c (newiList): fixed bug #885705
8034
8035 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8036
8037         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
8038         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
8039
8040 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8041
8042         * device/include/c8051f120.h,
8043         * device/include/c8051f300.h,
8044         * device/include/c8051f310.h: added/updated header files for Silicon
8045         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8046         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
8047         in new section Submitting patches
8048
8049 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8050
8051         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
8052         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8053         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8054         genGenPointerSet),
8055         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
8056         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8057         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8058         genGenPointerSet),
8059         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
8060         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8061         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8062         genGenPointerSet),
8063         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
8064         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8065         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8066         genGenPointerSet): fixed bug #892400
8067         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
8068         to eliminate build warnings.
8069         * src/SDCCast.c (processParms),
8070         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
8071         fixed bug 751859
8072         * support/valdiag/valdiag.py: added GCC to the list of defines active
8073         when compiling with gcc
8074
8075 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8076
8077         * support/Util/SDCCerr.h,
8078         * support/Util/SDCCerr.c,
8079         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
8080         with an incomplete type (fixed bug #883734)
8081         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
8082
8083 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8084
8085         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
8086
8087 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8088
8089         * src/SDCCast.c (decorateType),
8090         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
8091         function pointer implementation
8092         * support/regression/tests/funptrs.c: added tests to verify both forms
8093         of function pointers work correctly. Added tests to verify parameters
8094         are passed in the correct order.
8095
8096 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
8097
8098         * device.c (regCompare): registers are sorted by ascending
8099         address and increasing size,
8100         * main.c (_pic16_finaliseOptions): removed the declaration
8101         of compiler macro MCU. Now a macro of the format pic18fxxxx
8102         will be defined from the command line
8103
8104 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8105             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
8106
8107         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
8108         PCOP_RLCF was overwritten!
8109         * gen.c (genSkip): commented out calls to pic16_emitcode,
8110         * (genCmpEQ): fixed "long" compares, only high word did get compared,
8111         * (genlshTwo),
8112         * (genRRC): added debugging info,
8113         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
8114         overwritten while shifting,
8115         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
8116         overwritten while shifting,
8117         * (AccLsh),
8118         * (AccRsh),
8119         * (shiftLLeftOrResult),
8120         * (shiftRLeftOrResult),
8121         * (shiftRLong),
8122         * (shiftLLong): Implemented with pic16_emitpcode
8123         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
8124         * (genLeftShift): Fixed bug, operand for shift by variable always
8125         was "and"ed with 0x0f,
8126         * (genLeftShiftLiteral),
8127         * (genrshTwo),
8128         * (genRightShiftLiteral): added debugging info,
8129         * (genrshFour): added comment,
8130         * (genRightShift): determined signedness from operand "left"
8131         instead of "result"
8132
8133 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8134
8135         * src/SDCCicode.c (geniCodeParms),
8136         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
8137         function pointers, fixed function pointer bugs #861242 and #861896
8138
8139 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8140
8141         * device/include/c8051f000.h,
8142         * device/include/c8051f120.h,
8143         * device/include/c8051f300.h: added header files for Silicon
8144         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8145
8146 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
8147
8148         * src/SDCCast.c (processParams): added new type flow and restructured
8149         (gatherAutoInit): added new type flow
8150         (addCast): cosmetic changes
8151         (getLeftResultType): added new type flow for array indices, patch
8152         provided by Stas, see FR #877103
8153         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
8154         array index patch by Stas
8155         * src/SDCCast.h: added prototype getResultTypeFromType()
8156         * src/SDCCval.h,
8157         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
8158         * src/pic/glue.c (pic14emitStaticSeg),
8159         * src/pic16/glue.c (pic16emitStaticSeg),
8160         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
8161         for initialization of symbols
8162         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
8163         * support/Util/SDCCerr.h:
8164         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
8165         * .version: bumped version number to 2.3.8
8166         * device/include/Makefile.in (install),
8167         * doc/Makefile (install): changed to 'rm `find ...`' construct to
8168         avoid warnings
8169
8170 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
8171
8172         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
8173         Slade Rich fixed an optimization bug
8174         * src/pic/pcodepeep.c,
8175         * src/pic/pcoderegs.c
8176         * doc/Makefile (install): added test for directory
8177
8178 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8179
8180         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
8181         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
8182         * src/pic/ralloc.c (getRegPtr, getRegGpr),
8183         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
8184         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
8185         * as/mcs51/asexpr.c (term),
8186         * as/hc08/asexpr.c (term): fixed bug #887146
8187
8188 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8189
8190         * src/z80/gen.c (genMult): handle single byte result product
8191         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
8192         DUMMY_READ_VOLATILE (fixed bug #886367)
8193
8194 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8195
8196         * support/regression/tests/libmullong.c: fixed logic, on little endian
8197         hosts we ended without a mullong_wrapper()
8198
8199 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8200
8201         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
8202         virus/worm forged address usage.
8203
8204 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8205
8206         Fixed promotion, it should be done on AST level:
8207         * src/SDCCast.c (addCast): added promotion to int
8208         (decorateType): updated call to upCast()
8209         * src/SDCCicode.c (geniCodeLeftShift): removed call to
8210         usualUnaryConversions()
8211
8212 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
8213
8214         * support/regression/tests/literalop.c (mulWrapper): Added a
8215         wrapper to remove integer overflow warnings.
8216
8217         * support/regression/tests/float_trans.c: Made work on host.
8218
8219         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
8220         location of sz80.
8221
8222         * support/regression/generate-cases.py (main): Changed from inline
8223         to a main method.
8224
8225         * doc/Makefile (install): Changed to depth first to get rid of
8226         missing directory install warning.
8227
8228         * as/Makefile (install-doc): Made work on Mac.
8229
8230 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
8231
8232         * src/SDCCast.c: added an additional type flow in decorateType() of
8233         opposite direction, see feature request #860006; it's enabled at runtime
8234         by setting the environment variable SDCC_NEWTYPEFLOW
8235         * src/SDCCast.h: changed prototype of decorateType()
8236         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
8237         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
8238         'char' to 'int' can be omitted, if both operands are 'unsigned char';
8239         see feature request #877103
8240         * src/SDCCval.c: updated call of decorateType()
8241         (valBitwise): fixed bug #882876
8242         (valMinus): added promotion
8243         (valLogicAndOr): result is unsigned
8244         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
8245         * src/SDCCsymt.c (computeType),
8246         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
8247         must not cause an unsigned operation
8248         * src/pic/glue (pic14emitRegularMap),
8249         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
8250
8251 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
8252
8253         * src/pic/pcode.c (PCodeID): commented out left over debug code
8254
8255 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
8256
8257         * support/valdiag/tests/overflow.c: added shift tests
8258         * src/pic/device.c,
8259         * src/pic/gen.c,
8260         * src/pic/gen.h,
8261         * src/pic/glue.c,
8262         * src/pic/main.c,
8263         * src/pic/pcode.c,
8264         * src/pic/pcode.h,
8265         * src/pic/pcodepeep.c,
8266         * src/pic/pcoderegs.c,
8267         * src/pic/ralloc.c,
8268         * src/pic/ralloc.h: applied patch from Slade Rich;
8269         added support for multiple code pages and multiple RAM banks on the
8270         PIC 14 port. The ASM files now no longer simply assume all the
8271         code / RAM are in the same page / bank. This means the linker can
8272         safely allocate code/RAM of separate ASM files to different pages/banks.
8273         * doc/sdccman.lyx: added Slade's tips
8274         * src/mcs51/peeph.def: fixed bug #880768
8275
8276 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8277
8278         * src/hc08/ralloc.c (rematStr): fixed bug #879282
8279         * src/SDCCast.c (decorateType): fixed bug #880197
8280
8281 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
8282
8283         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
8284         getopt.h.
8285
8286         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
8287         strtof is not part of C89 and isn't included with Mac OS X.
8288
8289 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8290
8291         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
8292         shiftL2Left2Result): fixed bug #879326
8293         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
8294         (genMultOneByte): fixed bug in signed vs unsigned multiplication
8295         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
8296         address fetch for clr instruction
8297         * device/lib/hc08/_mulint.c: created optimized assembly version
8298         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
8299
8300 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
8301
8302         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
8303         proposed in FR #877103
8304
8305 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
8306
8307         * src/SDCCval.c (cheapestVal): added missing checks
8308         * src/SDCCicode.c (usualBinaryConversions): fixed condition
8309         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
8310
8311 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
8312
8313         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
8314         equal operands
8315
8316 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
8317
8318         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
8319         loaded with the linker search paths (-L arguments) and the libraries
8320         to be linked with the current source (-l arguments). Changes
8321         currently will affect only the pic16 port.
8322         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
8323         include path the port specific paths and port specific libraries,
8324         * gplink command now contains the $3 argument,
8325         * src/pic16/device.h,
8326         * src/pic16/device.c,: structure PIC_device is made public and
8327         renamed to PIC16_device, the same for variable Pics which is renamed
8328         to Pics16. Updated all references to them.
8329         * src/pic16/glue.c (pic16glue): corrected bug with code
8330         initialization which bypassed the variable initializations block.
8331
8332         * device/lib/pic16/Makefile.rules: removed --penable-stack from
8333         COMPILE_FLAGS and added the --nostdinc option
8334
8335 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8336
8337         * device/include/mc68hc908jb8.h: Register defs for another member
8338         of the hc08 family. Contributed by Bjorn Bringert - thanks!
8339
8340 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
8341
8342         Documenting changes from previous commits.
8343         * configure.in (version 1.56),
8344         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
8345         when generating output files to configure the pic16 library,
8346         but now I've commented it out, since gputils aren't installed in the
8347         SF compile farm, so library won't compile
8348
8349         * device/lib/Makefile.in (version 1.56): initially I've added in
8350         target 'all' the prerequestive 'model-pic16' so it compiled the
8351         pic16 library, but now I've commented it out for the same reasons
8352         above,
8353         * added targets 'model-pic16' and 'objects-pic16' to compile the
8354         library
8355         * added target 'port-specific-objects-pic16' to handle the
8356         generated libraries and copy them into the build/ directory
8357         * added target 'clean-intermediate-pic16' to clean intermediate
8358         files into pic16 directory
8359         * in target 'installdirs' added line to create directory pic16 in
8360         the installation path
8361
8362         * device/include/Makefile.in (version 1.11): in target 'install'
8363         added lines to copy all header files to installation path,
8364         * in target 'installdirs' added line create directory for pic16
8365         headers in the installation path
8366
8367 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
8368
8369         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
8370          a function call
8371
8372 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
8373
8374         * configure,
8375         * device/lib/configure.in,
8376         * device/lib/configure: fixed for autoconf 2.57
8377
8378 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8379
8380         * src/z80/main.c (_parseOptions): fixed the portmode= command line
8381         option so that it actually works. Made it specific to the z80, since
8382         the gbz80 doesn't have these kinds of I/O ports.
8383
8384 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8385
8386         * device/include/z180.h,
8387         * device/lib/_memcpy.c,
8388         * device/lib/_memmove.c,
8389         * device/lib/_mulint.c,
8390         * device/lib/ser_ir.c,
8391         * device/lib/ser_ir_cts_rts.c,
8392         * device/lib/_strcmp.c,
8393         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
8394         * src/z80/main.c (_process_pragma): add support for pragmas bank and
8395         portmode; added deprecation warning for bank= and protmode= forms.
8396         Also, guard against buffer overflow.
8397         * src/z80/gen.c (aopGet): generate better code for sfr banked read
8398
8399 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8400
8401         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
8402         changed interrupt vector table generation to only emit declared vectors.
8403         * device/include/Makefile.in: added missing backslash
8404         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
8405
8406 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8407
8408         Mainly changes to support compilation of the device libraries
8409         * src/pic16/device.c: stack is allocated via symbol and not
8410         via literal number. The symbol is placed in the corresponding
8411         position of the data ram
8412         * (pic16_dump_section): relocatable and absolute uninitialized
8413         data are now emitted in sorted order to reduce section naming,
8414         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
8415         weren't marked as being in the access bank,
8416
8417 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8418
8419         Added portion of GNU PIC Library under the directory
8420         device/include/pic16 and device/lib/pic16. These files
8421         contain the declarations of SFRs for the PIC18Fxx2 devices.
8422         The directory is initialized via configure from toplevel.
8423
8424 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
8425
8426         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
8427         the spilllocations to be compared correctly
8428
8429 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8430
8431         * src/SDCCast.c (decorateType): fixed bug introduced today
8432
8433 2004-01-12  Borut Razem <borut.razem AT siol.net>
8434
8435         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
8436         doc/sdccman.lyx: upper case pragmas are deprecated
8437
8438 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8439
8440         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
8441         in simpler and even better code
8442
8443 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
8444
8445         * src/SDCCicode.c (operandOperation): fixed bug #874819
8446         * src/SDCCast.c (decorateType): fixed
8447         char foo (unsigned long ul) { return ul > 0; }
8448
8449 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8450
8451         * doc/sdccman.lyx: Moved and added some sections, small changes
8452         all over. Telling LaTeX to be less strict with word spacing
8453         to better keep the right margin. Changed some notes about
8454         maintainance of the ports in section 3.2.1 - is it OK like this?
8455
8456 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8457
8458         SDCC source changes:
8459         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
8460         convilong): modified to inform the pic16 port that builtin functions
8461         are external
8462
8463         PIC16 PORT specific changes:
8464         * src/pic16/device.c pic16_dump_equates() added,
8465         processor registers declared internally by the port are emitted in
8466         the translation as equates,
8467         * src/pic16/gen.c: inline code is passed unprocessed to the
8468         translation,
8469         * (pic16_popGetLit2): fnuction modified to take second operand as
8470         pCodeOp pointer and not as literal,
8471         * (popRegFromIdx): prefixed with pic16_,
8472         * (pic16_popCombine2): modified to receive already allocated pCode
8473         operands,
8474         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
8475         * (genFunction): initializes local stack frame and pushes on stack
8476         all the registers used by this function,
8477         * (genEndFunction): restores all registers from stack and restores
8478         stack frame,
8479         * src/pic16/glue.c (pic16emitRegularMap): various changes and
8480         improvements,
8481         * (pic16glue): changed the program startup sequence,
8482         * added new dbName code 'A' for functions placed in absolute section
8483         * src/pic16/main.c: added function attribute _naked,
8484         * added pragma 'code' to place a fnuction at an absolute address,
8485         * added command line arguments --debug-ralloc and --pcode-verbose,
8486         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
8487         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
8488         * (pic16_newpCodeOpLit2): modified to take the second operand as
8489         pCodeOp pointer,
8490         * (pic16_printpBlock): modified to emit each function in a separate
8491         section,
8492         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
8493         UPPER for immediate operands,
8494         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
8495         instruction,
8496         * src/pic16/peeph.def: all peepholes with movff are commented out,
8497         because there is a problem in the pcode peep optimizer,
8498         * src/pic16/ralloc.c: the register allocator can now reuse local
8499         function symbols for another function. This saves register usage.
8500         * src/pic16/ralloc.h: added flag isLocal in structure regs,
8501
8502         Added file src/pic16/NOTES with information about program writing on
8503         the current port version.
8504
8505 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8506
8507         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
8508         and peephole 252 (array access)
8509
8510 2004-01-09  Borut Razem <borut.razem AT siol.net>
8511
8512         * src/SDCCmain.c : fixed #872250: -l command line defined library
8513           files are scanned before standard library files
8514
8515 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8516
8517         * src/SDCCast.c (decorateType): fixed bug #874046
8518
8519 2004-01-09  Borut Razem <borut.razem AT siol.net>
8520
8521         * support/scripts/sdcc.nsi: remove previous installation
8522
8523 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8524
8525         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
8526         bytes for last interrupt vector (mcs51)
8527         * sdcc.spec: fixed typo
8528
8529 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8530
8531         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
8532         gen51Code): more efficient parameter receive for --model-large
8533         ("bug" #845294)
8534
8535 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8536
8537         * src/ds390/main.c,
8538         * src/z80/main.c: added missed needLinkerScript flags (more than
8539         one port structure defined in these file)
8540         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
8541         bug #795325
8542
8543 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
8544
8545         * src/SDCCmain.c: removed various references to DEFAULT_PORT
8546         * src/port.h: added flag needLinkerScript in port->linker
8547         structure to inform whether to create a .lnk file or not,
8548         * src/avr/main.c,
8549         * src/ds390/main.c,
8550         * src/hc08/main.c,
8551         * src/mcs51/main.c,
8552         * src/pic/main.c,
8553         * src/pic16/main.c,
8554         * src/xa51/main.c,
8555         * src/z80/main.c: changed appropriately to configure
8556         needLinkerScript flag
8557         * src/pic/gen.c,
8558         * src/pic16/gen.c (genAddrOf): fixed bug #863624
8559         * src/pic/glue.c: added variable udata_section_name to
8560         override default uninitialized data segment definition for
8561         devices only with SHAREBANK memory (reported from Erik Epetrich)
8562         * (pic14emitOverlay): modified to emit a commented overlay segment
8563         directive when no overlay data exist
8564         * (picglue): modified to emit uninitialized data segment
8565         according to udata_section_name
8566         * src/pic/main.c (_pic14_parseOptions): added command line
8567         options --udata-section-name=[name] to override default
8568         udata definition name
8569         * modified _linkCmd and _asmCmd to include compiler passed
8570         arguments via -W option
8571         * src/pic16/main.c: added $l in _asmCmd, changed extension for
8572         object file from '.rel' to '.o' in port->linker structure,
8573         changed size of fptr from 2 to 3 in port structure
8574
8575 2004-01-07  Borut Razem <borut.razem AT siol.net>
8576
8577         * support/scripts/sdcc.nsi: update PATH
8578         * support/scripts/sdcc.ico: craeted
8579
8580 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
8581
8582         * device/include/Makefile.in: fix install
8583         * doc/Makefile: fix install
8584
8585 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8586
8587         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
8588         in bug #860505
8589         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
8590         how the function variable allocation summary is displayed; also
8591         include information about variables allocated to the overlay
8592         segment
8593
8594 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8595
8596         * as/mcs51/lkmain.c: Help about -Y option
8597         * as/mcs51/lkarea.c: Fixed gcc warnings
8598
8599 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8600
8601         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
8602         fixed warning
8603         * support/valdiag/tests/overflow.c: added
8604         * src/SDCCast.c (decorateType),
8605         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
8606         LEFT_OP (left shift)
8607
8608 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8609
8610         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
8611         (default behaviour).
8612
8613 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8614
8615         A python script to validate compiler diagnostic messages. It can be
8616         used to verify that sdcc complains about bad c source code and
8617         gives a good location of the error.
8618         * support/valdiag/Makefile,
8619         * support/valdiag/valdiag.py,
8620         * support/valdiag/tests/*
8621
8622 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8623
8624         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
8625         * src/SDCCsymt.c (newEnumType),
8626         * src/SDCCsymt.h
8627         * support/Util/SDCCerr.c,
8628         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
8629         enum related bugs.
8630         * support/regression/tests/enum.c: added test for enum values that
8631         require at least 2 bytes of storage.
8632
8633 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8634
8635         * src/common.h: added ifndef/define/endif macros
8636         around the header file.
8637         Bug reported from Jesus Calvino-Fraga
8638
8639 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8640
8641         * sdcc.spec: updated
8642         * device/include/Makefile.in: don't install CVS directories
8643         * device/lib/Makefile.in: added removal of CVS directories after install
8644         * doc/Makefile: fixed install, added local_icons
8645         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
8646         * src/mcs51/gen.c (genRightShift): fixed bug #870788
8647         * src/ds390/gen.c (genRightShift): fixed bug #870788
8648         * src/SDCCast.c (decorateType): fixed bug #870781
8649
8650 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8651
8652         PIC16 port related changes:
8653         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
8654         added variable stackPos,
8655
8656         * gen.c: genCall, assignResultValue: added support for
8657         pushing/retrieving function parameters to/from stack,
8658         genFunction,genEndFunction: setup stack frame for the
8659         generated function,
8660         genAddrOf: will be changed according to bug 863624
8661
8662         * added files genutils.c and genutils.h which contain gen*
8663         debugged and optimised functions extracted from gen.c
8664
8665         * glue.c: added variable 'externs' which holds extern symbols,
8666         pic16emitRegularMap: is modified to properly handle relocatable
8667          symbols under the new scheme,
8668         pic16createInterruptVect: is modified
8669         pic16printPublics: is modified to emit 'global' assembler directives,
8670         added pic16_printExterns to print extern symbols,
8671         pic16glue: initializes stack/frame pointer in the beginning of
8672         the assembly output. Temporary hack, will be corrected later,
8673         because gplink yet does not support stack and SDCC does not
8674         yet support a type of crt0.o object to create the final binary.
8675
8676         * Removed many lines that contain 8051 legacy code.
8677         * The code is finally placed under a 'code' directive.
8678         * Added port specific options.
8679
8680         * _process_pragma: simplified since now we do not need *special*
8681         include file to define SFR registers. But a separate header
8682         will be needed. This will be developed later.
8683         * _pic16_parseOptions: added, parses port specific options:
8684         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
8685         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
8686         --preplace-udata-with=
8687
8688         * _pic16_setDefaultOptions: modified to initialize section names,
8689         but hack is temporarly out of order since it needs improvement.
8690         * _pic16_genAssemblerPreamble: configuration words are emitted by
8691         their address instead of their name. This part is incomplete and
8692         supports only the 18Fxx2 devices. Other devices will emit an error
8693         during assembly since they do not contain the same set of config
8694         registers
8695         * _pic16_genIVT: is modified,
8696
8697         * pcode.c: added definitions for some hardware registers that are needed
8698         for stack support
8699         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
8700         All PCI entries are updated. Now LFSR is supported.
8701         * Removed pic16_pciTRIS is mentioned by mdubuc in source
8702         * added pic16_newpCodeOpLit2 to support instructions with
8703         two literal arguments
8704         * pic16_pCode2str: corrected code that emits assembler instructions
8705         with two literal operands and those that have an access bit modifier
8706         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
8707         this fixes a bug which caused some labels to be lost, when an
8708         assembler directive was added, i.e. banksel,
8709         * pic16_FixRegisterBanking: improved logic that causes the insertion
8710         of bank switching,
8711         * InlineFunction: functions that are called once, are not any more
8712         inlined. This can be a port option in the future,
8713
8714         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
8715
8716         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
8717         hold the corresponding uninitialized symbols,
8718         * pic16_allocProcessorRegister: registers have explicit marked the
8719         accessBank field,
8720         * pic16_allocInternalRegister: registers are explicit marked as
8721         not used,
8722         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
8723         processing list, so bit registers were lost,
8724         *
8725
8726         * ralloc.h: added field 'accessBank' and original symbol operand
8727         in register definition,
8728         * removed the field isMapped from register definition,
8729
8730         ** Several functions have been removed from various sources:
8731         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
8732         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
8733         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
8734         pic16_assignRelocatableRegisters
8735
8736         ** others have been introduced:
8737         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
8738         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
8739
8740 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
8741
8742         * support/scripts/inc2h.pl: changed definition of BIT_AT
8743         to emit 'sbit at' instead of 'bit at'. This was a request.
8744
8745         PIC16 port related preliminary changes:
8746         * gen.c: prefixed function popRegFromString with
8747         pic16_ and all references to it corrected
8748         * pcode.c: all pic16_pc_* hardware registers prefixed
8749         with underscore (_),
8750         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
8751         * ralloc.c: newReg(): when register is REG_SFR then
8752         set address to rIdx,
8753         pic16_allocProcessorRegister(): marks register wasUsed=0
8754         pic16_writeUsedRegs(): added a call to assign processor
8755         registers via pic16_assignFixedRegisters
8756
8757 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8758
8759         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
8760         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
8761         variables in unused register banks.  Also the SSEG is placed
8762         wherever there is enough space for it, and IDATA can be anywhere
8763         in internal RAM.  For now compile using -Wl-Y[stack_size].
8764         The mem file is different for this option as well, since it
8765         makes no sense of talking about DSEG lenght.
8766
8767 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
8768
8769         * src/SDCClrange.c: fixed bug 869095 that caused segfault
8770         in certain cases, e.g. when ROM assignment, patch provided
8771         from Albert den Haan.
8772
8773 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
8774
8775         Many signedness and type propagation fixes:
8776         * src/SDCCicode.c: made geniCodeCast() static
8777         replaced SPEC_ by IS_ (cosmetic)
8778         (operandOperation): fixed div and mod operation
8779         (usualBinaryConversions): added support for promotion of char
8780         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
8781         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
8782         (geniCodeAdd): an array index will stay unsigned, even if promoted
8783         from char to int
8784         (geniCodeArray): ditto
8785         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
8786         * src/SDCCsymt.c (computeType): added more support for char;
8787         promotion of char is selectable by promoteCharToInt, fixed signedness
8788         for all cases
8789         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8790         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8791         * src/SDCCval (val*): replaced signedness calculation by
8792         computeType()
8793         rearranged if-branches (cosmetic)
8794         (valShift): added warning W_SHIFT_CHANGED
8795         (valCompare): fixed problem with different types
8796         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
8797         * support/regression/tests/literalop.c: added many cases
8798         * support/regression/tests/ast_constant_folding.c: changed finally to
8799         'unsigned int'
8800         * .version: new year, new version: 2.3.7
8801         * src/SDCCmain.c (main): applied patch #866468
8802         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
8803         provided by Scott Bronson
8804         * doc/sdccman.lyx: updated documentation for sdcdb
8805         updated and added chapter tips
8806
8807 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8808
8809         * src/SDCCsymt.h: missing from yesterday's commits
8810
8811 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8812
8813         * src/SDCC.y (struct_or_union_specifier),
8814         * support/Util/SDCCerr.c,
8815         * support/Util/SDCCerr.h: verify that struct & union tags are used
8816         as declared.
8817
8818 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8819
8820         * src/SDCCglobl.h: missing from yesterday's commits
8821
8822 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8823
8824         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
8825         sft_attributes, struct_declaration, parameter_declaration,
8826         type_name, start_block, declaration_list),
8827         * src/SDCC.lex (check_type): support redefinition of typedef names
8828
8829 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8830
8831         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
8832         aligned xdata arrays. Erik helped me with the if clause.
8833
8834 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8835
8836         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
8837         warning
8838
8839 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8840
8841         * src/SDCCast.h,
8842         * src/SDCCast.c (newAst_),
8843         * src/SDCCicode.h,
8844         * src/SDCCicode.c (ast2iCode, newiCode),
8845         * src/SDCCglobl.h,
8846         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
8847         expr, statement, expression_statement, selection_statement,
8848         iteration_statement, expr_opt, jump_statement): foundation for tracking
8849         sequence points
8850         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
8851         point code too)
8852
8853 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8854
8855         * support/Util/SDCCerr.c,
8856         * src/SDCCast.h,
8857         * src/SDCCast.c (createCase, createDefault, decorateType),
8858         * src/SDCClabel.c (labelUnreach),
8859         * src/SDCC.y (labeled_statement, jump_statement): More improvements
8860         to error messages.
8861         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
8862         (with thanks to Stas Sergeev)
8863         * device/include/time.h,
8864         * device/lib/time.c (CheckTime): suppress unreachable code warning
8865
8866 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8867
8868         * src/SDCCast.c (createIvalCharPtr),
8869         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
8870         bug #753752)
8871         * support/regression/tests/nullstring.c: tests for these two bugs
8872
8873 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8874
8875         * support/Util/SDCCerr.h,
8876         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
8877         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
8878         about storage class and 'at' used inside struct or union
8879         * src/SDCCBBlock.c (iCodeFromeBBlock),
8880         * src/SDCCcse.c (ifxOptimize),
8881         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
8882         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
8883         printIval, emitStaticSeg, emitOverlay),
8884         * src/SDCClabel.c (deleteIfx),
8885         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
8886         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
8887         gatherAutoInit, processParms),
8888         * support/Util/SDCCerr.h,
8889         * support/Util/SDCCerr.c (werrorfl): Support for better error location
8890         reporting for post-parse errors.
8891
8892 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8893
8894         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
8895         implicit casts via union; they don't work on big endian systems
8896         (possible fix for bug #861138)
8897
8898 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8899
8900         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
8901         * src/mcs51/main.c: fixed the fix for bug #737001
8902
8903 2003-12-15  Borut Razem <borut.razem AT siol.net>
8904
8905         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
8906
8907 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8908
8909         * support/makebin/makebin.c: put output in binary mode
8910
8911 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8912
8913         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
8914         xdata and data memory on startup. Set the environment variable
8915         SDCC_NOGENRAMCLEAR to disable this.
8916         * src/mcs51/peephole.def,
8917         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
8918         (allows non-interrupt and interrupt code to safely compete for a resource
8919         without the non-interrupt code having to disable interrupts)
8920
8921 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8922
8923         * src/SDCCicode.c (geniCodeAdd),
8924         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
8925         with valFromType if type might be a pointer and host is big endian).
8926         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
8927         types, not just integer types.
8928         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
8929         multiply defined with mismatching "at" address.
8930
8931 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8932
8933         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
8934         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
8935         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
8936         with embedded nulls (fixed bug #753752)
8937
8938 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8939
8940         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
8941         Apparently this did not see much testing (endless loop)
8942
8943 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8944
8945         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
8946
8947 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8948
8949         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
8950         gracefully handle NULL memmap pointers
8951
8952 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8953
8954         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
8955         instead of deleting the iCode when an operand is volatile
8956         * src/z80/gen.c (genDummyRead),
8957         * src/mcs51/gen.c (genDummyRead),
8958         * src/ds390/gen.c (genDummyRead),
8959         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
8960         not just IC_RIGHT
8961         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
8962         * src/SDCC.y: fixed bug #850420
8963
8964 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8965
8966         Applied z80 i/o port patch from Peter Townson and fixed some operators
8967         to better handle operands in A register.
8968         * device/include/z180.h
8969         * src/SDCC.y
8970         * src/SDCCglue.c
8971         * src/z80/gen.c
8972         * src/z80/gen.h
8973         * src/z80/main.c
8974         * src/z80/peeph-z80.def
8975         * src/z80/peeph.def
8976         * src/z80/z80.h
8977
8978 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8979
8980         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
8981
8982 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8983
8984         * device/lib/hc08/_mullong.c: Removed extra #endif
8985
8986 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8987
8988         * sim/ucsim/hc08.src/inst.cc,
8989         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
8990         carries from x to h
8991         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
8992         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
8993         * device/include/stdarg.h: fixed varargs for hc08
8994         * device/lib/Makefile.in,
8995         * device/lib/hc08/Makefile,
8996         * device/lib/hc08/_mulint.c,
8997         * device/lib/hc08/_mullong.c: fixed some endian problems
8998
8999 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9000
9001         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
9002         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
9003         * device/lib/_gptrget.c,
9004         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
9005
9006 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9007
9008         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
9009         * src/SDCCast.c (astErrors): fixed bug #846007
9010         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
9011
9012 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9013
9014         * src/SDCCast.c (decorateType): disabled a transformation I added in
9015         revision 1.188 (access to fields of a structure at an absolute address);
9016         it breaks with bitfields, extern declarations, and gcse analysis.
9017         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
9018         could be assigned through a pointer, so don't complain.
9019         * src/SDCCast.c (astErrors),
9020         * src/SDCCast.h,
9021         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
9022
9023 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
9024
9025         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
9026         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
9027         output of __config directives, since gpasm now supports them
9028         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
9029         pre-processor macro, i.e. -DMCU=p18f452
9030         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
9031         and modified to handle 'cast' icode similarly to '=' icode
9032         * src/pic16/device.h (typedef struct PIC_device): added field
9033         'extMIface' to indicate that chip has external memory interface
9034         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
9035         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
9036         18F8720
9037
9038 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9039
9040         * src/SDCC.y (pointer): fixed bug #846006
9041         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
9042         * src/SDCCast.c (decorateType): fixed bug #846009
9043         * src/ds390/peeph.def,
9044         * src/ds390/gen.c (genAnd, genOr),
9045         * src/mcs51/peeph.def,
9046         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
9047
9048 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9049
9050         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
9051         * src/SDCCdflow.c
9052         * src/SDCCcse.c
9053         * src/SDCCcse.h
9054         * src/SDCCBBlock.h
9055         * src/SDCCBBlock.c
9056
9057 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
9058
9059         fixed bug #845089
9060         * src/SDCCbitv.h,
9061         * src/SDCCbitv.c: added function to free a bitvector
9062         * src/SDCClrange.h,
9063         * src/SDCClrange.c: added function to recompute the liveranges
9064         * src/avr/ralloc.c,
9065         * src/ds390/ralloc.c,
9066         * src/hc08/ralloc.c,
9067         * src/mcs51/ralloc.c,
9068         * src/pic/ralloc.c,
9069         * src/pic16/ralloc.c,
9070         * src/xa51/ralloc.c,
9071         * src/z80/ralloc.c: recompute the liveranges after register packing
9072
9073 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
9074
9075         * src/SDCCloop.c (newInduction): fixed bug #845630
9076
9077 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9078
9079         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
9080         inadvertantly left behind from my 2003-11-12 change
9081
9082 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9083
9084         Updated headers I neglected to commit yesterday.
9085         * src/SDCClrange.h,
9086         * src/SDCCicode.h
9087
9088 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9089
9090         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
9091         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
9092         * src/SDCCopt.c (eBBlockFromiCode),
9093         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
9094         the creation of the key hash table from the sequencing so it can be used
9095         earlier (for some GCSE bug fixes still pending)
9096
9097 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9098
9099         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
9100         * support/regression/tests/addsub.c: testing genPlus shortcut
9101
9102 2003-11-15  Borut Razem <borut.razem AT siol.net>
9103
9104         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
9105
9106 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9107
9108         * src/SDCCcse.c (cseBBlock): fixed bug #527779
9109         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
9110         ordering is immaterial.
9111         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
9112
9113 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9114
9115         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
9116         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
9117         (SIGSEV) of bug #840381
9118         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
9119         unlink new file before rename if new and old filenames are the same)
9120
9121 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9122
9123         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
9124         uninitialized variables) for the mcs51. Set environment variable
9125         SDCC_GENRAMCLEAR to test.
9126         xdata initialization slightly shorter
9127
9128 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9129
9130         * src/SDCCsymt.h,
9131         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
9132         #838241 & 780691 (basicly the same bug)
9133         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
9134         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
9135
9136 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
9137
9138         * src/SDCCmain.c (linkEdit): "fix" #834252
9139
9140 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9141
9142         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
9143         * src/SDCCast.h,
9144         * src/SDCC.y: fixed bug #819403
9145
9146 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9147
9148         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
9149         the reentrant attribute.
9150         * src/hc08/gen.c (genPackBits): added missing stack readjustment
9151         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
9152         simulation
9153         * src/SDCCast.c (decorateType): fixed bug with storage class not being
9154         updated during pointer dereference; f.e. ~(((char *)1)*) was being
9155         erroneously reduced to a literal.
9156         * src/hc08/ralloc.c (packRegisters, rematStr),
9157         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
9158         some cases
9159
9160 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9161
9162         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
9163         * doc/sdccman.lyx: changed from 'article' to 'book'
9164         * doc/Makefile: readded test_suite_spec and cdbfileformat
9165
9166 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
9167
9168         * device/include/stdlib.h: include malloc.h to comply with ANSI
9169         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
9170
9171 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9172
9173         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
9174         * doc/clean.mk: also remove *.out files
9175         * doc/sdccman.lyx: some additions, larger top/bottom margins
9176
9177 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9178
9179         * src/SDCC.y: fixed bug #837365
9180         * support/regression/tests/bitopcse.c
9181         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
9182         a symbol (might be valop instead)
9183         * device/lib/Makefile.in: added errno.c to HC08SOURCES
9184         * device/lib/clean.mk: added hc08 to the cleaning list
9185
9186 2003-11-04  Borut Razem <borut.razem AT siol.net>
9187
9188         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
9189           made 2003-11-04
9190         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9191           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
9192           malloc is declared in standard stdlib.h
9193
9194 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9195
9196         * device/lib/hc08/Makefile: need to clean .rel not .o files
9197         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
9198
9199 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9200
9201         * src/port.h,
9202         * src/hc08/main.c,
9203         * src/mcs51/main.c,
9204         * src/ds390/main.c,
9205         * src/z80/main.c,
9206         * src/avr/main.c,
9207         * src/pic/main.c,
9208         * src/pic16/main.c,
9209         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
9210         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
9211         tests (which uses the port's oclsExpense function)
9212         * src/SDCC.y,
9213         * src/SDCCast.c,
9214         * src/SDCCicode.c,
9215         * src/hc08/gen.c,
9216         * src/ds390/gen.c,
9217         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
9218
9219 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9220
9221         * src/SDCCcse.c (ifxOptimize),
9222         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
9223         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
9224         deleting the IFX iCode.
9225         * src/hc08/ralloc.c: reduced unneeded slocs
9226         * src/hc08/gen.c: fixed bug in asmopToBoolean
9227
9228 2003-11-04  Borut Razem <borut.razem AT siol.net>
9229
9230         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
9231           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9232           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
9233           transferred to configure
9234
9235 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
9236
9237         Use headers defined in the C[++] standards:
9238         * sim/ucsim/gui.src/serio.src/fileio.cc
9239         * sim/ucsim/gui.src/serio.src/frontend.cc
9240         * sim/ucsim/gui.src/serio.src/main.cc
9241         * sim/ucsim/gui.src/serio.src/posix_signal.cc
9242         * support/Util/NewAlloc.c
9243         * as/hc08/lklibr.c
9244         * as/mcs51/lklibr.c
9245         * as/z80/aslist.c
9246         * as/z80/assym.c
9247
9248 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9249
9250         * Added MSVC projects for hc08 assembler and linker:
9251         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
9252         /as/hc08/link_hc08.dsp
9253
9254 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
9255
9256         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
9257
9258 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
9259
9260         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
9261
9262 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9263
9264         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
9265
9266 2003-10-31  Borut Razem <borut.razem AT siol.net>
9267
9268         * support/cpp2/cpplib.h,
9269           support/cpp2/cpplib.c,
9270           support/cpp2/cpplex.c,
9271           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
9272           to switch _asm block preprocessing on / off. Default is
9273           #pragma preproc_asm +
9274
9275 2003-10-31  Borut Razem <borut.razem AT siol.net>
9276
9277         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
9278           when outputting comment blocks (when executed with -C option) and
9279           _asm (SDCPP specific) blocks
9280
9281 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9282
9283         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
9284
9285 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
9286
9287         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
9288
9289 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
9290
9291         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
9292         * src/SDCCast.c (decorateType): fixed bug #832664
9293
9294 2003-10-31  Borut Razem <borut.razem AT siol.net>
9295
9296         * support/cpp2/cpplex.c: fixed for SDCPP:
9297           comments(when executed with -C option) and _asm blocks
9298           were included even if they where in skipped #if block.
9299           Applied solution from GCC cpp 3.3.2
9300
9301 2003-10-31  Borut Razem <borut.razem AT siol.net>
9302
9303         * src/SDCC.lex: sdcc now understands both formats:
9304           '# <line_number> <file_name>' and
9305           '#line <line_number> <file_name>'
9306         * support/cpp2/cppmain.c: sdcpp now generates the standard
9307           '# <line_number> <file_name>' instead of former
9308           '#line <line_number> <file_name>'
9309
9310 2003-10-30  Borut Razem <borut.razem AT siol.net>
9311
9312         * support/cpp2/cpphash.h,
9313         * support/cpp2/cpplib.h
9314         * support/cpp2/cpplex.c,
9315         * support/cpp2/cppmain.c,
9316         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
9317
9318 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9319
9320         Fixed a number of problems revealed by bug #827883.
9321         * src/SDCCloop.c (loopInvariants): Spill location of the
9322         result operand should be recomputed if extracted from
9323         a loop. Also, don't extract assignments of an iTemp
9324         from a literal.
9325         * src/SDCCast.c (isConformingBody): loop reversal should
9326         not occur if the control variable is involved with a
9327         relational operator.
9328
9329 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
9330
9331         * .version: bumped to 2.3.6 to reflect the big improvements
9332         made by Erik and Klaus. Thanks!
9333
9334 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
9335
9336         Replaced the livrange code.
9337         * src/SDCClrange.c: added new LR code
9338         * src/SDCCloop.c,
9339         * src/SDCCBBlock.h: removed remainig parts from old LR code
9340         * src/ds390/ralloc.c,
9341         * src/ds390/gen.c: minor fixes to make it work with new code
9342
9343 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9344
9345         * as/hc08/asm.h,
9346         * as/hc08/lkrloc.c,
9347         * src/hc08/gen.c,
9348         * src/hc08/ralloc.c: Fix various warnings related to the hc08
9349         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
9350         (tweaked fix for bug #818696)
9351
9352 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9353
9354         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
9355
9356 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9357
9358         * src/SDCCmain.c,
9359         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
9360         * src/mcs51/gen.c (gencjneshort),
9361         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
9362         more efficient (per Scott Bronson's suggestion)
9363
9364 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9365
9366         Extended the semantics of the critical keyword to include
9367         individual statements. See RFE #827755 and #799831
9368         * src/SDCC.y
9369         * src/SDCCicode.c
9370         * src/SDCCopt.c
9371         * src/SDCCast.c
9372         * support/Util/SDCCerr.c
9373         * support/Util/SDCCerr.h
9374         * src/mcs51/gen.c
9375         * src/ds390/gen.c
9376         * src/hc08/gen.c
9377
9378 2003-10-19  Borut Razem <borut.razem AT siol.net>
9379
9380         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
9381
9382 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9383
9384         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
9385         Fixed bug #818696
9386         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
9387         and predecrement operand is displayed
9388
9389 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9390
9391         * src/SDCCval.c (valMinus): fixed bug #826041
9392
9393 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9394
9395         Some hc08 related updates that I missed earlier
9396         * sim/ucsim/stypes.h
9397         * support/regression/ports/hc08/spec.mk
9398
9399 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9400
9401         New target "hc08" for the Motorola 68hc08 family of micros
9402
9403         * configure
9404         * configure.in
9405         * Makefile
9406         * src/hc08/*
9407         * src/SDCCmain.c
9408         * src/port.h
9409         * sim/ucsim/hc08.src/*
9410         * sim/ucsim/configure.in
9411         * src/ucsim/configure
9412         * sim/ucsim/packages_in.mk
9413         * as/hc08/*
9414         * as/Makefile
9415         * device/include/mc68hc908qy.h
9416         * device/lib/hc08/*
9417         * device/lib/Makefile.in
9418         * support/regression/ports/hc08/*
9419         * support/regression/Makefile
9420
9421 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9422
9423         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
9424         regression test
9425         * src/ds390/gen.c (genCast): fixed bug #821957
9426
9427 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9428
9429         * device/lib/logf.c: "fixed" overlay bug
9430         * support/regression/ports/host/spec.mk: added m library
9431         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
9432         * support/regression/tests/float_trans: added (for Eric)
9433
9434 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
9435
9436         * src/mcs51/gen.c (genCpl): fixed bug
9437         http://sf.net/mailarchive/message.php?msg_id=6263915
9438
9439 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
9440
9441         * src/SDCCast.c (decorateType): added extended constant folding
9442         * src/SDCCsymt.c (computeType): cleanup
9443         * src/SDCCval.c (valShift): minor optimization
9444         * support/regression/tests/ast_constant_folding.c: added
9445
9446 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9447
9448         * src/SDCCmain.c: removed some unintended changes
9449
9450 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9451
9452         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
9453         * src/z80/gen.c: fixed part of bug #817589
9454         * src/SDCCsymt.c (checkFunction): fixed bug #817895
9455
9456 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
9457
9458         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
9459         * src/SDCCcflow.c
9460         * src/SDCCcse.c
9461         * src/SDCCdflow.c
9462         * src/SDCClabel.c
9463         * src/SDCClrange.c
9464         * src/SDCCmem.c
9465         * src/SDCCopt.c
9466         * src/SDCCpeeph.c
9467         * src/SDCCset.c
9468         * src/avr/ralloc.c
9469         * src/ds390/ralloc.c
9470         * src/izt/ralloc.c
9471         * src/mcs51/ralloc.c
9472         * src/pic/ralloc.c
9473         * src/pic16/ralloc.c
9474         * src/xa51/ralloc.c
9475         * src/z80/ralloc.c
9476         * src/z80/gen.c: removed unused label "release:"
9477
9478 2003-10-06  Borut Razem <borut.razem AT siol.net>
9479
9480         * src/SDCC.lex: removed definition of unused variables
9481           save_optimize and save_options
9482
9483 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
9484
9485         * clean.mk: removed '=' in "-maxdepth=1"
9486         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
9487         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
9488
9489 2003-10-06  Borut Razem <borut.razem AT siol.net>
9490
9491         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
9492           my_unput() replaced by unput()
9493
9494 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
9495
9496         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
9497         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
9498         type-punned pointer will break strict-aliasing rules"
9499         Old LR behaviour is again default; Klaus' LR can be choosen by
9500         defining the environment variable LRKLAUS
9501         * src/SDCCBBlock.h
9502         * src/SDCCloop.c
9503         * src/SDCClrange.c
9504         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
9505         * clean.mk: fixed removal of files in bin/CVS/
9506         * device/lib/clean.mk: fixed removal of directories small and large
9507         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
9508         * src/SDCCicode.c,
9509         * src/SDCCval.c: removed superflous test for pedantic
9510
9511 2003-10-05  Borut Razem <borut.razem AT siol.net>
9512
9513         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
9514           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
9515           message "unmatched #pragma SAVE and #pragma RESTORE"
9516
9517 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9518
9519         * doc/sdccman.lyx: various additions and updates (interrupts, inline
9520           assembly, critical functions, atomic, nojtbound)
9521
9522 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
9523
9524         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
9525         * src/SDCCBBlock.h
9526         * src/SDCCloop.c
9527         * src/SDCCloop.h
9528         * src/SDCClrange.c
9529
9530 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9531
9532         * src/z80/gen.h,
9533         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9534         * src/mcs51/gen.h
9535         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9536         * src/ds390/gen.h
9537         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9538         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
9539         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
9540
9541 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9542
9543         * src/z80/gen.c (genRet): fixed bug #524753
9544         * src/z80/gen.c (genCast): fixed internal error on cast from
9545         pointer to long
9546         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
9547         fix for bug #477835 to the z80
9548         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
9549         for tracking iCodes in the peephole optimizer for z80
9550
9551 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9552
9553         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
9554         the other part of bug #814548
9555         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
9556
9557 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
9558
9559         * src/SDCCcse.c: fixed part of bug #814548
9560
9561 2003-09-28  Borut Razem <borut.razem AT siol.net>
9562
9563         * src/asm.c: rewrite of printILine() to use temporary file instead
9564           a pipe
9565         * src/xa51/main.c: commented out declaration of int rewinds
9566
9567 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9568
9569         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
9570
9571 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9572
9573         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
9574         * src/asm.c (printILine): Fixed bug #811015
9575
9576 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9577
9578         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
9579         freeing.
9580
9581 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9582
9583         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
9584         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
9585         to correctly handle general case of AOP_PAIRPTR
9586         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
9587
9588 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9589
9590         * src/mcs51/ralloc.c (fillGaps),
9591         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
9592         register positioning bug)
9593
9594 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
9595
9596         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
9597
9598 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9599
9600         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
9601         genCodePointerGet, genGenPointerGet, genFarPointerSet,
9602         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
9603         (ralloc doesn't intentionally do this now, but perhaps later)
9604         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
9605         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
9606         register positioning bugs (Fixed bug #762602 and #795325)
9607         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
9608         (Fixed bug #808779)
9609         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
9610         lines that --i-code-in-asm generates
9611
9612 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9613
9614         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
9615         trying to fclose a FILE* that was already closed.
9616
9617 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9618
9619         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
9620         of const struct should be treated as if const themselves)
9621
9622 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
9623
9624         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
9625
9626 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9627
9628         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
9629         Unix (/n) and DOS (/r/n) line terminations.
9630
9631 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9632
9633         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
9634         bug #613775
9635
9636 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9637
9638         * src/mcs51/gen.c (genFunction, genEndFunction),
9639         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
9640         and restore of EA so that stack offsets to parameters are
9641         correct when using both critical and reentrant/stack-auto.
9642         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
9643         size (can be triggered in error if sloc is shared between
9644         different sized objects)
9645         * device/include/float.h: fixed macros to explicitly use
9646         unsigned long where needed
9647
9648 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
9649
9650         Feature req. 799831: added code to allow nesting of critical functions
9651         * src/mcs51/gen.c (genFunction, genEndFunction)
9652         * src/ds390/gen.c (genFunction, genEndFunction)
9653
9654 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9655
9656         * src/SDCCsymt.c (sclsFromPtr),
9657         * src/SDCCsymt.h,
9658         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
9659         support for standard C idiom of memory mapped variables; for
9660         example, *((xdata int*)0x1234) = 1 is now internally equivalent
9661         to xdata int at 0x1234 tempvar = 1.
9662         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
9663         provided by Akiya ISHIDA
9664
9665 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
9666
9667         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
9668         * src/SDCCval.c (constVal): added reduction from int to char
9669         * src/SDCCval.c (valMult, valDiv): fixed sign handling
9670         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
9671         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
9672         to ignore the sign
9673         * support/regression/tests/shifts.c: fixed
9674
9675 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9676
9677         * src/z80/gen.c (genXor): Fixed bug #805445
9678
9679 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9680
9681         Fixed bug #621531 (const & volatile confusion in the type chain).
9682         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
9683         refer to the const or volatile state of the pointer itself.
9684
9685         * src/SDCCast.c
9686         * src/SDCCglue.c
9687         * src/SDCCicode.c
9688         * src/SDCCsymt.c
9689         * src/SDCCval.c
9690         * src/SDCC.y
9691         * src/SDCCsymt.h
9692         * src/pic/gen.c
9693         * src/pic/ralloc.c
9694         * src/pic16/gen.c
9695         * src/pic16/ralloc.c
9696         * support/regression/tests/const.c
9697
9698 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9699
9700         When checking for duplicated modules, use absolute paths
9701         instead of relative paths.  Files changed:
9702
9703         * as/mcs51/lklib.c
9704         * link/z80/lklib.c
9705
9706 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9707
9708         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
9709
9710 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9711
9712         * device/include/string.h: added size_t typedef, changed
9713         prototypes to use size_t, eliminated separate reentrant and
9714         non-reentrant declarations, added _memmove declaration
9715         * device/lib/_memcpy.c: changed to use size_t instead of int,
9716         changed /4 to >>2 to avoid division library call
9717         * device/lib/_memcmp.c,
9718         * device/lib/_memset.c,
9719         * device/lib/_strncat.c,
9720         * device/lib/_strncpy.c,
9721         * device/lib/_strncmp.c: changed to use size_t instead of int
9722         * device/lib/_memmove.c: new file (fixed bug #772294)
9723         * device/lib/Makefile.in: added _memmove.c
9724         * device/lib/z80/asm_strings.s: fixed bug #772290
9725         * support/regression/tests/bitfields.c: attempt to fix host assertion
9726         failure on amd64-unknown-linux2.2
9727
9728 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9729
9730         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
9731         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
9732         * as/z80/asmain.c (main): fixed bug #801766
9733
9734 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
9735
9736         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
9737         compilers
9738
9739 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9740
9741         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
9742         reported in bug #800609
9743
9744 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
9745
9746         * Top header beautifications in src/pic16 directory:
9747           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
9748           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
9749           pcoderegs.h, ralloc.c, ralloc.h
9750         * main.c: added top header and GPL license notice
9751         * pcode.c: fixed the if-conditional warning
9752
9753 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
9754
9755         * device/lib/_mullong.c: replaced int by short for gcc
9756
9757 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9758
9759         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
9760         and JUMPTABLE iCodes properly now (worked by accident before)
9761         * src/mcs51/gen.c (leftRightUseAcc),
9762         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
9763         iCode properly now. Use getSize instead of nRegs since a & b
9764         aren't part of the nRegs tally.
9765
9766 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
9767
9768         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
9769         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
9770           before instructions that use the _STATUS register
9771
9772 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
9773
9774         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
9775         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
9776         fetching of the pointer
9777         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
9778         copied from genNearPointerSet()
9779         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
9780         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
9781         If they pop r0/r1 they must be called in the opposite order than aopOp().
9782         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
9783         (resp. --stack-auto), prepared for --xstack
9784
9785 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9786
9787         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
9788
9789 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9790
9791         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
9792         these ports have their own __sdcc_external_start()
9793
9794 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
9795
9796         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9797         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
9798         type for bits was changed. It resulted in bit variables becoming
9799         global, which is not permitted in PIC 14 assembly output.
9800
9801 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9802
9803         * doc/sdccman.lyx: various additions and updates. Rearranged sections
9804
9805 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9806
9807         Z80 and MCS51 linkers complaint if a public symbol is defined
9808         in more than one library module:
9809
9810         * as/mcs51/lklib.c
9811         * link/z80/lklib.c
9812         * as/mcs51/Makefile.in
9813
9814 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9815
9816         A few small changes that speed up the peephole optimizer.
9817
9818         * src/SDCCpeeph.c
9819
9820 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9821
9822         Try to make the peephole optimizer smarter by maintaining
9823         an association between the assembly source code and the
9824         iCodes that originated them. Put this information to use
9825         with a new peephole rule condition "notVolatile" so that
9826         the rules can be aggressive yet still safe.
9827
9828         * src/SDCCpeeph.c
9829         * src/SDCCpeeph.h
9830         * src/mcs51/gen.c
9831         * src/mcs51/peeph.def
9832
9833 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9834
9835         Fixed bug #741761
9836
9837         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
9838         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
9839         if the left or right operand symbols have the accuse flag set.
9840
9841 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9842
9843         Changed the type of the result of the ! (NOT) operator to char;
9844         previously it returned the same type as the source. This allows
9845         us to eliminate all the genFloatNot functions (all of its target
9846         implementations were very buggy) since !float can use the same
9847         code as !long now.
9848
9849         * src/SDCCicode.c (ast2iCode): ! returns char
9850         * src/mcs51/gen.c (genNot, genNotFloat),
9851         * src/ds390/gen.c (genNot, genNotFloat),
9852         * src/z80/gen.c (genNot, genNotFloat),
9853         * src/pic/gen.c (genNot, genNotFloat),
9854         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
9855
9856 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
9857
9858         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9859         1. Interrupt would not compile properly. Ensure PCLATH register is saved
9860            during interrupts. Ensure WSAVE is located at a shared bank address.
9861         2. Fixed page selection in some places
9862         3. Fixed BTFSS/C to where necessary use registers directly and not simply
9863            the registers name strings.
9864         4. Fixed "signed / unsigned compare" compiler warnings.
9865         5. The PIC port manages its own allocation of the general purpose
9866            registers, but makes no attempt to reuse them. As a result when
9867            compiling it soon runs out of general purpose registers. Some
9868            additional code was added to the files pcode.c and device.c to walk
9869            through the function call tree and rename the registers so that they
9870            get reused.
9871
9872         * src/pic/device.c
9873         * src/pic/gen.c
9874         * src/pic/glue.c
9875         * src/pic/pcode.c
9876         * src/pic/pcode.h
9877         * src/pic/ralloc.c
9878         * src/pic/ralloc.h
9879         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
9880         genPlus() & genMinus() when the result is the same as left or right
9881
9882 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9883
9884         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
9885
9886 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9887
9888         Made bitfield a distinct type from bit so that bitfields
9889         convert as per ANSI C and bits retain their traditional
9890         boolean style behaviour. Implemented bitfield support in
9891         the z80 port.
9892
9893         * src/SDCCsymt.h,
9894         * src/SDCCsymt.c,
9895         * src/SDCCast.c,
9896         * src/cdbFile.c,
9897         * src/mcs51/gen.c,
9898         * src/ds390/gen.c: bit v bitfield split
9899         * src/z80/gen.c: New support for bitfields
9900         * support/regression/tests/bitfields.c: reenabled z80,
9901         added more tests
9902
9903 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9904
9905         Rules 246.x, 247.x relate to bitfields, the others speed up
9906         access to xdata mapped I/O devices.
9907
9908         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
9909
9910 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9911
9912         Cleaned up genPackBits and genUnpackBits and added two helper
9913         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
9914         for literal assignments in genPackBits (thanks to Frieder for
9915         reminding me).
9916
9917         * src/mcs51/gen.c
9918         * src/ds390/gen.c
9919
9920 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9921
9922         Fixed bug #748310 (pointer to function type mishandled when the
9923         function name is omitted). Also fixed a SIGSEGV when a function
9924         attribute (reentrant, etc) is used on a non-function or on a
9925         function but misplaced before the parameter list.
9926
9927         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
9928         bug #748310
9929         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
9930         * support/Util/SDCCerr.h,
9931         * support/Util/SDCCerr.c: Added func attr misuse error msg
9932
9933 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9934
9935         Fixed bug #787649 by anonymous
9936         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
9937         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
9938
9939 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9940
9941         Fixed numerous bitfield problems.
9942
9943         * src/SDCC.y: More bitfield related error checking
9944         * src/SDCCsymt.h,
9945         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
9946         * support/Util/SDCCerr.h,
9947         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
9948         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9949         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9950         * support/regression/tests/bitfields.c: tests added
9951
9952 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9953
9954         Made the constant following the "interrupt" keyword optional. If
9955         omitted, the function will not automatically be given an entry
9956         in the interrupt vector table (similar to #pragma NOIV, but
9957         less syntacticly kludgy). The interrupt number is also now
9958         range checked. Also fixed a bug in the high order bit example
9959         in the manual.
9960
9961         * src/SDCC.y
9962         * src/SDCCmem.c
9963         * src/SDCCglue.c
9964         * src/SDCCsymt.h
9965         * support/Util/SDCCerr.c
9966         * support/Util/SDCCerr.h
9967         * doc/sdccman.lyx
9968
9969 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9970
9971         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
9972         * src/SDCCicode.c (operandOperation): rewritten some ops
9973         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
9974         * src/SDCCsymt.c (computeType): literals are handled the same way as any
9975         other type
9976         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
9977         be re-activated by defining REDUCE_LITERALS)
9978         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
9979         unsigned, but are signed by default
9980         * src/SDCCval.c (constVal): rearranged
9981         * src/SDCCval.c (valMod): preliminary fix
9982         * src/SDCCval.c (valCastLiteral): use TYPE_* types
9983         * support/regression/literalop.c: added, work in progress
9984
9985 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9986
9987         Generate warnings for useless declarations like "char data;"
9988         that don't do what new users expect.
9989
9990         * src/SDCC.y
9991         * support/Util/SDCCerr.h
9992         * support/Util/SDCCerr.c
9993
9994 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
9995
9996         * src/SDCCval.c (valMult): fix overflow detection of negative int
9997
9998 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9999
10000         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
10001
10002         Changes to support big endian targets:
10003
10004         * src/ports.h
10005         * src/SDCCglue.c
10006         * src/avr/main.c
10007         * src/ds390/main.c
10008         * src/izt/i186.c
10009         * src/mcs51/main.c
10010         * src/pic/main.c
10011         * src/pic16/main.c
10012         * src/xa51/main.c
10013         * src/z80/main.c
10014
10015 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
10016
10017         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
10018         * device/lib/time.c: fixed warning "integer overflow in expression"
10019
10020 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
10021
10022         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
10023         * src/SDCCval.c (constVal): changed default to signed; hex and octal
10024         constants are unsigned; added recognition of "u" flag for unsigned
10025         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
10026         * src/SDCCval.c (valDiv, valMod): fixed signdness
10027         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
10028         signedness of modulo, left and right shift
10029         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
10030         * support/Util/SDCCerr.h: added warning W_INT_OVL
10031         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
10032         * src/SDCCast.c (ast_print): improved output of constants
10033
10034 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10035
10036         Fixed some warnings when building with MSVC:
10037
10038         * as/mcs51/asdata.c
10039         * as/z80/asdata.c
10040         * as/mcs51/asm.h
10041         * as/z80/asm.h
10042         * link/z80/aslink.h
10043         * link/z80/lkdata.c
10044         * link/z80/lkeval.c
10045         * link/z80/lkgb.c
10046         * link/z80/lkihx.c
10047         * link/z80/lks19.c
10048         * link/z80/lksym.c
10049         * support/cpp2/cpplib.c
10050         * src/ds390/gen.c
10051         * src/mcs51/gen.c
10052
10053 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
10054
10055         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
10056
10057 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10058
10059         * support/librarian/clean.mk: Do not remove Makefile.
10060         * support/librarian/Makefile: added.
10061
10062 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10063
10064         Added librarian to MSVC build:
10065         * all.dsp
10066         * sdcc.dsw
10067         * support/librarian/librarian.dsp
10068
10069         'configure' not needed for librarian, removed:
10070         * support/librarian/configure
10071         * support/librarian/configure.in
10072         * support/librarian/config_in.h
10073         * support/librarian/Makefile.in
10074
10075         Hopefully these ones built the librarian and the rest of sdcc properly:
10076         * Makefile
10077         * Makefile.common.in
10078
10079         Messed up 'configure', so revert to previous version:
10080         * configure
10081         * configure.in
10082
10083 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
10084
10085         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
10086         there, while the mantissa of a double is "only" 53 bits wide.
10087
10088 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10089
10090         Adding sdcclib to the build.  MSVC project coming soon.
10091         Files added/changed:
10092
10093         * support/librarian/clean.mk
10094         * support/librarian/configure
10095         * support/librarian/configure.in
10096         * support/librarian/config_in.h
10097         * support/librarian/Makefile.bcc
10098         * support/librarian/Makefile.in
10099         * support/librarian/sdcclib.c
10100         * Makefile.bcc
10101         * Makefile
10102         * Makefile.common.in
10103         * configure
10104         * configure.in
10105
10106 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10107
10108         Linker now complaints if linked modules have conflicting options, for
10109         example, one compiled using --model-large and another one compiled with
10110         --model-small.  The following files were modified:
10111
10112         * as/mcs51/asdata.c
10113         * as/mcs51/aslink.h
10114         * as/mcs51/asm.h
10115         * as/mcs51/asmain.c
10116         * as/mcs51/asout.c
10117         * as/mcs51/i51pst.c
10118         * as/mcs51/lkdata.c
10119         * as/mcs51/lklibr.c
10120         * as/mcs51/lkmain.c
10121         * as/z80/asdata.c
10122         * as/z80/asm.h
10123         * as/z80/asmain.c
10124         * as/z80/asout.c
10125         * as/z80/z80pst.c
10126         * link/z80/aslink.h
10127         * link/z80/lkdata.c
10128         * link/z80/lklibr.c
10129         * link/z80/lkmain.c
10130         * src/SDCCglue.c
10131
10132 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10133
10134         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
10135         as/mcs51/lklibr.c: Generate a warning when a library is not found.
10136
10137 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
10138
10139         * src/z80/mappings.i: fix _mul[us][int,long] entries
10140
10141 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10142
10143         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
10144
10145 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10146
10147         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
10148         * support/regression/tests/bitopcse.c: added
10149         fixed warning:
10150         * src/avr/gen.c:
10151         * src/pic/gen.c:
10152         * src/pic16/gen.c:
10153         * src/z80/gen.c:
10154         * src/xa51/gen.c:
10155
10156 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10157
10158         added support for new library format to z80, gbz80 linkers:
10159         *link/z80/aslink.h
10160         *link/z80/lklex.c
10161         *link/z80/lklib.c
10162         *link/z80/lklist.c
10163
10164 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10165
10166         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
10167         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
10168
10169 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
10170
10171         added DUMMY_READ_VOLATILE:
10172         * src/SDCC.y:
10173         * src/avr/gen.c:
10174         * src/xa51/gen.c:
10175         * src/z80/gen.c:
10176         * src/pic/gen.c:
10177         * src/pic16/gen.c:
10178         * src/mcs51/gen.c:
10179         * src/ds390/gen.c:
10180         * src/SDCCcse.c (algebraicOpts): many improvements
10181         * src/SDCCcse.h: removed algebraicOpts()
10182         * src/SDCCicode.c (picDummyRead): added
10183
10184 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10185
10186         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
10187         "Insufficient space in data memory".
10188
10189 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10190
10191         * src/mcs51/gen.c: fixed bug #771358
10192         * src/z80/gen.c: fixed bug #759087
10193
10194 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
10195
10196         * src/pic16/glue.c: minor cleanup by Vangelis
10197
10198 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10199
10200         * device/include/regc515c.h: fixed #758477
10201         * device/lib/_gptrget.c: saving some cycles in generic pointer get
10202         * device/lib/_gptrput.c: saved a few bytes
10203         * my tab spacing is 8, yours too?)
10204         * device/lib/_ser.c: process RX bytes earlier than TX bytes
10205         * device/lib/serial.c: process RX bytes earlier than TX bytes
10206         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
10207
10208 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10209
10210         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
10211
10212 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10213
10214     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
10215
10216 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
10217
10218         * device/lib/Makefile.in: bad fix, reverted to 1.43
10219
10220 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
10221
10222         * device/lib/Makefile.in: added missing z80 object files
10223
10224 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
10225
10226         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
10227         pic16 progress by Vangelis:
10228         * src/SDCCglobl.h:
10229         * src/SDCCmain.c:
10230         * src/pic/Makefile:
10231         * src/pic:
10232         * pic/Makefile:
10233         * pic16/device.c:
10234         * pic16/device.h:
10235         * pic16/gen.c:
10236         * pic16/gen.h:
10237         * pic16/genarith.c:
10238         * pic16/glue.c:
10239         * pic16/main.c:
10240         * pic16/pcode.c:
10241         * pic16/pcode.h:
10242         * pic16/pcodepeep.c:
10243         * pic16/peeph.def:
10244
10245 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10246
10247     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
10248
10249 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10250
10251     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
10252     added gbz80 build to MSVC project.
10253     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
10254     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
10255     from 8051 stuff and setup so it links using a .lnk file.
10256
10257 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10258
10259     * support/librarian/sdcclib.c: sdcc librarian.
10260     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
10261     with sdcclib.
10262
10263 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10264
10265     * as/mcs51/lkmain.c: properly handle extensions in function afile.
10266
10267 2003-07-02  Borut Razem <borut.razem AT siol.net>
10268
10269         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
10270         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
10271         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
10272         src/xa51/main.c, src/z80/main.c:
10273         virtualization of glue() function: each port has it's own glue function,
10274         which is accessed by do_glue function pointer in PORT.general structure
10275
10276 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
10277
10278         * DS800C400 fun, improved ROM interface and tinibios.
10279
10280 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
10281
10282         * More support for DS80C400. Now includes beginning of interface to ROM.
10283
10284 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
10285
10286         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
10287
10288 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10289
10290         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
10291
10292 2003-06-19  Borut Razem <borut.razem AT siol.net>
10293
10294         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
10295
10296 2003-06-19  Borut Razem <borut.razem AT siol.net>
10297
10298         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
10299         fixed Z80 port - crt0.o: cannot open.
10300
10301 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
10302
10303         * support/Util/MySystem.c (merge_command): revert bad fix
10304
10305 2003-06-18  Borut Razem <borut.razem AT siol.net>
10306
10307         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
10308
10309 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10310
10311         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10312         option --use-stdout sends errors to stdout instead of stderr.
10313
10314 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
10315
10316         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
10317
10318 2003-06-15  Borut Razem <borut.razem AT siol.net>
10319
10320         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
10321         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
10322         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
10323         fixed width array of pointers replaced with sets;
10324         multiple include and lib paths ared transferred to preprocessor and linker
10325         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
10326         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
10327         fixed width array of pointers
10328         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
10329         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
10330         fixupPath(), getPathDifference()
10331         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
10332         fixed width array of pointers
10333
10334 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
10335
10336         * src/pic16/ralloc.c: fix warnings
10337         * src/pic16/pcode.c: fix warning
10338
10339 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
10340
10341          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
10342         know all the details, but essentially this set of changes enable
10343         the pic16 port to generate movff instructions and generate assembler
10344         directives,
10345         * src/SDCCmain.c:
10346         * src/pic16/gen.c:
10347         * src/pic16/glue.c:
10348         * src/pic16/pcode.c:
10349         * src/pic16/device.c:
10350         * src/pic16/main.c:
10351         * src/pic16/pcode.h:
10352         * src/pic16/pcoderegs.c:
10353         * src/pic16/ralloc.c:
10354         * src/pic16/ralloc.h:
10355
10356 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10357
10358         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10359         added option --vc, so sdcc errors and warnings are compatible with
10360         Microsoft Visual Studio.
10361
10362 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10363
10364         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
10365           device/lib/libfloat.lib: added atof function.
10366
10367 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
10368
10369         * doc/sdccman.lyx: updated to Lyx 1.3
10370         * doc/cdbfileformat.lyx: updated to Lyx 1.3
10371         * doc/test_suite_spec.lyx: updated to Lyx 1.3
10372         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
10373
10374 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
10375
10376         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
10377
10378 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10379
10380         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
10381           additions to the "related tools/documentation" section
10382
10383 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
10384
10385         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
10386
10387 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
10388
10389         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
10390         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
10391
10392 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
10393
10394         * doc/sdccman.lyx: fix double dash and other minor things
10395         * doc/Makefile: fix double dash
10396
10397 2003-05-28  Karl Bongers(patches from Martin Helmling)
10398         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
10399           condition and ignore commands.
10400
10401 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10402
10403         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
10404           is in parts still quite out of date, I did changes as far as I felt makes sense
10405           for a non-native english speaker.
10406           Please feel free to add to the manual or to correct my changes.
10407         * doc/Makefile: undid touching the date of intermediate tex files.
10408
10409 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10410
10411         * doc/sdccman.lyx: Manual has an index now
10412
10413 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
10414
10415         Finalize muluint/mulsint and mululong/mulslong merging:
10416         * device/lib/_mulint.c
10417         * device/lib/_mullong.c
10418         * device/lib/gbz80/mul.s
10419         * device/lib/gbz80/stubs.s
10420         * device/lib/z80/mul.s
10421         * device/lib/z80/stubs.s
10422         * src/SDCCsymt.c (initCSupport)
10423
10424 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10425
10426         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
10427         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
10428           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
10429           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
10430           instead of /Zm500.
10431
10432 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10433
10434         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
10435           the regression tests I'm not brave enough to enable 245.b, 245.c
10436         * doc/sdccman.lyx: added latex preamble for hyperref package.
10437           Using pdflatex this will give you a hyperlinked pdf file with
10438           bookmarks. (prepend '%' before /usepackage if this breaks something)
10439
10440 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10441
10442          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
10443
10444 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
10445
10446         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
10447
10448 2003-05-21    <johan AT balder>
10449
10450         * src/SDCCglue.c (printIval): fixed bug #739934
10451
10452 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10453
10454         Applied patch from bug 737905 (renamed yylineo to mylineno):
10455         * src/altlex.c
10456         * src/SDCCast.c
10457         * src/SDCglobl.h
10458         * src/SDCC.lex
10459         * src/SDCCsymt.c
10460         * src/SDCCval.c
10461         * src/pic16/pcode.c: Cleaned warnings
10462         * src/pic16/pcodeflow.c: Cleaned warnings
10463         * src/pic16/pcoderegs.c: Cleaned warnings
10464
10465 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
10466
10467         * src/pic16/pcode.c: Cleaned warnings
10468         * src/pic16/pcodepeep.c: Cleaned warnings
10469         * src/pic16/ralloc.c: Cleaned warnings
10470
10471 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10472
10473         * doc/sdccman.lyx: fixed bug 739745
10474         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
10475
10476 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
10477
10478         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
10479         it can be defined with CFLAGS when running configure
10480         * src/SDCCmain.c: fixed compiling + linking with object files
10481
10482 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
10483
10484         * configure.in: configure for pic16 port,
10485             added --disable-pic16-port
10486         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
10487         * src/SDCCmain.c: linkOptions is changed to set *,
10488             added if/endif conditional macros to remove options help
10489             messages from optionsTable when a port is not configured, added
10490             support for the PIc16 port in the ports table, when executing
10491             the compiler with no port specified on command line, a default
10492             port is selected with the new macro DEFAULT_PORT which is
10493             defined in port.h, in setDefaultOptions() linkOptions is removed
10494             from initialization assignment, since now it is a set,
10495             parseCmdLine uses setParseWithComma for linkOptions, in
10496             linkEdit() linkOptions are accessed with new function indexSet()
10497             which returns the i'th item of a set variable. See SDCCset.c, in
10498             linkEdit() when calling buildCmdLine(), added linkOptions as
10499             last argument. Now users can pass arguments to gplink via the
10500             -Wl option, main() uses pic16glue() to glue up pic16 programs
10501         * src/SDCCpeeph.c: various changes to support pic16
10502         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
10503             return the i'th item of the set
10504         * src/SDCCset.h: added function prototype for indexSet()
10505         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
10506         * src/clean.mk: added pic16 in CLEANALLPORTS variable
10507         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
10508             added macro DEFAULT_PORT
10509         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
10510         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
10511             generated
10512         * src/pic16/glue.c: commented out some error producing lines
10513         * src/pic16/main.c: __config directives are commented out to stop
10514             gpasm complaining and test the linkage with gplink, _linkCmd and
10515             _asmCmd changed to be more gplink and gpasm friendly
10516         * src/pic16/peeph.def: peep rule 3 is commented out, since it
10517             produced an error when parsed, peep rule 12 is added to utilize
10518             movff, but it is commented out since the pCode does not support
10519             yet a command with 2 address arguments
10520
10521 2003-05-18    <johan AT balder>
10522
10523         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10524         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10525 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
10526
10527         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
10528   Added feature to script commands from file.
10529
10530 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
10531
10532         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
10533         * src/SDCCutil.c: include ctype.h for win32
10534
10535 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
10536
10537         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
10538
10539 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
10540
10541         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
10542   Fixed so you can set breakpoints prior to run, run does not stop
10543   on entry now.  Add tbreak.  Other enhancements and fixes for use
10544   with ddd.
10545
10546 2003-05-12  Borut Razem <borut.razem AT siol.net>
10547
10548         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
10549
10550 2003-05-11  Borut Razem <borut.razem AT siol.net>
10551
10552         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
10553         the path of bin directory, so that PATH is the only env. variable, which has to be set
10554         in case of standard installation.
10555         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
10556         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
10557         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
10558
10559 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10560
10561         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
10562         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
10563         temp files are in the port dir; clean the gen/test directory when
10564         generating new test.c
10565         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
10566         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
10567         * support/regression/tests/zeropad.c: added
10568
10569 2003-05-09    <johan AT balder>
10570
10571         * src/SDCCglue.c: fixed bug #597940
10572
10573 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
10574
10575         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10576   cache sfr, optimize next,step, fix off by one sourceline,
10577   support ddd list function.
10578         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
10579
10580 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10581
10582         * support/regression/HTMLgen.py: added compare_s2f()
10583         * support/regression/Makefile: redo 1.27
10584         * support/regression/generate-cases.py: redo 1.5
10585
10586 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
10587
10588         * support/regression/tests/float.c: workaround 33 bit hex constant
10589         * support/regression/tests/simplefloat.c: fix division for host
10590
10591 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
10592
10593         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
10594         that tame's the PIC's over-aggressive optimizer.
10595
10596 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10597
10598          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
10599          support for MSVC.
10600
10601 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
10602
10603         Initial support for DS80C400. "Hello world" runs on TINIm400
10604         (with polled I/O).
10605
10606 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
10607
10608          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10609          * Some notes on ddd usage added in debugger/README
10610          Martin Helmling adding more features and fixes for ddd GUI debugger.
10611          Code added for nexti, stepi, up, down, and other adjustments.
10612
10613 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
10614
10615         * src/pic/pCodepeep.c non-wildcard asmops are now handled
10616         * src/pic/peeph.def Added two rules to optimize carry manipulation
10617         * src/pic/* removed debug printfs
10618
10619 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
10620
10621         * debugger/mcs51/cmd.c: added header newalloc.h
10622
10623 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
10624
10625         * as/Makefile: new EXEEXT
10626         * as/z80/Makefile: remove trailing slash of BUILDIR
10627         * as/z80/clean.mk: new EXEEXT
10628         * Makefile.common.in: add to CFLAGS (and others), don't replace it
10629         * support/cpp2/Makefile.in: new EXEEXT
10630         * src/pic/glue.c (pic14emitRegularMap): fixed warning
10631
10632 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
10633
10634         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
10635         EXEEXT was introduced to fix all related problems with targets
10636         "clean", "install" and "uninstall"; a couple of further flaws
10637         especially with "clean" have been fixed too
10638         * as/mcs51/Makefile.in
10639         * as/mcs51/clean.mk
10640         * as/z80/Makefile
10641         * Makefile
10642         * clean.mk
10643         * debugger/mcs51/Makefile.in
10644         * debugger/mcs51/clean.mk
10645         * link/z80/Makefile
10646         * link/z80/Makefile.in
10647         * link/z80/clean.mk
10648         * link/Makefile
10649         * packihx/Makefile.in
10650         * packihx/clean.mk
10651         * sim/ucsim/Makefile
10652         * sim/ucsim/clean.mk
10653         * sim/ucsim/avr.src/Makefile.in
10654         * sim/ucsim/avr.src/clean.mk
10655         * sim/ucsim/s51.src/Makefile.in
10656         * sim/ucsim/s51.src/clean.mk
10657         * sim/ucsim/xa.src/Makefile.in
10658         * sim/ucsim/xa.src/clean.mk
10659         * sim/ucsim/z80.src/Makefile.in
10660         * sim/ucsim/z80.src/clean.mk
10661         * sim/ucsim/main_in.mk
10662         * sim/ucsim/packages_in.mk
10663         * sim/ucsim/gui.src/Makefile.in
10664         * sim/ucsim/gui.src/serio.src/Makefile.in
10665         * sim/ucsim/gui.src/serio.src/clean.mk
10666         * src/Makefile.in
10667         * src/clean.mk
10668         * support/cpp2/Makefile.in
10669         * support/cpp2/clean.mk
10670         * support/makebin/Makefile
10671         * support/makebin/clean.mk
10672         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
10673         * doc/sdccman.lyx: --program-suffix no longer needed
10674
10675 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
10676
10677          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
10678          Martin Helmling added support for ddd GUI debugger.
10679          Code added to display assembly, set variables, and other commands
10680          to interface to ddd.
10681
10682 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
10683
10684         * as/Makefile: fix target clean
10685         * as/clean.mk: fix target clean
10686         * as/z80/clean.mk: fix target clean
10687
10688 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
10689
10690         * Makefile.common.in: added  AT EXEEXT AT
10691         * configure.in: removed all mingw32 stuff
10692         * configure: rebuilt from configure.in
10693         * doc/sdccman.lyx: updated section "installation"
10694         * support/scripts/sdcc_mingw32: adapted to configure
10695         * support/scripts/sdcc_cygwin_mingw32: added
10696
10697 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
10698
10699         * src/pic Added object file support for the PIC port
10700         * src/pic Applied patch from Craig Franklin (this started the object file support)
10701         * src/regression Updated the PIC regression tests for object files
10702
10703 2003-04-20  Borut Razem <borut.razem AT siol.net>
10704
10705         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
10706           lklex.c: In function `getfid':
10707           lklex.c:203: warning: array subscript has type `char'
10708         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
10709           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
10710         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
10711           stack handling macros
10712
10713 2003-04-19  Borut Razem <borut.razem AT siol.net>
10714
10715         * "handling space characters in file path" task:
10716         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
10717         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
10718         * support/Util/MySystem.h: make it self-sufficient
10719         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
10720           src/z80/main.c, sdcc/as/mcs51/lklex.c:
10721           handling space characters in file path
10722         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
10723           (it will be used by assemblers, which have their own includes, e.g. gpasm)
10724         * support/Util/MySystem.c: handling space characters in executable's path
10725
10726 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
10727
10728         * as/z80/Makefile: fix permanent rebuild of z80
10729         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
10730         * support/regression/tests/bitfields.c: added Johan's bitfields.c
10731
10732 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
10733
10734         * src/SDCCopt.c: add special case optimization to replace modulo by
10735           a power of two with a bitwise AND.
10736
10737 2003-04-18    <johan AT balder>
10738
10739         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
10740
10741 2003-04-17    <johan AT balder>
10742
10743         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
10744         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
10745
10746 2003-04-13  Borut Razem <borut.razem AT siol.net>
10747
10748         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
10749         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
10750           fixed mingw problem in adl_NORMALIZE_PATH
10751
10752 2003-04-12  Borut Razem <borut.razem AT siol.net>
10753
10754         * fixed "#pragma SAVE/RESTORE can not be nested":
10755         * src/SDCC.lex: reworked pragma handling functions
10756         * sdcc/src/SDCCglobl.h: reworked stack handling macros
10757         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
10758
10759 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10760
10761         * src/SDCCutil.c (pathEquivalent): defined but not used
10762         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
10763         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
10764         * configure: rebuilt from configure.in
10765         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10766         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10767         * device/include/Makefile.in: replace sdcc_datadir
10768         * device/lib/Makefile.in: replace sdcc_datadir
10769         * Makefile.common.in: add LDFLAGS from configure
10770         * packihx/Makefile.in: use LDFLAGS
10771         * src/Makefile.in: use LDFLAGS
10772         * support/cpp2/Makefile.in: add LDFLAGS from configure
10773         * support/makebin/Makefile: use LDFLAGS
10774         * .version: bumped version number to 2.3.5
10775
10776 2003-04-12  Borut Razem <borut.razem AT siol.net>
10777
10778         * completed "different paths" task:
10779         * src/SDCCmacro.c: fixed bug in handling quotes
10780         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
10781         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
10782
10783 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10784
10785         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
10786
10787 2003-04-11 kevin Vigor <kevin AT vigor.nu>
10788
10789         * ds390/gen.c ds390/peeph.def: fix bug 706781
10790
10791 2003-04-11  Borut Razem <borut.razem AT siol.net>
10792
10793         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
10794
10795 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
10796
10797         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
10798         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
10799          set - this bit used to not be set...).
10800         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
10801           bad code in PIC Port
10802         * src/regression/and2.c added to test bug 609268
10803         * src/regression/Makefile added and2.c to regression test
10804
10805
10806 2003-04-08    <johan AT CP255758-A>
10807
10808         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
10809         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
10810         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
10811
10812 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
10813
10814         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
10815         fix bug #487815
10816         * support/cpp2/Makefile.in: fix bug #487815
10817         * configure: rebuilt from configure.in
10818         * Makefile.common.in: docdir changed, new path suffixes
10819         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10820         * sdcc_vc_in.h: reflect changes from sdccconf.h
10821         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
10822         * src/SDCCutil.h: remove BINDIR hack
10823         * doc/sdccman.lyx: update new path hierarchy
10824
10825 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10826
10827         * src/SDCCpeeph.c: added okToRemoveSLOC test
10828
10829 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10830
10831         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
10832
10833 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10834
10835         * src/SDCCpeeph.c: added labelIsReturnOnly test
10836         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
10837
10838 2003-04-05    <johan AT balder>
10839
10840         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
10841         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
10842         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
10843         * src/SDCCast.c: fixed a warning
10844         * src/SDCCast.h: fixed a warning
10845         * src/SDCCicode.c (operandFromAst): fixed a warning
10846
10847 2003-04-04    <johan AT balder>
10848
10849         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
10850         * src/SDCCast.c (decorateType): fixed bug #715076
10851         * src/SDCC.y: fixed bug #702907
10852
10853 2003-04-03    <johan AT balder>
10854
10855         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
10856         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
10857         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
10858         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
10859         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
10860
10861 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
10862
10863         * _decdptr.c: fix return values
10864         * _gptrget.c: fix return values
10865         * _gptrgetc.c: fix return values
10866         * _gptrput.c: fix return values
10867         * _mulint.c: fix return values
10868         * as/z80/Makefile: fix 'make -j' problem
10869
10870 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
10871
10872         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
10873         * configure.in: big cleanup, updated to autoconf 2.5x
10874         * configure: rebuilt from configure.in
10875         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10876         * sdcc_vc_in.h: reflect changes from sdccconf.h
10877         * doc/Makefile: fixed a flaw in "make install"
10878
10879 2003-04-02    <johan AT balder>
10880
10881         * src/ds390/gen.c (genCmp): no comments
10882         * src/mcs51/gen.c (genCmp): no comments
10883         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
10884         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
10885
10886 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
10887
10888         * support/regression/generate-cases.py: place generated file in given sub directory
10889         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
10890         * support/regression/Makefile: improvements for 'make -j';
10891         side effect: it's simpler and faster now
10892
10893 2003-03-31  Borut Razem <borut.razem AT siol.net>
10894
10895         * src/z80/main.c: link-{port} and as-{port} defined without path
10896         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
10897
10898 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
10899
10900         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
10901
10902 2003-03-30  Borut Razem <borut.razem AT siol.net>
10903
10904         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
10905           changed type of list parameter to set
10906         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
10907         * src/port.h: changed type of do_assemble() parameter to set
10908         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
10909           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
10910           definition of "cppoutfilename" macro with NULL value in preProcess()
10911         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
10912         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
10913         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
10914           replaced with set *binPathSet
10915         * shash_add() deallocates the item, if allready exsists, before adding the new one
10916         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
10917
10918 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
10919
10920         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
10921           a nested for loop bug in the PIC port
10922         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
10923           for loops
10924
10925 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
10926
10927         * support/Util/dbuf.h: remove C++ stuff to make it portable
10928
10929 2003-03-28  Borut Razem <borut.razem AT siol.net>
10930
10931         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
10932           literal strings in stringLiteral()
10933         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
10934         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
10935           to the project
10936
10937 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
10938
10939         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
10940
10941 2003-03-26    <johan AT balder>
10942
10943         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
10944         * src/ds390/gen.c (saveRegisters): catched symbol abuse
10945         * src/SDCCast.c (decorateType): fixed " -v < 3"
10946
10947 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
10948
10949         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
10950         Added Lenny Story's debug infrastructure changes:
10951         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
10952         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
10953         * src/cdbFile.c: added
10954         * src/SDCCdebug.c: added
10955         * src/SDCCdebug.h: added
10956         * src/SDCCast.c (createFunction)
10957         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
10958         * src/SDCCmain.c (parseCmdLine, main)
10959         * src/SDCCmem.c (redoStackOffsets)
10960         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
10961         * src/SDCCsymt.h
10962         * src/common.h
10963         * src/avr/gen.c (genAVRCode)
10964         * src/ds390/gen.c (gen390Code)
10965         * src/mcs51/gen.c (gen51Code)
10966         * src/pic/gen.c (genpic14Code)
10967         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
10968         * src/xa51/gen.c (genXA51Code)
10969         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
10970
10971 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10972
10973         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
10974         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
10975
10976 2003-03-22    <johan AT balder>
10977
10978         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
10979
10980 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
10981
10982         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
10983         * doc/cdbfileformat.lyx: added, written by Lenny Story
10984         * doc/Makefile: added cdbfileformat.lyx
10985         * doc/clean.mk: added cdbfileformat.lyx
10986
10987 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
10988
10989         * src/mcs51/peeph.def: fix bug #705773
10990
10991 2003-03-20    <johan AT balder>
10992
10993         An sfr/sbit can have an "at #" AND an initializer
10994         * src/SDCCsymt.c (checkSClass):
10995         * src/SDCCmem.c (allocGlobal):
10996         * src/SDCCmem.c (allocLocal):
10997         * src/SDCCast.c (createBlock):
10998
10999 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
11000
11001         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
11002
11003 2003-03-16    <johan AT balder>
11004
11005         Undid the hackup of const and volatile, the problem is much bigger
11006         * src/SDCC.y:1.65
11007         * src/SDCCast.c:1.171
11008         * src/SDCCglue.c:1.138
11009         * src/SDCCicode.c:1.146
11010         * src/SDCCsymt.c:1.150
11011         * src/SDCCval.c:1.65
11012
11013 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
11014
11015         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
11016         * src/ds390/gen.c (genAddrOf): fixed bug #704087
11017
11018 2003-03-13    <johan AT balder>
11019
11020         Hackup const and volatile modifiers in type chains a bit:
11021         * src/SDCC.y:1.63
11022         * src/SDCCast.c:1.169
11023         * src/SDCCglue.c:1.136
11024         * src/SDCCicode.c:1.143
11025         * src/SDCCsymt.c1.146
11026         * src/SDCCsymt.h1.59
11027         * src/SDCCval.c:1.63
11028
11029 2003-03-12    <johan AT balder>
11030
11031         * src/SDCCBBlock.h: more LRH debugging junk
11032         * src/SDCCcflow.h: more LRH debugging junk
11033         * src/SDCCloop.c: more LRH debugging junk
11034         * src/SDCC.y (struct_declaration): fixed bug #697590
11035         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
11036         * src/ds390/gen.c (aopForRemat): fixed bug #700031
11037         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
11038
11039 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11040         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
11041         test function names must now match exactly).
11042         * src/SDCCcse.c: added special case in findCheaperOp to allow
11043         extending a short integer. Makes less awful code for bug 700121 test case.
11044
11045 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11046
11047         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
11048         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
11049
11050 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11051
11052         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
11053         actually called (operandsNotEqual() was called for all
11054         operandsNotEqualX tests).
11055
11056 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11057
11058         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
11059         with shorter literals. Fixes bug 700121.
11060
11061 2003-03-11    <johan AT balder>
11062
11063         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
11064
11065 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
11066
11067         * src/SDCCloop.c (mergeRegions): an evil beast is dead
11068         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
11069
11070 2003-03-10  Borut Razem <borut.razem AT siol.net>
11071
11072         * src/SDCCmain.c: pipe preprocessor's output
11073         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
11074         * sdcc_vc_in.h: define pclose as _pclose for WIN32
11075         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
11076         which closes all pipes in pipeSet set
11077         * src/SDCCset.c: free deleted item in function deleteSetItem()
11078         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
11079         moved from z80 to src subproject
11080         * .version: increased version number to 2.3.4
11081
11082 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
11083
11084         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
11085         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
11086         * support/regression/ports/xa51/spec.mk: fix typo
11087
11088 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
11089
11090         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
11091
11092 2003-03-09  Borut Razem <borut.razem AT siol.net>
11093
11094         * src/SDCCmain.c: pipe preprocessor's output
11095         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
11096         * sdcc_vc_in.h: define pclose as _pclose for WIN32
11097         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
11098         which closes all pipes in pipeSet set
11099         * src/SDCCset.c: free deleted item in function deleteSetItem()
11100         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
11101         moved from z80 to src subproject
11102
11103 2003-03-09  Borut Razem <borut.razem AT siol.net>
11104
11105         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
11106         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
11107         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
11108         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
11109         * src/SDCCglobl.h: unification of WIN32 native definitions
11110
11111 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11112
11113         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
11114
11115 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
11116
11117         * src/configure.in:   check for endianess (even while cross-compiling)
11118         * src/configure:      check for endianess (even while cross-compiling)
11119         * src/configure_in.h: check for endianess (even while cross-compiling)
11120         * src/avr/gen.c:        remove old endianess stuff
11121         * src/mcs51/gen.c:      remove old endianess stuff
11122         * src/ds390/gen.c:      remove old endianess stuff
11123         * src/pic/gen.c:        remove old endianess stuff
11124         * src/pic/genarith.c:   remove old endianess stuff
11125         * src/pic/glue.c:       fix endianess check
11126         * src/pic16/gen.c:      remove old endianess stuff
11127         * src/pic16/genarith.c: remove old endianess stuff
11128         * src/pic16/glue.c:     fix endianess check
11129         * src/xa51/gen.c:       remove old endianess stuff
11130         * src/z80/gen.c:        fix endianess check
11131         * src/SDCCglue.c:       fix endianess check
11132         * src/ds390/peeph.def: fix bug 700036
11133
11134 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
11135
11136         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
11137         * src/configure: find appropriate data-types on host for SDCC's int and long
11138         * src/configure.in: find appropriate data-types on host for SDCC's int and long
11139         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
11140         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
11141
11142 2003-03-07    <johan AT balder>
11143
11144         Just a big NOOP:
11145                 some minor cleanups before the big shot
11146                 OP_DEFS and OP_USES now use Kevin's protection
11147                 new option --nolabelopt
11148
11149         * src/SDCCBBlock.c:
11150         * src/SDCCast.c,:
11151         * src/SDCCcflow.c:
11152         * src/SDCCcse.c:
11153         * src/SDCCicode.c:
11154         * src/SDCCicode.h:
11155         * src/SDCClabel.c:
11156         * src/SDCCloop.c:
11157         * src/SDCCmain.c:
11158         * src/ds390/ralloc.c:
11159         * src/mcs51/ralloc.c:
11160         * src/pic/ralloc.c:
11161         * src/xa51/ralloc.c:
11162         * src/z80/ralloc.c:
11163
11164 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
11165
11166         * src/pic/pcode.c (get_op): fix 64 bit warnings
11167         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
11168         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
11169         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
11170         * support/regression/tests/malloc.c: fix 64 bit warnings
11171
11172 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
11173
11174         * src/mcs51/gen.c (genMinus): fixed bug 696436
11175
11176 2003-03-02  Borut Razem <borut.razem AT siol.net>
11177
11178         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
11179
11180 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
11181
11182         * configure.in: test for mkstemp
11183         * sdccconf_in.h: add HAVE_MKSTEMP
11184
11185 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
11186
11187         * device/include/ctype.h: removed warning while using --stack-auto
11188         * device/include/malloc.h: removed warning while using --stack-auto
11189         * device/include/string.h: removed warning while using --stack-auto
11190
11191 2003-02-23  Borut Razem <borut.razem AT siol.net>
11192
11193         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
11194         because NDEBUG is defined (see man assert)
11195         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
11196
11197 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11198
11199         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
11200         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
11201
11202 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11203
11204         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
11205         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
11206
11207 2003-02-18    <johan AT balder>
11208
11209         * as/mcs51/asmain.c (asmbl): module can start with a digit
11210         * as/z80/asmain.c (asmbl): module can start with a digit
11211
11212 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
11213
11214         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
11215         * src/asm.c: fix pipe() for Mingw32
11216
11217 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
11218
11219         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
11220         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
11221         make -V work again; --c1mode reads now from stdin
11222         * doc/sdccman.lyx: added --c1mode
11223         * support/Util/SDCCerr.c: new messages for c1 mode
11224         * support/Util/SDCCerr.h: new messages for c1 mode
11225         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
11226
11227 2003-02-15    <johan AT balder>
11228
11229         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
11230
11231 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
11232
11233         * doc/sdccman.lyx: Environment variables, -o and other minor things
11234
11235 2003-02-14    <johan AT balder>
11236
11237         * src/xa51/main.c: before anyone really tries to use it :)
11238
11239         * Install doc's in share/sdcc/doc
11240         * removed some obsolete files
11241         * Do a proper make distclean and uninstall
11242         M Makefile.common.in
11243         R sdccbuild.sh
11244         M as/Makefile
11245         M device/include/Makefile.in
11246         M device/lib/Makefile.in
11247         M doc/sdccman.lyx
11248         M link/Makefile
11249         M sim/ucsim/doc/Makefile.in
11250         M src/clean.mk
11251         R src/avr/peeph.rul
11252         R src/xa51/peeph.rul
11253         M support/cpp2/Makefile.in
11254         M support/makebin/Makefile
11255
11256
11257 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
11258
11259         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
11260
11261 2003-02-10  Borut Razem <borut.razem AT siol.net>
11262
11263         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
11264         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
11265         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
11266         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
11267         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
11268         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
11269         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
11270         src/z80/Makefile.bcc: Borland Makefile cleanup
11271         * as/z80/Makefile.bcc: Added Borland Makefile
11272         * support/cpp2/borland.h: Removed
11273
11274 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
11275
11276         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
11277         * src/SDCC.lex: new pragma NOIV
11278         * src/SDCCglobl.h: new pragma NOIV
11279         * src/SDCCmem.c: new pragma NOIV
11280
11281 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11282
11283         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
11284
11285 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11286
11287         * src/SDCCmain.c: signal handling is switched off by --debug
11288         * doc/Makefile: small fix for install; use clean.mk again
11289         * doc/clean.mk: clean *.pdf and *.html too
11290
11291 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
11292
11293         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
11294         * device/lib/printfl.c: fix a ds390 bug by making it portable
11295         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
11296         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
11297         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
11298         * debugger/mcs51/cmd.c: converted multi-line string literals
11299         * sim/ucsim/globals.cc: converted multi-line string literals
11300         * src/SDCCmain.c: introduced signal handler to remove temp files
11301         * doc/Makefile: small tweaks, implement clean
11302         * doc: removed generated files
11303
11304 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11305
11306         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
11307         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
11308         Address Record is not correctly generated for DS390."
11309
11310 2003-02-02  Borut Razem <borut.razem AT siol.net>
11311
11312         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
11313         * as/mcs51/asm.h: fixed compilation with Borland C
11314         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
11315         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
11316         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
11317         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
11318         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
11319         src/z80/Makefile.bcc: delete $(LIB) only if exist
11320         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
11321
11322 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
11323
11324         * device/include/malloc.h: introduced NULL
11325         * device/include/string.h: introduced NULL
11326         * device/include/stdlib.h: introduced NULL
11327         * device/lib/_memcpy.c: removed NULL
11328         * device/lib/_strcat.c: removed NULL
11329         * device/lib/_strchr.c: removed NULL
11330         * device/lib/_strcmp.c: removed NULL
11331         * device/lib/_strcpy.c: removed NULL
11332         * device/lib/_strcspn.c: removed NULL
11333         * device/lib/_strlen.c: removed NULL
11334         * device/lib/_strncat.c: removed NULL
11335         * device/lib/_strncmp.c: removed NULL
11336         * device/lib/_strncpy.c: removed NULL
11337         * device/lib/_strpbrk.c: removed NULL
11338         * device/lib/_strrchr.c: removed NULL
11339         * device/lib/_strspn.c: removed NULL
11340         * device/lib/_strstr.c: removed NULL
11341         * device/lib/_strtok.c: removed NULL
11342         * device/lib/malloc.c: removed NULL, include own header
11343
11344 2003-02-02    <johan AT balder>
11345
11346         * 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
11347         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
11348         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
11349         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
11350         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
11351         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
11352
11353 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11354
11355         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
11356         area 'DATA'"
11357
11358 2003-02-01    <johan AT balder>
11359
11360         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
11361
11362 2003-01-31    <johan AT CP255758-A>
11363
11364         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
11365
11366 2003-01-30    <johan AT balder>
11367
11368         * src/SDCCBBlock.c: automatic bug detection
11369         * src/SDCCicode.c: automatic bug detection
11370
11371 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11372
11373         * src/SDCCglobl.h:   now --xram-size 0 works
11374         * src/SDCCmain.c:    now --xram-size 0 works
11375
11376 2003-01-29    <johan AT balder>
11377
11378         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
11379
11380 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11381
11382         * as/mcs51/aslink.h: Added options --xram-size and --code-size
11383         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
11384         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
11385         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
11386         * src/SDCCglobl.h:   Added options --xram-size and --code-size
11387         * src/SDCCmain.c:    Added options --xram-size and --code-size
11388
11389 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
11390
11391         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
11392         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
11393
11394 2003-01-27    <johan AT balder>
11395
11396         * src/SDCC.y: fixed bug #613764
11397
11398 2003-01-26    <johan AT balder>
11399
11400         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
11401         * src/SDCCsymt.h: fixed bug #673374
11402         * src/SDCCglue.c: fixed bug #661910
11403         * src/SDCCast.c: fixed bug #458099 and 673374
11404
11405 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
11406
11407         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
11408         * as/mcs51/strcmpi.h: added
11409         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
11410         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
11411         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
11412         * as/mcs51/assym.c: strcmpi -> as_strcmpi
11413         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
11414         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
11415         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
11416         * as/mcs51/Makefile.aslink: new module strcmpi
11417         * as/mcs51/Makefile.asx8051: new module strcmpi
11418         * as/mcs51/Makefil.bcc: new module strcmpi
11419         * as/mcs51/Makefile.in: new module strcmpi
11420         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
11421
11422 2003-01-26    <johan AT balder>
11423
11424         * src/SDCCglue.c: reverted back to 1.124
11425         * src/SDCCast.c: reverted back to 1.156
11426         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
11427
11428 2003-01-25    <johan AT balder>
11429
11430         * src/SDCCglue.c: A better fix for bug #661910
11431         * src/SDCCast.c: A better fix for bug #661910
11432         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
11433
11434 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11435
11436         * src/Makefile.in: remove spawn.o
11437         * src/SDCCmain.c: remove spawn.h
11438         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
11439         * src/spawn.c: removed
11440         * src/spawn.h: removed
11441         * support/regression/ports/ds390/spec.mk: link with -r
11442
11443 2003-01-24    <johan AT CP255758-A>
11444
11445         * src/ds390/gen.c (aopOp): fixed bug #667458
11446         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
11447         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
11448         (createIvalCharPtr): an ival doesn't always have a storage class anymore
11449
11450 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11451
11452         * src/mcs51/peeph.def: better assembler identation by Frieder
11453         * src/mcs51/gen.c: better assembler identation by Frieder
11454
11455 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
11456
11457         * as/z80/string.h: removed for gcc 3.2
11458         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
11459         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
11460
11461 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11462
11463         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
11464         * src/SDCCpeeph.c (replaceRule): fix bug #663503
11465         * support/regression/Makefile: separate temp files for ports
11466         * support/regression/generate-cases.py: separate temp files for ports
11467         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11468         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11469
11470 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11471
11472         * moved tinitalk to device/examples/ds390
11473
11474 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
11475
11476         * as/mcs51/lkmem.c: rflag is for DS390
11477         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
11478         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
11479                          (linkEdit): move mem- and map-files the same way as ihx-files
11480         * src/z80/main.c (_setDefaultOptions): removed --generic
11481         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
11482         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
11483         * src/pic/glue.c (picglue): --c1mode works again
11484         * src/pic16/glue.c (pic16glue): --c1mode works again
11485         * src/asm.c (printCLine): fix #660034
11486
11487 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
11488
11489         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
11490         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
11491         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
11492         * as/mcs51/lkmem (summary): better fix for sp problem
11493         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
11494         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
11495         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
11496                                               remove --stack-after-data
11497
11498 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
11499
11500         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
11501         * src/SDCCutil.c (join): ugly bug: missing '\0'
11502         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
11503
11504 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11505
11506         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
11507         * src/port.h: typo
11508         * src/pic/main.c (_asmCmd): gpasm supports -o
11509         * src/z80/main.c: more general macros
11510         * device/lib/Makefile.in: remove intermediate files
11511
11512 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11513
11514         * .version: Bumped version number to 2.3.3
11515         * src/SDCCBBlock.c: new option -o
11516         * src/SDCCglobl.h: new option -o
11517         * src/SDCCglue.c: new option -o
11518         * src/SDCCmain.c: new option -o
11519         * src/asm.c: new option -o
11520         * src/ds390/main.c: new option -o
11521         * src/pic/glue.c: new option -o
11522         * src/pic/pcode.c: new option -o
11523         * src/pic/ralloc.c: new option -o
11524         * src/pic16/glue.c: new option -o
11525         * src/pic16/pcode.c: new option -o
11526         * src/pic16/ralloc.c: new option -o
11527         * src/z80/main.c: new option -o
11528         * device/lib/Makefile.in: use -o
11529         * support/regression/ports/ds390/spec.mk: use -o
11530         * support/regression/ports/gbz80/spec.mk: use -o
11531         * support/regression/ports/mcs51/spec.mk: use -o
11532         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
11533         * support/regression/ports/z80/spec.mk: use -o
11534         * support/regression/ports/ucz80/spec.mk: use -o
11535         * support/regression/ports/xa51/spec.mk: use -o
11536         * support/regression/fwk/lib/timeout.c: fix usage string
11537
11538 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
11539         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
11540
11541 2003-01-07    <johan AT balder>
11542
11543         * src/SDCCast.c (decorateType): fixed bug #600035
11544
11545 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
11546         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
11547         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
11548         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
11549         * src/pic/pcode.c: outcommented unused variable to remove warnings
11550         * src/pic/ralloc.c: outcommented unused variable to remove warnings
11551
11552 2003-01-06    <karl AT turbobit.com>
11553         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
11554    regression tests.
11555
11556 2003-01-06    <johan AT balder>
11557
11558         * src/SDCCicode.c: fixed array add
11559
11560 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
11561         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
11562         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
11563
11564 2003-01-04    <johan AT balder>
11565
11566         * src/SDCCval.c (getNelements): fixed the initialized array of structures
11567
11568 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11569         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
11570
11571 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11572         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
11573         * support/regression/tests/bug-524697.c: fit mem usage into 8032
11574
11575 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11576         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
11577
11578 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
11579         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
11580
11581 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
11582         * src/mcs51/main.c: removed {bindir}{sep} from aslink
11583
11584 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11585
11586     * in /sdcc/as/mcs51/ changed these files in order to create an
11587     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
11588     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
11589     following files to include the previous two files: aslink.dsp,
11590     Makefile.aslink, Makefile.bcc, and Makefile.in.
11591
11592     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
11593     .adb instead of .cdb
11594
11595 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11596
11597         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
11598         value from option --iram-size.
11599
11600 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11601
11602         * /sdcc/as/mcs51/lklist.c: added boundary check before using
11603         dram[] array.
11604
11605 2002-09-18    <wiml AT hhhh.org>
11606
11607         * SDCClrange.h: exposed setFromRange() and setToRange()
11608         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
11609           packRegsForAccUse() (bug 542397)
11610         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
11611           multiple times and emitting the fetch operations more than once
11612           added aopGetUsesAcc() function to allow binary operators to
11613           fetch their operands in the correct order; made genMinus() emit
11614           compact code for X = LITERAL - Y
11615
11616 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11617         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
11618         sprintf() in line 1267.
11619
11620 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11621         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
11622         like ports.
11623
11624 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11625         Changes to aslink (All the changes are marked with 'JCF'):
11626
11627         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
11628         summary().
11629
11630         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
11631         area BSEG.  Also moves, if possible, the DATA area down into the internal
11632         ram so more space is available.
11633
11634         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
11635         sflag.
11636
11637         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
11638         not bytes.  Function summary() which creates a memory usage summary
11639         file with extension .mem.  Reports of overlaping stack and small stack
11640         size.  If the space for the stack is less than 16 bytes aslink trows a
11641         warning.
11642
11643         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
11644         the 8051.  Option 'y' for memory summary output file.
11645
11646         Changes to sdcc (All the changes are marked with 'JCF'):
11647
11648         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
11649
11650         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
11651         overlaying area for it (uses RegBankUsed[4]).
11652
11653         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
11654         bank zero as used by default.  By default aslink locates the stack
11655         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
11656         the creation of the .mem file.  Delegates the allocation of data area
11657         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
11658         the begining of the stack area to aslink.
11659
11660         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
11661         glue() in SDCCglue.c creates an area for it.
11662
11663 2002-09-03  Borut Razem <borut.razem AT siol.net>
11664         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
11665         sdcc/src/pic/glue.c:
11666         introduced atexit() handler for teporay files removal in case of
11667         errors, assertions, ...
11668
11669 2002-08-29  Borut Razem <borut.razem AT siol.net>
11670         * sdcc/support/cpp2/auto-host_vc_in.h:
11671         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
11672         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
11673         Maybe there is a similar problem with BORLANDC? It should be checked!
11674
11675         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
11676         corrected improper use of assert: the assignment to clr variable was done inside the assert.
11677         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
11678         was not executed, and the compiler (cl) launched a warning:
11679         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
11680
11681 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11682         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
11683
11684 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
11685         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
11686
11687         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11688           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
11689           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
11690           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11691           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
11692           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
11693           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
11694         - added Release configuration in VS projects
11695         - review of compiler an linker options
11696         - VC .exe files are generated in bin_vc directory, not to interfere
11697           with binaries generated from other projects (cygwin, mingw, bcc ...)
11698
11699         * sdcc/src/yacc.dsp: added
11700
11701         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
11702         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
11703         and insert the version number definitions from .version
11704
11705         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
11706
11707         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
11708         added - genarate auto-host.h using auto-host_vc_in.h as template
11709
11710         * sdcc/sdcc_vc.h,
11711         removed from CVS, generated automatically
11712
11713 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
11714         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
11715
11716 2002-08-11  Borut Razem <borut.razem AT siol.net>
11717         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
11718
11719 2002-08-10  Borut Razem <borut.razem AT siol.net>
11720         * src/SDCCmain.c (main):
11721         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
11722         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
11723         The consequence was that some temporary files were not removed.
11724
11725         * src/SDCCglue.c:
11726         unification of code in functions tempfilename() and tempfile():
11727         function tempnam() is defined in Visual Studio 6.0 and .NET
11728
11729         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
11730
11731         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11732           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
11733         - removed compiler command line option /WX: Treats all warnings as errors
11734         - update a list of source files, included into the project
11735
11736         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11737           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
11738         changed project type to Generic Project so that can be correcly converted to VS.NET project
11739
11740         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
11741
11742         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
11743
11744         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
11745
11746         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
11747         added return 0 statements after assert() to make compiler happy
11748
11749         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
11750         added newline in the def file to keep MSC compiler satisfied
11751
11752         * sdcc/src/z80/gen.c:
11753         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
11754           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
11755         - solved MSC error in function aopDump()
11756
11757         * sdcc_vc.h: define PREFIX as "\\sdcc"
11758
11759 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
11760         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
11761
11762 2002-06-22  Scott Dattalo <scott AT dattalo.com>
11763         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
11764         - Rewrote the register banking algorithm.
11765         - Added pCode live-range analysis to registers (for now, only non-used and
11766         singly-used registers optimized away)
11767
11768         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
11769
11770         * 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.
11771
11772 2002-05-10  Scott Dattalo <scott AT dattalo.com>
11773         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
11774
11775 2002-04-22  Michael Hope  <michaelh AT vroom>
11776
11777         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
11778
11779         * configure.in (DD_COPT): Added include support required for gbdk.
11780
11781         * .version: Bumped version number just to increase it.
11782
11783         * src/SDCCmain.c: Added -nostdinc to the default options.
11784
11785 2002-04-15  Michael Hope  <michaelh AT vroom>
11786
11787         * device/lib/z80/printf.c (sprintf): Added.
11788
11789         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
11790
11791         * src/z80/peeph.def: Added transpose redundent load rule.
11792
11793         * src/z80/main.c: Added force callee saves for jaune.
11794
11795         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
11796
11797         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
11798
11799 2002-03-28  Johan Knol  <johan AT balder>
11800
11801         * src/SDCCval.c: fixed bug #532436
11802
11803 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11804         * /src/port.h:
11805         Added "char *Processor" field to the port structure.
11806
11807         * /src/SDCCmain.c:
11808         Added -p option. Allows port dependent processor to be specified.
11809
11810         * all ports:
11811         Initialized the new field char *Processor field to NULL in all ports
11812
11813         * /src/pic/*:
11814         Compiler generated registers for interrupt context saving
11815         were not getting allocated.
11816
11817 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
11818
11819         * /src/SDCCast.c:
11820         Fixed left shift. Will promote the left side of a left shift
11821         if a) left shifting more than size of operand or b) when assigned
11822         to something size > size of left side
11823
11824 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11825         * src/pic/*
11826         tons of changes. Register allocation has been
11827         rewritten. Added customization for the various PICs. Flow
11828         analysis is restructured. ...
11829
11830         * src/pic/device.h:
11831         Added
11832
11833         * src/pic/device.c:
11834         Added. device.c is a PIC port hack to accomodate variations
11835         in PIC devices.
11836
11837 2002-03-13  Michael Hope  <michaelh AT vroom>
11838
11839         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
11840
11841 2002-03-04  johanknol  <johanknol AT manik>
11842
11843         * /src/SDCCval.c: fixed
11844
11845         const unsigned char arr[][2] = { { 0, 1 } };
11846         t18.c:1: error: Initializer element is not constant
11847
11848 2002-03-04  bela  <bela AT manik>
11849
11850         * /device/include/mcs51reg.h:
11851         ds89c420 register definition update
11852
11853 2002-03-03    <johan AT FRIJA>
11854
11855         * support/Util/SDCCerr.c: did something, but don't no why anymore
11856
11857         * support/regression/tests/bug-524691.c: made it a little less shy
11858
11859         * src/SDCCast.c (decorateType): fixed bug #524697
11860
11861         * src/SDCCast.c: made some lineno improvements
11862
11863         * src/SDCCval.c (getNelements): changed warning to error
11864
11865         * src/SDCCglue.c (printIvalArray): changed warning to error
11866
11867         * src/SDCCicode.c: fixed a warning for mingw
11868
11869         * src/SDCCast.c (decorateType): fixed the << promotion for ops
11870
11871         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
11872
11873 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
11874
11875         * src/ds390/peeph.def:
11876         Added some more peephole rules
11877
11878         * src/ds390/gen.c: Various fixes & enhancements
11879
11880         * src/SDCClrange.c, src/SDCClrange.h:
11881         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
11882
11883         * src/ds390/ralloc.c:
11884         various fixes & enhancements (ds390) specific
11885
11886         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
11887         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
11888         from rallocs.
11889
11890         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
11891
11892 2002-03-02    <johan AT FRIJA>
11893
11894         * src/SDCCast.c (decorateType): fixed bug #524708
11895
11896         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
11897
11898         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
11899
11900 2002-03-01  Michael Hope  <michaelh AT vroom>
11901
11902         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
11903
11904         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
11905
11906 2002-03-01    <johan AT FRIJA>
11907
11908         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
11909
11910         * src/SDCCast.c (decorateType): fixed bug #524209
11911
11912         * src/SDCCval.c (valNot): fixed bug #524195
11913
11914 2002-02-26    <johan AT balder>
11915
11916         * src/xa51/gen.c: fixed a warning
11917
11918         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
11919
11920         * src/SDCCast.c (decorateType): fixed bug #522534
11921
11922 2002-02-23    <johan AT balder>
11923
11924         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
11925
11926 2002-02-22    <johan AT balder>
11927
11928         * src/SDCCast.c: fixed bug #514865
11929
11930         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
11931
11932 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
11933
11934         * sdcc/src/SDCCloop.c:
11935         Previous fix was not good. basic blocks that have "break" or "return" are
11936         not really partof a loop , but live ranges used in these blocks should
11937         be live thru the entire loop, so set partOfLoop but don't add them to
11938         loop region
11939
11940 2002-02-21    <johan AT FRIJA>
11941
11942         * src/SDCCcse.c: fixed bug #514308
11943
11944 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
11945
11946         * src/SDCCloop.c:
11947         Fixed BUG #519583. If a conditional block ended in a return/break
11948         statement inside a loop, it was not being considered part of the loop.
11949
11950         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
11951
11952 2002-02-10  Karl Bongers <karl AT turbobit.com>
11953
11954         * debugger/*:
11955         Fixed up SDCDB debugger somewhat.  Updated debugger/README
11956         with lots of comments and notes.
11957
11958         * device/examples/test2.c:
11959         Fix bug, "red" variable not being initialized(compiler complained).
11960
11961         * device/examples/Makefile, examples/test3.c:
11962         Add Makefile in device/examples folder, compiles test3.c
11963         for use as a multiple module SDCDB test case.
11964
11965         * sim/ucsim/cmd.src/cmdset.cc:
11966         Took out debug printfs in ucsim "next" command.
11967
11968         * sim/ucsim/xa.src:
11969         Karl and Johan start ucsim XA support.  Most dissassembly working,
11970         about 75% emulation done(plenty of work remaining).
11971
11972         * sim/ucsim/z80.src:
11973         Add Z80 support to ucsim, add test-ucz80 regression test,
11974         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
11975         Notice z80 compiler fails on examples/test3.c/crc code.
11976
11977 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
11978
11979         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
11980         Added support for --parms-in-bank1
11981
11982         * src/ds390/peeph.def:
11983         added a few more peephole optimzations
11984
11985         * src/ds390/main.c:
11986         1) added __builtin_inp & __builtin_outp used to read in data of given length
11987            from a memory mapped port
11988         2) added __builtin_memcmp
11989         3) added __builtin_swapw swap bytes of a short
11990
11991         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
11992         1) handle multiple send & receives from register bank1
11993         2) ralloc can now allocate DPTR1 to some liveRanges
11994
11995         * src/SDCCsymt.c, src/SDCCsymt.h:
11996         changes to handle multiple sends & receives
11997
11998         * src/SDCCptropt.h:
11999         added some pointer arithmetic optimization
12000
12001         * src/SDCCptropt.c:
12002         added some pointer arithmetic optimizations but not stable yet so not
12003         called from anywhere (will get this working shortly)
12004
12005         * src/SDCCopt.c: fixed for multiple sends & receives
12006
12007         * src/SDCCmain.c:
12008         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
12009         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
12010            set preprocessor defines (depending on options)
12011
12012         * src/SDCCicode.c, src/SDCCicode.h:
12013         changes made to handle multiple sends & receives
12014
12015         * src/SDCCglobl.h:
12016         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
12017
12018         * src/SDCCcse.c, src/SDCCcse.h:
12019         added function findbackward def (to be used in upcoming optimization)
12020
12021         * src/SDCCcflow.c, src/SDCCcflow.h:
12022         added function returnAtEnd - to determine if a basic block terminates with
12023         a RETURN iCode
12024
12025         * src/SDCCast.c, src/SDCCast.h:
12026         added option parms-in-bank1
12027
12028         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
12029         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
12030         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
12031         adjusted for --parms-in-bank1 option
12032
12033         * device/include/string.h:
12034         donot redefine "reentrant" keyword
12035
12036         * device/include/ds80c390.h: Added some more SFRs
12037
12038 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
12039
12040         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
12041
12042 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
12043
12044         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
12045
12046 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
12047
12048         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
12049
12050 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
12051
12052         * Added --xram-movc option
12053
12054 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
12055
12056         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
12057
12058 2002-01-11  Johan Knol
12059
12060         * Added math lib of Jesus Calvino-Fraga
12061
12062 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
12063
12064         * src/SDCCmain.c (processFile): fix processing of ../../src.c
12065         * support/regression/Makefile: new target test-mcs51-stack-auto
12066         * support/regression/ports/mcs51-stack-auto/spec.mk: added
12067
12068 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
12069
12070         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
12071
12072 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
12073
12074         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
12075
12076 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
12077
12078         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
12079
12080         * src/SDCCglue.h: add definition for printIvalChar()
12081
12082 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
12083
12084         * src/SDCCast.c: fix #498138 by Johan
12085
12086         * src/SDCCglue.c: fix #498138 by Johan
12087
12088 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
12089
12090         * support/regression/Makefile: fix clean
12091
12092         * support/regression/ports/ds390/support.c: fix transmission of last character
12093
12094 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
12095
12096         * /sdcc/src/ds390/gen.c:
12097         a) improved computing address of stack variable
12098         b) took out some #if 0 code
12099         c) improved parmBytes adjustment
12100         d) improved genPlusIncr & genMinusIncr
12101         e) genCmp could generate bad code (when left assigned to DPTR)
12102         f) Fixed bug in hasInc
12103
12104         * /sdcc/src/ds390/ralloc.c:
12105         a) packRegsForSupport could mess up live information (Fixed)
12106         b) packRegsDPTRuse could be incorrect for left & right shift
12107
12108         * /sdcc/src/mcs51/ralloc.c:
12109         packRegsForSupport could mess up the live information (Fixed)
12110
12111         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
12112
12113         * /sdcc/src/SDCCast.c:
12114         can reverse a loop even if function call is present as long
12115         as the loop control variable is local & is not passed as parameter
12116
12117 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12118
12119         * /sdcc/ChangeLog: *** empty log message ***
12120
12121         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
12122         More builtin function additions for TININative
12123
12124         * /sdcc/src/ds390/ralloc.c:
12125         Had broken the regression testsuite
12126
12127         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
12128
12129         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
12130         Added funcattr hasStackParms will be set for reentrant functions when there
12131         are paramteres on the stack, this helps in minimizing frame pointer generation
12132         typeFromStr can handle function pointers now
12133
12134         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
12135         *** empty log message ***
12136
12137 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12138
12139         * /src/ds390/gen.c, /src/ds390/main.c:
12140         More builtin function additions for TININative
12141
12142         * /src/ds390/ralloc.c:
12143         Had broken the regression testsuite
12144
12145         * /src/SDCCast.c: Fixed a bug in dumptree
12146
12147         * /src/SDCCsymt.c, /src/SDCCsymt.h:
12148         Added funcattr hasStackParms will be set for reentrant functions when there
12149         are paramteres on the stack, this helps in minimizing frame pointer generation
12150         typeFromStr can handle function pointers now
12151
12152         * /doc/builtins.txt, /doc/TININative.txt:
12153         *** empty log message ***
12154
12155
12156 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12157
12158         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
12159         ALPHA version for -mTININative
12160
12161         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
12162         updated to reflect changes in the port structure
12163
12164         * /src/port.h:
12165         added function do_assemble (similar to do_link) if non-null this function
12166         will be called to do assembly (-mTININative) requires a multi command
12167         assembly
12168         added function genAssemblerEnd will be called to generate assembler Epilogue
12169
12170         * /src/SDCCsymt.c:
12171         added _JavaNative to debug info printing
12172
12173         * /src/SDCCmain.c: added option --tini-libid
12174         added port->do_assemble function (-mTININative) has a multi command assemble
12175
12176         * /src/SDCCglue.c: Disabled "constExpr" check
12177         added port->genAssemblerEnd function
12178
12179         * /src/SDCCglobl.h: Added option --tini-libid value
12180
12181         * /src/SDCCast.h:
12182         tookout optimizeCompare from the header (has no external references)
12183
12184         * /src/SDCCast.c: made one more function "static"
12185
12186 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
12187
12188         * src/z80/mappings.i: Added z80asm support.
12189
12190         * src/z80/main.c: Added z80asm support on --asm=z80asm
12191
12192         * src/z80/gen.c: Fixed asm portability issues.
12193
12194         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
12195
12196         * src/SDCCglue.c (printExterns): Added global/extern split.
12197
12198 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
12199
12200         * support/regression/Makefile: added test for mcs51 model large
12201
12202         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
12203
12204         * support/regression/ports/gbz80/spec.mk: added -mgbz80
12205
12206 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
12207
12208         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
12209
12210 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
12211
12212         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
12213
12214         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
12215
12216 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
12217
12218         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
12219
12220         * support/regression/tests/simplefloat.c: Port to mcs51.
12221
12222 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
12223         * support/regression/tests/bug-485362.c: Added.
12224
12225         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
12226
12227         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
12228
12229         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
12230
12231         * src/z80/gen.c (aopDump): Added a dump function.
12232
12233 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
12234         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
12235
12236         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
12237
12238         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
12239
12240         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
12241
12242         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
12243
12244         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
12245
12246         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
12247
12248         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
12249
12250         * support/regression/ports/ds390/support.c: Use tinibios.
12251
12252         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
12253
12254 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
12255
12256         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
12257         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
12258
12259         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
12260
12261         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
12262
12263 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
12264
12265         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
12266
12267         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
12268         (packRegsForIYUse): Created and optimised.
12269
12270 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12271
12272         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
12273 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
12274
12275         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
12276
12277         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
12278
12279         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
12280
12281 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12282
12283         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
12284
12285         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
12286
12287 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12288
12289         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
12290
12291         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
12292
12293         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
12294
12295 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12296
12297         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
12298         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
12299         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
12300
12301         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
12302
12303         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
12304         (genNotFloat): Added.
12305         (genUminusFloat): Added.
12306
12307         * device/lib/z80/Makefile: Added floating pt stubs.
12308
12309         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
12310
12311         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
12312
12313         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
12314
12315 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12316
12317         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
12318
12319         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
12320
12321         * sdcc/support/regression/Makefile: Add port ds390.
12322
12323         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
12324
12325         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
12326
12327         * sdcc/support/regression/ports/ds390/spec.mk: Added.
12328
12329         * sdcc/support/regression/ports/ds390/support.c: Added.
12330
12331         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
12332
12333         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
12334
12335         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
12336
12337 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12338
12339         * device/include/malloc.h: Added z80 and gbz80 support.
12340
12341         * device/lib/gbz80/heap.s: Added.
12342
12343         * device/lib/z80/heap.s: Added.
12344
12345         * device/lib/malloc.c: Added z80 and gbz80 support.
12346
12347         * support/regression/tests/malloc.c (testMalloc): Added.
12348
12349         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
12350
12351         * support/regression/tests/bug-478094.c: Added.
12352
12353         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
12354
12355 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
12356
12357         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
12358
12359         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
12360
12361         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
12362
12363         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
12364
12365         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
12366
12367 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12368
12369         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
12370
12371 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
12372
12373         * support/regression/tests/bug-477927.c: Added.
12374
12375         * src/z80/peeph.def: Added minor rules.
12376
12377         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
12378
12379         * src/z80/peeph.def: Added jump optimisation modification.
12380
12381 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
12382
12383         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
12384
12385 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
12386
12387         * support/regression/tests/funptrs.c: Added.
12388
12389 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
12390
12391         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
12392
12393 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
12394
12395         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
12396
12397         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
12398
12399         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
12400         (movLeft2ResultLong): Created.
12401
12402         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
12403         (joinPushes): Added.  Joins two char pushes into a word push.
12404
12405 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
12406
12407         * support/cpp2/Makefile.in (install): Added creation of dest dir.
12408
12409         * support/makebin/Makefile (install): Added creation of dest dir.
12410
12411 2001-10-24 Karl Bongers <karl AT turbobit.com>
12412
12413         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
12414
12415 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
12416
12417         * src/z80/ralloc.c: Turned off faulty pack for one use.
12418
12419         * src/z80/peeph-gbz80.def: Removed redundent restart options.
12420
12421         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
12422
12423 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
12424
12425         * support/regression/Makefile: Improved clean
12426
12427         * support/regression/ports/gbz80/spec.mk: Added clean
12428
12429         * support/regression/ports/host/spec.mk: Added clean
12430
12431         * support/regression/ports/z80/spec.mk: Added clean
12432
12433         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
12434
12435         * support/regression/ports/mcs51/timeout.c: little improvements
12436
12437 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
12438
12439         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
12440
12441         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
12442
12443         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
12444
12445 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
12446
12447         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
12448
12449         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
12450
12451 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
12452         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
12453
12454         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
12455
12456         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
12457
12458         * src/mcs51/main.c (_linkCmd): Added bin path to command.
12459
12460         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
12461
12462         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
12463
12464         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
12465
12466         * support/regression/tests/longor.c: Added.
12467
12468 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
12469
12470         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
12471
12472         * as/mcs51/aslink.h: define PATH_MAX
12473
12474         * as/mcs51/asm.h: define PATH_MAX
12475
12476         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
12477
12478         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
12479
12480         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
12481
12482         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
12483
12484         * src/SDCCglobl.h: define PATH_MAX
12485
12486         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
12487
12488         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
12489
12490 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
12491
12492         * src/z80/gen.c (gencjneshort): Fixed
12493
12494         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
12495
12496 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
12497
12498         * support/regression/tests/bug-469671.c: Added.
12499
12500         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
12501
12502 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
12503
12504         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
12505
12506         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
12507
12508 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
12509
12510         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
12511
12512         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
12513
12514         * src/device/lib/_mullong.c : removed hint: nooverlay bug
12515
12516         * src/device/lib/_divuint.c : removed hint: nooverlay bug
12517
12518         * src/device/lib/_divulong.c: removed hint: nooverlay bug
12519
12520         * src/device/lib/_moduint.c : removed hint: nooverlay bug
12521
12522         * src/device/lib/_modulong.c: removed hint: nooverlay bug
12523
12524 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
12525
12526         * 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.
12527
12528         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
12529
12530         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
12531
12532 2001-10-07    <johan AT FRIJA>
12533
12534         * device/lib/gets.c (gets): fixed the return value.
12535
12536 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
12537         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
12538
12539         * 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.
12540
12541         * 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.
12542
12543         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
12544
12545         * src/pic/gen.c: Removed Safe_strdup.
12546
12547         * configure.in: Added option to enable libgc support.
12548
12549         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
12550         (bitVectUnion): Optimised.
12551         (bitVectIntersect): Optimised.
12552         (bitVectBitsInCommon): Optimised.
12553         (bitVectCplAnd): Optimised.
12554
12555         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
12556
12557 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12558
12559         * src/SDCCmain.c: distinguish between assembler debug and plain options
12560
12561         * src/avr/main.c:   remove standard assembler options
12562
12563         * src/ds390/main.c: remove standard assembler options
12564
12565         * src/mcs51/main.c: remove standard assembler options
12566
12567         * src/port.h: removed "PENDING" comment
12568
12569 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12570
12571         * src/device/lib/_mulint.c  : new, with assember functions
12572
12573         * src/device/lib/_mullong.c : new, with assember functions
12574
12575         * src/device/lib/_divuint.c : with assember functions
12576
12577         * src/device/lib/_divsint.c : with assember functions
12578
12579         * src/device/lib/_divulong.c: with assember functions
12580
12581         * src/device/lib/_divslong.c: with assember functions
12582
12583         * src/device/lib/_moduint.c : with assember functions
12584
12585         * src/device/lib/_modsint.c : with assember functions
12586
12587         * src/device/lib/_modulong.c: with assember functions
12588
12589         * src/device/lib/_modslong.c: with assember functions
12590
12591         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
12592
12593         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
12594
12595         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
12596                                       replaced _mululong.c and _mulslong.c by _mullong.c
12597
12598 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12599
12600         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
12601
12602 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12603
12604         * src/SDCCglue.c: test, if win32api is available for MINGW
12605
12606 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12607
12608         * src/SDCCsymt.c: no more _modifier in printTypeChain()
12609         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
12610         * support/regression/ports/gbz80/spec.mk: removed GENERIC
12611         * support/regression/ports/host/spec.mk: removed GENERIC
12612         * support/regression/ports/mcs51/spec.mk: removed GENERIC
12613         * support/regression/ports/z80/spec.mk: removed GENERIC
12614
12615 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
12616
12617         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
12618
12619         * support/regression/tests/bug-467035.c: Created.
12620
12621 2001-10-01    <johan AT FRIJA>
12622
12623         * src/SDCC.y: fixed bug #466586 part 1
12624
12625 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
12626
12627         * SDCCicode.c: z80 has no generic pointers
12628         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
12629
12630 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
12631
12632         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
12633
12634 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
12635
12636         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
12637
12638         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
12639
12640 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
12641
12642         * configure.in: Fixed up so that ucsim is only configured once.
12643
12644         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
12645
12646         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
12647         (getPathDifference): As above.
12648
12649         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
12650
12651         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
12652
12653 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
12654         * .version: Updated to 2.3.1
12655
12656         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
12657         Added copyright header.
12658
12659         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
12660         (assemble): Added support for macro based assembler commands.
12661         (linkEdit): Added support for macro based linker commands.
12662         (preProcess): Changed the pre-processor to use macros.
12663         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
12664         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
12665
12666         * device/lib/z80/crt0.s: Added module name for debugging.
12667
12668 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
12669
12670         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12671
12672         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
12673
12674         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
12675
12676         * src/Makefile.in: Added SDCCmacro and SDCCutil
12677
12678 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
12679
12680         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12681
12682 2001-09-16    <johan AT FRIJA>
12683
12684         * 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.
12685
12686 2001-09-15    <johan AT FRIJA>
12687
12688         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
12689         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
12690
12691 2001-09-11    <johan AT FRIJA>
12692
12693         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
12694
12695 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
12696
12697         * support/regression/tests/bug-460444.c: Added test case.
12698
12699         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
12700         (genCast): Added justification for all of the asserts.
12701
12702 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
12703
12704         * support/regression/support.c: _xdata replaced by xdata
12705
12706         * support/regression/spec.mk: removed _generic
12707
12708 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
12709
12710         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
12711
12712         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
12713         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
12714
12715         * src/z80/peeph.def: Added a rule to optimise shift then compare.
12716
12717         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
12718
12719         * support/regression/tests/bug-460010.c: Added test case.
12720
12721         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
12722
12723 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
12724
12725         * support/regression/Makefile: inter-port-clean adjusted for mcs51
12726
12727         * support/regression/testfwk.c: removed workaround for bug #436344
12728
12729         * support/regression/tests/bp.c: use less memory with mcs51
12730
12731         * support/regression/tests/bug-441448.c: use less memory
12732
12733         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
12734
12735         * support/regression/collate-results.py: typo
12736
12737 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
12738
12739         * support/regression/tests/fetchoverlap.c: Added new test case.
12740
12741         * support/regression/tests/bp.c: Added new test case.
12742
12743         * support/regression/tests/bug-448984.c: Added new test case.
12744
12745         * support/regression/tests/pow2shifts.c: Added new test case.
12746
12747         * src/z80/gen.c: Turned off the noise it normally generates for the release.
12748         (genlshTwo): Fixed right shift for count > 8.
12749
12750         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
12751
12752 2001-09-08    <johan AT FRIJA>
12753
12754         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
12755
12756 2001-09-07    <johan AT FRIJA>
12757
12758         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
12759
12760         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
12761
12762 2001-09-06    <johan AT FRIJA>
12763
12764         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
12765         * bernhard noted me at this: "() equals to (void)" (1.38)
12766
12767 2001-09-05    <johan AT FRIJA>
12768
12769         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
12770
12771 2001-09-04    <johan AT FRIJA>
12772
12773         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
12774
12775
12776 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
12777
12778         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
12779
12780 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
12781
12782         * link/z80/aslink.h: Fixed path for PATH_MAX
12783
12784 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
12785
12786         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
12787
12788         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
12789
12790         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
12791
12792         * 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.
12793
12794 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
12795
12796         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
12797         (genCmp): Fixed up genCmp for the GB with longs.
12798
12799         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
12800
12801         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
12802
12803         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
12804
12805         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
12806
12807 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
12808
12809         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
12810
12811 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
12812
12813         * 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.
12814
12815         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
12816
12817 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
12818
12819         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
12820
12821         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
12822
12823 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
12824
12825   * sim/ucsim/configure:    little improvement of Cygwin-detection
12826   * sim/ucsim/configure.in: little improvement of Cygwin-detection
12827   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
12828   * support/regression/tests/bug-221100.c: small changes for mcs51
12829   * support/regression/tests/bug-221168.c: small changes for mcs51
12830   * support/regression/tests/bug-227710.c: small changes for mcs51
12831   * support/regression/tests/staticinit.c: small changes for mcs51
12832   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
12833   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12834   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12835
12836 $Revision$