* support/regression/generate-cases.py,
[fw/sdcc] / ChangeLog
1 2006-11-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2
3         * support/regression/generate-cases.py,
4         * support/regression/fwk/include/testfwk.h,
5         * support/regression/fwk/lib/testfwk.c: used code pointers,
6           (about 50kByte less code generated for mcs51) 
7
8 2006-11-06 Borut Razem <borut.razem AT siol.net>
9
10         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
11           debugger/mcs51/configure: fixed failed check because the function
12           rl_function_of_keyseq isn't in Readline 5.2. Thanks to Ilya Goldberg
13           who submitted the patch for gpsim.
14         * debugger/mcs51/configure.in: removed the result message
15         * debugger/mcs51/Makefile.in: fixed the config.status warning
16           "... seems to ignore the --datarootdir setting"
17
18 2006-11-03 Maarten Brock <sourceforge.brock AT dse.nl>
19
20         * device/include/mcs51/c8051f020.h,
21         * device/include/mcs51/c8051f040.h,
22         * device/include/mcs51/c8051f060.h,
23         * device/include/mcs51/c8051f120.h: added PS0, fixed bug 1589279
24         * src/z80/gen.c (gencjneshort),
25         * src/z80/peeph.def: applied patch 1571373, thanks Philipp Krause
26
27 2006-10-31 Borut Razem <borut.razem AT siol.net>
28
29         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
30           debugger/mcs51/configure: get readline version
31
32 2006-10-30 Borut Razem <borut.razem AT siol.net>
33
34         * debugger/mcs51/sdcdb.c: replaced hardcoded "/" with DIR_SEPARATOR_STRING
35         * debugger/mcs51/acinclude.m4, debugger/mcs51/aclocal.m4,
36           debugger/mcs51/configure: locate readline even when cross compiling
37         * support/scripts/sdcc.nsi: include readline5.dll into the setup package
38
39 2006-10-29 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
40
41         * device/include/mcs51/serial_IO.h: putchar() and getchar() using
42           serial port.
43
44 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
45
46         * device/include/malloc.h,
47         * device/lib/calloc.c,
48         * device/lib/free.c,
49         * device/lib/malloc.c,
50         * device/lib/realloc.c: moved definition of struct into sources
51         * support/regression/tests/malloc.c: use void* for init_dynamic_memory()
52
53 2006-10-29 Maarten Brock <sourceforge.brock AT dse.nl>
54
55         * as/asx8051.dsp: corrected output directories
56         * as/link/hc08: new directory for hc08 linker
57         * as/hc08/aslink.h,             as/link/aslink.h,
58         * as/hc08/aslink.mak,           as/link/hc08/aslink.mak,
59         * as/hc08/clean.mk,             as/link/hc08/clean.mk,
60         * as/hc08/link_hc08.dsp,        as/link/hc08/link_hc08.dsp,
61         * as/hc08/lkaomf51.c,           as/link/hc08/lkaomf51.c,
62         * as/hc08/lkarea.c,             as/link/hc08/lkarea.c,
63         * as/hc08/lkdata.c,             as/link/hc08/lkdata.c,
64         * as/hc08/lkelf.c,              as/link/hc08/lkelf.c,
65         * as/hc08/lkihx.c,              as/link/hc08/lkihx.c,
66         * as/hc08/lklibr.c,             as/link/hc08/lklibr.c,
67         * as/hc08/lkmain.c,             as/link/hc08/lkmain.c,
68         * as/hc08/lkmem.c,              as/link/hc08/lkmem.c,
69         * as/hc08/lkrloc.c,             as/link/hc08/lkrloc.c,
70         * as/hc08/lks19.c,              as/link/hc08/lks19.c,
71         * as/hc08/Makefile.aslink,      as/link/hc08/Makefile.aslink,
72         * as/hc08/Makefile.bcc,         as/link/hc08/Makefile.bcc,
73         * as/hc08/Makefile.in,          as/link/hc08/Makefile.in,
74         * as/link/hc08/conf.mk,
75         * configure,
76         * configure.in,
77         * Makefile.in,
78         * sdcc.dsw: moved hc08 linker to as/link/hc08
79         * as/hc08/lkeval.c,     as/link/mcs51/lkeval.c,     as/link/lkeval.c,
80         * as/hc08/lkhead.c,     as/link/mcs51/lkhead.c,     as/link/lkhead.c,
81         * as/hc08/lklex.c,      as/link/mcs51/lklex.c,      as/link/lklex.c,
82         * as/hc08/lklist.c,     as/link/mcs51/lklist.c,     as/link/lklist.c,
83         * as/hc08/lknoice.c,    as/link/mcs51/lknoice.c,    as/link/lknoice.c,
84         * as/hc08/lksym.c,      as/link/mcs51/lksym.c,      as/link/lksym.c,
85         * as/link/mcs51/aslink.dsp,
86         * as/link/mcs51/Makefile.in: factored out the common files
87         * as/hc08/lkstore.c: deleted, use the one already in as/link/
88         * as/clean.mk: extra cleaning common files
89         * as/link/mcs51/strcmpi.c,      as/strcmpi.c: moved
90         * as/link/mcs51/strcmpi.h: deleted, moved protoype to aslink.h
91         * as/mcs51/asm.h: include sdccconf.h or sdcc_vc.h
92
93 2006-10-29 Raphael Neider <rneider AT web.de>
94
95         * src/pic/ralloc.c (newReg): create aliases for registers with
96           multiple names to fix #1579535 and #1584001,
97           (regWithIdx,dirregWithName): resolve aliases on lookup
98         * src/pic/pcode.c (DoBankSelect): die with error message on failing
99           bankselect
100         * device/lib/pic/libdev/Makefile.in: move pseudo stack down to 0x4f
101           to prevent build errors on small devices
102
103 2006-10-28 Raphael Neider <rneider AT web.de>
104
105         * src/pic/gen.c (genFunction,genCall): drop "same code page"
106           assumption within interrupt handlers, fixes #1584940
107         * src/pic/glue.c (pic14_constructAbsMap): mark absolute symbols as
108           "emitted" to avoid emitting them again in udata
109
110 2006-10-27 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
111
112         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
113         Removed.
114
115 2006-10-26 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
116
117         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c:
118         Initialize uart only if SM0 and SM1 are zero.  Also, use flag to turn
119         on/off CR to CRLF conversion.
120
121 2006-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
122
123         * doc/sdccman.lyx: updated IRQ section
124
125 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
126
127         * device/lib/serial_io.c: removed
128         * device/lib/_putchar.c, device/lib/_getchar.c, device/lib/inituart.c
129         replacements for serial_io.c
130
131 2006-10-24 Maarten Brock <sourceforge.brock AT dse.nl>
132
133         * src/z80/main.c (_process_pragma, _parseOptions): fixed bug 1583318
134
135 2006-10-24 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
136
137         * device/lib/serial_io.c: Default putchar() and getchar() for
138           mcs51 uses serial port.
139
140 2006-10-23 Maarten Brock <sourceforge.brock AT dse.nl>
141
142         * src/mcs51/gen.c (movc): improved check for 0 and 1, see RFE 1582704
143
144 2006-10-23 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
145
146         * support/regression/ports/mcs51/support.c: smaller
147         _sdcc_external_startup()
148         * device/lib/mcs51/crtxclear.asm: don't check high byte of l_PSEG
149
150 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
151
152         * device/lib/gbz80/crt0.s,
153         * device/lib/gbz80/crt0_rle.s,
154         * device/lib/gbz80/div.s,
155         * device/lib/gbz80/fstubs.s,
156         * device/lib/gbz80/heap.s,
157         * device/lib/gbz80/mul.s,
158         * device/lib/gbz80/putchar.s,
159         * device/lib/gbz80/stubs.s,
160         * device/lib/z80/crt0.s,
161         * device/lib/z80/crt0_rle.s,
162         * device/lib/z80/div.s,
163         * device/lib/z80/fstubs.s,
164         * device/lib/z80/heap.s,
165         * device/lib/z80/mul.s,
166         * device/lib/z80/putchar.s,
167         * device/lib/z80/stubs.s: reverted, I was mistaken
168
169 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
170
171         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
172         * support/regression/ports/mcs51/support.c: removed race
173         condition on TI in _putchar allowing to use serial port mode 0
174
175 2006-10-20 Borut Razem <borut.razem AT siol.net>
176
177         * debugger/mcs51/sdcdb.c: replaced isblank() with isspace()
178
179 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
180
181         * device/lib/gbz80/crt0.s,
182         * device/lib/gbz80/crt0_rle.s,
183         * device/lib/gbz80/div.s,
184         * device/lib/gbz80/fstubs.s,
185         * device/lib/gbz80/heap.s,
186         * device/lib/gbz80/mul.s,
187         * device/lib/gbz80/putchar.s,
188         * device/lib/gbz80/stubs.s,
189         * device/lib/z80/crt0.s,
190         * device/lib/z80/crt0_rle.s,
191         * device/lib/z80/div.s,
192         * device/lib/z80/fstubs.s,
193         * device/lib/z80/heap.s,
194         * device/lib/z80/mul.s,
195         * device/lib/z80/putchar.s,
196         * device/lib/z80/stubs.s: removed all leading underscores from area names
197
198 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
199
200         * support/regression/ports/mcs51/support.c: use highest baudrate so the
201           regression tests are not waiting in the simulator for simulated
202           transmission of debug output
203
204 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
205
206         * device/lib/printf_large.c: slightly smaller
207         * doc/sdccman.lyx: do not use spaces within html links
208
209 2006-10-16 Borut Razem <borut.razem AT siol.net>
210
211         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
212           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
213           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
214           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
215           debugger/mcs51/configure:
216           [ 1185668 ] add gnu readline support to sdcdb - enabled
217
218 2006-10-16 Raphael Neider <rneider AT web.de>
219
220         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
221           fixes #1577882, removes close to all banking optimizations
222
223 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
224
225         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
226           variables in code memory
227         * support/regression/tests/absolute.c: added test for this
228
229 2006-10-15 Raphael Neider <rneider AT web.de>
230
231         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
232           devices,
233           (BankSelect): emit BANKSEL before touching linker-placed regs,
234           fixes #1570934
235
236 2006-10-10 Raphael Neider <rneider AT web.de>
237
238         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
239         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
240         * src/pic/main.c (_pic14_parseOptions),
241         * src/pic/main.h: mostly reverted to previous state, now use results
242             from SDCCmain.c's argument parsing
243
244 2006-10-10 Borut Razem <borut.razem AT siol.net>
245
246         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
247           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
248           [ 1185668 ] add gnu readline support to sdcdb -
249           prepared for READLINE, not enabled yet,
250           thanks to <tal.bav AT gmail.com>
251
252 2006-10-10 Raphael Neider <rneider AT web.de>
253
254         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
255         * src/pic16/devices.inc,
256         * device/include/pic16 (pic18f[24]620.h),
257         * device/include/pic18fregs.h,
258         * device/lib/pic16/pics.all,
259         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
260             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
261             Gary Plumbridge and Anton Strobl
262
263 2006-10-10 Raphael Neider <rneider AT web.de>
264
265         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
266           --stack-siz=NUM options to configure the argument passing stack
267         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
268         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
269           (pic14_getSharebankSize): obey --stack-siz=NUM,
270           (pic14_getSharebankAddress): obey --stack-loc=NUM
271
272 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
273
274         * doc/sdccman.lyx: added to the manual
275         * doc/figures/ddd_example.png: added (neither pdflatex nor
276         most browsers seem to like the .eps file)
277
278 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
279
280         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
281         to /tmp and /var/tmp acc. LSB
282         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
283         RESULT_TYPE_IFX
284         * support/regression/tests/onebyte.c: added test
285
286 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
287
288         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
289
290 2006-10-05 Borut Razem <borut.razem AT siol.net>
291
292         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
293           thanks to dfulab:
294           - sdcc.dsw: changed property eol-style to CRLF
295           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
296
297 2006-10-04 Raphael Neider <rneider AT web.de>
298
299         * device/include/pic/{pic16f84.h,pic16f84a.h},
300         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
301           from patch #1522504, thanks to Robas Teodor
302
303 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
304
305         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
306           fixes bug 1566015
307
308 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
309
310         * src/pic16/glue.c (pic16emitMaps),
311         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
312         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
313         * device/lib/pic16/libc/string/memcpypgm2ram.c,
314         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
315           Philipp Krause
316         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
317         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
318
319 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
320
321         * support/librarian/sdcclib.c: Added option -l.
322         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
323           usage totals.
324         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
325           using Windows command prompt.
326
327 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
328
329         * device/lib/libsdcc.lib: added module rand
330         * src/ds390/ralloc.c (rematStr),
331         * src/hc08/ralloc.c (rematStr),
332         * src/mcs51/ralloc.c (rematStr),
333         * src/z80/ralloc.c (rematStr): made output more consistent
334         * src/mcs51/gen.c: cosmetic changes
335
336 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
337
338         * src/port.h: added mem.cabs_name to PORT
339         * src/ds390/main.c,
340         * src/hc08/main.c,
341         * src/mcs51/main.c,
342         * src/pic16/main.c,
343         * src/pic/main.c,
344         * src/xa51/main.c,
345         * src/z80/main.c: added cabs_name initializers
346         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
347           constants
348           (emitMaps): emit absolutes in code memory into cabs_name
349         * src/SDCCmem.c,
350         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
351         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
352         * support/regression/fwk/include/testfwk.h: added define for at
353         * support/regression/tests/absolute.c: added, new
354
355 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
356
357         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
358           optimizations, see also patch 887161 by Stas Sergeev
359         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
360           to be necessary anymore,
361           (102, 103, 104, 127): renamed all occurances of bp to _bp
362
363 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
364
365         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
366           thanks Weston T. Schmidt for patch 1555221
367         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
368         * src/SDCCicode.c(geniCodeMultiply): small optimization
369
370 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
371
372         * device/include/stdlib.h: added rand prototypes
373         * device/lib/rand.c: new, added
374         * device/lib/Makefile.in: added rand.c
375         * src/z80/peeph.def,
376         * src/z80/peeph-gbz80.def,
377         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
378
379 2006-09-20 Raphael Neider <rneider AT web.de>
380
381         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
382
383 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
384
385         * as/link/aslink.h: cosmetic changes
386         * as/link/mcs51/Makefile.in,
387         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
388
389 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
390
391         * as/link/aslink.h,
392         * as/link/mcs51/aslink.h,
393         * as/link/z80/aslink.h: merged and moved to as/link/
394         * as/link/lkstore.c,
395         * as/link/mcs51/lkstore.c: moved to as/link/
396         * as/link/clean.mk: remove *.o
397         * as/link/mcs51/alloc.h: deleted
398         * as/link/mcs51/lkarea.c: added lnksect prototype
399         * as/link/mcs51/lkdata.c,
400         * as/link/mcs51/lklex.c,
401         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
402         * as/link/mcs51/lkmem.c,
403         * as/link/mcs51/lknoice.c: removed include strcmpi.h
404         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
405         * as/link/mcs51/aslink.dsp,
406         * as/link/mcs51/Makefile.aslink,
407         * as/link/mcs51/Makefile.bcc,
408         * as/link/mcs51/Makefile.in: updated for moved files
409         * as/link/z80/lkarea.c,
410         * as/link/z80/lkhead.c,
411         * as/link/z80/lklex.c,
412         * as/link/z80/lklibr.c,
413         * as/link/z80/lklist.c,
414         * as/link/z80/lkmain.c,
415         * as/link/z80/lkrloc.c,
416         * as/link/z80/lksym.c: synced with mcs51
417         * as/link/z80/lkdata.c,
418         * as/link/z80/lkeval.c,
419         * as/link/z80/lkihx.c,
420         * as/link/z80/lks19.c: cosmetic changes
421         * as/link/z80/Makefile.in,
422         * as/link/z80/linkgbz80.dsp,
423         * as/link/z80/linkz80.dsp: updated for moved files
424
425 2006-09-16 Borut Razem <borut.razem AT siol.net>
426
427         * debugger/mcs51/sdcdb.c: partially fixed
428           [ 1203664 ] sdcdb fails to open files w. two "." periods
429         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
430           debugger/mcs51/symtab.h: fixed indenting
431         * configure.in, configure: up to date with latest Maarten's changes
432
433 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
434
435         as/link/mcs51
436         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
437         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
438         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
439         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
440         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
441         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
442         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
443         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
444         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
445         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
446         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
447         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
448         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
449         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
450         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
451         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
452         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
453         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
454         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
455         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
456         as/link/mcs51/alloc.h,
457         as/link/mcs51/clean.mk,
458         as/link/mcs51/conf.mk,
459         as/link/mcs51/Makefile.bcc,
460         as/link/mcs51/Makefile.in,
461         as/link/mcs51/readme.390,
462         as/link/mcs51/strcmpi.c,
463         as/link/mcs51/strcmpi.h,
464         as/mcs51/clean.mk,
465         as/mcs51/Makefile.bcc,
466         as/mcs51/Makefile.in,
467         configure,
468         Makefile.in,
469         sdcc.dsw: moved mcs51 linker to as/link/mcs51
470
471 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
472
473         * as/link,
474         * as/link/Makefile.in,
475         * as/link/z80/linkgbz80.dsp,
476         * as/link/z80/linkz80.dsp,
477         * configure,
478         * link,
479         * link/clean.mk,
480         * link/Makefile.in,
481         * link/README,
482         * link/z80,
483         * link/z80/aslink.h,
484         * link/z80/clean.mk,
485         * link/z80/conf.mk,
486         * link/z80/linkgbz80.dsp,
487         * link/z80/linkz80.dsp,
488         * link/z80/lkarea.c,
489         * link/z80/lkdata.c,
490         * link/z80/lkeval.c,
491         * link/z80/lkgb.c,
492         * link/z80/lkgg.c,
493         * link/z80/lkhead.c,
494         * link/z80/lkihx.c,
495         * link/z80/lklex.c,
496         * link/z80/lklibr.c,
497         * link/z80/lklist.c,
498         * link/z80/lkmain.c,
499         * link/z80/lkrloc.c,
500         * link/z80/lks19.c,
501         * link/z80/lksym.c,
502         * link/z80/Makefile.in,
503         * Makefile.in,
504         * sdcc.dsw: moved link/ to as/link/
505
506 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
507
508         * as/mcs51/i51mch.c (machine): fixed warning
509
510 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
511
512         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
513
514 2006-09-09 Borut Razem <borut.razem AT siol.net>
515
516         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
517           sdcdb WIN32 native port
518         * src/clean.mk: fixed
519
520 2006-09-08 Borut Razem <borut.razem AT siol.net>
521
522         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
523
524 2006-09-08 Raphael Neider <rneider AT web.de>
525
526         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
527         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
528             to gplink to disable processor mismatch warning and to allow
529             the use of devices with only aliased (shared) memory banks,
530           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
531
532 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
533
534         * doc/sdccman.lyx: Some re-formating plus example on using
535           #pragma preproc_asm +/-
536
537 2006-09-07 Borut Razem <borut.razem AT siol.net>
538
539         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
540           section
541
542 2006-09-06 Borut Razem <borut.razem AT siol.net>
543
544         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
545           line at sdcc.nsi:153
546         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
547
548 2006-09-05 Borut Razem <borut.razem AT siol.net>
549
550         * configure.in, configure: support for winsock2
551         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
552           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
553           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
554           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
555           debugger/mcs51/symtab.h: sdcdb WIN32 native port
556
557 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
558
559         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
560           and OP_DEFS
561         * support/regression/tests/bug1551947.c: new, added
562         * src/SDCCsymt.h: strings are char* not byte*
563
564 2006-09-05 Raphael Neider <rneider AT web.de>
565
566         * device/lib/pic16/libdev/pic18f4550.c,
567           device/include/pic16/pic18f4550.h: added PORTD/TRISD
568             declarations/definitions from patch #1520949
569
570 2006-09-05 Raphael Neider <rneider AT web.de>
571
572         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
573           byte-aligned bitfields, fixes #1539278
574
575 2006-09-05 Raphael Neider <rneider AT web.de>
576
577         * src/pic/gen.c (genReceive): skip unreferenced arguments,
578           fixes #1544120
579
580 2006-09-04 Borut Razem <borut.razem AT siol.net>
581
582         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
583         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
584           -mno-cygwin is a part of the compiler name
585         * support/scripts/sdcc_mingw32: don't disable ucsim
586
587 2006-09-03 Borut Razem <borut.razem AT siol.net>
588
589         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
590         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
591
592 2006-09-03 Raphael Neider <rneider AT web.de>
593
594         * src/pic/ralloc.c,
595         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
596           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
597           fixes #1550049
598
599 2006-09-01 Borut Razem <borut.razem AT siol.net>
600
601         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
602           to make ppc-osx happy
603
604 2006-08-31 Borut Razem <borut.razem AT siol.net>
605
606         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
607         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
608         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
609         * support/regression/ports/ds390/spec.mk,
610           support/regression/ports/mcs51/spec.mk,
611           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
612           To run regression tests in mingw environment:
613           make DEV_NULL=NUL CC=gcc
614
615 2006-08-30 Borut Razem <borut.razem AT siol.net>
616
617         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
618           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
619           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
620           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
621           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
622           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
623           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
624           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
625           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
626           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
627           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
628           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
629           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
630           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
631           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
632           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
633           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
634           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
635           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
636           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
637           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
638           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
639           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
640           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
641           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
642           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
643           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
644           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
645           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
646           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
647           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
648           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
649           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
650           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
651           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
652           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
653           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
654           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
655           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
656           ucsim WIN32 native port
657
658 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
659
660         * doc/sdccman.lyx: added note on dynamic memory heap initialization
661
662 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
663
664         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
665         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
666
667 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
668
669         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
670         * support/regression/tests/bug1546986.c: new, added
671         * as/mcs51/.cvsignore,
672         * debugger/mcs51/.cvsignore,
673         * src/.cvsignore: deleted
674
675 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
676
677         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
678           definitions)
679
680 2006-08-20 Borut Razem <borut.razem AT siol.net>
681
682         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
683           removed cl_listen_console::match(), cl_console::match(),
684           restructured cl_commander::proc_input()
685
686 2006-08-16 Borut Razem <borut.razem AT siol.net>
687
688         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
689           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
690           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
691
692 2006-08-14 Borut Razem <borut.razem AT siol.net>
693
694         * support/regression/Makefile.in,
695           support/regression/ports/pic14/gpsim.cmd,
696           support/regression/ports/pic14/spec.mk,
697           support/regression/ports/pic14/support.c:
698           added pic14 regression test
699
700 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
701
702         * as/doc/asxhtm.html: documented changed ABS behaviour
703         * as/doc/README: fixed some typos
704
705 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
706
707         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
708           not defined on host
709
710 2006-08-12 Borut Razem <borut.razem AT siol.net>
711
712         * support/regression/fwk/include/testfwk.h,
713           support/regression/fwk/lib/testfwk.c,
714           support/regression/generate-cases.py,
715           support/regression/Makefile.in:
716           regression test framework does not depend on function pointers and
717           variable arguments
718
719 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
720
721         * device/include/stddef.h: c temporary hack to fix bug 1518273
722
723 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
724
725         * device/include/mcs51/cc2510fx.h: added
726         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
727           to projects.
728
729 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
730
731         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
732         * as/z80/Makefile.in: added strcmpi.c
733         * as/z80/z80adr.c: added upper case registers and lower case conditionals
734         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
735
736 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
737
738         * device/lib/gbz80/asm_strings.s,
739         * device/lib/gbz80/crt0_rle.s,
740         * device/lib/gbz80/div.s,
741         * device/lib/gbz80/mul.s,
742         * device/lib/gbz80/shift.s,
743         * device/lib/z80/asm_strings.s,
744         * device/lib/z80/crt0_rle.s,
745         * device/lib/z80/div.s,
746         * device/lib/z80/mul.s,
747         * device/lib/z80/shift.s: changed to all lower case menmonics except the
748           flags which are all upper case
749
750 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
751
752         * as/z80/asm.h: made CASE_SENSITIVE 1
753         * link/z80/aslink.h: made CASE_SENSITIVE 1
754         * src/z80/gen.c (throughout): made all conditionals upper case
755         * support/regression/tests/bug1503067.c: new
756
757 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
758
759         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
760           (shiftIntoPair): added case 2 for PAIR_IY,
761           (setupToPreserveCarry): replaced parameters with iCode and check if
762            PAIR_DE is in use to fix bug 1399290,
763           (genPlus, genMinus): updated call to setupToPreserveCarry
764         * support/regression/tests/bug1399290.c: new
765
766 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
767
768         * device/lib/Makefile.in (Z80SOURCES): enabled float support
769         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
770         * src/ds390/gen.c (shiftRLong),
771         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
772         * src/mcs51/gen.c (sameReg): changed to sameByte,
773           (xch_a_aopGet): new,
774           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
775            shiftRLong): fixed bug 1533966
776         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
777           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
778         * support/regression/Makefile.in: disabled z80, enabled ucz80
779         * support/regression/tests/float_trans.c: enabled test for z80 and host
780         * support/regression/tests/shifts2.c: new, for testing bug 1533966
781
782 2006-08-01 Borut Razem <borut.razem AT siol.net>
783
784         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
785           comparison is always false due to limited range of data type
786           on PPC64 machine (openpower-linux1) where "char = unsigned char"
787
788 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
789
790         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
791         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
792         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
793         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
794
795 2006-07-31 Borut Razem <borut.razem AT siol.net>
796
797         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
798           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
799           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
800           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
801           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
802           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
803           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
804           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
805           enable ucsim mingw compilation. Serial port is disabled,
806           since it uses termios.h API, which is not available on native
807           WIN32
808
809 2006-07-31 Borut Razem <borut.razem AT siol.net>
810
811         * Small Device C Compiler 2.6.0 released
812         * support/scripts/sdcc.nsi: added FULL_DOC option
813         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
814
815 2006-07-28 Borut Razem <borut.razem AT siol.net>
816
817         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
818         * doc/INSTALL.txt: updated
819
820 2006-07-27 Borut Razem <borut.razem AT siol.net>
821
822         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
823           device/lib/pic/libdev/Makefile.in: fixed bug
824           [ 1438354 ] pic libsdcc: distclean doesn't work
825         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
826           device/lib/pic16/libio/Makefile.in: fixed bug
827           [ 1438344 ] pic16 lib: clean doesn't work properly
828         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
829
830 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
831
832         * device/lib/pic/libsdcc/fsdiv.c,
833         * device/lib/pic/libsdcc/fsmul.c,
834         * device/lib/pic16/libsdcc/float/fsdiv.c,
835         * device/lib/pic16/libsdcc/float/fsmul.c,
836         * device/lib/_fsdiv.c,
837         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
838         * support/regression/tests/bug1520966.c: added
839         * doc/knownbugs.html: removed [ 1520966 ] from the list
840
841 2006-07-25 Borut Razem <borut.razem AT siol.net>
842
843         * configure.in, configure, sdccconf_in.h: fixed bug
844           [ 1519095 ] regression test onebyte.c fails on ppc64 host
845         * doc/knownbugs.html: removed [ 1519095 ] from the list
846
847 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
848
849         * doc/knownbugs.html: added, contains list of known bugs at release
850         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
851
852 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
853
854         * device/include/mcs51/compiler.h: added SFRX for xdata based special
855           function registers and corrected defaults with additional warning
856         * device/lib/malloc.c: cosmetic changes
857         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
858         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
859           (fillGaps): and used it
860
861 2006-07-20 Raphael Neider <rneider AT web.de>
862
863         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
864           output unless SDCCPICDEBUG is set
865         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
866           output if SILENT is set
867
868 2006-07-11 Borut Razem <borut.razem AT siol.net>
869
870         * doc/README.txt: updated
871
872 2006-07-10 Borut Razem <borut.razem AT siol.net>
873
874         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
875           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
876           in WIN32 installation
877         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
878           release candidate 1
879
880 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
881
882         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
883         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
884
885 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
886
887         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
888
889 2006-07-06 Borut Razem <borut.razem AT siol.net>
890
891         * support/regression/tests/bitfields.c:
892           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
893         * support/regression/tests/constantRange.c:
894           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
895
896 2006-07-04 Borut Razem <borut.razem AT siol.net>
897
898         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
899           src/port.mk,
900           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
901           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
902           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
903           reverted changes from 2006-07-03
904         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
905         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
906           added CPPFLAGS, used by the host port
907
908 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
909
910         * support/regression/valdiag/tests/switch.c,
911         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
912         * support/regression/tests/libmullong.c: fixed for host
913         * support/regression/ports/host/spec.mk: disable all warnings for host,
914         SDCC runs with --less-pedantic too
915
916 2006-07-03 Borut Razem <borut.razem AT siol.net>
917
918         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
919           defined CPPFLAGS
920         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
921         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
922           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
923           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
924           include ../port.mk
925         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
926           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
927           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
928           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
929
930 2006-07-02 Raphael Neider <rneider AT web.de>
931
932         * src/pic16/devices.inc,
933         * device/include/pic16/pic18fregs.h,
934         * device/include/pic16/pic18f4550.h,
935         * device/lib/pic16/pics.all,
936         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
937
938 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
939
940         * as/hc08/lkaomf51.c (OutputName),
941         * as/mcs51/lkaomf51.c (OutputName),
942         * as/z80/asmain.c (asmbl),
943         * src/ds390/main.c (asmLineNodeFromLineNode),
944         * src/hc08/ralloc.c (hc08_assignRegisters),
945         * src/mcs51/main.c (asmLineNodeFromLineNode),
946         * src/xa51/ralloc.c (checkRegMask),
947         * src/xa51/gen.c (emitcode),
948         * src/z80/gen.c (_emit2),
949         * src/SDCCast.c (searchLitOp),
950         * src/SDCCglobl.h,
951         * support/packihx/packihx.c,
952         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
953         * src/ds390/gen.c (aopPutUsesAcc),
954         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
955         * support/regression/tests/libmullong.c (mullong_wrapper),
956         * src/SDCCsymt.c (powof2),
957         * src/SDCCast.c,
958         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
959         * src/SDCCsymt.h: added TYPE_TARGET_*
960         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
961         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
962         SDCCast because 1) header problems 2) this is the right place
963         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
964         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
965         prototype
966
967 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
968
969         * src/SDCCicode.h: removed buggy semicolon in unused macro
970         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
971         search for previous definiton of auto symbols too,
972         (findPrevUse): fixed logic of emitWarnings
973
974 2006-06-26 Raphael Neider <rneider AT web.de>
975
976         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
977           PCLATH and PCLATU on interrupts, potentially fixes #1505141
978
979 2006-06-25 Raphael Neider <rneider AT web.de>
980
981         * device/lib/pic/libm: NEW, added math library functions
982         * device/lib/pic/libsdcc: NEW; added float support functions
983         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
984         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
985           NEW, added math related headers
986         * device/include/asm/pic/features.h: NEW
987         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
988           (popGet): allow larger offsets for AOP_PCODE,
989           (genDataPointerSet): handle literals explicitly, more debug output,
990           (genAssign): fixed for float using aopLiteral ;-)
991         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
992           GOTO initialisation routine
993         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
994           flag on registers, fixes #1469043 (local variables do not work)
995         * src/pic/main.c (_pic14_do_link),
996         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
997           available
998
999 2006-06-25 Borut Razem <borut.razem AT siol.net>
1000
1001         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
1002           characters printed (not including the trailing '\0' used to end
1003           output to strings). Problem detected in regression test bug-927659.c.
1004           NOTE: printf() family functions should return int instead
1005           unsigned int!
1006         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
1007           specifier are printed as themselves
1008         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
1009           support flags, width and precision specifiers
1010
1011 2006-06-24 Borut Razem <borut.razem AT siol.net>
1012
1013         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
1014           to the list of sdcc tagrets not supporting bit type
1015         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
1016           testfor pic16 due to bug:
1017           [ 1511794 ] pic16: regression test bug-895992.c fails
1018
1019 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
1020
1021         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
1022         * src/SDCCglue.c (initPointer), fixed bug 1496419
1023         * support/regression/tests/bug1496419.c: new, added
1024
1025 2006-06-22 Borut Razem <borut.razem AT siol.net>
1026
1027         * support/regression/ports/pic16/support.c: use gpsim usart module from
1028           libgpsim_modules library
1029
1030 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1031
1032         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
1033         IP0H to IPH0.
1034
1035 2006-06-19 Raphael Neider <rneider AT web.de>
1036
1037         * src/pic/glue.h,src/pic16/glue.h: added prototypes
1038         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
1039           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
1040           (pic14printExterns,pic14printPublics,pic16printPublics,
1041           pic16_printExterns): use new functions to emit symbols
1042           (picglue,pic16glue): emit publics before emitting externs
1043         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
1044           locally defined functions to avoid bug #1443651
1045         * support/regression/tests/bug-716242.c: removed pic16 workaround
1046         * support/regression/ports/pic16/spec.mk: ignore errors during build
1047
1048 2006-06-19 Raphael Neider <rneider AT web.de>
1049
1050         * src/pic/glue.h: added pic14aopLiteral prototype
1051         * src/pic/glue.c (pic14aopLiteral): return unsigned int
1052         * src/pic/gen.c: removed stdint.h dependency
1053           (aopGet): use Safe_strdup()
1054           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
1055           (genDataPointerSet): use pic14aopLiteral()
1056         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
1057           for pic16; thanks to Bernhard and Maarten
1058
1059 2006-06-18 Borut Razem <borut.razem AT siol.net>
1060
1061         * support/regression/tests/structflexarray.c: flexible array members
1062           not supported by gcc < 3
1063         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
1064           GUI tool by default
1065         * src/pic/gen.c: don't include [p]strdin.h on solaris
1066         * support/Util/pstdint.h: addad svn attributes
1067         * support/regression/tests/constantRange.c,
1068           support/regression/tests/rotate.c: include inttypes.h instead
1069           stdint.h on solaris, addad svn attributes
1070
1071 2006-06-18 Raphael Neider <rneider AT web.de>
1072
1073         * src/SDCCsymt.c (initCSupport): change return type of divschar to
1074           int for PIC16
1075         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
1076           (pic16_genMinusBits): simplified sign-extension
1077           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
1078             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
1079             adjusted to correctly handle mixed-signed operands, disabled
1080             now unused multiplciation routines
1081         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
1082           (assignResultValue): added argument denoting the size of the result
1083             as returned by the function (fixes upcasts in assigning from
1084             function calls: char foo(); int i = foo();)
1085           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
1086             function result to assignResultValue
1087           (genMult): disabled inlined multiplication code
1088           (genDiv): augmented to also handle the modulus operator, fixed to
1089             handle mixed-signed operands correctly
1090           (genMod): simply call genDiv, disabled unused code
1091           (genAssign): fixed missing (sign-)extension on result
1092         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
1093             valid char operands, allow signed operands for native code, added
1094             division and modulo operator handling
1095         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
1096
1097         As a consequence, onebyte.c (if split into two files) and muldiv.c
1098         pass regression tests.
1099
1100 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1101
1102         * doc/Makefile.in: two runs of makeindex seem needed to get
1103         correct page references in the index of sdccman.pdf
1104         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
1105
1106 2006-06-17 Borut Razem <borut.razem AT siol.net>
1107
1108         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
1109
1110 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1111
1112         * doc/sdccman.lyx: updated, added (porting source code, debugging),
1113         mentioned ec2drv and paulmon
1114
1115 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
1116
1117         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
1118           consecutive abs areas
1119           (find_empty_space, allocate_space): added map to handle codemap or
1120            xdatamap,
1121           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
1122            absolute idata and xdata
1123         * as/mcs51/lkmem.c (summary2): updated legend
1124
1125 2006-06-16 Raphael Neider <rneider AT web.de>
1126
1127         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
1128
1129 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
1130
1131         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
1132           1208515
1133         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
1134
1135 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
1136
1137         * src/port.h (struct PORT): added field gp_tags, to hold the tag
1138         value of generic pointers,
1139         * src/avr/main.c,
1140           src/ds390/main.c,
1141           src/hc08/main.c,
1142           src/izt/i186.c,
1143           src/izt/tlcs900h.c,
1144           src/mcs51/main.c,
1145           src/pic/main.c,
1146           src/pic16/main.c,
1147           src/xa51/main.c,
1148           src/z80/main.c: PORT structure, added elements for gp_tags field,
1149         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
1150         fields in the PORT structure of each port,
1151         * src/SDCCast.c (decorateType): allow processing of generic pointers
1152         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
1153         S_FIXED symbols
1154
1155 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
1156
1157         * link/z80/lkgb.c,
1158         * link/z80/lkgg.c,
1159         * src/pic16/gen.c,
1160         * src/pic16/main.c,
1161         * src/pic16/pcode.c,
1162         * src/pic/main.c,
1163         * src/pic/pcoderegs.c,
1164         * src/SDCCicode.c,
1165         * src/SDCCmain.c,
1166         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
1167           bug 1504689 on minGW
1168
1169 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1170
1171         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
1172
1173 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
1174
1175         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
1176
1177 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
1178
1179         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
1180           for optimization
1181
1182 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
1183
1184         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
1185         to a char variable. Fixed bug #1504211
1186         * device/include/pic16/adc.h,
1187         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
1188         and fixed bug #1364390
1189
1190 2006-06-10 Borut Razem <borut.razem AT siol.net>
1191
1192         * CVSROOT: removed the CVS left-over
1193
1194 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1195
1196         * as/hc08/asmain.c (asexit),
1197         * as/hc08/lkmain.c (lkexit),
1198         * as/mcs51/asmain.c (asexit),
1199         * as/mcs51/lkmain.c (lkexit),
1200         * src/SDCCglue.c (DEFSETFUNC),
1201         * src/SDCCmain.c (linkEdit, assemble),
1202         * support/librarian/sdcclib.c (AddRel),
1203           replaced unlink() by standard C remove()
1204         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
1205         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
1206           gatherImplicitVariables): new, added to fix bug 608752,
1207           (createFunction): added gatherImplicitVariables()
1208         * src/SDCCast.h: added createRMW prototype
1209         * src/SDCCsymt.h (struct symbol): added infertype
1210         * support/regression/tests/bug608752.c: new, added
1211
1212 2006-06-10 Raphael Neider <rneider AT web.de>
1213
1214         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
1215           multibyte dummy reads (fixes #1503234)
1216
1217 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1218
1219         * device/include/mcs51/compiler.h: new, added header file to enable
1220           creating common sfr definition header files for different compilers
1221
1222 2006-06-05 Raphael Neider <rneider AT web.de>
1223
1224         * src/pic16/{pcode.h,genarith.c}:
1225           introduced pCodeOp combining any two pCodeOps (previously only
1226           two register operands could be combined), removed pcop2 from
1227           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
1228         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
1229         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
1230           rewritten to use new PO_TWO_OPS
1231         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
1232         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
1233           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
1234           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
1235           (pic16_get_op): embraced return arg to allow #define return(x),
1236             added new case for combined opcodes
1237           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
1238           (pic16_pCode2str,pic16_getRegFrompCodeOp,
1239            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
1240
1241 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
1242
1243         * src/SDCCval.c (checkConstantRange): added
1244         * src/SDCCval.h: added checkConstantRange
1245         * support/Util/SDCCerr.c,
1246         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
1247         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
1248         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
1249         * src/SDCCast.c (decorateType): added checkConstantRange,
1250         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
1251         can be emitted with the correct always true/false warning,
1252         added optimization for double '!';
1253         result of decorateType() must be assigned back to the tree, because
1254         decorateType() can change the tree
1255         * src/SDCCicode.c (geniCodeLogic),
1256         (geniCodeAssign): replaced new checkConstantRange, added warnings,
1257         (checkConstantRange): removed, it was only a fragment which never
1258         emitted a warning
1259         * src/SDCCsymt.c (computeType): fixed promotion for
1260         "-1 < (unsigned bit) b"
1261         * src/pic/ralloc.c (packRegsForAssign),
1262         * src/pic16/ralloc.c (packRegsForAssign),
1263         * src/hc08/ralloc.c (packRegsForAssign),
1264         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
1265         from mcs51
1266         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
1267         * support/regression/tests/constantRange.c: added
1268         * support/valdiag/tests/constantRange.c: added
1269         * support/valdiag/valdiag.py: added -DPORT_HOST=1
1270
1271 2006-06-02 Borut Razem <borut.razem AT siol.net>
1272
1273         * support/regression/ports/pic16/support.c: increase stack size
1274           to 255 bytes
1275         * support/regression/Makefile.in: sort tests by name so that the
1276           resutlts can be compared on different machines / platforms
1277
1278 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1279
1280         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
1281         * src/ds390/gen.c (emitLabel): new, added,
1282           (genDjnz): fixed stack overflow bug,
1283           (throughout): cosmetic changes to sync with mcs51/gen.c,
1284           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
1285         * src/mcs51/gen.c (genEndFunction): small optimization,
1286           (throughout): cosmetic changes to sync with ds390/gen.c
1287
1288 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1289
1290         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
1291           (_print_format): fixed printing pointers
1292         * src/mcs51/gen.c (emitLabel, movb): new, added,
1293           (genAssign): small optimization,
1294           (genDjnz): fixed stack overflow bug,
1295           (throughout): replaced sprintf with SNPRINTF,
1296           replaced mcs51_regWithIdx with REG_WITH_INDEX,
1297           replaced emitcode("mov", "b,...") with MOVB(...),
1298           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
1299           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1300         * src/mcs51/peeph.def: added rules 140 and 264
1301         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
1302           so they may get optimized into registers
1303
1304 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
1305
1306         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
1307           immediately when encountered,
1308           (printUsage): always use stderr even on windows
1309
1310 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
1311
1312         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
1313         (processParms): fixed bug #1247551
1314         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
1315         parseCmdLine, main): print '--version' to stdout,
1316         print 'help' to stdout if --help is given,
1317         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
1318         arguments are given; fixed --help
1319
1320 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
1321
1322         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
1323         * support/regression/tests/bug-1493710.c: added
1324
1325 2006-05-27 Borut Razem <borut.razem AT siol.net>
1326
1327         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
1328           static instead auto
1329         * support/regression/ports/pic16/support.c: increase stack size
1330           from default 64 bytes to 128 bytes
1331         * support/regression/tests/staticinit.c,
1332           support/regression/tests/float.c: regression tests fully enabled
1333           for pic16 port by putting the initialized data arrays into the code
1334           section
1335         * support/regression/ports/pic16/spec.mk: don't link default libraries.
1336           This was changed by mistake in the previous version.
1337
1338 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
1339
1340         * src/pic16/gen.c (genFunction, genEndFunction): some
1341         beautifications, fixed bug with falsely restoring FSR2 in large
1342         stack model, thanks to Beau E. Cox for reporting the bug
1343
1344 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1345
1346         * debugger/mcs51/break.c,
1347         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
1348           use %p to print pointers, made address variables unsigned
1349         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
1350         * debugger/mcs51/symtab.c (parseSymbol): must return something
1351         * src/mcs51/gen.c (aopForSym): small optimization,
1352            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
1353           (freeAsmop): added missing break,
1354           (aopPut): removed parameter bvolatile, determine it inside the function,
1355           (saveRegisters, unsaveRegisters): small optimization,
1356           (genIpush): removed pointless check,
1357           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
1358           replaced sprintf with SNPRINTF,
1359           replaced strcpy with strncpyz,
1360           updated aopPut calls,
1361           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1362         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
1363
1364 2006-05-24 Borut Razem <borut.razem AT siol.net>
1365
1366         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
1367           modification of test for the pic16 port, put the array to the code
1368           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
1369
1370 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1371
1372         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
1373         * support/Util/pstdint.h: added
1374
1375 2006-05-22 Borut Razem <borut.razem AT siol.net>
1376
1377         * src/regression/Makefile: removed bool2.c test, added -q linker option
1378         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
1379           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
1380           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
1381           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
1382           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
1383           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
1384           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
1385           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
1386           define SUPPORT_BIT_TYPES 0, removed unused bit variables
1387
1388 2006-05-22 Raphael Neider <rneider AT web.de>
1389
1390         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
1391           bug #1492360 (problematic due to generic pointers, see code)
1392
1393 2006-05-22 Borut Razem <borut.razem AT siol.net>
1394
1395         * support/regression/ports/pic16/specs.mk: removed stack size linker
1396           directive
1397         * support/regression/tests/array.c,
1398           support/regression/tests/bitopcse.c,
1399           support/regression/tests/bug-908454.c,
1400           support/regression/tests/malloc.c: modified for pic16 regression test
1401         * support/regression/tests/bitfields.c:
1402           pic16 - excluded bitfileds of size > 8
1403         * support/regression/tests/bp.c: pic16 - reduced data size
1404         * support/regression/tests/bug-221100.c: pic16 - reduced data size
1405         * support/regression/tests/bug-460010.c:
1406           pic16 - used the absolute address the fits in memory
1407         * support/regression/tests/bug-716242.c:
1408           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
1409         * support/regression/tests/float.c:
1410           pic16 - excluded - data size too big
1411         * support/regression/tests/onebyte.c:
1412           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
1413         * support/regression/tests/shifts.c:
1414           pic16 - function names probably have to differ in first X characters
1415           (gpasm limitation?)
1416         * support/regression/tests/staticinit.c:
1417           pic16 - excluded some tests due error: no target memory available for
1418           section ".idata"
1419
1420 2006-05-22 Borut Razem <borut.razem AT siol.net>
1421
1422         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1423           second try. Thanks Stas Sergeev once more.
1424
1425 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1426
1427         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
1428           (genLeftShift, genRightShift): fixed bug 1491627
1429         * src/hc08/peeph.def (rules 7, 8.x): added
1430         * support/regression/tests/shifts.c (ShiftLeftByParam,
1431           ShiftRightByParam, testShiftByParam): added to test variable shifting
1432
1433 2006-05-20 Raphael Neider <rneider AT web.de>
1434
1435         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
1436         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
1437           (allocReg): add only new registers to dynAllocRegs,
1438           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
1439             #1489055, #1445850, and probably #1483693
1440
1441 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
1442
1443         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
1444         bug in for-loop that didn't emit the last of CONFIG and ID registers
1445
1446 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
1447
1448         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
1449           with offset
1450         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
1451           1489016, 1434401 and 1490124
1452         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
1453           1489016, 1434401 and 1490124
1454
1455 2006-05-17 Borut Razem <borut.razem AT siol.net>
1456
1457         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1458           thanks Stas Sergeev
1459
1460 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1461
1462         * device/include/mcs51/P89c51RD2.h,
1463         * device/include/mcs51/P89LPC901.h,
1464         * device/include/mcs51/P89LPC922.h,
1465         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
1466
1467 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1468
1469         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
1470         to fix missing stack pragma in compiled binary object file,
1471
1472 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
1473
1474         * support/packihx/configure.in,
1475         * support/packihx/configure: removed warning, autoconf >= 2.5x can
1476         determine sizeof basic types even while cross compiling
1477
1478 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
1479
1480         * src/avr/gen.c (aopop),
1481         * src/ds390/gen.c (aopOp),
1482         * src/hc08/gen.c (aopOp),
1483         * src/mcs51/gen.c (aopop),
1484         * src/pic16/gen.c (pic16_aopOp),
1485         * src/pic/gen.c (aopOp),
1486         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
1487         if size of operand is smaller than spill location
1488
1489 2006-05-12 Borut Razem <borut.razem AT siol.net>
1490
1491         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
1492           have to have CR/LF line endings even if they are checked out on *nix
1493           or on WIN32 in cygwin binmode
1494
1495 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
1496
1497         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
1498         * device/include/ds80c390.h: added sfr16 definitions
1499         * src/ds390/gen.c,
1500         * src/ds390/gen.h,
1501         * src/ds390/main.c,
1502         * src/ds390/ralloc.c,
1503         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
1504           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
1505           bit returning functions
1506         * support/regression/tests/sfr16.c: enabled test on ds390
1507
1508 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1509
1510         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
1511         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
1512
1513 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1514
1515         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
1516         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
1517           (cl_address_space constructor): removed expensive initialization,
1518           (cl_address_space::get_cell): extended for late initialization,
1519           (cl_address_space::*): use late initialization,
1520           (cl_address_decoder::activate): removed expensive initialization,
1521           This reduced regression test running time by 25%
1522
1523 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
1524
1525         * packihx/,
1526         * configure.in,
1527         * configure,
1528         * sdcc.dsw,
1529         * Makefile.bcc,
1530         * Makefile.in,
1531         * support/packihx/Makefile.in,
1532         * support/packihx/clean.mk,
1533         * support/packihx/Makefile.bcc,
1534         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
1535
1536 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1537
1538         * src/SDCCval.c (valNot): fix for regression test failure
1539           of not.c on big endian hosts
1540
1541 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1542
1543         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
1544
1545 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1546
1547         * device/lib/mcs51/Makefile.in: changed string comparison operator
1548           to = for POSIX compliance; == is bash extension
1549
1550 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1551
1552         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
1553           kosmonaut_pirx
1554
1555 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
1556
1557         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
1558         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
1559         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
1560         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
1561         bug report #1478657,
1562
1563 2006-05-05 Borut Razem <borut.razem AT siol.net>
1564
1565         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
1566           making the html
1567
1568 2006-05-02 Borut Razem <borut.razem AT siol.net>
1569
1570         * doc/Makefile.in: removed *.ind dependency since there is no rule to
1571           create *.ind, which made make to fail if invoked with -j 2
1572
1573 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
1574
1575         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
1576           Hubert Sack for patch 1479782
1577
1578 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
1579
1580         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
1581
1582 2006-05-01 Raphael Neider <rneider AT web.de>
1583
1584         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
1585           (create_pic): store only prefix-free device name,
1586           (init_pic): check for device names with "16" prefix,
1587           (list_valid_pics),
1588         * src/pic/device.h (struct PIC_device),
1589         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
1590             stored device name,
1591         * device/include/pic/pic12f{635,675,629,683}.h,
1592         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
1593         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
1594         * device/include/pic/pic16f505.h,
1595         * device/lib/pic/libdev/pic16f505.c: removed
1596         * device/include/pic/pic14devices.txt: added support for pic12f
1597             devices, removed unsupported non 16-bit devices
1598             [above changes provided by patch from Zik Saleeba]
1599         * src/pic/*, src/pic16/*, device/include/pic16/*,
1600           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
1601
1602 2006-05-01 Borut Razem <borut.razem AT siol.net>
1603
1604         * configure.in, configure, doc/Makefile.in:
1605           sync with nightly build makefile - latex, dvipdf and dvips
1606           not needed any more
1607
1608 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
1609
1610         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
1611         in the library source
1612
1613 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
1614
1615         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
1616
1617 2006-04-28 Raphael Neider <rneider AT web.de>
1618
1619         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
1620         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
1621           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
1622         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
1623
1624 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
1625
1626         * device/lib/pic/libdev/Makefile.in,
1627         * device/lib/hc08/Makefile.in,
1628         * device/lib/gbz80/Makefile.in,
1629         * device/lib/z80/Makefile.in,
1630         * device/lib/ds390/Makefile.in,
1631         * device/lib/ds400/Makefile.in: added srcdir to include search path,
1632         thanks to Borut for the bug report
1633         * configure.in,
1634         * configure: always create doc/Makefile independent from --enable-doc
1635         * Makefile.in: always install from directory doc independent from
1636         --enable-doc
1637         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
1638         removed
1639         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
1640         * doc/Makefile.in: install *.txt if present
1641         * device/include/Makefile.in (install): added installation of pic/*.inc
1642         and pic/*.txt files again, they were erroneously removed
1643
1644 2006-04-28 Raphael Neider <rneider AT web.de>
1645
1646         * src/pic/{gen.c,main.h,pcode.c},
1647         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
1648             concerning signedness with casts
1649
1650 2006-04-28 Raphael Neider <rneider AT web.de>
1651
1652         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
1653             definition of an interrupt handler,
1654         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
1655             interrupt handler stuff from picglue() to separate routine,
1656           (picglue): enabled definition of intr handlers in files w/o main()
1657
1658 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1659
1660         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
1661           compilation with MSVC 2005 Express Edition (VC8)
1662
1663 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
1664
1665         * device/lib/Makefile: fixed build of gbz80 lib
1666
1667 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1668
1669         * support/regression/tests/bug-460010.c,
1670         * support/regression/tests/bug-524691.c,
1671         * support/regression/tests/bug-716242.c: removed conditional defines
1672           that are already in testfwk.h
1673
1674 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1675
1676         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
1677           (AccAXRsh1): added, shift right by 1,
1678           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
1679            AccAXLrl1
1680         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
1681
1682 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
1683
1684         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
1685         remove cast to same type
1686         * src/SDCCast.c (decorateType): fix for RFE 1475742,
1687         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
1688         * as/z80/Makefile,
1689         * link/z80/Makefile: removed, they have moved to
1690         Makefile.in files
1691         * configure,
1692         * configure.in: replaced duplicate message about ucsim by missing sdcpp
1693         * install-sh: fix bug #1204398 by setting umask 0022
1694         * device/lib/Makefile: separate build of z80 and gbz80 lib
1695
1696 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
1697
1698         Enabled VPATH feature: changed nearly all Makefiles (149 files).
1699         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
1700
1701         One basic decision: e.g. src/clean.mk includes further files. In order
1702         to make this work there are two solutions:
1703         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
1704           run configure on them. This way they can use
1705           'include $(srcdir)/port-clean.mk'
1706         - always include clean.mk by the Makefile at the same level. To avoid
1707           that `make clean` tries to include and build Makefile.dep the
1708           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
1709           implemented, because now even `make uninstall` doesn't create
1710           Makefile.in. clean.mk could be eliminated by pasting it in
1711           Makefile.in.
1712
1713         * debugger/mcs51/Makefile.in: build own objects from library sources
1714         (SLIB, SDCC) in current directory
1715
1716         * configure, configure.in: renamed --disable-device-lib-build in
1717         --disable-device-lib; added --enable-doc, the required tools are
1718         searched by configure; added result message; the toolchain for the
1719         belonging ports are now only built, if the port is enabled.
1720
1721         * support/regression/*: all output is written in directory gen, because
1722         the fwk and ports directories don't livet in the build tree using vpath
1723
1724         * doc/sdccman.lyx: renamed --disable-device-lib-build to
1725         --disable-device-lib, added --enable-doc, added section VPATH
1726
1727         * sim/ucsim/configure.in,
1728         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
1729         z80 are enabled by default
1730
1731 2006-04-24 Raphael Neider <rneider AT web.de>
1732
1733         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
1734             to config word, "pic14_"-prefixed some extern functions
1735           (pic14_emitConfigWord): emit __config directive(s) if assignment to
1736             config word has been found
1737         * src/pic/device.h: added prototypes
1738         * src/pic/pcode.c: added "pic14_"-prefix where needed
1739         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
1740             fixup
1741         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
1742             words,
1743           (pic14emitRegularMap): ignore config words,
1744           (pic14createInterruptVect): moved generating __config directives away
1745           (picglue): have __config directives emitted
1746
1747 2006-04-24 Borut Razem <borut.razem AT siol.net>
1748
1749         * doc/Makefile: sync with nightly build makefile
1750
1751 2006-04-24 Raphael Neider <rneider AT web.de>
1752
1753         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
1754             registers that have not been assigned proper liveranges,
1755             fixes #1469504 and #1474602,
1756           (pCodeRegOptimizeRegUsage): fixed typo in comment
1757
1758 2006-04-24 Borut Razem <borut.razem AT siol.net>
1759
1760         * device/examples/main8051.c: deleted - it was removed from CVS
1761           24.mar.2000 and after that modified 18.feb.2001, so it reappered
1762           after the transition to Subversion
1763         * src/SDCCalloc.h: deleted - it was removed  from CVS
1764           3.feb.2001 and after that modified 18.feb.2001, so it reappered
1765           after the transition to Subversion
1766         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
1767           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
1768           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
1769           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
1770
1771 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
1772
1773         * as/asx8051.dsp: added mcs51/strcmpi.h
1774         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
1775         * as/hc08/aslink.h: updated lnksect prototype
1776         * as/hc08/asm.h,
1777         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
1778         * as/hc08/asmain.c,
1779         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
1780           (newdot): handle A_ABS
1781         * as/hc08/asout.c,
1782         * as/mcs51/asout.c (outarea): output address
1783         * as/hc08/lkaomf51.c,
1784         * as/mcs51/lkaomf51.c: disabled unused array UsageType
1785         * as/hc08/m08pst.c,
1786         * as/mcs51/i51pst.c,
1787         * as/z80/z80pst.c: "ABS" is not A_OVR
1788         * as/hc08/lkarea.c (newarea): read a_addr,
1789           (lnkarea): added codemap array, sort absolute areas to the front,
1790            combine all GSINITx/GSFINAL,
1791           (find_empty_space, allocate_space): new functions,
1792           (lnksect): return next address, handle absolute sections
1793         * as/mcs51/lkarea.c (newarea): read a_addr,
1794           lnksect2 prototype changed,
1795           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
1796           (find_empty_space, allocate_space): new, factored out of lnksect2,
1797           (lnksect2): return next address, handle absolute sections
1798         * as/hc08/lkhead.c,
1799         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
1800         * as/hc08/lklibr.c (addfile, fndsym),
1801         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
1802           index out of range and detect both '\' and '/'
1803         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
1804         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
1805           regression tests (ds390 cannot return bool yet)
1806         * doc/sdccman.lyx: changed version number, document changed --no-peep,
1807           document critical interrupts on z80, document changed SDCC define
1808         * src/asm.c (_asxxxx_mapping): fixed .org directive,
1809           (_a390_mapping): added .org directive
1810         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
1811           (genMultOneByte): fixed warnings
1812         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
1813           ones
1814         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
1815         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
1816           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
1817         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
1818         * src/pic16/main.c: removed newReg prototype
1819         * src/pic16/pcode.c,
1820         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
1821           warnings
1822         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
1823           ones
1824         * src/pic16/ralloc.c
1825         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
1826           to fix warnings
1827         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
1828           from short to PIC_OPTYPE
1829         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
1830         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
1831           optype from short to PIC_OPTYPE
1832         * src/port.h: made int_size unsigned to fix warnings
1833         * src/SDCC.y: fixed warning on MSVC
1834         * src/SDCCicode.c (getArraySizePtr): return unsigned int
1835         * src/SDCCopt.c (convertToFcall): fixed warnings
1836         * src/SDCCsymt.h: removed double prototype for genSymName
1837         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
1838           offset int to fix warnings
1839
1840 2006-04-22 Borut Razem <borut.razem AT siol.net>
1841
1842         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1843           references to CVS replaced with Subversion
1844
1845 2006-04-21 Borut Razem <borut.razem AT siol.net>
1846
1847         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1848           references to CVS replaced with Subversion
1849
1850 2006-04-19 Borut Razem <borut.razem AT siol.net>
1851
1852         * src/version.awk: adapted for svn
1853         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
1854           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
1855           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
1856           /binutils-avr/etc/*.vi, *.jin: removed all properties
1857           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
1858
1859 2006-04-19 Borut Razem <borut.razem AT siol.net>
1860
1861         * CVS to Subversion migration completed
1862
1863 2006-04-18 Borut Razem <borut.razem AT siol.net>
1864
1865         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
1866           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
1867
1868 2006-04-17 Borut Razem <borut.razem AT siol.net>
1869
1870         * device/include/Makefile.in: added pic/*.inc to the installation
1871
1872 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
1873
1874         * support/regression/collate-results.py: fixed output in case of
1875         a valdiag error
1876         * support/regression/generate-cases.py: fixed splitting of pathnames
1877         with dots
1878         * as/hc08/lklibr.c (addfile),
1879         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
1880
1881 2006-04-11 Raphael Neider <rneider AT web.de>
1882
1883         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
1884         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
1885         * src/pic16/pcode.c (assignValnums): fixed #1460578
1886
1887 2006-04-11 Raphael Neider <rneider AT web.de>
1888
1889         * device/lib/pic/libdev/*.c,
1890         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
1891           fixes #1468739, enables compilation in --std-c99 mode
1892         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
1893
1894 2006-04-11 Raphael Neider <rneider AT web.de>
1895
1896         * src/pic/device.c (find_device): removed debug output
1897           (list_valid_pics): enabled verbose listing of supported devices
1898         * device/include/stdbool.h: define bool as char for pic14/16 as well
1899
1900 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1901
1902         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
1903
1904 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1905
1906         * .version: bumped version to 2.5.6
1907         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
1908
1909 2006-04-06 Raphael Neider <rneider AT web.de>
1910
1911         * .version: bumped version to 2.5.6 (pic14 ABI changed)
1912         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
1913         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
1914           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
1915             pic14_constructAbsMap
1916           (pic14printPublics): declare absolute global symbols as global
1917           (pic14createInterruptVect),
1918         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
1919           (newReg): assume new registers unused, use correct name in
1920             hashtable (reg->name instead of name), more debugLog output
1921         * src/pic/device.h (PIC_device): added fields for verbose output
1922         * src/pic/device.c: moved device definition to pic14devices.txt,
1923             added routines for runtime parsing of pic14devices.txt,
1924             added support for second config word
1925         * src/pic/main.c (_process_pragma): removed #pragma maxram,
1926           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
1927           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
1928           (_pic14_parseOptions): moved pCodeInitRegisters here
1929           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
1930         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
1931           (pCodeInitRegisters): rewrapped comments, perpared new approach to
1932             handling the pseudo stack
1933         * device/lib/Makefile.in: ignore failures in objects-pic16,
1934         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
1935         * device/lib/pic/NEWS: document new dependency on picXXX.lib
1936         * device/lib/pic/Makefile.subdir,
1937         * device/lib/pic16/Makefile.subdir: improved clean rules
1938         * device/lib/pic/libdev/: NEW, pic14 device libraries
1939         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
1940         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
1941         * device/include/Makefile.in: create subdir and install pic14 headers
1942         * device/include/pic/p16f_common.inc: removed unused declarations
1943         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
1944             PICs from inc2h.pl v1.6,
1945             replaced BIT_AT macros with struct declarations
1946         * device/include/pic/pic14devices.txt: definition of supported devices,
1947             all above improvements contributed by Zik Saleeba, thanks
1948         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
1949         * support/scripts/sdcc.nsi: also install pic14 device libraries and
1950             headers
1951
1952 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1953
1954         * device/include/mcs51/c8051f410.h: added interrupt numbers,
1955         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
1956           thanks to Charles Olds
1957
1958 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1959
1960         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
1961
1962 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1963
1964         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
1965         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
1966         * support/regression/bug1464657.c: added, new test
1967
1968 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1969
1970         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
1971           version number
1972
1973 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1974
1975         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
1976           --no-peep and --peep-file <file> are used don't use default rules but
1977           do use the <file>
1978
1979 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1980
1981         * src/mcs51/gen.c (genCall): fixed bug 1457608
1982
1983 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1984
1985         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
1986         changes seem to cause (trigger?) problems with the build system.
1987
1988 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
1989
1990         * src/SDCCpeeph.c (operandsLiteral): new, added,
1991           (callFuncByName): inserted operandsLiteral
1992         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
1993
1994 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1995
1996         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
1997         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
1998
1999 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
2000
2001         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
2002           implemented patch 1120823 Thanks to Willy De la Court (normal
2003           interrupts need an interrupt number now if they are made critical),
2004           and enabled nesting of critical functions though not for gbz80
2005           (genCritical, genEndCritical): added functions
2006           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
2007         * src/z80/mappings.i: added "ei" to all mappings
2008
2009 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2010
2011         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
2012         submitted by the Debian SDCC maintainer Aurelien Jarno:
2013         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
2014         archive with gcc 4.1 on mips and wrote the patch"
2015
2016 2006-03-16 Raphael Neider <rneider AT web.de>
2017
2018         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
2019           the left operand is shorter than the result (c* = lit-c* + int),
2020           fixes bug #1450796
2021         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
2022           OP_SYMBOL
2023
2024 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
2025
2026         * src/.version: increased version number to 2.5.5
2027         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
2028         linking is done manually in pic16 port's _linkEdit,
2029         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
2030         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
2031         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
2032         allocate asmop as AOP_ACC,
2033         (aopForRemat): added parameter 'bool result' in function declaration,
2034         (pic16_aopGet): return AOP_ACC when accessing WREG,
2035         (pic16_popGetTempReg): minor modification,
2036         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
2037         'pic16_allocWithIdx',
2038         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
2039         calling function in absolute addresses,
2040         (genAssign): take into account AOP_ACC asmop,
2041         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
2042         * src/pic16/pcoderegs.c: some debug functions and lines added,
2043         * src/pic16/ralloc.c (decodeRegType): added but commented out,
2044         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
2045         register too,
2046         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
2047         call to allocReg, not by manually allocating a new one,
2048         (pic16_assignRegisters): now before going through the register
2049         allocating functions mark all registers as free. This eliminates some
2050         side effects resulting from peephole parser done earlier in the backbone
2051
2052 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
2053
2054         * src/SDCCicode.c (geniCodeLogic),
2055         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
2056
2057 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
2058
2059         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
2060           (genSend): bugfix, do not allocate and free twice,
2061           (shiftRLong): handle partially overlapping aops
2062         * support/regression/tests/bitopcse.c: fixed warning redefined idata
2063
2064 2006-03-08 Borut Razem <borut.razem AT siol.net>
2065
2066         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
2067           for pic16
2068
2069 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
2070
2071         * support/regression/tests/bug1409955.c: new, added
2072         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
2073         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
2074           (aopForSym, aopOp): increment asmop.allocated if reused,
2075           (freeAsmop): decrement asmop.allocated and check for zero instead of
2076           using asmop.freed,
2077           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
2078           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
2079            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
2080            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
2081            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
2082            genSignedRightShift, genRightShift, genDataPointerGet,
2083            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
2084            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
2085             in reverse order from allocation,
2086           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
2087             added swappedLR to keep track
2088         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
2089           pdata & code for GCC, z80, gbz80 & hc08
2090         * support/regression/tests/zeropad.c: moved defines to testfwk.h
2091
2092 2006-03-08 Raphael Neider <rneider AT web.de>
2093
2094         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
2095
2096 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
2097
2098         * device/include/mcs51/c8051f410.h: new SiLabs mcu
2099         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
2100         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
2101
2102 2006-03-06 Borut Razem <borut.razem AT siol.net>
2103
2104         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
2105           made the linker quiet
2106
2107 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
2108
2109         * src/pic16/gen.c (genPcall): fixed bug #1443644
2110         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
2111         which dumps before the function entry point a data byte which represents
2112         the number of the local variables used by the specified function, added
2113         'xinst' for initial support for Extended Instruction Support,
2114         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
2115         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
2116         port->fun_prefix anymore (may change later),
2117         (genFunction, genEndFunction): do not store/restore local registers for
2118         _main (this should take care the --main-return command line option in
2119         the future),
2120         (genOr): removed some legacy pic-port instructions,
2121         * src/pic16/genarith.c (genAddLit): re-enabled old code because
2122         performing operations with SFR's causes data to be written more than
2123         once to each SFR. Perhaps SFRs should be handled in special cases...
2124         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
2125         pcode.h
2126         * src/pic16/main.c (_process_pragma): stack bound checking did not take
2127         into account for stack starting position,
2128         (struct OPTIONS pic16_optionsTable): added command line argument
2129         --extended or -y for Extended Instruction Support,
2130         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
2131         (deassignLRs): *** perhaps the most important change, old 'for' code
2132         (commented out for reference), didn't account for some registers which
2133         were left marked 'not free' after a pointer operation. The change
2134         reduces register usage a lot in some cases
2135
2136 2006-03-04 Borut Razem <borut.razem AT siol.net>
2137
2138         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
2139           _clean
2140         * support/regression/tests/bug-524697.c: decreased array size for
2141           mcs51 to fit into the internal RAM
2142         * support/regression/Makefile.in: a little bit more verbose
2143
2144 2006-03-03 Borut Razem <borut.razem AT siol.net>
2145
2146         * support/regression/fwk/lib/testfwk.c,
2147           support/regression/fwk/include/testfwk.h: introduced function
2148           _prints(), nonrecursive _printn(), call _initEmu() from main()
2149         * support/regression/ports/gbz80/support.asm,
2150           support/regression/ports/ucz80/support.asm,
2151           support/regression/ports/z80/support.asm,
2152           support/regression/ports/ds390/support.c,
2153           support/regression/ports/hc08/support.c,
2154           support/regression/ports/host/support.c,
2155           support/regression/ports/mcs51/support.c,
2156           support/regression/ports/xa51/support.c: added empty _initEmu()
2157           function
2158         * support/regression/ports/pic16/gpsim.cmd,
2159           support/regression/ports/pic16/spec.mk,
2160           support/regression/ports/pic16/support.c,
2161           support/regression/Makefile.in: added pic16 regression test
2162
2163 2006-03-01 Raphael Neider <rneider AT web.de>
2164
2165         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
2166           genConstPointerGet): use safe way of generating MOVFF to cover
2167             literals as well as registers, fixes bug #1440527
2168         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
2169             dereference
2170           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
2171             more correctly, fixes bug #1232186
2172           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
2173         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
2174             gplink guess the correct processor in more cases, applied patch
2175             from Till Riedel attached to and fixing bug #1436552
2176
2177 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2178
2179         * support/regression/tests/array.c: added, contains check for #1434401
2180         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
2181
2182 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
2183
2184         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
2185         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
2186         * device/include/mcs51/c8051f326.h,
2187         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
2188         * device/include/mcs51/c8051f000.h,
2189         * device/include/mcs51/c8051f018.h,
2190         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
2191           PCON_IDLE,PCON_STOP and added sfr16 definitions
2192
2193 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2194
2195         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
2196           genGetWord): fixed bug 1409955
2197
2198 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2199
2200         * device/include/hc08/mc68hc908gp32.h,
2201         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
2202
2203 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
2204
2205         * src/SDCCast.c (constExprValue): return NULL if not a value
2206         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
2207         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
2208         * support/regression/tests/bitfields.c: enabled signed bitfield for all
2209
2210 2006-02-13 Borut Razem <borut.razem AT siol.net>
2211
2212         * src/regression/ptrarg.c: added, fails due to bug #1430967
2213         * src/regression/Makefile: ptrarg.c added, ...
2214
2215 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2216
2217         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
2218         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
2219
2220 2006-02-11 Borut Razem <borut.razem AT siol.net>
2221
2222         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
2223           print "Processor: xxx" message to stdout only if --verbose
2224
2225 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2226
2227         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
2228         * support/regression/tests/bug1426356.c: added
2229         * support/regression/tests/bitfields.c: removed 2 tests
2230
2231 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2232
2233         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
2234         * device/include/mcs51/c8051f330.h,
2235         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
2236           PCON_IDLE,PCON_STOP and added sfr16 definitions
2237         * device/lib/_divsint.c,
2238         * device/lib/_divuint.c,
2239         * device/lib/_divulong.c,
2240         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
2241           register bank bug for small stackauto
2242
2243 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2244
2245         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
2246
2247 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
2248
2249         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
2250         * all.dsp: corrected several bin paths
2251         * device/include/mcs51/c8051f120.h,
2252         * device/include/mcs51/c8051f300.h,
2253         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
2254           to PCON_IDLE,PCON_STOP
2255         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
2256         * device/lib/printf_large.c (output_float): fixed bug 1388703
2257         * support/regression/tests/bug1057979.c: added test for bug 1388703
2258
2259 2006-02-08 Raphael Neider <rneider AT web.de>
2260
2261         * src/pic/pcode.c (pciTRIS): fixed typo,
2262           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
2263           (LinkFlow): fixed handling of flows that end in a call,
2264           (ReuseReg): perform safety check earlier
2265         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
2266             to work with flows at the beginning of a pBlock,
2267             fixes #1426557 (Symbol not previously defined),
2268           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
2269             usage information
2270           (RemoveUnusedRegisters): update register usage info
2271         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
2272             created, reuse existing ones instead
2273         * src/pic/gen.c (genPcall): fixed #1424719
2274
2275 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
2276
2277         * link/z80/lkmain.c,
2278         * link/z80/lklex.c,
2279         * link/z80/lkdata.c,
2280         * link/z80/aslink.h: fixed build on current cygwin:
2281         replaced getline() by lk_getline()
2282
2283 2006-02-01 Borut Razem <borut.razem AT siol.net>
2284
2285         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
2286           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
2287           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
2288           src/regression/bool1.c, src/regression/bool2.c,
2289           src/regression/bool3.c, src/regression/call1.c,
2290           src/regression/compare.c, src/regression/compare10.c,
2291           src/regression/compare2.c, src/regression/compare3.c,
2292           src/regression/compare4.c, src/regression/compare5.c,
2293           src/regression/compare6.c, src/regression/compare7.c,
2294           src/regression/compare8.c, src/regression/compare9.c,
2295           src/regression/configword.c, src/regression/for.c,
2296           src/regression/inline.c, src/regression/mult1.c,
2297           src/regression/nestfor.c, src/regression/or1.c,
2298           src/regression/pointer1.c, src/regression/ptrfunc.c,
2299           src/regression/rotate1.c, src/regression/rotate2.c,
2300           src/regression/rotate3.c, src/regression/rotate4.c,
2301           src/regression/rotate5.c, src/regression/rotate6.c,
2302           src/regression/rotate7.c, src/regression/string1.c,
2303           src/regression/struct1.c, src/regression/sub.c,
2304           src/regression/sub2.c, src/regression/switch1.c,
2305           src/regression/while.c, src/regression/xor.c,
2306           src/regression/create_stc, src/regression/simulate,
2307           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
2308           regression tests
2309         * src/regression/gpsim_assert.h: added
2310
2311 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
2312
2313         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
2314         ((void (code *) (void)) 0) ();
2315         * as/hc08/aslex.c,
2316         * as/hc08/aslink.h,
2317         * as/hc08/asm.h,
2318         * as/hc08/asmain.c,
2319         * as/hc08/lkdata.c,
2320         * as/hc08/lklex.c,
2321         * as/hc08/lkmain.c,
2322         * as/mcs51/aslex.c,
2323         * as/mcs51/aslink.h,
2324         * as/mcs51/asm.h,
2325         * as/mcs51/asmain.c,
2326         * as/mcs51/lkdata.c,
2327         * as/mcs51/lklex.c,
2328         * as/mcs51/lkmain.c,
2329         * as/z80/aslex.c,
2330         * as/z80/asm.h,
2331         * as/z80/asmain.c: fixed build on current cygwin:
2332         replaced getline() by as_getline()
2333
2334 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
2335
2336         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
2337         declarator in the symbol chain
2338         * src/SDCCsymt.h,
2339         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
2340         parameter list for function pointers
2341         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
2342         * support/regression/tests/bug-716242.c: added
2343
2344 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
2345
2346         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
2347         offset if possible
2348         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
2349
2350 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
2351
2352         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
2353         inifinitely recurseable, added static
2354         * support/regression/tests/bug-1408066.c: added
2355
2356 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
2357
2358         * src/SDCCicode.h,
2359         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
2360         renamed, added possibility to create "postLoopLbl"-labels
2361         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
2362         newiTempLoopHeaderLabel
2363         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
2364         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
2365         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
2366         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
2367         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
2368         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
2369         (basicInduction): fixed bug #136564, made static,
2370         (loopInduction): changed parameter of basicInduction, made static,
2371         (addPostLoopBlock): added
2372         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
2373         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
2374         findLoopEndSeq
2375         * support/regression/tests/bug-136564.c: added
2376         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
2377         --std-sdcc99 to LIBSDCCFLAGS
2378
2379 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
2380
2381         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
2382         while loop
2383         * support/regression/tests/bug-1406131.c: added
2384
2385 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
2386
2387         * src/SDCCast.c (decorateType): fix promotion of unary minus
2388         * src/SDCCsymt.c (computeType): beautified
2389         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
2390         (valUnaryPM, valComplement): fix sign and promotion,
2391         (valNot): ANSI: result type is int (SDCC: unsigned char)
2392         * support/regression/tests/uminus.c: speedup by removing superflous
2393         test case 'int'
2394         * support/regression/tests/onebyte.c: added promotion and signedness
2395         tests for unary minus
2396         * support/regressions/tests/bug-477927.c: disable warning about
2397         uninitialized variables
2398         * support/regression/tests/not.c: added
2399
2400 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
2401
2402         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
2403         * src/mcs51/gen.c (gen51Code): show final register usage after
2404         fillGaps in asm with --i-code-in-asm
2405         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
2406         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
2407         incUsed, rliveClear, adjustIChain): made static,
2408         (setFromRange): excluded because it's unused,
2409         (findPrevUseSym, markWholeLoop): added,
2410         (findPrevUse): rewritten; fixes bug 895992; now a complete search
2411         through all branches of predecessors enables sdcc to emit the warning
2412         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
2413         (rlivePoint): made static, added parameter emitWarnings which is only
2414         true during the first run out of two,
2415         (findRecursiveSucc, findRecursivePred): removed,
2416         (computeLiveRanges): made static, added parameter emitWarnings,
2417         (dumpIcRlive): added for debugging only
2418         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
2419         removed prototype of setFromRange()
2420         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
2421         in call of computeLiveRanges()
2422         * support/regression/tests/bug-895992.c: added
2423         * support/regression/tests/bug-971834.c: added
2424         * support/valdiag/tests/bug-895992.c: added
2425         * support/valdiag/tests/bug-971834.c: added
2426
2427 2005-12-18 Raphael Neider <rneider AT web.de>
2428
2429         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
2430           (genUnpackBits): improved code for direct operands,
2431           (genPackBits): improved code for literal assignment to bitfields
2432             and for direct destination operands (no FSR indirection),
2433             prevented redundant AND, fixes #1362800,
2434           (AccLsh): added parameter to disable masking of the result
2435         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
2436           skip instructions with side-effects (like incfsz),
2437           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
2438         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
2439         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
2440           fixes #1375263
2441
2442 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
2443
2444         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
2445         volatile variables as spill location
2446
2447 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
2448
2449         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
2450         replacing literals
2451         * support/regression/tests/bug-1376320.c: added
2452
2453 2005-12-08 Raphael Neider <rneider AT web.de>
2454
2455         * src/pic/device.c: renamed is_shared to pic14_is_shared
2456         * src/pic/gen.c (genIfx): re-enabled handling of sbits
2457         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
2458           (is_valid_identifier): added for above workaround
2459
2460 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
2461
2462         * device/lib/Makefile.in: fixed to enable port-specific-objects
2463         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
2464           char, thanks Hubert Sack
2465         * doc/sdccman.lyx: documented --xstack-loc,
2466           elaborated a bit more on interrupts and pitfalls,
2467           removed "setjmp/longjmp unsupported",
2468           documented some unsupported C99 features
2469         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
2470         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
2471           if, thanks Hubert Sack
2472         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
2473         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
2474           make make_library
2475         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
2476           regression tests can report resource usage (rfe 700441)
2477         * support/regression/collate-results.py: report resource usage
2478         * support/regression/ports/ds390/spec.mk,
2479         * support/regression/ports/hc08/spec.mk,
2480         * support/regression/ports/mcs51/spec.mk,
2481         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
2482         * support/regression/ports/ds390/uCsim.cmd,
2483         * support/regression/ports/hc08/uCsim.cmd,
2484         * support/regression/ports/mcs51/uCsim.cmd,
2485         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
2486         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
2487           library, use the default one
2488         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
2489           building the library
2490
2491 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2492
2493         * config.dsp: added dependency on .version and configure_vc.awk
2494         * device/include/setjmp.h: updated for --stack-auto and --xstack
2495         * device/include/mcs51/at89c51snd1c.h: corrected line endings
2496         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
2497         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
2498         * device/lib/libsdcc.lib: added _setjmp
2499         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
2500           (decorateType): fixed bug 1372851,
2501           (optimizeGetHbit): fixed warning
2502         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
2503           array initialisation
2504         * support/regression/tests/bug1057979.c: added test for bug 1358192
2505         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
2506
2507 2005-12-03 Borut Razem <borut.razem AT siol.net>
2508
2509         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
2510           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
2511
2512 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2513
2514         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
2515         createIval): implement symbol independant "flexible array member",
2516         (createIvalCharPtr): implemented flexible array initialisation with a
2517         string
2518         * src/SDCCsymt.c (copyStruct): removed,
2519         (getSize): fixed misleading comment,
2520         (getAllocSize): removed, the additional allocation size is now in
2521         sym->flexArrayLength,
2522         (checkStructFlexArray): new, syntax checks for flexible array members,
2523         (compStructSize): added syntax checks for "flexible array members"
2524         (copyStruct): removed,
2525         (copyLinkChain): removed inefficient fix for bug 770487
2526         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
2527         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
2528         symbol->flexArrayLength
2529         * src/SDCCerr.c,
2530         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
2531         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
2532         * support/regression/tests/structflexarray.c: added
2533         * support/valdiag/tests/structflexiblearray.c: added
2534
2535 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2536
2537         * src/SDCCast.c (decorateType): fixed bug 1368489
2538         * support/Util/SDCCerr.c,
2539         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
2540
2541 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2542
2543         * device/include/mcs51/at89c51snd1c.h: added file submitted by
2544           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
2545
2546 2005-11-27 Borut Razem <borut.razem AT siol.net>
2547
2548         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
2549           support/cpp2/mkdeps.h: added command line option
2550           -obj-ext=<extension> to SDCPP to define object file externion, used
2551           for generation of make dependencies (-M)
2552         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
2553
2554 2005-11-26 Borut Razem <borut.razem AT siol.net>
2555
2556         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
2557           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
2558           added pic and pic16 libraries
2559
2560 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2561
2562         * device/include/float.h: Corrected typo in prototype of __fsgt
2563
2564 2005-11-25 Borut Razem <borut.razem AT siol.net>
2565
2566         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
2567           added creation of model-mcs51-stack-auto libraries
2568
2569 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
2570
2571         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
2572         and fields-list too
2573         * src/SDCCast.c (createIvalArray): removed obsolete comment
2574
2575 2005-11-24 Borut Razem <borut.razem AT siol.net>
2576
2577         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
2578           added missing device/lib/mcs51/crt*.asm sources
2579
2580 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
2581
2582         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
2583
2584 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
2585
2586         * device/lib/_fs2schar.c,
2587         * device/lib/_fs2sint.c,
2588         * device/lib/_fs2slong.c: optimized inline asm
2589
2590 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2591
2592         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2593           Better handling of floats between -1.0 and 0.0.
2594
2595 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2596
2597         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
2598           (the missing "if"s prohibited removal of redundant labels)
2599
2600 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2601
2602         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2603           Properly convert floats between -1.0 and 0.0 to long, int, and char
2604           types (max integer value of negative floats tends to zero).
2605         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2606           Removed changes made so to work properly with floats between
2607           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
2608           and _fs2char.c
2609
2610 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2611
2612         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
2613         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
2614         (genCast) cosmetic change
2615         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
2616         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
2617         from mcs51
2618         * support/regression/tests/bitfields (testSignedBitfields): added
2619
2620 2005-11-18 Borut Razem <borut.razem AT siol.net>
2621
2622         * sdcc/device/lib/Makefile.in: remove all unnecessary files
2623         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
2624           introduced SILENT option to make building of pic16 libraries less
2625
2626 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2627
2628         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2629           Now they work properly with floats between -1.0 and 0.0
2630         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
2631
2632 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2633
2634         * src/SDCCicode.c (printOperand): added missing else
2635
2636 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2637
2638         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
2639         reformatted for better readability
2640         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
2641         signed bitfields
2642
2643 2005-11-17 Borut Razem <borut.razem AT siol.net>
2644
2645         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
2646           introduced SILENT option to make building of pic16 libraries less
2647           verbose - used for nightly snapshot build
2648         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
2649           available on Win32 platforms.
2650         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
2651           medium, large, pic and pic16
2652
2653 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2654
2655         * device/lib/printf_large.c: Temporary patch for bug 1358192:
2656           printf("%f"...) sets fraction to zero.
2657
2658 2005-11-16 Raphael Neider <rneider AT web.de>
2659
2660         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
2661           fixes #1357221
2662         * src/pic/gen.c (genIfx): implemented for CARRY bit
2663         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
2664           to generic pointers, fixes #1357332,
2665           (pic16_movLit2f): NEW,
2666           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
2667
2668 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2669
2670         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
2671
2672 2005-11-11 Raphael Neider <rneider AT web.de>
2673
2674         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
2675         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
2676           compute pointer's type from operand,
2677           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
2678           improved single bit reads, fixes bug #1353379
2679
2680 2005-11-09 Borut Razem <borut.razem AT siol.net>
2681
2682         * support/scripts/sdcc.nsi: added lib/pic to the package
2683
2684 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
2685
2686         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
2687
2688 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2689
2690         * support/regression/tests/bug1348008.c: added
2691         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
2692         * support/regression/tests/bug1337835.c: updated comment
2693
2694 2005-11-06 Borut Razem <borut.razem AT siol.net>
2695
2696         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2697           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2698           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2699           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2700           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
2701           dynamic construction of cl_error_class and derivates - 2.nd try
2702
2703 2005-11-05 Borut Razem <borut.razem AT siol.net>
2704
2705         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
2706           bug, which caused Bus Errors on sparc solaris
2707
2708 2005-11-04 Borut Razem <borut.razem AT siol.net>
2709
2710         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2711           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2712           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2713           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2714           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
2715           and derivates to resolve the initialization problem on OSX
2716
2717 2005-11-02 Borut Razem <borut.razem AT siol.net>
2718
2719         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2720           corrected typo - #include <winsock2.h>
2721
2722 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
2723
2724         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
2725           (_asxxxx_mapping): added org directive for future enhancements
2726
2727 2005-11-01 Borut Razem <borut.razem AT siol.net>
2728
2729         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2730           enabled sockets on WIN32
2731         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
2732
2733 2005-10-31 Borut Razem <borut.razem AT siol.net>
2734
2735         * support/regression/generate-cases.py: escape backslashes in {testcase}:
2736           WIN32 backslash path delimiters should be escaped when used in C strings
2737         * support/regression/tests/bitfields.c: exclude failing assertions for
2738           __CYGWIN32__ and __MINGW32__ hosts
2739
2740 2005-10-30 Borut Razem <borut.razem AT siol.net>
2741
2742         * src/SDCCutil.c: corrected double comparison typo
2743
2744 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
2745
2746         * device/lib/medium/Makefile: added for new memory model medium
2747         * device/include/asm/mcs51/features.h: updated for medium/pdata
2748         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
2749           added Multiply & Accumulate sbit's and MAC0_PAGE define
2750         * device/include/mcs51/c8051f300.h: added sfr16 definitions
2751         * device/include/mcs51/c8051f310.h: added sfr16 definitions
2752         * device/lib/_mullong.c: update for medium model
2753         * device/lib/incl.mk: added medium model
2754         * doc/sdccman.lyx: documented medium model
2755         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
2756         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
2757         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
2758         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
2759           (allocParms): set SCLS and OCLS to pdata for medium model
2760         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
2761           for pdata,
2762           (powof2): return <0 if not power of 2
2763         * src/avr/gen.c (genBitWise): use updated powof2
2764         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
2765           (shiftR2Left2Result): small optimization in setup, save acc when storing,
2766           (shiftLLeftOrResult): use B if necessary
2767         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
2768         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
2769         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
2770         * support/regression/Makefile.in: added test-mcs51-medium
2771         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
2772
2773 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
2774
2775         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
2776         specifier unsigned
2777         * device/lib/time.c (mktime): fixed bug 1334315
2778
2779 2005-10-28 Raphael Neider <rneider AT web.de>
2780
2781         * device/include/pic/p16f_common.inc: added common declarations
2782         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
2783
2784 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2785
2786         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
2787           (aopPutUsesAcc): added to predict accumulator use,
2788           (assignResultValue): save acc if necessary,
2789           (genMinusDec): store result if indirectly addressed,
2790           (genDivOneByte):  save acc if necessary,
2791           (movLeft2Result): bugfix if left already in acc,
2792           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
2793             attention to accumulator use (esp. pdata),
2794           (genReceive): receive pdata correctly
2795         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
2796         * src/SDCCicode.h: added isOperandInPagedSpace prototype
2797
2798 2005-10-27 Raphael Neider <rneider AT web.de>
2799
2800         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
2801
2802 2005-10-27 Raphael Neider <rneider AT web.de>
2803
2804         * .version: changed version to 2.5.4
2805         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
2806         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
2807           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
2808             arithmetics support routines
2809         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
2810         * device/lib/Makefile.in: also create installdir for pic
2811
2812         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
2813           pic14 port as well
2814         * src/pic/device.c (dump_sfr): rewritten to delegate register
2815           placement to the linker (use `extern sym' rather than sym EQU addr),
2816           (validAddress): fixed to check last specified address
2817         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
2818           (popGetLit): truncate literal value to 8 bit,
2819           (popGet): moved assert to more appropriate place
2820           (popGetExternal): create pCode operand from and mark the according
2821             symbol as being `extern'
2822           (popGetAddr): added sanity check on immediate's offset, provide
2823             GPOINTER tag on demand
2824           (aopPut): fixed for immediates,
2825           (mov2w_op): move operand's address or contents to WREG (depending on
2826             operand type), safer variant of mov2w,
2827           (movwf,call_libraryfunc): NEW, handy abbreviations,
2828           (get_argument_pcop,get_return_val_pcop,pass_argument,
2829           get_returnvalue): interface for accessing function parameters and
2830             return values,
2831           (assignResultValuei,genRet): use new parameter/return value interface
2832           (pic14_getDataSize): back to old version handling generic pointers,
2833           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
2834             provided implementation and/or fixed old one,
2835           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
2836             calls, removed legacy 8051 reference code
2837           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
2838           (loadSignToC): NEW, move the operands sign bit to CARRY,
2839           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
2840             genRightShiftSigned, accepts negative shift counts,
2841           (setup_fsr): load FSR and adjust IRP (indirect memory access),
2842           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
2843             generic pointers, __data pointers and __code pointers,
2844           (genUnpackBits,genPackBits): rewritten to work with generic pointers
2845             and signed bitfields, limit bitfields to 8 bit,
2846           (genDataPointerGet): fixed number of bytes read,
2847           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
2848           (genPointerGet,genPointerSet): fixed handling of __code pointers,
2849             pointers to constant data are no longer assumed to point to __code
2850             space, removed invalid pointer types,
2851           (bitpatternFromVal): retrieve the PICs representation of an integer
2852             or float literal,
2853           (genDataPointerSet): fixed assigning to po_immediate operands,
2854           (genGenPointerSet): implemented as library call,
2855           (genIfx): fixed incorrect condition,
2856           (genAddrOf): limit generic pointers' addresses to 2 bytes,
2857             provide GPOINTER tag according to destination's storage class,
2858           (genCast): added code to handle casting to generic pointers, added
2859             sign-/zero extension of the result
2860           (aop_isLitLike,op_isLitLike): fixed handling of immediates
2861         * src/pic/gen.h: added macros to access IRP bit in STATUS register
2862         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
2863           extend the result
2864         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
2865           address/register resides in the shared banks
2866           (emitSymbolToFile): improved to handle global and `pinned' symbols,
2867             put all variables into separate sections (have the linker arrange
2868             them)
2869           (picglue): put init code and interrupt handlers in separate sections
2870         * src/pic/main.c: added port specific options table, modified to PORT
2871           structure to make GPOINTERs 3 byte, added pic14_options
2872           (_pic14_do_link): private linking routine (update paths to libraries,
2873             add libsdcc.lib by default)
2874         * src/pic/main.h: declare pic14_options
2875         * src/pic/pcode.c: fixed instructions i/o relations,
2876           (RegCond): reverted to correct version,
2877           (newpCodeOpLit): truncate literals to 8 bit,
2878           (genericPrint): added debug output,
2879           (getRegFromInstruction): fixed for various operand types, simplified
2880           (BuildFlow): fixed broken handling of isntructions with labels
2881           (LinkFlow): start at last instruction in flow (skip trailing comments),
2882             pass the flow on to the next instruction after CALL
2883           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
2884           (insertPCodeInstruction): fixed inserting after a skip instruction,
2885           (DoBankSelect): fixed for labeled instructions
2886           (OptimizepBlock): honor --nopeep switch
2887           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
2888         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
2889         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
2890           (pCodeOptime2pCodes): allow disabling this optimization via
2891             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
2892             but is still buggy), started implementation of a dataflow based
2893             pCode optimization (CSE + dead code elimination)
2894           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
2895         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
2896           names are independant of the stack location and therefore portable across
2897           devices
2898
2899 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2900
2901         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
2902           (selectSpil): fixed bug 1337835 by not spilling bit variables
2903         * support/regression/tests/bug1337835.c: added test for this bug
2904         * src/mcs51/peeph.def: restart after rule 3.c,
2905           addded rules 263.x to optimize loading constants
2906
2907 2005-10-26 Raphael Neider <rneider AT web.de>
2908
2909         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
2910         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
2911           (genAssign): emit warning when casting literals to generic pointer
2912             type, also applies when taking the address of a fixed variable,
2913           (genCast): improved casting to generic pointers
2914         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
2915           extern variables, added verbose error message
2916         * device/include/pic16/{string.h,errno.h}: added #pragma library c
2917
2918 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
2919
2920         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
2921         carry must be complemented too
2922         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
2923         could be emitted by genMinus
2924         * src/SDCCval.c (constVal): fixed bug 1305065
2925
2926 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
2927
2928         * src/SDCCast.c (addCast): added promotion for bit variables
2929         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
2930         promotion casts + optimisation
2931         (optimizeGetWord): fix warning 'i' might be used uninitialized
2932         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
2933         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
2934
2935 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
2936
2937         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
2938         all chars are promoted to int; promotion should be handled in SDCCast.c
2939
2940 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2941
2942         * device/lib/_strcmp.c: Fixed bug 1326457
2943
2944 2005-10-11 Raphael Neider <rneider AT web.de>
2945
2946         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
2947         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
2948
2949 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
2950
2951         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
2952         * support/regression/tests/sfr16.c: added test for the sfr32 bug
2953
2954 2005-10-04 Raphael Neider <rneider AT web.de>
2955
2956         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
2957           device/lib/pic16/pics.all: added pic18f1320
2958         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
2959
2960 2005-09-30 Raphael Neider <rneider AT web.de>
2961
2962         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
2963         * src/pic16/devices.inc: NEW, provides device descriptions
2964         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
2965
2966 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2967
2968         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
2969           GETHBIT
2970
2971 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
2972
2973         * doc/sdccman.lyx: updated Highest Order Bit documentation,
2974           documented Any Order Bit, Higher Order Byte and Higher Order Word
2975         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
2976         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
2977           (optimizeGetAbit): new, to get any bit, not only the high bit,
2978           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
2979           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
2980           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
2981           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
2982             RIGHT_OP: also try GETBYTE, GETWORD optimization,
2983             GETABIT, GETBYTE, GETWORD: decorate them,
2984           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
2985           (ast_print): added GETABIT, GETBYTE, GETWORD
2986         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
2987         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
2988           (geniCodeBinary): new generic binary icode,
2989           (ast2iCode): added GETABIT, GETBYTE, GETWORD
2990         * src/port.h: updated comment for PORT.hasExtBitOp
2991         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
2992           (genGetByte): new, to get a single byte,
2993           (genGetWord): new, to get a word from a long,
2994           (gen51Code): added GETABIT, GETBYTE, GETWORD
2995         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
2996
2997 2005-09-23 Raphael Neider <rneider AT web.de>
2998
2999         * configure.in, configure: have device/lib/pic configured
3000         * device/lib/Makefile.in: added model-pic14
3001         * device/lib/clean.mk: added pic/ to clean rule
3002         * device/lib/pic: added rudimentary pic14 library providing support
3003           functions for multiplication/division/generic pointer access
3004         * src/SDCCopt.c (convilong): mark support functions as extern
3005           for pic14 port as well
3006         * src/pic/gen.c (genMult): added assertions,
3007           (genpic14Code): emit warning on unhandled iCodes
3008         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
3009         * src/pic/pcode.c (pCodeOpCopy),
3010         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
3011           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
3012           SFR_REGISTER}), made safe for future extensions
3013         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
3014           instructions even if preceeded by SKIP instructions (also remove
3015           them); removed unused code
3016         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
3017           prevents leaving parts of the structure uninitialized after copying
3018
3019 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
3020
3021         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
3022           ago by me
3023         * support/regression/tests/addsub.c: added test for the bug
3024
3025 2005-09-21 Raphael Neider <rneider AT web.de>
3026
3027         * device/include/pic16/pic18f1220.h,
3028           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
3029         * device/lib/pic16/Makefile.rules: added missing opening paren
3030         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
3031           are provided in genutils.c,
3032           (genUminusFloat,genUminus,genCmpEq): added asserts on different
3033           operand/result sizes,
3034           (genCmp): assert on NULL pointers first, then check deref'ed values
3035         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
3036           result size
3037
3038 2005-09-18 Raphael Neider <rneider AT web.de>
3039
3040         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
3041           as these are now unused,
3042           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
3043         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
3044           local, avoids uninitialized pointer dereference on r->name
3045         * src/pic16/ralloc.c (newReg): fixed indentation
3046
3047 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
3048
3049         * src/SDCCval.c (constVal): fixed bug 730366
3050         * support/Util/SDCCerr.c,
3051         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
3052
3053 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
3054
3055         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
3056
3057 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
3058
3059         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
3060
3061 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
3062
3063         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
3064           (hex2dec): made hex_digit unsigned char, removed ascii dependance
3065         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
3066           (hex2dec): made hex_digit unsigned char, removed ascii dependance
3067         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
3068         * packihx/packihx.c (hexDigit): made c unsigned char
3069         * as/mcs51/lklibr.c (fndsym),
3070         * link/z80/lkgb.c (gb),
3071         * link/z80/lklibr.c (fndsym),
3072         * link/z80/lkrloc.c (relr),
3073         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
3074         * src/SDCC.lex (checkCurrFile, process_pragma),
3075         * src/SDCCglue.c (spacesToUnderscores),
3076         * src/SDCCmain.c (setParseWithComma, processFile),
3077         * src/asm.c (tvsprintf, printCLine),
3078         * src/avr/gen.c (emitcode, aopPut),
3079         * src/ds390/gen.c (emitcode),
3080         * src/hc08/gen.c (emitcode, emitinline),
3081         * src/mcs51/gen.c (emitcode, genInline),
3082         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
3083           tokenizeLineNode),
3084         * src/pic/ralloc.c (debugLog),
3085         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
3086           tokenizeLineNode),
3087         * src/pic16/ralloc.c (debugLog),
3088         * src/z80/main.c (_process_pragma):
3089            made all ctype.h function calls safe
3090         * src/SDCCopt.c: include math.h for fabs
3091         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
3092           and used them throughout the code to make ctype.h function calls safe
3093         * src/ds390/main.c (asmLineNodeFromLineNode),
3094         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
3095         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
3096            unsigned char*
3097         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
3098           (newpCodeAsmDir): made ctype.h function calls safe
3099         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
3100           pic16_emitcode):  made lbp unsigned char*
3101         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
3102           (pic16_newpCodeAsmDir): made ctype.h function calls safe
3103         * src/xa51/gen.c (emitcode),
3104         * src/z80/gen.c (_emit2): made lbp unsigned char*
3105         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
3106            char*
3107
3108 2005-09-05 Raphael Neider <rneider AT web.de>
3109
3110         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
3111           access bank splitpoint
3112
3113 2005-09-05 Raphael Neider <rneider AT web.de>
3114
3115         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
3116
3117 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
3118
3119         * .version: changed to version 2.5.3
3120         * doc/sdccman.lyx: changed version to 2.5.3,
3121           documented --codeseg and --constseg and pragma codeseg and constseg,
3122           documented bit parameters (reentrant) and bit returning
3123         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
3124            currFunc->recvSize, but is this ok for all ports?
3125           (ast2iCode): result of ~ on unsigned char must be cast to int for
3126            bool to work
3127         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
3128           function pointers in bit space
3129         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
3130           (processFuncArgs): call port.reg_parm() with reentrancy info
3131         * src/port.h,
3132         * src/avr/main.c,
3133         * src/ds390/main.c,
3134         * src/hc08/main.c,
3135         * src/pic/main.c,
3136         * src/pic16/main.c,
3137         * src/xa51/main.c,
3138         * src/z80/main.c: port.reg_parm prototype extended with
3139           "bool reentrant" parameter
3140         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
3141           options.stackAuto for allocating bit register parameters
3142         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
3143           (genSend): set BitBankUsed if it is,
3144           (selectRegBank): factored out of genCall for use in genPcall,
3145           (genCall): removed redundant dtype assignmen, use selectRegBank,
3146           (genPcall): handle returning in Carry properly, save in F0 if needed,
3147           (genReceive): handle bit register parameters
3148         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
3149           (mcs51_assignRegisters): enable bit registers for all reentrant
3150            functions and don't set BitBankUsed unconditionally
3151         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
3152         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
3153         * support/regression/tests/funptrs.c: added tests for BOOL and for return
3154
3155 2005-08-27 Borut Razem <borut.razem AT siol.net>
3156
3157         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
3158         ppc-osx (Darwin) does not support -u option. It seems that it is
3159         supported only on Linux - GNU cp
3160
3161 2005-08-25 Borut Razem <borut.razem AT siol.net>
3162
3163         * sim/ucsim/gui.src/serio.src/Makefile.in,
3164           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
3165           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3166           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
3167           install and strip, since the strip at /usr/ccs/bin should be used
3168           on solaris
3169
3170 2005-08-24 Borut Razem <borut.razem AT siol.net>
3171
3172         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
3173
3174 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
3175
3176         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
3177         ffffffffu
3178
3179 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
3180
3181         * as/mcs51/aslink.h: completed lkrloc.c prototypes
3182         * as/mcs51/lkmain.c (link_main): fixed warning
3183         * device/include/stdbool.h: ds390 has no advanced bit support yet
3184         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
3185         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
3186         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
3187           and updated their macros
3188         * src/SDCCval.c (constVal): updated comment for renamed b_long
3189
3190 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
3191
3192         * as/mcs51/asdata.c: changed ctype['['] to BINOP
3193         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
3194           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
3195           (oprio): set priority for '['
3196         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
3197            and adb_24_bit
3198         * as/mcs51/asm.h: added defines R_BIT and S_BIT
3199         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
3200         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
3201         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
3202           added overlayable BIT_BANK area
3203         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
3204           (summary2): explain 'T' in legenda
3205         * as/mcs51/lkrloc.c: replaced old K&R style,
3206           (relr): added R_BIT processing,
3207           (errmsg): added "Bit-addressable relocation error",
3208           (adb_bit): added for converting from byte- to bit-addressable space,
3209           (adb_24_bit): added for converting from byte- to bit-addressable space
3210         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
3211            used in reentrant functions now even as return value
3212         * device/lib/_gptrput.c (_gptrput): removed obsolete code
3213         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
3214           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
3215         * src/SDCCglobl.h: added indicator BitBankUsed
3216         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
3217            the bit registers b0-b7
3218         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
3219           (geniCodeCast): fixed bug 1263853,
3220           (geniCodeLogicAndOr): put result in bool or char,
3221           (geniCodeReceive): added parameter func for accessing the return type,
3222           (geniCodeFunctionBody): pass func to geniCodeReceive
3223         * src/SDCCmain.c: added indicator BitBankUsed
3224         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
3225         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
3226           (checkSClass): don't put automatic bool/bit on stack,
3227           (checkFunction): removed check on function cannot return bit
3228         * src/SDCCsymt.h: added newBoolLink prototype
3229         * src/mcs51/gen.c (rb1regs): added bit registers,
3230           (movc): created for assigning to carry,
3231           (pushReg, popReg): created for pushing registers,
3232           (sameRegs): check both AOP_REG and AOP_CRY types,
3233           (aopOp): handle bit registers,
3234           (aopPut): optimization no self-assign,
3235           (saveRegisters): push reg->base (bits) only once for bit registers,
3236            and use pushReg,
3237           (unsaveRegisters): pop reg->base only once and use popReg,
3238           (assignResultValue): added parameter func and return in carry for bits,
3239           (genIpush): optimization no reload in A if not changed,
3240           (genSend): bit parameters in reentrant functions are passed in bit
3241            registers by first assigning to bits in B, then save registers and
3242            copy B to bits,
3243           (genCall): handle returning in Carry properly, save it in F0 if needed,
3244           (genPcall): updated assignResultValue call, this is not safe yet for bit
3245            returning function !!!
3246           (genFunction): don't generate equ's for bit registers and use pushReg,
3247           (genEndFunction): take care of bit returning functions and use popReg,
3248           (genRet): return bit in Carry,
3249           (genIfx): optimize bit registers and other directly addressable bits,
3250           (genReceive): updated assignResultValue call
3251         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
3252           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
3253            registers when using stack-auto
3254         * src/mcs51/ralloc.c (_G): added allBitregs,
3255           (regs8051): added the bit registers,
3256           (createStackSpil): use macro IS_BIT,
3257           (getRegBit): added to allocate a bit register, else spill,
3258           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
3259           (updateRegUsage): factored out to ease stepping while debugging,
3260           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
3261            also allocate bit registers,
3262           (fillGaps): handle bit registers,
3263           (findAllBitregs): added to create bit vector with all bit registers,
3264           (mcs51_allBitregs): returns this bit vector,
3265           (mcs51_assignRegisters): when using stack-auto use bit registers for
3266            passing parameters and creating local variables
3267         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
3268
3269 2005-08-22 Borut Razem <borut.razem AT siol.net>
3270
3271         * device/lib/Makefile.in: replaced find option -or with -o
3272           to make it run on solaris
3273
3274 2005-08-22 Raphael Neider <rneider AT web.de>
3275
3276         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
3277           fixes #1265442 (crash on Solaris)
3278
3279 2005-08-20 Borut Razem <borut.razem AT siol.net>
3280
3281         * configure, configure.in: added tests for libsocket and libnsl libraries,
3282           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
3283           from support/regression/Makefile.in
3284         * support/regression/Makefile.in: added
3285         * device/lib/pic16/Makefile.common.in: force make to use bash shell
3286         * sim/ucsim/libtool: regenerated on sparc-solaris
3287         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3288           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
3289           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
3290           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
3291           sparc-solaris, which doesn't use GNU ld linker
3292         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
3293         * as/Makefile: find on sparc-solaris does not support -maxdepth option
3294
3295 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
3296
3297         * src/mcs51/peeph.def: updated comments
3298
3299 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3300
3301         * device/lib/_gptrget.c,
3302         * device/lib/_gptrput.c: slightly shorter
3303         * doc/sdccman.lyx: incremented version
3304         * src/mcs51/peeph.def: moved peephole comments to the line of first
3305           change to better keep line correlation, reanimated 186.e
3306         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
3307
3308 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3309
3310         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
3311           David Saxton with quotes around file name.
3312
3313 2005-08-15 Borut Razem <borut.razem AT siol.net>
3314
3315         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
3316           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
3317           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
3318           make tests run on x86_64 platform
3319
3320 2005-08-13 Raphael Neider <rneider AT web.de>
3321
3322         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
3323           as it might be executed DURING a build (parallel make is wonderful)
3324
3325 2005-08-13 Raphael Neider <rneider AT web.de>
3326
3327         * device/lib/Makefile.in (port-specific-objects-pic16):
3328           revert to cp $(PORT)/bin/*.* $(PORTDIR)
3329         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
3330           dependency
3331         * device/lib/pic16/Makefile.rules: build subdirs before creating
3332           the library, removed builddir rule, create $(builddir) early in
3333           recurse rule, use empty recurse rule for leaf directories
3334         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
3335           mkdir errors (race condition), removed duplicate suffix "hex"
3336           from clean rules
3337         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
3338         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
3339           prevents mkdir -p from aborting on Alpha
3340
3341 2005-08-12 Raphael Neider <rneider AT web.de>
3342
3343         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
3344           db-statements in order to allow for arrays of pointers in code
3345           sections to be placed without interspersed 0-padding, fixes
3346           bug #1256215
3347         * (emitStatistics): fixed division by zero for pic18f1220
3348         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
3349           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
3350         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
3351         * (pic16_pCodeConstString): keep track of already emitted string
3352           literals to prevent "duplicate definitions of symbol _str_NR"
3353         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
3354           debug message
3355         * device/lib/Makefile.in: ignore failing PIC16 library builds
3356         * device/lib/pic16/Makefile: do not build if gputils are missing
3357         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
3358
3359 2005-08-10 Raphael Neider <rneider AT web.de>
3360
3361         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
3362           my last commit)
3363
3364 2005-08-10 Raphael Neider <rneider AT web.de>
3365
3366         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
3367           Rokas' patch to add the new fixed point type "__fixed16x16"
3368         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
3369           functions for __fixed16x16 arithmetics
3370         * device/lib/pic16: reimplemented the build system to support
3371           a separate build directory, better handling of libio (create
3372           the library in a separate subdir for each architecture) and
3373           easier configuration (centralized in Makefile.common)
3374
3375 2005-08-07 Raphael Neider <rneider AT web.de>
3376
3377         * src/pic16/gen.c (genrshTwo): fixed sign extension
3378         * src/pic16/device.c: added pic18f2320, 4220 and 4320
3379         * device/include/pic16/pic18f2220.h: changed some bit definitions,
3380           added T0CONbits
3381         * device/include/pic16/pic18f4220.h: NEW, header for
3382           pic18f4220 and pic18f4320
3383         * device/include/pic16/pic18fregs.h: added new devices,
3384           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
3385         * device/include/pic16/signal.h: resolved name clashes
3386           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
3387           to also allow testing for interrupt enable bits, added
3388           comments on how to use the macros
3389         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
3390         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
3391           register definitions for the devices
3392         * device/lib/pic16/pics.all: added new devices
3393         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
3394           allocated memory
3395         * device/lib/pic16/libc/stdlib/memfree: do not count
3396           the block header as free memory
3397         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
3398           simplified and added missing end-of-blocklist-marker
3399           (reported by Peter Onion, fixes #1252814)
3400         * (_mergeHeapBlock): fixed loop condition
3401         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
3402           len==0, restructured code
3403         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
3404           up a bit, reduced bitfield accesses, prevent endless loops
3405           in case of heap corruption
3406         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
3407           "unreferenced arguments/must return a value" warnings
3408         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
3409           replaced BAUDREG with SPBRG
3410         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
3411           device/lib/pic16/debug/gstack/gstack.c: replaced
3412           _naked, _asm, _endasm with __naked, __asm, __endasm
3413
3414 2005-08-05 Raphael Neider <rneider AT web.de>
3415
3416         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
3417           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
3418
3419 2005-08-05 Borut Razem <borut.razem AT siol.net>
3420
3421         * device/lib/Makefile.in: added missing ';'
3422         * configure: removed ^M characters
3423
3424 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3425
3426         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
3427           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
3428           License
3429
3430 2005-08-04 Borut Razem <borut.razem AT siol.net>
3431
3432         * configure.in: pic16 libraries build 2nd try - enable running
3433           configure in device/lib/pic16
3434         * configure: regenerated from configure.in
3435         * device/lib/Makefile.in: create $(PORT)/bin directory
3436
3437 2005-08-03 Raphael Neider <rneider AT web.de>
3438
3439         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
3440           to get/set values via pointers
3441         * (genUnpackBits,genPackBits): changed detection of
3442           ptr->bitfield vs. sym.bitfield, fixed access via generic
3443           pointers, removed dead (wrong) code for multibyte bitfields
3444         * (genNearPointerGet, genGenPointerGet): removed useless code,
3445           fixed bitfield detection, fixes #1250594
3446         * (genNearPointerSet): removed useless code
3447         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
3448           and introduced macro pic16_emitpcode that conditionally emits
3449           the origin of the following pCode (useful for debugging SDCC)
3450         * src/pic16/pcode.c: changed (and disabled) some debug outputs
3451         * (createDefmap): fixed handling of LFSR for --optimize-df
3452
3453 2005-08-02 Borut Razem <borut.razem AT siol.net>
3454
3455         * device/lib/Makefile.in: pic16 libraries build enabled since
3456           gputils-0.13.2 are now localy installed at sourceforge's compile farm
3457
3458 2005-08-02 Raphael Neider <rneider AT web.de>
3459
3460         * src/pic16/gen.c (genPackBits): removed deprecated warning
3461         * (genGenPointerSet): fixed bitfield detection
3462
3463 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3464
3465         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
3466
3467 2005-07-31 Raphael Neider <rneider AT web.de>
3468
3469         * device/lib/pic16/libdev/pic18f458.c,
3470           device/include/pic16/pic18f458.h: added missing T0CONbits
3471
3472 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3473
3474         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
3475
3476 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
3477
3478         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
3479
3480 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3481
3482         * device/include/mcs51/at89c51ed2.h: added.
3483
3484 2005-07-23 Raphael Neider <rneider AT web.de>
3485
3486         * src/pic/gen.h: added emitpcode macro for debugging
3487         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
3488           and replace by macro adding debug information on demand
3489         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
3490         * (gencjne): tried to fix; replaced with correct (slower) code
3491         * (gen{Unp,P}ackBits): fixed single bit access
3492         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
3493         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
3494           previous instruction
3495         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
3496           register has to be handled with care (forbidding movement
3497           of assignments/uses, removing assignments completely, ...)
3498         * (pCodeOptime2pCodes): make use of regIsSpecial
3499         * added lots of debugging output (commented out)
3500         * src/pic/rallloc.c (deassignLRs): prevent operand registers
3501           from being reused as result UNLESS it is known to work
3502
3503 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3504
3505         * support/Util/dbuf.h: include <stddef.h> for size_t
3506         * .version: changed to version 2.5.2
3507
3508 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3509
3510         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
3511
3512 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3513
3514         * src/hc08/gen.c (genMinus): fixed bug #1241835,
3515           (genModOneByte): removed needless psha/pula
3516
3517 2005-07-22 Raphael Neider <rneider AT web.de>
3518
3519         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
3520           have PIC14 handled like PIC16, fixes broken pic14 linker calls
3521         * src/pic/gen.c (resolveIfx): do not "invent" labels
3522         * (genSkipc): changed to positive logic
3523         * (genSkipCond): removed as no longer needed
3524         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
3525           backport from PIC16
3526         * (genLeftShift): check operands are in different registers
3527         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
3528           INCF does not update CARRY...
3529         * src/pic/main.c: fixed _linkCmd
3530         * src/pic/pcode.c (unlinkpCode): added inactive code
3531         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
3532           alive (do not assign result and operand overlapping registers)
3533
3534 2005-07-22 Raphael Neider <rneider AT web.de>
3535
3536         * src/pic/device.c (dump_sfr): replaced register declaration with
3537           call to emitSymbolToFile() to avoid duplicate symbols
3538         * (assignRelocatableRegisters): do not declare external symbols
3539         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
3540           right (take size of type, not etype)
3541         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
3542         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
3543         * (packRegsForAccUse): disabled assignment of WREG as
3544           the result reg to prevent occurence of just fixed #1235003,
3545           fixes #1242954
3546         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
3547           symbols (avoids duplicate symbols in .asm file)
3548         * (pic14emitRegularMap): use emitSymbolToFile()
3549         * src/pic/gen.c (aopOp): fixed spillLocation handling
3550         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
3551         * (genDataPointerSet): removed unneccessary variables/output
3552
3553 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
3554
3555         * as/mcs51/lkarea.c: enlarged codemap for banked memory
3556         * device/lib/mcs51/crtbank.asm: added # to 0x0F
3557
3558 2005-07-21 Raphael Neider <rneider AT web.de>
3559
3560         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
3561           architecture cannot handle them efficiently, fixes bug #1235003
3562         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
3563           check for empty sets before using them (fixes bug #1232190)
3564
3565 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
3566
3567         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
3568           (lnksect2): generate warnings for memory overlap
3569         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
3570           constseg to set the name of these segments so you can instruct the linker
3571           to place them in banks
3572         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
3573         * src/SDCCglobl.h: added MODEL_HUGE to enum,
3574           added code_seg and const_seg to options
3575         * src/SDCCglue.c (emitMaps): use options.const_seg,
3576           (createInterruptVect): put interrupt vectors in segment HOME,
3577           (glue): put HOME before static segment and put the main glue in HOME,
3578           (glue): use options.code_seg
3579         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
3580         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
3581           these segments so you can instruct the linker to place them in banks
3582           (linkEdit): use code_loc for HOME segment which should be the first
3583           segment in code memory now
3584         * src/SDCCmem.c: fixed more stuff like bug 1238386
3585         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
3586           (changePointer): don't change function pointers to code pointers for
3587           banked functions,
3588           (compareType): added exceptional check for banked function pointers
3589         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
3590         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
3591           after static in code memory
3592         * src/mcs51/gen.c: added aopLiteralLong prototype,
3593           (aopForSym): use getSize for functions,
3594           (genCall): generate banked calls over one trampoline __sdcc_banked_call
3595           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
3596           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
3597           the segment,
3598           (genPcall): use call for literal function pointers and generate banked
3599           calls over the one trampoline so there's only one place for the user to
3600           modify according to his/hers hardware,
3601           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
3602           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
3603         * src/mcs51/main.c: added keyword banked,
3604           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
3605         * support/Util/SDCCerr.c,
3606         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
3607           needed for passing the bank and address to the trampoline
3608         * device/lib/mcs51/crtbank.asm: added for bankswitching
3609         * device/lib/mcs51/Makefile: added crtbank
3610
3611 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3612
3613         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
3614           for fields at offset 0 of a struct or union as reported
3615           on 2005-07-07 in the developer mailing list.
3616
3617 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
3618
3619         * src/SDCCmem.c: fixed bug 1238386
3620
3621 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3622
3623         * src/mcs51/peeph.def: added labelrefcounting for peepholes
3624           (patch #1144962), added peephole 300, enabled 259.x
3625         * doc/sdccman.lyx: removed screenshot and provided link instead
3626
3627 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3628
3629         * doc/sdccman.lyx: added section about debugging with ddd
3630         * doc/figures/ddd_example.eps: screenshot of debugging session
3631
3632 2005-07-04 Raphael Neider <rneider AT web.de>
3633
3634         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
3635           like CODE pointers, fixes #1115683
3636         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
3637           call, fixes bugs #1232211, #1228110,
3638           fixed wrong casts to pCodeFlow from pCodeInstructions
3639
3640 2005-07-04 Raphael Neider <rneider AT web.de>
3641
3642         * src/pic/gen.c (popGet): changed assert to allow for
3643           bit operands
3644         * (popGetAddr): changed signature to provide
3645           an additional index, patched all call sites
3646         * (genCmpEq): handle literal-like operands correctly
3647         * (genAddrOf): added sanity checks on __code/__data pointers
3648         * (genAssign): added handling of symbols from __code section
3649         * (gencjne): do not generate code for comparisons whose result
3650           is neither stored nor used, fixes bug #1171114
3651         * (AccLsh, AccRsh): operate on operand instead of WREG
3652         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
3653           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
3654           by known count
3655         * rewrote complete shift-by-literal logic, commented unused
3656           functions out
3657         * (genConstPointerGet): get multiple bytes (if result size > 1),
3658           fixed handling of non-immediate addresses
3659         * (genPointerGet): handle CODE pointers like CONST pointers
3660         * (genpic14Code): insert C-SRC lines as Cource-pCodes
3661         * ({aop,op}_isLitLike): NEW, single place to decide whether an
3662           operand is to be treated as a literal or not
3663         * (mov2w,genPcall,genCmpEq),
3664           src/pic/genarith.c: use aop_isLitLike() to decide between
3665           literal/register contents
3666         * (addSign): added missing offset
3667         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
3668           only emit comment in debug-mode,
3669           use {aop,op}_isLitLike throughout the file
3670         * src/pic/glue.c: fix initializers for pointers (work in progress)
3671         * src/pic/pcode.c (get_op): honor index on _const symbols
3672         * ({reset,dump}pCodeStatistics): NEW, estimate code size
3673         * (dumppBlock): added pCode size estimation
3674         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
3675           check for IS_SYMOP before OP_SYMBOL'ing
3676         * fixed indentation, compacted switch-statements
3677         * (allocReg): find free register and allocate it instead of
3678           allocating new registers all the time
3679         * (deassignLRs): prevent POINTER_GET's from being assigned the same
3680           registers as its operands (necessary only for multibyte GETs)
3681
3682 2005-07-01 Raphael Neider <rneider AT web.de>
3683
3684         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
3685           debugging .asm-output macros FENTRY + FEXIT
3686         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
3687           way... I wonder...
3688         * (emitpComment): NEW, printf to pCode
3689         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
3690           offset handling
3691         * (popGetAddr): NEW, variant of popGet to access an immediates
3692           high(er) bytes instead of the n'th byte of memory they reference,
3693           replaced popGet with popGetAddr where neccessary
3694         * (genDataPointerGet): reactivated and fixed implementation
3695         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
3696           accesses
3697         * (genDataPointerSet): fixed multibyte assignments
3698         * (genpic14Code): fixed --i-code-in-asm handling
3699         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
3700         * (genPlus): fixed index-out-of-bounds error
3701         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
3702         * src/pic/ralloc.c: added debugging output macro FENTRY2
3703         * (spillThis): fixed indentation, enbraced for-body for clarity
3704         * (rematStr): commented out as now unused
3705         * (regTypeNum): commented out special spill case (overwrites
3706           arbitrary values)
3707         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
3708
3709 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
3710
3711         * doc/sdccman.lyx: documented sfr16/sfr32,
3712           added example for using storage class with function pointers
3713         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
3714
3715 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
3716
3717         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
3718         * device/lib/_itoa.c,
3719         * device/lib/_ltoa.c: optimized codesize
3720         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
3721           but don't know how to suppress the double warning.
3722         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
3723         * support/Util/SDCCerr.c,
3724         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
3725
3726 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
3727
3728         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
3729           fixed old K&R prototypes
3730         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
3731         * device/lib/_gptrget.c,
3732         * device/lib/_gptrgetc.c,
3733         * device/lib/_gptrput.c: changed versions for new memory indicator values,
3734           also new versions for small generic pointers and banked generic pointers
3735         * src/port.h: added const_name
3736         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
3737         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
3738         * src/SDCCcse.c (findPrevIc): check all associative operators
3739         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
3740         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
3741         * src/SDCCmem.c: updated comments,
3742           set far-space to 0 for pdata, results in optimized code
3743         * src/SDCCmem.h: added macro CONST_NAME
3744         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
3745           moving the info into the highest bits, see also gptrget/gptrput
3746         * src/src.dsp: added sdcc.ico to project files
3747         * src/avr/gen.c (genCast): fixed bug 0x%d
3748         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
3749         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
3750           relation between ptr_type and DCL_TYPE,
3751           (genCast): fixed bug 0x%d
3752         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
3753           (CODE)" for const_name
3754         * src/hc08/gen.c (genCast): fixed bug 0x%d
3755         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
3756           (hc08_port): added "CONST (CODE)" for const_name
3757         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
3758           (aopForRemat, adjustArithmeticResult): disconnected direct relation
3759           between ptr_type and DCL_TYPE,
3760           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
3761           operand* and took AOP() inside function so sfr-ness can be checked,
3762           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
3763           new prototype,
3764           (genFunction, genEndFunction): optimized stack setup,
3765           (genMinus): optimized for literals with ending zeroes (in bytes),
3766           (genCast): fixed bug 0x%d
3767         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
3768           (mcs51_port): added "CONST (CODE)" for const_name
3769         * src/mcs51/peeph.def: made rule 226 more generic
3770         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
3771         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
3772         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
3773         * src/z80/main.c (z80_port): added NULL for const_name,
3774           (gbz80_port): added NULL for const_name
3775         * support/regression/tests/bug663539.c,
3776         * support/regression/tests/sfr16.c: new tests
3777
3778 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3779
3780         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
3781
3782 2005-06-24 Raphael Neider <rneider AT web.de>
3783
3784         * device/lib/pic16/libdev/pic18f[68][567]20.c:
3785           corrected typos...
3786         * device/include/pic16/signal.h: added USBIF
3787           and SIG_USB
3788
3789 2005-06-24 Raphael Neider <rneider AT web.de>
3790
3791         * device/lib/pic16/libdev/pic18f2455.c,
3792           device/include/pic16/pic18f2455.h: NEW
3793         * device/include/pic16/pic18fregs.h,
3794           device/lib/pic16/pics.all,
3795           src/pic16/device.c: added 18f2455
3796         * device/lib/pic16/libdev/pic18f[68][567]20.c,
3797           device/include/pic16/{pic18f[68][567].h,usart.h}:
3798           replaced MULTIPLE_USARTS define with more relaible
3799           compatibility sfrs (for USART access)
3800
3801 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
3802
3803         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
3804           and the output asm file line is printed on two lines.
3805
3806 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3807
3808         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
3809           BGT, BLE, BHI, and BLS instructions
3810         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
3811           genCmpEq): removed
3812         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
3813           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
3814           fixes bug #1216342
3815         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
3816
3817 2005-06-15 Raphael Neider <rneider AT web.de>
3818
3819         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
3820         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
3821         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
3822           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
3823           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
3824
3825 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3826
3827         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
3828           Marcel Telka in bug #1215704
3829
3830 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
3831
3832         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
3833           located in shared memory bank.
3834
3835 2005-05-31 Raphael Neider <rneider AT web.de>
3836
3837         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
3838           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
3839           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
3840
3841 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
3842
3843         * device/lib/_strncpy.c: fixed the fix
3844
3845 2005-05-26 Raphael Neider <rneider AT web.de>
3846
3847         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
3848           initializers with \0, bug #1208187
3849         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
3850           intializers with \0, bug #1208187
3851
3852 2005-05-26 Raphael Neider <rneider AT web.de>
3853
3854         * src/pic16/glue.c (pic16_printIvalChar): fixed string
3855           initializers with \0, bug #1208187
3856         * src/pic16/main.c (_process_pragma): added sanity checks
3857           for stack position and size, emit warnings when appropriate
3858
3859 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3860
3861         * device/lib/_strncpy.c: fixed not filling with \0
3862
3863 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3864
3865         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
3866           createFunction),
3867         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
3868           compound_statement),
3869         * src/SDCCsymt.h,
3870         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
3871
3872 2005-05-24 Raphael Neider <rneider AT web.de>
3873
3874         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
3875
3876 2005-05-24 Raphael Neider <rneider AT web.de>
3877
3878         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
3879           TRISE definitions, closes bug #1162453
3880
3881 2005-05-22 Raphael Neider <rneider AT web.de>
3882
3883         * src/pic16/main.c (_process_pragma): check for missing
3884           arguments to pragmas code and udata
3885         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
3886           consistency fixes to match other headers (thanks to Jim Paris)
3887         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
3888
3889 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3890
3891         * src/SDCCicode.c (isOperandEqual): fixed missing ;
3892
3893 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
3894
3895         * support/regression/tests/bug1198642.c: new test
3896         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
3897         * src/SDCCcse.c (findPrevIc): added comment, please have a look
3898         * support/scripts/resource.h,
3899         * support/scripts/resource.rc,
3900         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
3901         * support/scripts/sdcc.ico: added 32x32 icon
3902
3903 2005-05-18 Raphael Neider <rneider AT web.de>
3904
3905         * device/lib/pic16/libdev/pic18f*.c,
3906         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
3907           keywords to "__sfr" and "__at (X)"
3908         * device/include/pic16/pic18fregs.h: added pic18f4520
3909         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
3910           #1203088 (MPLAB compatibility)
3911
3912 2005-05-17 Raphael Neider <rneider AT web.de>
3913
3914         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
3915         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
3916         * device/lib/pic16/pics.all: added new devices
3917         * src/pic16/device.c: added support for pic18f4520
3918
3919 2005-05-16 Raphael Neider <rneider AT web.de>
3920         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
3921         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
3922         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
3923           convenience function for bit access
3924
3925 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3926
3927         * device/lib/printf_large.c: fixed bug 1193299
3928         * support/regression/tests/bug1057979.c: added test %3.3s
3929
3930 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3931
3932         * device/include/mcs51/8051.h,
3933         * device/include/mcs51/8052.h: made parseable with lint
3934         * device/include/mcs51/lint.h: added include file for (sp)lint
3935         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
3936         * doc/cdbfileformat.lyx,
3937         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
3938
3939 2005-05-14 Raphael Neider <rneider AT web.de>
3940
3941         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
3942         * device/lib/pic16/libc/stdlib/itoa.c (new)
3943         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
3944         * device/lib/pic16/libio/Makefile: exclude subdir according to
3945           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
3946         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
3947         * src/pic16/gen.c (genFunction): prevent annoying warning
3948         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
3949           nameclashes on BeOS
3950         * support/cpp2/cppmain.c (cpp_output_string): new
3951         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
3952           fixes bug 1116802
3953
3954 2005-05-13 Borut Razem <borut.razem AT siol.net>
3955
3956         * src/SDCCmain.c (linkEdit): fixed bug 1195202
3957
3958 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3959
3960         * .version: changed to version 2.5.1; back to bleeding edge development
3961
3962 2005-05-11 Borut Razem <borut.razem AT siol.net>
3963
3964         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
3965           generate PDF version 1.3 documents
3966
3967 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3968
3969         * .version: changed to version 2.5.0
3970
3971 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3972
3973         * doc/sdccman.lyx: updated weblinks, index and smaller updates
3974
3975 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3976
3977         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
3978         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
3979         well as many smaller updates.
3980         * .version: changed to version 2.5.0-pre1
3981
3982 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3983
3984         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
3985
3986 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3987
3988         * support/regression/tests/bug1185672.c: added
3989         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
3990           bug 1185672
3991         * src/mcs51/gen.c (genCall): added comments, made it look safer
3992         * src/mcs51/gen.c (genEndFunction): simplified
3993
3994 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3995
3996         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
3997
3998 2005-04-14 Borut Razem <borut.razem AT siol.net>
3999
4000         * fixed bug 1045046 - SIGSEGV with really simple code?:
4001           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
4002           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
4003
4004 2005-04-14 Borut Razem <borut.razem AT siol.net>
4005
4006         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
4007           src/pic16/device.h: temporarily disabled experimental #inline pragma
4008           for 2.5.0 release
4009
4010 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
4011
4012         * device/include/z80/stdio.h,
4013         * device/include/z80/string.h: removed these highly incomplete files so
4014           SDCC can use the default ones in device/include/
4015
4016 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4017
4018         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
4019         gcc warning.
4020         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
4021         fix sdcpp warnings.
4022
4023 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4024
4025         * device/include/malloc.h: removed redundant __reentrant prototypes
4026         * device/lib/_mullong.c: added working xstack variant in asm (C version
4027           doesn't pass regression tests)
4028         * device/lib/bpx.c: used __data and made bpx char for mcs51
4029         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
4030           (createFunction): fixed bug with xstackPtr
4031         * src/SDCCcse.c: corrected comments
4032         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
4033           (killDeadCode, eBBlockFromiCode): removed unused code
4034         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
4035           corrected comments
4036         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
4037           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
4038           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
4039           (genModOneByte): fixed warning in MSVC
4040         * src/mcs51/main.c (): added comments
4041         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
4042
4043 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
4044
4045         * src/SDCCmain.c (linkEdit): oops, changed one line too many
4046
4047 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
4048
4049         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
4050
4051 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
4052
4053         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
4054         characters arrays of larger size than the declared one.
4055
4056 2005-04-10 Borut Razem <borut.razem AT siol.net>
4057
4058         * src/pic/gen.c (genInline),
4059           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
4060           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
4061           (findNextInstruction), (findPrevInstruction),
4062           (findInstructionUsingLabel),
4063           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
4064         * src/pic/pcode.c (findLabel): added missing '\n'
4065         * src/src.dsp: added SDCCdwarf2.c to the project
4066
4067 2005-04-09 Borut Razem <borut.razem AT siol.net>
4068
4069         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
4070
4071 2005-04-08 Raphael Neider <rneider AT web.de>
4072
4073         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
4074           into the chain after a given one) and mergeDefmapSymbols (combine
4075           defmap entries for each symbol per pcode)
4076         * (createDefmap): have defmap entries merged in the end
4077         * (defmapReplaceSymRef): split defmap entries covering two accesses to
4078           a symbol before replacing one access type's symbol, merge symbols in
4079           the end (replacement symbol might already have an entry)
4080         * (assignValnums): keep reference to written WREG intact
4081
4082 2005-04-08 Raphael Neider <rneider AT web.de>
4083
4084         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
4085           Alpha)
4086
4087 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
4088
4089         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
4090         bytes
4091
4092 2005-04-07 Raphael Neider <rneider AT web.de>
4093
4094         * device/include/pic16/usart.h: added compatibility defines for
4095           devices with more than one USART
4096         * device/include/pic16/pic18f[68][567]20.h: activated above defines
4097
4098 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4099
4100         * device/lib/Makefile.in: updated for port specific include
4101
4102 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4103
4104         * support/regression/ports/mcs51/spec.mk: added mcs51 include
4105
4106 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
4107
4108         * device/include/8051.h,
4109         * device/include/8052.h,
4110         * device/include/at89S8252.h,
4111         * device/include/at89c55.h,
4112         * device/include/at89x051.h,
4113         * device/include/at89x51.h,
4114         * device/include/at89x52.h,
4115         * device/include/mcs51reg.h,
4116         * device/include/reg51.h,
4117         * device/include/reg764.h,
4118         * device/include/regc515c.h,
4119         * device/include/sab80515.h: (re)moved these 12 files
4120         * device/include/mcs51/8051.h,
4121         * device/include/mcs51/8052.h,
4122         * device/include/mcs51/at89S8252.h,
4123         * device/include/mcs51/at89c55.h,
4124         * device/include/mcs51/at89x051.h,
4125         * device/include/mcs51/at89x51.h,
4126         * device/include/mcs51/at89x52.h,
4127         * device/include/mcs51/mcs51reg.h,
4128         * device/include/mcs51/reg51.h,
4129         * device/include/mcs51/reg764.h,
4130         * device/include/mcs51/regc515c.h,
4131         * device/include/mcs51/sab80515.h: and added them here
4132
4133 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
4134
4135         * device/include/stdarg.h: changed SDCC specific keywords to double
4136           underlined form.
4137         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
4138           mcs51 and ds390.
4139         * device/include/hc08/mc68hc908gp32.h,
4140         * device/include/hc08/mc68hc908jb8.h,
4141         * device/include/hc08/mc68hc908jkjl.h,
4142         * device/include/hc08/mc68hc908qy.h: fixed comments
4143         * device/include/mcs51/README: updated
4144         * device/include/mcs51/c8051f120.h: added PINRSF
4145         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
4146         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
4147           amidst code. Also inline is not supported.
4148
4149 2005-04-06 Raphael Neider <rneider AT web.de>
4150
4151         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
4152         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
4153           callers stack/frame pointers
4154
4155 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4156
4157         * device/include/pic16/usart.h: added, missing in previous commit,
4158         * device/include/pic16/adc.h: fixed typo,
4159         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
4160         commit,
4161         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
4162         <p18fxxx.inc>
4163         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
4164         uninitialized because a bug appears with gplink
4165         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
4166         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
4167         complains for unrecognised option
4168
4169 2005-04-05 Raphael Neider <rneider AT web.de>
4170
4171         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
4172           structs as well (using memcpy)
4173         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
4174           on ISRs (GOTO has no label)
4175         * src/pic16/device.h: added OF_OPTIMIZE_DF
4176         * src/pic16/main.c: added compiler switch --optimize-df to enable the
4177           new data flow analysis/optimization
4178         * src/pic16/pcode.c: added (prototypes for and implementation of)
4179           dataflow analysis functions, fixed pCodeInstructions' inCond and
4180           outCond values, made RCALL a branch instruction
4181         * (pic16_unlinkpCode): keep C line if possible
4182         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
4183           C line moved if possible
4184         * (pic16_getRegFrompCodeOp): NEW, improved version of...
4185         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
4186           to use new pic16_getRegFrompCodeOp (works for more SFRs)
4187         * (pic16_BuildFlow): fixed skip instructions with label (did not start
4188           new flow)
4189         * (pic16_getJumptabpCode): NEW, needed in...
4190         * (LinkFlow): fixed handling of jumptables, calls and conditional
4191           branches
4192         * (pic16_InsertCommentAfter): NEW
4193         * (pic16_pCodeReplace): made verbose and flow preserving
4194         * (AnalyzeFlow): added call to data flow analysis
4195         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
4196         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
4197         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
4198
4199 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4200
4201         * src/SDCCast.c (decorateType): fixed bug #1105626
4202
4203 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
4204
4205         * device/include/asm/pic16/features.h,
4206         * pic18f*.h headers,
4207         * device/include/pic16/adc.h,
4208         * device/include/pic16/delay.h,
4209         * device/include/pic16/i2c.h,
4210         * device/include/pic16/malloc.h,
4211         * device/include/pic16/stdio.h,
4212         * device/include/pic16/stdlib.h,
4213         * device/include/pic16/string.h,
4214         * device/lib/pic16/libc/stdio/printf_tiny.c,
4215         * device/lib/pic16/libc/stdio/printf_small.c,
4216         * device/lib/pic16/libc/stdio/strmgpsim.c,
4217         * device/lib/pic16/libc/stdio/strmmssp.c,
4218         * device/lib/pic16/libc/stdio/strmusart.c,
4219         * device/lib/pic16/libc/stdio/vfprintf.c,
4220         * device/lib/pic16/libc/stdlib/ltoa.c,
4221         * device/lib/pic16/libc/stdlib/putchar.c,
4222         * device/lib/pic16/libc/stdlib/x_ftoa.c,
4223         * device/lib/pic16/libc/stdlib/memchrpgm.c,
4224         * device/lib/pic16/libc/stdlib/memchrram.c,
4225         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
4226         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
4227         * device/lib/pic16/libio/adc/adcbusy.c,
4228         * device/lib/pic16/libio/adc/adcread.c,
4229         * device/lib/pic16/libio/adc/adcsetch.c,
4230         * device/lib/pic16/libio/usart/ubaud.c,
4231         * device/lib/pic16/libio/usart/ubusy.c,
4232         * device/lib/pic16/libio/usart/udrdy.c,
4233         * device/lib/pic16/libio/usart/uopen.c,
4234         * device/lib/pic16/libio/usart/uputc.c,
4235         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
4236         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
4237         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
4238         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
4239         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
4240         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
4241         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
4242         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
4243         specific keywords to double underlined form,
4244         * device/lib/pic16/libc/Makefile.rules,
4245         * device/lib/pic16/libsdcc/Makefile.rules,
4246         * device/lib/pic16/libm/Makefile,
4247         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
4248         to compile with C standard set in Makefile.common
4249         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
4250         rand.c and crc.c in compilation process,
4251         * device/lib/pic16/libsdcc/int/divuint.c,
4252         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
4253         `c' from signed to unsigned,
4254         * device/lib/pic16/startup/crt0.c,
4255         * device/lib/pic16/startup/crt0i.c,
4256         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
4257         keywords to double underlined form, bug fixes in _do_cinit function
4258         which prevented the correct initialization of the .idata segment,
4259         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
4260         core to enter a infinite loop
4261         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
4262
4263 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4264
4265         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
4266
4267 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4268
4269         * device/include/Makefile.in: add support for hc08 subdirectory
4270         * device/include/hc08/: new subdirectory
4271         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
4272         Lucas Loizaga, thanks!
4273         * device/include/hc08/mc68hc908qy.h,
4274         * device/include/hc08/mc68hc908gp32.h,
4275         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
4276         their own directory. Changed internal macro names to use the compiler
4277         reserved namespace. Changed SDCC specific keywords to double
4278         underlined form.
4279         * device/include/math.h,
4280         * device/include/malloc.h,
4281         * device/include/stdarg.h,
4282         * device/include/stdbool.h
4283         * device/include/string.h,
4284         * device/include/tinibios.h,
4285         * device/include/ds400rom.h,
4286         * device/include/8051.h,
4287         * device/include/8052.h,
4288         * device/include/80c51xa.h,
4289         * device/include/at89c55.h,
4290         * device/include/at89S8252.h,
4291         * device/include/at89x51.h,
4292         * device/include/at89x52.h,
4293         * device/include/ds80c390.h,
4294         * device/include/reg764.h,
4295         * device/include/regc515c.h,
4296         * device/include/sab80515.h,
4297         * device/include/mcs51/c8051f000.h,
4298         * device/include/mcs51/c8051f018.h,
4299         * device/include/mcs51/c8051f020.h,
4300         * device/include/mcs51/c8051f040.h,
4301         * device/include/mcs51/c8051f060.h,
4302         * device/include/mcs51/c8051f120.h,
4303         * device/include/mcs51/c8051f300.h,
4304         * device/include/mcs51/c8051f310.h,
4305         * device/include/mcs51/c8051f320.h,
4306         * device/include/mcs51/c8051f330.h,
4307         * device/include/mcs51/c8051f350.h,
4308         * device/include/z180.h: Changed SDCC specific keywords to double
4309         underlined form.
4310
4311 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
4312
4313         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
4314         18F4455,
4315         * (pic16_assignConfigWordValue): disable testing of configuration
4316         register value with config mask,
4317         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
4318         function with port->fun_prefix,
4319         * (genFunction): when generating a naked interrupt function never
4320         create an absolute segment placed in interrupt vector address, place
4321         the actual interrupt function at IVA instead, when an interrupt
4322         function is generated with unspecified interrupt then do not create
4323         the absolute section,
4324         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
4325         code for generating a call to generic pointer get/put function with
4326         a call to function pic16_callGenericPointer(),
4327         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
4328         the call to the generic pointer get/put functions with prefixing the
4329         function name with port->fun_prefix,
4330         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
4331         * src/pic16/main.c (_process_pragma): prefix function with
4332         port->fun_prefix,
4333         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
4334         calling assembler, old 18Fxxxx macro is deprecated,
4335         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
4336         PC_ASMDIR in while condition,
4337         * (findInstruction): add PC_ASMDIR in while condition,
4338         * (buildCallTree): prefix main with port->fun_prefix,
4339         * (pic16_pCode2str): fixed bug that didn't emit the memory access
4340         identifier for variable with banked access in instructions BTFSS,
4341         BTFSC, BCF, BSF, BTG
4342         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
4343         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
4344         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
4345         perform optimization when enviroment variable NO_REG_OPT is set,
4346         * (insideLRBlock): NEW, return 1 if register is inside an
4347         INF_LOCALREGS block,
4348         * (RemoveRegFromLRBlock): remove a register that is completely
4349         eliminated by register optimization, but it is still left in local
4350         register store/restore in/from stack block,
4351         * (Remove2pcodes): after removing register, check to see if it
4352         should be removed from local register store/restore in/from stack
4353         block,
4354         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
4355         DUMMY_READ_VOLATILE,
4356
4357         * device/include/pic16/adc.h: minor prototype modifications and
4358         update,
4359         * device/include/pic16/malloc.h: added GPL notice various
4360         modifications,
4361         * device/include/pic16/stdint.h: NEW, standard header for ints
4362         * device/include/pic16/delay.h: NEW, header for delay functions,
4363         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
4364         delay1mtcy,
4365         * device/include/pic16/signal.h: NEW, header providing helper macros
4366         for implementing signal handlers,
4367         * device/include/pic16/stdio.h: added prototypes for functions,
4368         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
4369         prototypes for stdin and stdout, added macro PUTCHAR to
4370         automatically implement putchar function prototype,
4371         * device/include/pic16/usart.h: modified and updated USART library,
4372         * device/lib/pic16/libio/adc/,
4373         * device/lib/pic16/libio/i2c: some modifications to improve library
4374         performance,
4375         * device/lib/pic16/libc/stdio/: modifications for the new printf*
4376         family of functions,
4377         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
4378         family of functions and other sources,
4379         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
4380         of the PIC18Fxx[28] devices,
4381         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
4382         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
4383         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
4384         _do_cinit function, because the previous failed when local variables
4385         where not placed in the same memory bank,
4386         * device/lib/pic16/libsdcc/char/: various modifications to improve
4387         library performance,
4388         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
4389         information on the new functions of the c library and more...
4390
4391 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4392
4393         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
4394
4395 2005-03-26 Raphael Neider <rneider AT web.de>
4396
4397         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
4398           if condition == CARRY)
4399         * (genCmp): adapted to new genSkipc semantics
4400         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
4401           on rIfx (genCmp was broken)
4402
4403 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4404
4405         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
4406         * src/z80/main.c (_keywords[]),
4407         * src/SDCCglobal.h (struct options),
4408         * src/SDCC.y,
4409         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
4410         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
4411         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
4412         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
4413         always available in leading double underscore form. The C99 support is
4414         mostly missing, but it's a start.
4415         * support/regression/tests/bug-227710.c: fixed nonconforming use of
4416         reserved identifier "__data".
4417
4418 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4419
4420         * src/mcs51/peeph.def: fixed bug 1170013
4421
4422 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
4423
4424         * device/include/mcs51reg.h: fixed bug 842007
4425
4426 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4427
4428         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
4429         last time.
4430
4431 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4432
4433         * src/port.h (struct PORT),
4434         * src/avr/ralloc.c (avr_assignRegisters),
4435         * src/avr/main.c,
4436         * src/ds390/ralloc.c (ds390_assignRegisters),
4437         * src/ds390/main.c,
4438         * src/hc08/ralloc.c (hc08_assignRegisters),
4439         * src/hc08/main.c,
4440         * src/mcs51/ralloc.c (mcs51_assignRegisters),
4441         * src/mcs51/main.c,
4442         * src/pic/ralloc.c (pic14_assignRegisters),
4443         * src/pic/main.c,
4444         * src/pic16/ralloc.c (pic16_assignRegisters),
4445         * src/pic16/main.c,
4446         * src/xa51/ralloc.c (xa51_assignRegisters),
4447         * src/xa51/main.c,
4448         * src/z80/ralloc.c (z80_assignRegisters),
4449         * src/z80/ralloc.h,
4450         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
4451         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
4452         * src/SDCCcse.h,
4453         * src/SDCCdflow.c (computeDataFlow),
4454         * src/SDCCdflow.h,
4455         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
4456         * src/SDCCloop.h,
4457         * src/SDCCcflow.c (*),
4458         * src/SDCCcflow.h,
4459         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
4460         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
4461         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
4462         immedDom() returning wrong block; probably fixes bug #1160833)
4463
4464 2005-03-20 Borut Razem <borut.razem AT siol.net>
4465
4466         * support/scripts/inc2h.pl: WIN32 port
4467
4468 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
4469
4470         * device/lib/makefile.in: added abs.c and labs.c
4471
4472 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
4473
4474         * device/include/stdint.h: added
4475         * device/lib/abs.c: added
4476         * device/lib/labs.c: added
4477         * device/include/stdlib.h: added abs() and labs() prototypes
4478         * device/lib/libsdcc.lib: added abs and labs
4479         * device/include/float.h,
4480         * device/lib/_fsmul.c,
4481         * device/lib/printf_fast.c,
4482         * device/lib/printf_tiny.c: updated comments
4483
4484 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4485
4486         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
4487         bug #1164313
4488
4489 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4490
4491         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
4492         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
4493
4494 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
4495
4496         * device/lib/printf_large.c: removed inline assembly for portability and
4497           readability. Use printf_fast if speed or size are more important.
4498         * src/pic16/gen.c: removed conditions around use of DEBUGpc
4499         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
4500
4501 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
4502
4503         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
4504         prevent compiler warning
4505
4506 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4507
4508         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
4509         moved to level 0 and declared as static. Also they are explicit
4510         placed in access bank. This was necessery because some times they
4511         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
4512         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
4513         optimizations. Currently only compare to unsigned char is implemented,
4514         * src/pic16/gen.c: added fReturnIdx array,
4515         * (struct resolvedIfx) is moved to gen.h and made public,
4516         * (struct _G): added sregsAlloc and sregsAllocSet fields,
4517         * (aopForSym): added an optimization to directly store in stack of
4518         the operand of a SEND iCode,
4519         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
4520         but as registers instead (AOP_REG) using the fReturnIdx array,
4521         * (pic16_freeAsmop): remove the freed register from the
4522         _G.sregsAlloc field,
4523         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
4524         a compare of 'WREG',
4525         * (pic16_popGetTempRegCond): changed function prototype, now
4526         function takes also a bitVector argument v which holds the current
4527         set of registers that are allocated for stack access by aopForSym,
4528         registers allocated in aopForSym for accessing stack symbols are not
4529         any more part of the functions usedRegs field,
4530         * (genCall): some times aopOp is called for a stack variable to be
4531         send, aopForSym might perform the push, if this is true make sure
4532         that genCall doesn't push the variable twice by testing _G.resDirect,
4533         * (genFunction): changed testing for unspecified interrupt number
4534         from 256 to INTNO_UNSPEC,
4535         * modified selection scheme of frame pointer generation. Previously
4536         if function did use local registers a frame pointer was generated,
4537         now a frame pointer is generated only if function has arguments
4538         (that need PLUSW2 register access), or has stack arguments, or the
4539         compiler is not instructed to omit the frame pointer,
4540         * (genEndFunction): before restoring local registers that were saved
4541         in the function preamble, also restore the registers that *might*
4542         have been allocated for stack access,
4543         * (genRet): removed some old comments,
4544         * (genCmp, the active (RN's) version): added a call to the
4545         pic16_genCmp_special function to perform the compare with a more
4546         robust and optimized way,
4547         * (genInline): a feature has been added in inline code generation,
4548         which allows a wildcard variable substitution when writing inline
4549         assembly. Code is incomplete and experimental therefore undocumented,
4550         * (genCast): changed order of aopOp for result and right to allow
4551         aopForSym to directly load the result if possible,
4552         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
4553         perform an optimized compare on some selected special occasions,
4554         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
4555         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
4556         generate an IVT any more,
4557         * src/pic16/main.c (pic16_optionsTable): added command line option
4558         --optimize-cmp,
4559         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
4560         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
4561         macros,
4562         * src/pic16/NOTES: Raphael Neider added in list of active developers
4563         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
4564         jumptable_end to prevent bug #,
4565         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
4566         inCond and outCond fields,
4567         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
4568         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
4569         turn off register spilling,
4570         * (packRegsForOneUse): synced with other ports' versions although it
4571         is not used currently,
4572         * (pic16_packRegisters): added an optimization while reading
4573         structure bitfields, some registers may be saved (malloc code is
4574         decreased by 80 bytes)
4575
4576 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
4577
4578         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
4579         left is a bitfield, if yes, then don't optimize assignment. Perhaps
4580         this can be optimized more?
4581
4582 2005-03-10 Raphael Neider <rneider AT web.de>
4583
4584         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4585           genNearPointerGet): (hopefully) fixed access to bitfields via
4586           pointers (p->bitN = x; and x = p->bitN; failed)
4587
4588 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
4589
4590         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
4591
4592 2005-03-09 Raphael Neider <rneider AT web.de>
4593
4594         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
4595
4596 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
4597
4598         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
4599         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
4600           (regTypeNum): set REG_BIT type if necessary
4601         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
4602         * support/regression/tests/critical.c: check bug 1144613
4603
4604 2005-03-02 Raphael Neider <rneider AT web.de>
4605
4606         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
4607
4608 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4609
4610         * src/avr/ralloc.c (serialRegAssign),
4611         * src/ds390/ralloc.c (serialRegAssign),
4612         * src/hc08/ralloc.c (serialRegAssign),
4613         * src/mcs51/ralloc.c (serialRegAssign),
4614         * src/pic/ralloc.c (serialRegAssign),
4615         * src/pic16/ralloc.c (serialRegAssign),
4616         * src/xa51/ralloc.c (serialRegAssign),
4617         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
4618
4619 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
4620
4621         * src/SDCCast.c (decorateType): fixed bug 1124787
4622
4623 2005-02-20 Hubert Sack <sack AT digiplan.de>
4624         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4625
4626         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
4627         patch #1121755
4628
4629 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4630
4631         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
4632         to keep the correct label reference count when adding/removing references
4633         to labels. A peephole file using this is appended to patch #1144962.
4634
4635 2005-02-14 Raphael Neider <rneider AT web.de>
4636
4637         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
4638         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
4639         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
4640           retrievals of result operand's value on assignment
4641
4642 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
4643
4644         * device/include/pic16/string.h: modified prototype for memccpy()
4645         to memccpy(void *, void *, char, size_t)
4646         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
4647         check whether to omit frame pointer or not,
4648         * (genInline): convert all occurences of "\n" to LF in inline
4649         assembler blocks, this helps formatting the inline text,
4650         * (pic16_loadFSR0): modified prototype,
4651         * (genNearPointerGet, genNearPointerSet): reorganization of code,
4652         removed some 8051 legacy code,
4653         * (genPackBits): enabled handling bitfields exceeding one byte in size,
4654         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
4655         before allocating temporary registers in functions,
4656
4657 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4658
4659         * support/regression/tests/bitvars.c: corrected the "fix"
4660
4661 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4662
4663         * support/regression/tests/bitvars.c,
4664         * support/regression/tests/bitwise.c,
4665         * support/regression/tests/rotate.c: "fixed" problems on Alpha
4666
4667 2005-02-10 Raphael Neider <rneider AT web.de>
4668
4669         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
4670           different size for Alpha
4671         * src/pic16/gen.c (genCmpEq) : improved compare with 0
4672
4673 2005-02-09 Raphael Neider <rneider AT web.de>
4674
4675         * src/SDCC.lex(doPragma) : save and restore warning options as well
4676           (also added new stack plus clone- and copyAndFreeSDCCERRG())
4677         * have #pragma less_pedantic set the errorlevel to WARNING
4678           (fixes #1117001)
4679         * (cloneOptimize) : fixed wrong malloc's size
4680         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
4681           facilitate correct handling of #pragma (save|restore)
4682
4683 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4684
4685         * src/mcs51/gen.c: removed non-standard C nameless struct/union
4686
4687 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
4688
4689         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
4690
4691 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
4692
4693         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
4694
4695 2005-02-02 Raphael Neider <rneider AT web.de>
4696
4697         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
4698         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
4699         * (pic16_storeForReturn): fixed to allow returning function pointers
4700         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
4701         * device/include/pic16/{stddef.h,stdbool.h}: added
4702
4703 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
4704
4705         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
4706
4707 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
4708
4709         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
4710         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
4711          appeared to be required
4712
4713 2005-01-31 Borut Razem <borut.razem AT siol.net>
4714
4715         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
4716           include/mcs51 and include/z80 directories to the package
4717
4718 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4719
4720         * src/hc08/gen.c (genFunction): fixed bug #1112752
4721
4722 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4723
4724         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
4725
4726 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4727
4728         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
4729
4730 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
4731
4732         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
4733
4734 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
4735
4736         * device/include/c8051fxxx.h: removed these 6 files
4737         * device/include/mcs51/c8051fxxx.h: added these 11 new files
4738
4739 2005-01-26 Raphael Neider <rneider AT web.de>
4740
4741         * src/pic16/gen.c (genAssign): fixed assignment from longs
4742           in codespace (were cut to three bytes)
4743         * (genDummyRead): implemented (except for CODESPACE...),
4744           fixed bug #1108575
4745         * src/pic16/glue.c (emitStatistics): beautified
4746         * device/lib/pic16/libm/Makefile: added include path
4747
4748 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4749
4750         * src/z80/gen.c (aopPut): fixed bug #1103902
4751
4752 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4753
4754         * device/lib/expf.c: fixed bug #1095792
4755
4756 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
4757
4758         * device/lib/pic16/libm: added Math library sources
4759
4760 2005-01-24 Raphael Neider <rneider AT web.de>
4761
4762         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
4763           to enable upcast to pCodeOpReg2 (there is no type tag to
4764           differenciate the two and pic16_popGet2p cast into PCOR2)
4765         * src/pic16/main.c (_process_pragma): fixed another malloc bug
4766           (sizeof(sectNames) changed to sizeof(sectName))
4767           Both patches fix segfaults under MinGW.
4768
4769 2005-01-23 Raphael Neider <rneider AT web.de>
4770
4771         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
4772           Safe_[mc]?alloc()'ed variables
4773         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
4774           of (byte sized) temporaries (assign them to WREG for now)
4775         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
4776           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
4777           this might fix SIGSEGVs on MinGW...
4778         * src/SDCCopt.c (killDeadCode): restored original behaviour
4779           (volatile operands might get thrown away though)
4780
4781 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
4782
4783         * src/pic16/gen.c: fixed bug #1106975,
4784         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
4785         pointer update, INTCON is saved, global interrupts are disabled and
4786         restored after updateing TOS.
4787         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
4788         * added function attribute 'shadowregs' to take advantage of shadow
4789         registers,
4790         * added function attribute 'wparam' as an alternative to the wparam
4791         pragma,
4792         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
4793         user declares a non-ISR function as 'shadowregs',
4794         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
4795
4796 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
4797
4798         * .version: bumped version number to 2.4.8
4799         * device/lib/pic16/pics.all: list of PIC18F devices supported by
4800         pic16 port,
4801         * device/lib/pic16/libio/i2c/: I2C module support library,
4802         * device/include/pic16/i2c.h: I2C support library header,
4803         * device/lib/pic16/libc/stdio/: standard IO support sources,
4804         * (printf_small.c): printf_small() source, supports float print,
4805         * (printf_tiny.c): printf_tiny() source, does not support floats,
4806         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
4807         enable global optimizations for entire library source, other
4808         Makefiles in the source tree are also modified to reflect this,
4809         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
4810         function,
4811         * doc/sdccman.lyx: updated to reflect new changes,
4812         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
4813         sym->onStack if-case,
4814         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
4815         sbit, idata, _idata, xdata, _xdata,
4816         * added pragma library, to link an external library, (see doc),
4817         * removed command line options, --pomit-config-words, --pomit-ivt,
4818         --pleave-reset-vector,
4819         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
4820         when calling assembler to reflect memory model used, also define
4821         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
4822         reflect stack model used,
4823         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
4824         on stack return NULL,
4825
4826 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4827
4828         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
4829           of the operands is volatile. Fixes #1020220
4830
4831 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4832
4833         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
4834         * (OptimizeRegUsage): make sure that there is really no other flow where
4835           the first pCode is used
4836
4837 2005-01-22 Raphael Neider <rneider AT web.de>
4838
4839         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
4840           to fix #1106967 (pCode->seq are not set up correctly)
4841
4842 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4843
4844         * src/SDCCglue.c (glue): make sure code area is declared before the
4845         static initialization area.
4846
4847 2005-01-21 Raphael Neider <rneider AT web.de>
4848
4849         * device/lib/Makefile.in: fixed test for pic16 install dir
4850         * device/lib/pic16/*/Makefile*: modified compile flags to enable
4851           optimizations
4852         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
4853           added --optimize-goto compiler switch and pragma wparam documentation
4854         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
4855         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
4856           and PRODH closing bug #1071770 (peephole optimizer)
4857
4858 2005-01-19 Raphael Neider <rneider AT web.de>
4859
4860         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
4861           cmdLine buffers (used when calling sdcpp...) are large enough
4862           (MAX_PATH=256 truncates arguments leading to system halts when
4863           used in MinGW...)
4864         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
4865         * (genUminus): rewritten to for efficiency
4866         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
4867           used uninitialized in some cases)
4868         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
4869           copy the third byte from the int -- now assumes 0x80 (data memory)
4870         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
4871           operands (genAddLit expects the iCode's operands to swapped as
4872           well), fixed leftover bytes (crashed for short left operands)
4873         * (pic16_genMinusDec): performance improvements, removed false
4874           PIC14 emitSKPNCs
4875         * (pic16_genMinus): fixed to cope with differently sized operands
4876         * src/pic16/glue.c (pic16_glue): added new banksel optimization
4877           for --obanksel > 1
4878         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
4879         * src/pic16/graph.[ch]: implementation of directed graphs, used by
4880           new banksel optimization
4881         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
4882           analysis for temporary registers (segfaults...)
4883         * src/pic16/peeph.def: added rule
4884
4885 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
4886
4887         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
4888         which converts a float number to its ASCII representation
4889         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
4890         functions to convert the fractional and integer part of a float to ASCII,
4891         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
4892         realloc.c): added _MALLOC_SPEC to explicit place variables in data
4893         ram
4894         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
4895         _STATMEM macros,
4896         * device/include/pic16/adc.h: added GPL info,
4897         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
4898         a pCodeOp as tested operand,
4899         * (genNearPointerGet): optimized bit testing, does not use
4900         intermediate register for bit value, test directly instead with
4901         BTFSS, BTFSC, works only for single bits,
4902         * (genpic16Code): dump the name of the iCode in the asm,
4903         * src/pic16/ralloc.c (decodeOp): removed static declaration and
4904         renamed to pic16_decodeOp,
4905         * (serialRegAssign): do not allocate a temporary register for iCode
4906         sequences that test a single bit for 1/0
4907
4908 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
4909
4910         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
4911         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
4912         access stack and frame pointers. They are initially assigned to
4913         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
4914         accessing SFRs. Updated all occurences of modification of stack or
4915         frame pointer in gen.c and pcode.c,
4916         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
4917         assigning of a literal value to pointers,
4918         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
4919         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
4920         selected
4921
4922 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
4923
4924         * doc/sdccman.lyx: update documentation about stack pragma, added
4925         some info for stack memory models
4926
4927 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4928
4929         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
4930
4931 2005-01-08 Raphael Neider <rneider AT web.de>
4932
4933         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
4934           udata sections to fix bug #1097823
4935
4936 2005-01-05 Raphael Neider <rneider AT web.de>
4937
4938         * src/pic16/gen.c (genGenericShift): added handling of differently
4939           sized left operand and result
4940
4941 2005-01-04 Raphael Neider <rneider AT web.de>
4942
4943         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
4944         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
4945           to hold the condition bit)
4946         * added new version of genCmp (old code available via #define)
4947         * added new version of genShiftLeft/genShiftRight in a generic
4948           way, now supports shifting by negative values
4949         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
4950           shiftCount (expected by genGenericShift)
4951         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
4952         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
4953           dump
4954         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
4955           is an invalid literal too...)
4956
4957 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
4958
4959         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
4960         from Raphael Neider,
4961         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
4962         for 8-bit literals. This fixes some literal operands which are sign
4963         extended to 16-bits ints when instruction needs only 8-bits.
4964
4965 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
4966
4967         * device/lib/logf.c: added mcs51 assembly version
4968         * device/lib/expf.c: added mcs51 assembly version
4969         * device/lib/_logexpf.c: new shared asm code for expf and logf
4970         * device/include/math.h: add defines for assembly math library
4971         * device/lib/Makefile.in: build new _logexpf.c
4972         * device/lib/libfloat.lib: use new _logexpf.c
4973
4974 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4975
4976         * src/pic/device.c
4977         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
4978           device types which have less than 0x7f registers.
4979
4980 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4981
4982         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
4983
4984 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4985
4986         * device/lib/printf_fast.c: only build on supported arch.
4987         * device/lib/printf_tiny.c: only build on supported arch.
4988         * device/lib/printf_fast_f.c: only build if asm float lib
4989         * device/lib/_fsget1arg.c: only build if asm float lib
4990         * device/lib/_fsget2args.c: only build if asm float lib
4991         * device/lib/_fsnormalize.c: only build if asm float lib
4992         * device/lib/_fsreturnval.c: only build if asm float lib
4993         * device/lib/_fsrshift.c: only build if asm float lib
4994         * device/lib/_fsswapargs.c: only build if asm float lib
4995         * device/include/stdio.h: don't provide print_fast,
4996           print_fast_f, print_tiny prototypes if --xstack used
4997
4998 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
4999
5000         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
5001         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
5002           to the SOURCES
5003
5004 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
5005
5006         * device/lib/printf_fast_f.c: same as printf_fast, but
5007           with floating point enabled
5008         * device/lib/printf_fast.c: minor tweaks
5009         * device/include/stdio.h: add printf_fast_f
5010
5011 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5012
5013         * src/SDCCmain.c: make --float-reent default for mcs51
5014         * device/lib/_fsadd.c: added mcs51 assembly version
5015         * device/lib/_fssub.c: added mcs51 assembly version
5016         * device/lib/_fsmul.c: added mcs51 assembly version
5017         * device/lib/_fsdiv.c: added mcs51 assembly version
5018         * device/lib/_fseq.c: added mcs51 assembly version
5019         * device/lib/_fsneq.c: added mcs51 assembly version
5020         * device/lib/_fsgt.c: added mcs51 assembly version
5021         * device/lib/_fslt.c: added mcs51 assembly version
5022         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
5023         * device/lib/Makefile.in: add _fscmp to build
5024         * device/lib/libfloat.lib: add _fscmp to build
5025
5026 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
5027
5028         * device/lib/_fs2slong.c: added mcs51 assembly version
5029         * device/lib/_fs2sint.c: added mcs51 assembly version
5030         * device/lib/_fs2schar.c: added mcs51 assembly version
5031         * device/lib/_fs2ulong.c: added mcs51 assembly version
5032         * device/lib/_fs2uint.c: added mcs51 assembly version
5033         * device/lib/_fs2uchar.c: added mcs51 assembly version
5034         * device/lib/_slong2fs.c: added mcs51 assembly version
5035         * device/lib/_sint2fs.c: added mcs51 assembly version
5036         * device/lib/_schar2fs.c: added mcs51 assembly version
5037         * device/lib/_ulong2fs.c: added mcs51 assembly version
5038         * device/lib/_uint2fs.c: added mcs51 assembly version
5039         * device/lib/_uchar2fs.c: added mcs51 assembly version
5040         * device/include/float.h: added #define to select asm vs c
5041
5042 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
5043
5044         * device/lib/printf_fast.c: improvements to float output
5045         * device/include/float.h: add defines for assembly float library
5046         * device/lib/_fsget1arg.c: receive 1 float arg
5047         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
5048         * device/lib/_fsnormalize.c: normalize a float
5049         * device/lib/_fsreturnval.c: return float, various helper routines
5050         * device/lib/_fsrshift.c: right shift a float's mantissa
5051         * device/lib/_fsswapargs.c: swap 2 floats
5052         * device/lib/Makefile.in: build these 6 new files for mcs51
5053         * device/lib/libfloat.lib: add these 6 files to the library
5054
5055 2004-12-26 Borut Razem <borut.razem AT siol.net>
5056
5057         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
5058           built by gcc 3.4.2
5059
5060 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
5061
5062         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
5063           and fully reentrant and register bank neutral.
5064         * device/lib/printf_fast.c: added float (not enabled by default),
5065           added compact/slower integer (also not enabled by default),
5066           improved size/speed of fast integer code, other minor changes
5067         * device/include/stdio.h, device/lib/Makefile.in,
5068           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
5069
5070 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
5071
5072         * src/pic16/pcode.c: declaring variables other than at the start of a
5073           block is not supported in C by VC6.
5074
5075 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
5076
5077         * applied a previous patch from Raphael Neider that wasn't included
5078         in the previous commits, which fixes infinite loops within jumptable
5079         improvements,
5080         * made some fixes that previous patches introduced
5081
5082 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
5083
5084         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
5085         that fixes an issue with AOP_PCODE asmop's offset,
5086         * (pic16_popCopyReg): update instance field too,
5087         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
5088         function of pic port,
5089         * (genCmp, genAnd, genAssign),
5090         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
5091
5092 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
5093
5094         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
5095         variables initial values to idata section,
5096         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
5097         variables in some functions. This utilizes parmBytes field of iCode
5098         structure to hold the offset of the variable in stack. (might be
5099         able to use the stack field too?)
5100         * applied patch from Raphael Neider # ### , # ###
5101         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
5102         variable initial values in idata section,
5103         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
5104         for static variables with initial value
5105         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
5106         applied fix in while loop from Raphael Neider.
5107
5108 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
5109
5110         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
5111         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
5112         * src/ds390/ralloc.c (serialRegAssign): spill bits
5113         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
5114         * support/Util/SDCCerr.c,
5115         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
5116         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
5117         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
5118
5119 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
5120
5121         * device/include/sdcc-lib.h: inserted LGPL, added includes
5122           asm/ds390/features.h and asm/mcs51/features.h
5123         * device/include/asm/default/features.h,
5124         * device/include/asm/gbz80/features.h,
5125         * device/include/asm/z80/features.h: added empty _AUTOMEM
5126           and _STATMEM
5127         * device/include/asm/ds390/features.h,
5128         * device/include/asm/mcs51/features.h: added files with defines for
5129           _AUTOMEM and _STATMEM indicating automatic and static storage class
5130         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
5131         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
5132         * src/SDCCicode.c (geniCodeCast),
5133         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
5134         * src/SDCCloop.c (loopInduction): removed unused variable lr
5135         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
5136           to convertToFcall to include char modulo (RFE 1065037), added check
5137           if left operand is unsigned and use abs of literal value
5138         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
5139           as it doesn't work after conversion from peephole.def to peephole.rul
5140         * src/mcs51/gen.c (toBoolean): added check for size,
5141           (genModOneByte): optimized code for signed char modulo a literal
5142           power of 2 (thanks to Hubert Sack),
5143           (genRRC): removed unnecessary "clr c",
5144           (genRLC): replaced "add a,acc" with cheaper "rlc a"
5145         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
5146           jump optimization,
5147           swapped rules 256.c and 256.d,
5148           extended 256.d by using new multiple checks (thanks Erik),
5149           added rules 256.e and 256.f,
5150           updated rule 261.a and 261.b to new generated code
5151         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
5152
5153 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5154
5155         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
5156           induction related bugs, including first part of bug #1074377
5157
5158 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
5159
5160         * applied patch from bug-report #1076292,
5161         * applied patches for genAnd and Goto-optimizations for Raphael
5162         Neider,
5163         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
5164         dump a less iCode information,
5165         * src/pic16/device.h (pic16_options_t): added field debgen,
5166         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
5167         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
5168         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
5169         puclic,
5170         * (various functions): added macros FENTRY and FENTRY2 to functions,
5171         to emit function prologue,
5172         * (various functions): fixed indentation,
5173         * (genNearPointerGet): fixed loading of FSR0,
5174         * (genPackBits): applied patch from Raphael Neider to fix updating
5175         of FSR0 and touching only the modified bits,
5176         * src/pic16/genarith.c (various functions): added macros FENTRY to
5177         emit function prologue in comments,
5178         * src/pic16/pcode.h: added functions debugf2, debugf3,
5179         * src/pic16/ralloc.c: partial fix for packForPush caused
5180         segmentation fault,
5181
5182 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5183
5184         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
5185           <stsp AT users.sourceforge.net> with reversed byte order
5186         * support/regression/tests/rotate.c: added (ds390 skips some tests)
5187
5188 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5189
5190         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
5191           bug #1074377
5192         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
5193         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
5194
5195 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5196
5197         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
5198
5199 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5200
5201         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
5202           conditions,
5203           (setFromConditionArgs): friendly operand parser for peephole rules,
5204           (operandBaseName, operandsNotRelated): new peephole condition
5205           "operandsNotRelated" -- similar to "operandsNotSame", but takes
5206           architecture specific register naming into account, handles n-way
5207           comparisons, and supports quoted literals
5208         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
5209
5210 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5211
5212         * src/mcs51/peeph.def: fixed bug #1076940
5213
5214 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5215
5216         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
5217
5218 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5219
5220         Adding support for replacing ljmps with sjmps in jumptables
5221         generated for switch statements. For now you need to set the
5222         environment variable SDCC_SJMP_JUMPTABLE to enable this.
5223         Now 4 algorithms for mcs51 jumptable generation are used:
5224         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
5225         addresses loaded pc-relative for up to 112 cases and stack-pushing
5226         target addresses loaded with offset from dptr for up to 256 cases.
5227
5228         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
5229         * src/mcs51/main.c: adapted constants for switch table generation
5230         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
5231
5232 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
5233
5234         * device/lib/printf_large.c (_print_format): fixed bug 1073386
5235         * support/regression/tests/bug1057979.c: added test for bug 1073386
5236
5237 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5238
5239         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
5240         compilers
5241
5242 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5243
5244         * src/pic16/device.h,
5245         * src/pic16/genarith.c,
5246         * src/pic16/glue.c,
5247         * src/pic16/main.c,
5248         * src/pic16/pcode.c: applied patches #1068154 and #1070213
5249
5250 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
5251
5252         Large cummulative patch for pic16 port.
5253         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
5254         to call when a stack overflow occurs,
5255         * (malloc.h): added CVS Id tag,
5256         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
5257         variable,
5258         * added libc directory. The current version of LibC contains string
5259         functions, ctype functions and macros and some functions of the
5260         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
5261         be extensively tested in the future. Standard disclaimer here.
5262         Library is not automatically build yet. But one can build it by
5263         invoking 'make' inside the libc directory.
5264         * added ADC library under libio. Preliminary version yet.
5265
5266         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
5267         * src/pic16/gen.c (aopForRemat): asmop size is filled by
5268         aopForRemat() now and not by pic16_aopOp(),
5269         * (pic16_popGetTempReg): removed warning messgae when allocating
5270         temporary registers, its a buggy feature and will be removed,
5271         * (pic16_popGet): set register instance field in AOP_CRY,
5272         * (pic16_outBitC): fixed for results in size greater than 1,
5273         * (genUminusFloat): fixed for pic16, ported code from mcs51,
5274         * (pic16_storeForReturn): optimized return of 0,
5275         * (genCmp): experimental code for new genCmp which uses PIC18's
5276         special compare&skip instructions. Initial tests fail some times
5277         with variables grater than 1 byte in size, so new code is disabled,
5278         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
5279         a single bit,
5280         * (genCast): began a fix to optimize the casting of a bit to another
5281         bit, now assigning a bitfield to another bitfield will fail, sorry,
5282         * src/pic16/main.c: disabled the use of lr-support feature,
5283         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
5284         * added some function prototypes, added function _debugf prototype,
5285         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
5286         bits with offset (case PO_GPR_BIT),
5287         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
5288         command line,
5289         * (isBankInstruction): modified to return 0 for no banking instruction,
5290         and 1 for banking instruction,
5291         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
5292         caused stop processing pCodes after a inline assembly block,
5293         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
5294         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
5295         registers when it shouldn't,
5296         * src/pic16/ralloc.c (allocReg): add preliminary support for
5297         supporting a limited set of temporary registers,
5298
5299 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5300
5301         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
5302           genDataPointerSet): ensure assignments always copy in MSB to LSB
5303           order,
5304           (loadRegFromAop): recognize CLRH optimization,
5305           (genFunction): optimize RECEIVE iCodes in reentrant functions
5306
5307 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5308
5309         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
5310           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
5311           selected.
5312         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
5313         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
5314           contiguous with data
5315
5316 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5317
5318         * device/lib/_gptrget.c (_gptrget),
5319         * device/lib/_gptrgetc.c (_gptrgetc),
5320         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
5321           instead of sjmp to ret
5322         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
5323           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
5324
5325 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5326
5327         * .version: bumped version to 2.4.7
5328         * device/lib/_gptrget.c (_gptrget): is now _naked
5329         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
5330         * device/lib/_gptrput.c (_gptrput): is now _naked
5331         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
5332           (createFunction): fixed xstack
5333         * src/SDCCglue.c (emitMaps): set allocation required for bit area
5334         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
5335           or bit either,
5336           (geniCodeCritical): store original interrupt state in an iTemp bit
5337           var unless stack-auto
5338         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
5339         * src/SDCCmain.c (setIncludePath): added include/target to search path
5340         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
5341         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
5342           prototype,
5343           (processFuncArgs): put bit vars in bit area
5344         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
5345           unsaveRBank): fixed xstack,
5346           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
5347           (genFunction, genEndFunction): fixed xstack,
5348           (genAssign): optimization don't walk backwards through mem
5349         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
5350         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
5351         * support/regression/Makefile: also make library (for stack-auto) when
5352           making "all" and added "test-mcs51-xstack-auto"
5353         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
5354         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
5355         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
5356         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
5357         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
5358           make-library by MAKE_LIBRARY
5359         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
5360           regression tests for xstack
5361         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
5362         * support/regression/tests/critical.c: test for critical on mcs51
5363
5364 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5365
5366         * support/regression/ports/ucz80/spec.mk: use include and lib files from
5367           built version of sdcc instead of installed version
5368
5369 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5370
5371         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
5372         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
5373           vprintf.c now
5374         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
5375         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
5376           WARNING: remove device/lib/build/z80/printf.o by hand when
5377           updating from previous build!
5378         * device/lib/z80/printf.c: updated comment
5379         * support/regression/tests/bug1057979.c: test all ports now
5380         * support/regression/tests/bug1065458.c: file added
5381
5382 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5383
5384         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
5385           *_start and *_end symbols for static functions
5386
5387 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
5388
5389         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
5390           and search crt0.o in all library paths,
5391           (setIncludePath): proper handling of --nostdinc,
5392           (setLibPath): proper handling of --nostdlib
5393         * support/regression/Makefile,
5394         * support/regression/ports/ds390/spec.mk,
5395         * support/regression/ports/gbz80/spec.mk,
5396         * support/regression/ports/hc08/spec.mk,
5397         * support/regression/ports/mcs51/spec.mk,
5398         * support/regression/ports/mcs51-large/spec.mk,
5399         * support/regression/ports/mcs51-stack-auto/spec.mk,
5400         * support/regression/ports/z80/spec.mk: use include and lib files from
5401           built version of sdcc instead of installed version
5402         * doc/sdccman.lyx: fixed typo in --nostdinc
5403
5404 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
5405
5406         * src/pic/pcode.c,
5407         * src/pic/device.c,
5408         * src/pic/ralloc.c,
5409         * src/pic/gen.c : added support to generate code for struct bit fields.
5410
5411 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5412
5413         * as/xa51/xa_version.h,
5414         * device/include/errno.h,
5415         * device/include/regc515c.h,
5416         * device/lib/_itoa.c,
5417         * device/lib/_ltoa.c,
5418         * device/lib/ser_ir_cts_rts.c,
5419         * sim/ucsim/xa.src/glob.cc,
5420         * sim/ucsim/xa.src/inst_gen.cc,
5421         * sim/ucsim/xa.src/xa_bit.cc,
5422         * sim/ucsim/xa.src/xa_sfr.cc,
5423         * sim/ucsim/z80.src/inst_dd.cc,
5424         * sim/ucsim/z80.src/inst_fdcb.cc,
5425         * support/scripts/keil2sdcc.pl,
5426         * src/pic16/pic16.dsp,
5427         * src/pic16/pic16a.dsp: corrected cvs line endings
5428         * device/lib/printf_large.c: fixed bug 1057979
5429         * src/pic16/gen.c: fixed non-C standard code
5430         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
5431         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
5432         * support/regression/ports/mcs51/support.c: reload T1 asap
5433         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
5434           pdata use and clear idata startup behaviour
5435         * support/regression/tests/bug1057979.c: added
5436
5437 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
5438
5439         * device/examples/ds390/ow390/ad26.h,
5440         * device/examples/ds390/ow390/cnt1d.h,
5441         * device/examples/ds390/ow390/crcutil.c,
5442         * device/examples/ds390/ow390/ownet.h,
5443         * device/examples/ds390/ow390/owsesu.c,
5444         * device/examples/ds390/ow390/swt12.h,
5445         * device/examples/ds390/ow390/swtoper.c,
5446         * device/examples/ds390/ow390/temp10.h,
5447         * device/examples/ds390/ow390/thermodl.c,
5448         * device/examples/ds390/tinitalk/tinitalk.dsp,
5449         * device/examples/ds390/tinitalk/tinitalk.dsw,
5450         * device/examples/mcs51/clock/hw.h,
5451         * device/examples/mcs51/simple2/go.bat,
5452         * device/examples/serialcomm/windows/serial.h,
5453         * device/examples/xa51/dummy.c,
5454         * device/examples/xa51/hello.c,
5455         * device/include/80c51xa.h,
5456         * device/include/at89x051.h: corrected cvs line endings
5457
5458 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
5459
5460         * src/pic16/main.c (options): added command line --gstack, to trace
5461         stack over/under flows,
5462         * added pragma 'wparam' to allow passing first byte of function
5463         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
5464         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
5465         call to __gstack_test function and sets up the symbol as extern,
5466         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
5467         * popaop): added call to pic16_testStackOverflow,
5468         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
5469         wparamList list,
5470         * (genCall, genPcall): now all parameters are passed via stack
5471         except in functions that are pass to wparam pragma in which WREG is
5472         used too,
5473         * (genPcall): REENTRANT flag is checked to see if variable prototype
5474         contains reentrant keyword, don't call a non-reentrant function, via
5475         a reentrant function pointer or vice versa, functions are never
5476         passed via WREG,
5477         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
5478         D.Winkler,
5479         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
5480         SIGSEGV when accessing a NULL register stucture,
5481         * (pic16_printGPointerType): modified to handle UPPER modifier for
5482         function initializers, changed prototype of function to simpler one,
5483         * (pic16_printIvalFuncPtr): check to see if function is already
5484         added in externs list,
5485         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
5486         optimized a move from W to SFR with a move to the same register
5487         later after a CALL,
5488         * device/lib/pic16/debug: NEW directory, contains debug features
5489         which are enabled when linking with libdebug.lib, currently command
5490         line option --gstack enables stack pointer tracing for over/under
5491         flow, corresponding sources are in debug/gstack
5492
5493 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
5494
5495         * doc/sdccman.lyx: updated SDCC version,
5496         * (PIC16 port): update list of command line options,
5497         * src/pic16/device.h (structure pic16_options_t): added field gstack
5498         to enable stack overflow tracing on push/pops,
5499         * src/pic16/device.c (statistics structure): added statistics
5500         structure,
5501         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
5502         pic16_dump_int_registers): increase statistics counters for each
5503         * variable which is encountered
5504         * (pic16_dump_usection): emit each .udata variable to its own udata
5505         section,
5506         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
5507         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
5508         parameters via stack, otherwise use old scheme,
5509         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
5510         assembler output file,
5511         * src/pic16/main.c: added command line options --gstack to enable
5512         push/pop tracing for stack overflow,
5513         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
5514         instructions): added size of each instruction,
5515         * (pic16_countInstruction): estimate size of instructions in
5516         the_pFile list, inline assembly blocks are not counted,
5517         * (pic16_FixRegisterBanking): trace previous register usage, when
5518         banksel optimizations is greater than 0, don't emit a redudant
5519         banksel directive,
5520
5521 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
5522
5523         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
5524         * src/pic16/ralloc.c : applied same fix for pic16.
5525         * src/pic/gen.c : tidied it up a little.
5526
5527 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5528
5529         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
5530         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
5531
5532 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5533
5534         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
5535
5536 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5537
5538         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
5539         non-reentrant function __modsint in the interrupt function (thus
5540         corrupting math operations during serial I/O)
5541         * device/lib/ser_ir.c: as above, changed buffersize
5542         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
5543         256.c,d for zeroing
5544         * doc/Makefile: added option -t for rsync
5545
5546 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5547
5548         * src/SDCCast.h (struct ast),
5549         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
5550
5551 2004-10-20 Borut Razem <borut.razem AT siol.net>
5552
5553         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
5554         package
5555
5556 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
5557
5558         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
5559         makefile targets,
5560         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
5561         support functions to replace long sequences of MOVFF's from access
5562         bank registers to stack and vice versa,
5563         * src/pic16/device.h: added new field opt_flags, where optimization
5564         flags can be set to enable certain features,
5565         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
5566         * pBlock, (genFunction, genEndFunction): surroung loop for
5567         saving/loading used registers in stack with PC_INFO pCodes,
5568         INF_LREGS. Code in between can then be optimized by pCode optimizer
5569         to support function calls,
5570         * (genDataPointerSet): fixed bug which loaded float fields in
5571         structures with corrupt data,
5572         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
5573         in a standard way debug info on stderr. Feature used for developing
5574         and debugging only,
5575         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
5576         obsolete chunks of code,
5577         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
5578         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
5579         * pic16/src/pcode.c (pic16_newpCodeInfo,
5580         * (pic16_newpCodeOpLocalRegs),
5581         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
5582         feature,
5583         * (pic16_pCodeConstString): printing of the initial value of a
5584         symbol as a comment is inhibited since parsing was already done by
5585         copyStr and output is corrupt,
5586         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
5587
5588 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5589
5590         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
5591
5592 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
5593
5594         * as/mcs51/lkarea.c: removed old K&R style,
5595           (lnksect): changed check on boundary error,
5596           (lnksect2): changed check on boundary error,
5597           (lnksect2): extend XSTK to end of page if size = 1
5598         * as/mcs51/lkmain.c: removed old K&R style,
5599           (Areas51): create l_IRAM symbol
5600         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
5601         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
5602           model-mcs51-stack-auto, added model-mcs51-xstack-auto
5603         * device/lib/_mullong.c: added version to be compiled with xstack
5604         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
5605         * device/lib/mcs51/crtxclear.asm: clear pdata as well
5606         * device/lib/mcs51/crtxstack.asm: fixed comment
5607         * src/SDCCglue.c: maxInterrupts defaults to 0,
5608           (emitMaps): added pdata,
5609           (createInterruptVect): (re)moved default,
5610           (glue): added pdata,
5611           (glue): moved __start__xstack to XSTK with default size 1
5612         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
5613           and options.float_rent when options.stackAuto is set,
5614           (linkEdit): only write XDATA_NAME if provided on command line
5615         * src/SDCCmem.h,
5616         * src/SDCCmem.c: added pdata
5617         * src/port.h: added pdata_name to PORT
5618         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
5619           (saveRegisters, unsaveRegisters): removed usage of B,
5620           (genMinus): fixed accumulator clash,
5621           (genJumpTab): added comment, this needs another look
5622         * src/mcs51/gen.c: added check for "B in use" paranoia,
5623           added pushB() and popB()
5624         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
5625           chance
5626         * src/avr/main.c,
5627         * src/ds390/main.c,
5628         * src/hc08/main.c,
5629         * src/mcs51/main.c,
5630         * src/pic/main.c,
5631         * src/pic16/main.c,
5632         * src/xa51/main.c,
5633         * src/z80/main.c: (reset_regparms) made void parameter explicit and
5634           added PSEG (PAG,XDATA) or NULL to port specifier
5635         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
5636         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
5637           (_mcs51_genInitStartup): removed __start__xstack equ,
5638           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
5639         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
5640         * src/z80/gen.c (_rleAppend): fixed warnings
5641         * support/regression/tests/zeropad.c: added pdata test
5642         * .version: bumped to 2.4.6
5643
5644 2004-10-17 Borut Razem <borut.razem AT siol.net>
5645
5646         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
5647         as a part of nightly build
5648
5649 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
5650
5651         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
5652         WREG holds the first byte function parameters,
5653         * (aopForSym): take special case for symbols which are in FARSPACE
5654         but in CODESPACE too,
5655         * (assignResultValue): modified to take into account _G.useWreg,
5656         * (genCall): don't use wreg for parameter passing when function is
5657         declared as reentrant, too, added optimization INCF to stack
5658         pointer when stack parameter count is 1,
5659         * (genFunction, genEndFunction): refurnished and fixed to not using
5660         wreg for passing parameters when function has varargs or is
5661         reentrant, fixed bug with symbol name compare for generating
5662         functions in absolute address,
5663         * (pic16_storeForReturn): refurnished,
5664         * (genCmp): began writing a new version of the function, not ready
5665         yet, therefore it is disabled,
5666         * (genAssign): do not read code memory when assigning a function to
5667         a pointer function,
5668         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
5669         array of characters, not pointer,
5670         * (pic16initialComments): in debug mode emit an .ident directive for
5671         the assembler,
5672         * (_process_pragma): emit a new warning type (internal to pic16)
5673         when setting stack to default length, emit a similar warning when
5674         placing a function at absolute address and address is not word aligned
5675         * (_pic16_parseOptions): added 'return TRUE' statement,
5676         * (_pic16_linkEdit): if compiling a source, then add the source's
5677         file object, first in the list of objects to link,
5678
5679 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
5680
5681         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
5682         * src/pic/main.c : removed VC warning.
5683         * src/pic/gen.c : changed comment.
5684
5685 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
5686
5687         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
5688         reference to a deprecated symbol _GPTRREG was causing failure to
5689         link. Thanks G. M. Gallant for the info.
5690
5691 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
5692
5693         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
5694         comments for Bugs item #954788.
5695
5696 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
5697
5698         * src/pic16/device.c (pic16_dump_gsection,
5699         * pic16_groupRegistersInSection): handle symbols declared to be in
5700         access bank differently,
5701         * src/pic16/gen.c (struct _G): added field resDirect,
5702         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
5703         send values read from stack directly to result and don't allocate
5704         temporary values,
5705         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
5706         same registers,
5707         * (pic16_sameRegsOfs): NEW,
5708         * (freeAsmop): if _G.resDirect is set then do not mark registers as
5709         free because they were not allocated from temporary pool,
5710         * pic16_popRegFromString): workaround to fix a problem with
5711         allocating variables twice or never,
5712         * (genGenPointerGet): using PRODL instead of FSR0H,
5713         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
5714         instead of FSR0H,
5715         * (genAssign): take advantage of the _G.resDirect flag,
5716         * (genCast): around line 11844, use mov2f instead of directly
5717         MOVFF'ing between operands to account for literal values,
5718         * src/pic16/genutils.c: some new debug functions for gpsim have been
5719         added,
5720         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
5721         float with integer part only,
5722         * src/pic16/main.c (_process_pragma): handle pragma udata access to
5723         place variables in access bank
5724         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
5725         updated sources to reflect recent changes in gen.c
5726
5727 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
5728
5729         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
5730         sources that searched for headers in installation path, now the
5731         device/include/pic16 is used,
5732         * src/pic16/glue.c (pic16glue),
5733         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
5734         .line directives if not in debug mode, this suppresses assembler's
5735         warnings for ignored directives
5736
5737 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5738
5739         * src/port.h: made reset_regparms prototype void parameter explicit.
5740         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
5741         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
5742         * doc/sdccman.lyx: documented warning disabling and how to use
5743           printf_large to make it print floats.
5744         * device/include/stdbool.h: NEW
5745         * device/lib/_atof.c,
5746         * device/lib/_divuint.c,
5747         * device/lib/_divulong.c,
5748         * device/lib/expf.c,
5749         * device/lib/printf_large.c,
5750         * device/lib/sincosf.c,
5751         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
5752         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
5753           a completely reentrant lib.
5754
5755 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
5756
5757         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
5758         * device/include/pic16/stdio.h: fixed bug with colon
5759
5760 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
5761
5762         * device/include/pic16/stdio.h,
5763         * device/include/pic16/stdlib.h,
5764         * device/include/pic16/math.h: NEW
5765         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
5766         declared as _naked to reduce overhead
5767         * device/lib/Makefile.in (target port-specific-objects-pic16):
5768         changed * to *.* so to ignore the CVS directory,
5769         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
5770         stacked variables back in stack,
5771         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
5772         corruption
5773
5774 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
5775
5776         * .version: bumped version number to 2.4.5
5777         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
5778         * support/Util/SDCCerr.c (messages structure): added entry for
5779         W_POSSBUG2
5780
5781         Large cumulative patch for pic16 port and libraries.
5782         * device/include/pic16/sdcc-lib.h,
5783         * device/include/pic16/stdarg.h,
5784         * device/include/asm/pic16/features.h,
5785         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
5786         * device/include/pic16/float.h: changes reentrant keyword with
5787         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
5788         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
5789         updated target build-libraries to include objects from gptr,
5790         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
5791         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
5792         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
5793         all function headings,
5794         * src/SDCCmain.c: added global parameter userIncDirsSet,
5795         * (parseCmdLine): when option -I is encountered add directory to
5796         userIncDirsSet too,
5797         * src/version.awk: added space between control and long,
5798         * src/pic16/NOTES: added some notes for the port,
5799         * src/pic16/gen.c: added prototype for mov2fp function,
5800         * (fReturnpic16[]): properly named return value registers,
5801         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
5802         * (aopForSym): added code to handle symbols with onStack flag set,
5803         symbols onStack are allocated PTRSIZE bytes,
5804         * (aopFreeAsmop): handles special case where asmops are stack objects,
5805         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
5806         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
5807         added argument lock to trace flaws in allocating temporary registers
5808         when developing port,
5809         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
5810         * (pic16_popRegFromString): reenabled allocating a direct register
5811         from string,
5812         * (assignResultValue): various beautifications,
5813         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
5814         referenced function argument,
5815         * (genIpush): reenabled to allow stacked arguments, handles only
5816         ic->parmPush iCodes,
5817         * (genCall, genPcall): major changes to allow for variable argument
5818         functions, fixed a bug with falsely restoring stack pointer after
5819         returning from call,
5820         * (genFunction): pending code for critical function,
5821         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
5822         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
5823         * (genNearPointerGet): fixed bug with indirect reading, was always
5824         reading from INDF0
5825         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
5826         pointers,
5827         * (genAddrOf): rewrote code to take address of a stacked function parameter
5828         * (genCast): fixed casting to generic pointer type,
5829         * src/pic16/gen.h: added AOP_STA,
5830         * (struct asmop): added field stk,
5831         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
5832         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
5833         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
5834         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
5835         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
5836         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
5837         generic pointers,
5838         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
5839         and library paths,
5840         * (pic16_port structure): generic pointer size is set to 3,
5841         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
5842         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
5843         compiler warning,
5844         * src/pic16/ralloc.c (allocReg): prevent allocating register when
5845         operand is an iTemp,
5846
5847 2004-09-24 Martin Helmling <mh AT octo-soft.de>
5848
5849         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
5850         * debugger/mcs51/simi.c: addapt new syntax of s51
5851
5852 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
5853
5854         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
5855         * src/pic16/pcode.c: commented out some calls to free() in order to
5856         fix bug #989576,
5857
5858 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5859
5860         * src/SDCCicode.h,
5861         * src/SDCCicode.c (isiCodeInFunctionCall),
5862         * src/avr/ralloc.c (selectSpil),
5863         * src/pic/ralloc.c (selectSpil),
5864         * src/pic16/ralloc.c (selectSpil),
5865         * src/ds390/ralloc.c (selectSpil),
5866         * src/hc08/ralloc.c (selectSpil),
5867         * src/xa51/ralloc.c (selectSpil),
5868         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
5869         stack in the middle of a function call sequence (fixes bug #1020268)
5870         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
5871         costs associated with the minimum switch case.
5872
5873 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5874
5875         * src/SDCC.lex: fixed bug #1030549
5876
5877 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5878
5879         * src/SDCCcse.h (struct cseDef),
5880         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
5881         over a function call if the CSE is derived from a symbol whose
5882         address has been taken (fixes bug #1029883)
5883         * support/regression/tests/bug-1029883: a new regression test for
5884         this bug
5885
5886 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5887
5888         * src/hc08/gen.c (emitinline): fixed bug #1029778
5889         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
5890         to a cast object is no longer a syntax error ("fixes" bug #1030006,
5891         and starts toward RFE #905167)
5892
5893 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
5894
5895         * src/pic16/gen.c (mov2f): New function to move an operand to
5896         another without considering if it is a literal or a register,
5897         * (pic16_sameRegs): don't check if they are both AOP_REG,
5898         * (AccRsh): removed andmask=0 lines,
5899         * (genLeftShift): duplicated to be improved in future versions,
5900         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
5901         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
5902         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
5903         * (pic16initMnemonics): added initialization for POC_INFSNZW,
5904         * (insertBankSwitch): fixed inserting banksel directives algorithm
5905         for instructions that follow a skip instruction, this fixes a report
5906         for broken subtraction code generation,
5907         * src/pic16/ralloc.c (deassignLRs): do not free register if current
5908         iCode is a left op, just in case result and right share the same
5909         registers
5910
5911 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5912
5913         * src/hc08/main.c,
5914         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
5915         preservation of HX
5916         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
5917         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
5918         on 2004-09-12; it was buggy
5919
5920 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
5921
5922         * src/SDCCsymt.h: removed RESULT_CHECK
5923         * src/SDCCast.c,
5924         * src/SDCCglue.c,
5925         * src/SDCCval.c,
5926         * src/pic/glue.c,
5927         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
5928
5929 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
5930
5931         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
5932         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
5933         configuration values no more rejected by compiler, they are assigned
5934         to configuration registers with a warning message instead,
5935         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
5936         the for-loop so last conf register is emitted too,
5937         * (_pic16_initPaths): link library libsdcc.lib by default,
5938         * (_hasNativeMulFor): modified test for multiplication according to
5939         Raphael Neider's remarks. Integer multiplication is also done with
5940         support functions,
5941         * device/include/pic16/pic18fregs.h: corrected type error in while
5942         testing and including 18f6720 header file
5943
5944 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
5945
5946         * src/pic16/device.h (pic16_options): removed field use_crt,
5947         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
5948         until an optimization to handle single bits is added,
5949         * (pic16_loadFSR0): moved before genUnpackBits,
5950         * (genAnd): some white lines removed,
5951         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
5952         leave_reset flags in pic16_options when using crt modules,
5953
5954 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
5955
5956         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
5957           for bugs 898889 & 979599. Also used some safer print instructions.
5958
5959 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
5960
5961         * src/pic16/device.h (pic16_options_t): added field use_crt,
5962         crt_name, no_crt,
5963         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
5964         catch a probable future bug,
5965         * src/pic16/gen.c: aopIdx function commented out,
5966         * (genAssign): commented out old code which used aopIdx,
5967         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
5968         code, added if conditionals to take into account the --use-crt
5969         command line options,
5970         * src/pic16/main.c (pic16_optionsTable): added new command line
5971         options, --use-crt= and --no-crt,
5972         * (_pic16_linkEdit): now the proper crt object is added in the
5973         linker command line except than when --no-crt is specified,
5974         * src/pic16/pcode.c,
5975         * src/pic16/pcode.h: added some structures and functions for a new
5976         optimization scheme to compansate for instruction overhead between
5977         same iCodes, this scheme is currently under development and is not
5978         working in any way,
5979         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
5980         to && operator,
5981         * device/lib/pic16/startup/crt0i.c,
5982         * device/lib/pic16/startup/crt0iz.c: added global char variable
5983         __uflags to force the generation of an idata section
5984
5985 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
5986
5987         * doc/Makefile,
5988         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
5989         * doc/sdccman.lyx: updated sdcc version to 2.4.4
5990
5991 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5992
5993         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
5994         Frieder) and clarified the default code optimization mode
5995
5996 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5997
5998         * src/SDCC.lex (doPragma, process_pragma),
5999         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
6000         "opt_code_size", and "opt_code_balanced"
6001         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
6002         regrouped options by category, added support for category headers
6003         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
6004         and "--opt-code-size"
6005         * doc/sdccman.lyx: documented these new options and pragmas
6006         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
6007         preference into account
6008
6009 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6010
6011         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
6012           geniCodePreDec): Fixed bug 904237 by generating a warning
6013         * src/SDCCerr.h,
6014         * src/SDCCerr.c: added warning W_SIZEOF_VOID
6015
6016 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
6017
6018         * src/pic/device.c : When no max ram set validate full memory range.
6019         * src/pic/pcode.c,
6020         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
6021
6022 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
6023
6024         * device/lib/_gptrget.c,
6025         * device/lib/_gptrput.c: updated comment
6026         * device/lib/calloc.c,
6027         * device/lib/free.c,
6028         * device/lib/malloc.c,
6029         * device/lib/realloc.c: added LGPL, made them reentrant-safe
6030         * src/SDCCcse.c (cseBBlock),
6031         * src/SDCCicode.c (printOperand, geniCodeArray),
6032         * src/SDCCicode.h (struct operand): fixed bug 868103
6033         * support/regression/tests/bug-868103.c: added
6034         * src/SDCCast.c (searchLitOp),
6035         * src/SDCCcse.h (struct cseDef),
6036         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
6037         * src/SDCCicode.h (struct operand),
6038         * src/SDCCsymt.h (struct sym_link),
6039         * src/avr/gen.c (hasInc),
6040         * src/ds390/gen.c (hasInc),
6041         * src/hc08/gen.c (genPlusIncr, hasInc),
6042         * src/mcs51/gen.c (hasInc),
6043         * src/pic16/glue.c (pic16_printIvalChar),
6044         * src/pic16/ralloc.c (regWithIdx),
6045         * src/xa51/gen.c (hasInc) : removed warnings
6046         * src/SDCCast.c (createBlock): added comment ???
6047         * src/hc08/ralloc.c: updated comments
6048
6049 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6050
6051         * doc/sdccman.lyx: updated section on switch statements, added
6052         section about semaphore locking
6053         * doc/Makefile: added option -info for latex2html
6054         * device/lib/_gptrget.c,
6055         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
6056
6057 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
6058
6059         * src/pic/device.h,
6060         * src/pic/device.c,
6061         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
6062          maxram is less than 0x100.
6063
6064 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
6065
6066         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
6067
6068 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6069
6070         * src/port.h,
6071         * src/mcs51/main.c,
6072         * src/ds390/main.c,
6073         * src/z80/main.c,
6074         * src/hc08/main.c,
6075         * src/pic/main.c,
6076         * src/pic16/main.c,
6077         * src/avr/main.c,
6078         * src/xa51/main.c
6079         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
6080         a jump table is the best form for a switch statement, including
6081         automatic insertion of missing cases to make the case range
6082         continuous. Developed in collaboration with Frieder Ferlemann.
6083
6084 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6085
6086         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
6087         accumulator result if it needs sign extension
6088
6089 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6090
6091         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
6092
6093 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6094
6095         * device/lib/gbz80/printf.c,
6096         * device/lib/z80/printf.c: removed define for NULL
6097
6098 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
6099
6100         * as/xa51/xa_link.c,
6101         * device/examples/ds390/ow390/ad26.c,
6102         * device/examples/ds390/ow390/cnt1d.c,
6103         * device/examples/ds390/ow390/counter.c,
6104         * device/examples/ds390/ow390/ds2480.h,
6105         * device/examples/ds390/ow390/ds2480ut.c,
6106         * device/examples/ds390/ow390/findtype.c,
6107         * device/examples/ds390/ow390/gethumd.c,
6108         * device/examples/ds390/ow390/owllu.c,
6109         * device/examples/ds390/ow390/ownetu.c,
6110         * device/examples/ds390/ow390/swt12.c,
6111         * device/examples/ds390/ow390/swtloop.c,
6112         * device/examples/ds390/ow390/temp.c,
6113         * device/examples/ds390/ow390/temp10.c,
6114         * device/examples/ds390/ow390/thermo21.c,
6115         * device/examples/ds390/ow390/tinilnk.c,
6116         * device/examples/ds390/ow390/tstfind.c,
6117         * device/examples/serialcomm/windows/serial.cpp,
6118         * device/examples/serialcomm/windows/test_serialcomm.cpp,
6119         * device/include/reg51.h: fixed line endings for cvs
6120
6121 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6122
6123         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
6124         packRegsForAccUse, packRegisters): new accumulator register
6125         packing algorithm
6126         * support/regression/ports/hc08/support.c (_putchar): suppress
6127         warning of unused variable
6128         * src/SDCCicode.c: added SWAP entry to codeTable
6129
6130 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
6131
6132         * device/lib/sprintf.c: forgot to add this file before previous commit
6133
6134 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
6135
6136         * src/pic16/gen.c (genPackBits): added operand right in function
6137         parameters, load result directly if p_type is POINTER (that is
6138         called by genNearPointerSet)
6139         * (genUnPackBits): added operand left in function parameters,
6140         * (genNearPointerGet, genNearPointerSet): prevent the loading of
6141         FSR0 if accessing bitfields,
6142
6143 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
6144
6145         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
6146           _print_format; updated printf, sprintf, vsprintf
6147         * device/include/asm/default/features.h: corrected comment/define
6148         * device/lib/Makefile.in: added sprintf.c
6149         * device/lib/libsdcc.lib: added sprintf module
6150         * device/lib/printf_large.c,
6151         * device/lib/vprintf.c,
6152         * device/lib/sprintf.c: totally refactored printf_large and vprintf
6153           into these 3 files
6154         * support/regression/Makefile: changed ALL_PORTS into a usefull default
6155         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
6156         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
6157           hc08 test
6158         * support/regression/tests/zeropad.c: define idata as data for hc08
6159
6160 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6161
6162         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
6163         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
6164         labels are referenced at least once (even if a reference is not found)
6165         * src/hc08/gen.c (emitcode): set isComment flag for comments
6166         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
6167         loads), rules 6a..6b (optimize jumps to return)
6168
6169 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6170
6171         * device/lib/acosf.c (acosf),
6172         * device/lib/asinf.c (asinf),
6173         * device/lib/atanf.c (atanf),
6174         * device/lib/ceilf.c (ceilf),
6175         * device/lib/cosf.c (cosf),
6176         * device/lib/coshf.c (coshf),
6177         * device/lib/cotf.c (cotf),
6178         * device/lib/fabsf.c (fabsf),
6179         * device/lib/floorf.c (floorf),
6180         * device/lib/log10f.c (log10f),
6181         * device/lib/logf.c (logf),
6182         * device/lib/sinf.c (sinf),
6183         * device/lib/sinhf.c (sinhf),
6184         * device/lib/sqrtf.c (sqrtf),
6185         * device/lib/tanf.c (tanf),
6186         * device/lib/tanhf.c (tanhf),
6187         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
6188         replaced all instances of "reentrant" in the library functions
6189         defined in math.h with this macro.
6190         * support/regression/tests/float_trans.c: reenabled test for hc08
6191
6192 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
6193
6194         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
6195         erroneously deleted
6196
6197 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6198
6199         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
6200         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
6201         multi-byte volatile operands are used
6202         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
6203         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
6204         initialization to area GSINIT0 so that it would always precede
6205         any static initializers in GSINIT
6206         * support/regression/tests/zeropad.c: fixed idata define for hc08
6207         * support/regression/tests/bug-927659.c,
6208         * support/regression/tests/float_trans.c: disabled tests for hc08
6209         pending missing library routines
6210         * .version: increased version number to 2.4.4 - hc08 port now passes
6211         regression tests
6212
6213
6214 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
6215
6216         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
6217         * Makefile.common.in,
6218         * as/Makefile,
6219         * as/hc08/Makefile.in,
6220         * as/mcs51/Makefile.in,
6221         * as/z80/Makefile.in,
6222         * debugger/mcs51/Makefile.in,
6223         * device/include/Makefile.in,
6224         * device/lib/Makefile.in,
6225         * doc/Makefile,
6226         * link/Makefile,
6227         * link/z80/Makefile.in,
6228         * packihx/Makefile.in,
6229         * sim/ucsim/main_in.mk,
6230         * sim/ucsim/avr.src/Makefile.in,
6231         * sim/ucsim/doc/Makefile.in,
6232         * sim/ucsim/gui.src/serio.src/Makefile.in,
6233         * sim/ucsim/hc08.src/Makefile.in,
6234         * sim/ucsim/s51.src/Makefile.in,
6235         * sim/ucsim/xa.src/Makefile.in,
6236         * sim/ucsim/z80.src/Makefile.in,
6237         * src/Makefile.in,
6238         * support/cpp2/Makefile.in,
6239         * support/librarian/Makefile,
6240         * support/makebin/Makefile: added DESTDIR to the install path proposed
6241         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
6242         * doc/sdccman.lyx: added DESTDIR documentation
6243
6244 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
6245
6246         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
6247         instruction for interrupt handlers, use fast returns when returning
6248         from high priority interrupts
6249
6250 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6251
6252         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
6253         code generation
6254         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
6255         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
6256         bugs, ported much of Bernhard's code from mcs51
6257         * src/mcs51/gen.c (genSend),
6258         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
6259         than one when calling a reentrant function
6260         * device/lib/_mullong.c: defined an alternate struct layout for big
6261         endian ports (hc08)
6262
6263 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6264
6265         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
6266         test
6267
6268 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6269
6270         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
6271         are sane and complete before asking the port its prefered parameter
6272         passing method (fixes bug #1017633)
6273         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
6274         and _ret3
6275
6276 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6277
6278         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
6279         problem in bitfields >= 8 bits.
6280
6281 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6282
6283         * src/SDCCsymt.c: undid changes that were not meant to be committed
6284
6285 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6286
6287         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
6288
6289 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6290
6291         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
6292           copied and wrong bit got inverted
6293
6294 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6295
6296         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
6297         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
6298         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
6299         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
6300         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
6301         assignments to bitfields at known addresses
6302         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
6303         reads from bitfields at known addresses
6304         * src/hc08/ralloc.c (packRegisters),
6305         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
6306         genhc08Code): optimize pointer get values used as conditionals
6307         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
6308         and branch
6309
6310 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6311
6312         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
6313         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
6314         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
6315         as conditionals
6316
6317 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6318
6319         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
6320
6321 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6322
6323         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
6324         related problems
6325
6326 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
6327
6328         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
6329
6330 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6331
6332         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
6333         mcs51 port
6334
6335 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6336
6337         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
6338
6339 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6340
6341         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
6342         cases use more compact code.
6343
6344 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
6345
6346         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
6347
6348 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6349
6350         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
6351
6352 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6353
6354         * src/SDCCsymt.h,
6355         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
6356         parameter of changePointer() from symbol* to sym_link*
6357         * src/SDCCast.c (decorateType): call changePointer() for CAST op
6358         * src/SDCCsymt.c (compareType): void* type is castable to other
6359         pointers, but not necesarily an exact match.
6360         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
6361         is no longer blindly treated as an exact match.
6362         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
6363
6364 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
6365
6366         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
6367
6368 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
6369
6370         * src/pic/gen.c,
6371         * src/pic/pcode.c,
6372         * src/pic/ralloc.h,
6373         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
6374
6375 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
6376
6377         * src/pic/device.c,
6378         * src/pic/device.h,
6379         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
6380
6381 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6382
6383         * src/mcs51/gen.c (emitcode): fixed bug #992819
6384
6385 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
6386
6387         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
6388           there's no need to make it worse
6389
6390 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6391
6392         * src/mcs51/ralloc.c (deassignLR),
6393         * src/ds390/ralloc.c (deassignLR),
6394         * src/hc08/ralloc.c (deassignLR),
6395         * src/z80/ralloc.c (deassignLR),
6396         * src/pic/ralloc.c (deassignLR),
6397         * src/pic16/ralloc.c (deassignLR),
6398         * src/avr/ralloc.c (deassignLR),
6399         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
6400         rlivePoint): fixed another part of bug #971834
6401
6402 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6403
6404         * src/z80/main.c: enabled "critical" keyword
6405         * src/z80/mappings.i,
6406         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
6407         functions (fixes bug #979646)
6408         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
6409
6410 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6411
6412         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
6413           such as c:\mydir.
6414
6415 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
6416
6417         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
6418           doesn't disable too much optimizations
6419
6420 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6421
6422         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
6423
6424 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
6425
6426         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
6427
6428 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6429
6430         * src/pic/gen.c tidied up tabs
6431         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
6432         * src/pic/main.c tidied up tabs
6433         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
6434         * src/pic/pcoderegs.c tidied up tabs
6435         * src/pic/ralloc.c tidied up tabs
6436
6437 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
6438
6439         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
6440         to S_FIXED for pic16 port and when symbol is not in level 0,
6441         allocate for S_REGISTER storage class and pic16 port, too,
6442         * src/pic16/device.h: prototype for checkSym,
6443         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
6444         * (pic16_assignConfigWordValue): test the value and the mask to
6445         validate that the value is suitable for the configuration word,
6446         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
6447         collect extern declared symbols, don't emit symbol twice, check
6448         first if symbol is in publics set first,
6449         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
6450         * added command line '--fstack' which enables an experimental
6451         feature for stack access, too buggy to be used yet...
6452         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
6453         * (pic16_allocDirReg): when register has storage class S_REGISTER
6454         allocate in pic16_dynAccessRegs,
6455         * device/include/pic16/pic18f????.h: modified configuration word
6456         naming convention, words started as CONFIG0H but should be CONFIG1H
6457
6458 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6459
6460         * device/include/mcs51reg.h: fixed bug 970993
6461
6462 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
6463
6464         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
6465         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
6466         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
6467         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
6468         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
6469         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
6470           error/warning numbers,
6471           added function setWarningDisabled()
6472         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
6473         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
6474           _memcmp.c _memmove.c calloc.c realloc.c free.c
6475         * support/regression/tests/malloc.c: added tests for new functionality
6476         * support/regression/tests/zeropad.c: added tests for truncated initializers
6477           and initialized char arrays starting with '\x0'
6478         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
6479
6480 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
6481
6482         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
6483
6484 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6485
6486         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
6487         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
6488         peephole 177.e. Thanks to anonymous
6489
6490 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
6491
6492         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
6493         function isn't used in the source but referenced as a
6494         variable initializer then declare it as extern in .asm file
6495
6496 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
6497
6498         * .version: increased version number to 2.4.3
6499
6500         Adding version extension according to ChangeLog CVS revision
6501         * src/Makefile.in (target all): added dependency 'version.h'
6502         * (rule version.h): added rule to create version.h from ChangeLog,
6503         * (rule dep): added dependency version.h,
6504         * src/version.awk: AWK script to create version.h
6505         * src/SDCCdwarf2.c (dwWriteModule),
6506         * src/SDCCglue.c (initialComments),
6507         * src/SDCCmain.c (printVersionInfo): modified to write after
6508         version string the version extension number,
6509         * src/SDCCutil.c: included "version.h"
6510         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
6511         number,
6512         * src/SDCCutil.h: added prototype for getBuildNumber
6513
6514         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
6515         includeDirsSet, too,
6516         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
6517         const char [] is found in function prototype...
6518
6519         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
6520         moving to WREG with source is already in WREG,
6521         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
6522         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
6523         * (aopForSym): stack'ed symbols are partially supported, added
6524         if-clause to support symbols in FARSPACE,
6525         * (sameRegs): added test for AOP_ACC to see if registers are same,
6526         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
6527         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
6528         * (pic16_popRegFromString): will not allocate a new register if it
6529         doesn't find one by name, bug may have introduced...
6530         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
6531         * (genIpush): revived to use pic16 port's stack,
6532         * (genAddrOf): added incomplete case for stack'ed operand,
6533         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
6534         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
6535         can handle multibyte operands,
6536         * src/pic16/glue.c (pic16_printIval*): some debug info added,
6537         * (pic16initialComments): added message for MPLAB compatibility
6538         mode enabled,
6539         * src/pic16/main.h: prototype for pic16_mplab_comp,
6540         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
6541         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
6542         * (_pic16_linkEdit): NEW, handles link stage, transferred here
6543         because of increased complexity of procedure,
6544         * (_process_pragma): stack pragma changed to format 'stack pos len',
6545         emit symbol '_stack_end' to conform with gplink,
6546         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
6547         to search for register,
6548         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
6549         PO_GPR_REGISTER,
6550         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
6551         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
6552         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6553         case for PO_GPR_REGISTER,
6554         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
6555         dies, the new era is ahead !...
6556         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
6557         pic16_dynInternalRegs,
6558         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
6559         * (pic16_allocDirReg): minor optimizations and bug fixes,
6560         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
6561
6562         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
6563         load stack and frame pointer with address of 'stack_end' symbol
6564
6565 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
6566
6567         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
6568         without source code but only variable initializers
6569
6570 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
6571
6572         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
6573         external are not declared as extern to reduce overhead while linking
6574
6575 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
6576
6577         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
6578
6579 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
6580
6581         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
6582           Yee Keat for the patch
6583         * src/SDCCast.c (decorateType): fixed bug #979599
6584         * src/ds390/gen.h: removed local fReturnSizeDS390
6585         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
6586         * src/ds390/gen.c (genAnd, genOr, genXor),
6587         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
6588
6589 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
6590
6591         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
6592         add relFilesSet to $3, manipulate $2 to handle linking of object
6593         files without source files in command line,
6594         * device/include/pic16 (all headers): added ID location macros,
6595         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
6596         entries for ID location bytes,
6597         * (pic16_assignIdByteValue): NEW,
6598         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
6599         added field dumpcalltree to pic16_options_t,
6600         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
6601         is used instead of pic16_Gstack_base_addr, check if (ifx) before
6602         emitting rFalseIfx label after check_carry label,
6603         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
6604         pic16_emitDIRegs), NEW
6605         * (pic16glue): dump .calltree file when option --calltree found,
6606         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
6607         * (_pic16_genAssemblerPreamble): emit ID locations after
6608         configuration registers,
6609         * (pic16_linkCmd): modifications of the link command,
6610         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
6611         * (pic16_pCodeInitRegisters): don't init stack registers,
6612         * (pic16_findPrevInstruction): fixed bug,
6613         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
6614         bug with immediate registers,
6615         * (buildCallTree): traces stack push and pop,
6616         * (pct2): dump also stack usage for each function,
6617         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
6618         * (pic16_allocDirReg): various modifications,
6619         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
6620         fixed to 1,
6621
6622 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
6623
6624         * src/pic16/pcode.c: removed buggy double colon
6625
6626 2004-07-01 Borut Razem <borut.razem AT siol.net>
6627
6628         * support/scripts/sdcc.nsi: added include/pic16 to setup
6629
6630 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
6631
6632         * device/lib/Makefile.in: fixed bug in target objects-pic16,
6633         * device/lib/pic16/Makefile: prefixed with dash (-) command under
6634         target 'clean',
6635         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
6636         specific command line arguments. Also added sample lkr script
6637         for placing a variable at a specific memory bank.
6638         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
6639         at a specific memory bank,
6640         * (pic16_dump_isection): fixed bug which caused string literals to
6641         be omitted when dumping idata section,
6642         * (pic16_groupRegistersInSection): added code to handle registers
6643         in specific memory banks,
6644         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
6645         public, all references are renamed too,
6646         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
6647         AOP_DPTR2,
6648         * (pic16_storeForReturn): added case to handle when dest is WREG,
6649         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
6650         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
6651         pic16_rel_udata, check to see if that register is marked as being
6652         a member of a specific memory bank,
6653         * (pic16_printIvalCharPtr): added code to add string literals either
6654         to code or the idata sections,
6655         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
6656         also accept the 'udata' pragma,
6657         * src/pic16/main.h: new structure types sectName and sectSym
6658         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
6659         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
6660         * (pic16_findPrevInstruction): fixed, it returned nothing,
6661         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
6662         instruction combinations,
6663         * (pic16_FixRegisterBanking): heavily reorganised,
6664         * (pic16_AnalyzeBanking): if generating banksel directives is
6665         disabled, then don't call FixRegisterBanking at all,
6666         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
6667         completely removed,
6668         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
6669
6670 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
6671
6672         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
6673         Phuah Yee Keat <yk.phuah AT nestac.com>
6674
6675 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6676
6677         * src/pic16/glue.c (pic16createInterruptVect): function now emits
6678         correctly the IVT even if it is relocated to some other location
6679
6680 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6681
6682         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
6683         * device/include/pic16/pic18f2220.h: NEW,
6684         * device/lib/pic16/libdev/pic18f2220.c: NEW,
6685         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
6686         * src/pic16/device.c (struct Pics16): added info for 18f2220,
6687         * src/pic16/device.h (struct pic16_options): added ivt_loc and
6688         nodefaultlibs, ivt_loc is the location of the interrupt vector
6689         table, and nodefaultlibs signs that default libraries should not be
6690         linked in link stage,
6691         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
6692         according to --ivt-loc argument,
6693         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
6694         when pragma stack is found,
6695
6696 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6697
6698         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
6699         256 (range check), 257 (do while), 258.a-f (bit banging
6700         f.e. on 3-wire SPI bus)
6701
6702 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6703
6704         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
6705         variables used exclusively within a loop
6706
6707 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
6708
6709         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
6710
6711 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6712
6713         * src/SDCClrange.c (computeClash): fixed bug #971834
6714
6715 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6716
6717         * src/mcs51/gen.c (genCmp): fixed bug #975903
6718         * src/hc08/gen.c (operandsEqu),
6719         * src/ds390/gen.c (operandsEqu),
6720         * src/z80/gen.c (operandsEqu),
6721         * src/pic/gen.c (operandsEqu),
6722         * src/pic16/gen.c (operandsEqu),
6723         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
6724         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
6725
6726 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6727
6728         * src/SDCCcse.c (cseBBlock): fixed bug #966963
6729
6730 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
6731
6732         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
6733         default case in switch statement,
6734         * glue.c (pic16_initPointer): expr is initialised via decoarteType
6735         to eliminate problem with initialisation of pointers, but problem
6736         still exists,
6737         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
6738         * (emitStaticSegment): removed various lines emitting debug info,
6739         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
6740         added processor registers for utilizing EEPROM,
6741         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
6742         configurable and set 8
6743
6744 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
6745
6746         * .version: increased version number to 2.4.2,
6747
6748         Cumulative patch for pic16 port
6749         * src/pic16/device.c: changed scheme to dump initial values for
6750         variables in idata segment, all print_idata* functions were removed,
6751         now the pic16_printIval* will be called,
6752         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
6753         * _pic16_printPointerType, pic16_printPointerType,
6754         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
6755         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
6756         NEW, similar to the respective functions in SDCCglue.c,
6757         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
6758         way, emitting hex bytes,
6759         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
6760
6761 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6762
6763         * src/avr/ralloc.c (serialRegAssign),
6764         * src/xa51/ralloc.c (serialRegAssign),
6765         * src/pic/ralloc.c (serialRegAssign),
6766         * src/pic16/ralloc.c (serialRegAssign),
6767         * src/hc08/ralloc.c (serialRegAssign),
6768         * src/z80/ralloc.c (serialRegAssign),
6769         * src/ds390/ralloc.c (serialRegAssign),
6770         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
6771
6772 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6773
6774         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
6775         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
6776
6777 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
6778
6779         Cumulative patch for pic16 port:
6780         * src/pic16/device.h (typedef PIC16_device) modified fields for
6781         defining microcontrollers,
6782         * src/pic16/device.c: added new info for all devices in Pics16 array,
6783         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
6784         to be optimised out by the pCode optimiser,
6785         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
6786         specially, bug reported by G.M. Gallant,
6787         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
6788         as force'd so that cannot be optimised out by pCode optimiser,
6789         * src/pic16/pcode.c,
6790         * src/pic16/pcodepeeph.c,
6791         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
6792         they are disabled by default, but can be enabled explicit with
6793         command argument --denable-peeps, for testing,
6794         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
6795         --pomit-ivt in COMPILE_FLAGS
6796
6797 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6798
6799         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
6800           compilation on MSVC
6801
6802 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6803
6804         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
6805
6806 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6807
6808         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
6809         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
6810
6811 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
6812
6813         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
6814         would only assign 0x300001 register.
6815
6816 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
6817
6818         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
6819         in COMPILE_FLAGS. Thanks to G. Gallant for report.
6820
6821 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6822
6823         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
6824         for ds80c400
6825         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
6826         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
6827         added peephole 254 (left shift), 255 (jump table)
6828
6829 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
6830
6831         * device/lib/Makefile.in: removed comment line with model-pic16,
6832         * (target port-specific-objects-pic16): the libraries and objects
6833         are copied to the build directory form the device/lib/pic16/bin
6834         directory
6835
6836         Cumulative patch concerning pic16 port:
6837         * library directory has been re-organized,
6838         * added support for PIC18F1220,
6839         * added headers and library sources for chips 18f1220,18f6520,
6840         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
6841
6842         * configuration registers setting has changed, now each supported
6843         device has a complete description of the registers it uses,
6844         * all initialisations are moved to idata sections, these section
6845         can be absolute or relocatable,
6846         * fixed initialisation of codespace variables,
6847         * fixed warning about PCLATU and gpsim,
6848         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
6849         * (genAssign): use table reads when assigning from variables in codespace,
6850         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
6851         char/int variables placed in codespace,
6852         * (pic16_emitConfigRegs): NEW, emits a list with configuration
6853         registers set in .asm file, no need for --pomit-config-words anymore,
6854         * (pic16glue): some 8051 legacy segments are commented out
6855         (to be removed completely),
6856         * added support for alternative assembler and linker with --asm=
6857         and --link= command line arguments,
6858         * peepholes are disabled automatically in the port, no need to
6859         specify on command line,
6860         * port supports natively char/int/long multiplication, but converts
6861         all divisions to support functions,
6862         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
6863         to the file set in variable $2,
6864         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
6865         strings in ASCII format and not in hex,
6866         * ralloc.c (serialRegAssign): added a triplet of conditional calls
6867         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
6868         allocate proper register if iCodes aren't temporary,
6869
6870 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
6871
6872         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
6873
6874 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
6875
6876         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
6877         is commented out
6878
6879 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6880
6881         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
6882         computed address is reused
6883         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
6884         multi-byte bitfields
6885
6886 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6887
6888         * src/z80/gen.c: (genArrayInit): must check for pointers too
6889
6890 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6891
6892         * support/regression/tests/zeropad.c: never meant to commit the
6893           nestedstruct test: removed, added check for GCC version
6894
6895 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
6896
6897         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
6898         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
6899         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
6900           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
6901           bugs 928906 and 954082 half-empty initializers
6902         * src/SDCCsymt.h,
6903         * src/SDCCsymt.c (getAllocSize): added for above fix
6904         * src/z80/gen.c (genArrayInit): fixed bug 741044
6905         * support/regression/tests/zeropad.c: added tests
6906
6907 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
6908
6909         * src/pic16/device.c (pic16_dump_section): corrected bug which
6910         caused some symbols of the libraries to be misplaced
6911
6912 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6913
6914         * src/pic16/glue.c,
6915         * src/pic16/ralloc.h,
6916         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
6917         to fix conflict with pic port
6918
6919 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6920
6921         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
6922         externs configuration variables,
6923         * src/pic16/ralloc.h,
6924         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
6925         prototype in header, commented out some debug messages
6926
6927 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
6928
6929         * src/pic16/glue.c,
6930         * src/pic16/main.c,
6931         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
6932         for gpasm COFF object generation. Thanks to D. Hawkins for
6933         his patch info
6934
6935 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6936
6937         * src/ds390/main.c,
6938         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
6939         Brock for spotting this)
6940         * src/ds390/gen.c (genEndFunction),
6941         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
6942         interrupt handler and critical. Disable push/pop optimizations when
6943         peephole optimizations disabled.
6944
6945 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6946
6947         Updated pic16 library sources and headers.
6948         * device/lib/pic16/pic18f*/ ,
6949         * device/include/pic16/*.h: modified to handle structured SFR
6950         definitions
6951
6952 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6953
6954         * src/port.h (PORT structure): added hook initPaths, now each
6955         port can declare its own default search paths,
6956         which can been seen with the --print-search-dirs option,
6957         see pic16 port for example,
6958         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
6959         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
6960         * (doPrintSearchDirs): NEW, replaces in a central manner the
6961         printing of search dirs which was split in set*Paths functions,
6962         * (main): added call to port->initPaths and doPrintSearchDirs,
6963         * src/avr/main.c,
6964         * src/ds390/main.c,
6965         * src/hc08/main.c,
6966         * src/izt/i186.c,
6967         * src/izt/tlcs900h.c,
6968         * src/mcs51/main.c,
6969         * src/pic/main.c,
6970         * src/pic16/main.c: modified port structures to reflect addition of
6971         initPaths hook,
6972
6973         * src/pic16/device.c (regCompare): registers are finally sorted by name,
6974         * (pic16_dump_section): for registers in same address reserve memory once,
6975         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
6976         to no_banksel,
6977         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
6978         result is greater in size than right or left,
6979         * (pic16_genUMult8X8_8): there are some cases where the result can
6980         be 16 bits size, so handle these,
6981         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
6982         * (pic16_outBitC): modified to emit pcodes,
6983         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
6984         or not,
6985         * (genDivOneByte): implemented algorithm to divide 8-bits,
6986         * (genCmp): uncommented goto, but issues still exist,
6987         * (genAnd): fixed a bug with variables >8bits,
6988         * (genPackBits): optimization added that uses BCF/BSF to change a
6989         single bit,
6990         * (genAssign): fixed bug when assigning floating point literals,
6991         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
6992         __sdcc_gsinit_startup label,
6993         * src/pic16/main.c (_pic16_init): removed search directory
6994         initialisations,
6995         * (_pic16_initPaths): NEW, used to initialise search directories,
6996         * (_hasNativeMulFor): support functions for all except char/int
6997         multiplication, and char division,
6998         * (PIC16_port struct): modified entry for native mul support,
6999         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
7000         no_banksel option,
7001         * (buildCallTree): call to register_usage is ifdef'ed out,
7002
7003 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7004
7005         * device/include/string.h: applied Stas Sergeev's patch to make this
7006         header file compatible with the preprocessor -Wundef option
7007         * src/SDCCmain.c (main): abort compilation if preprocessor reports
7008         failure (fixes bug #941458)
7009
7010 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7011
7012         * src/SDCCopt.c (killDeadCode): fixed bug #907733
7013         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
7014         that the variable, not the function, should be static
7015         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
7016         to be consistent with non-literal case
7017
7018 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7019
7020         * src/SDCCast.c (isConformingBody): fixed bug #949967
7021         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
7022         convilong): fixed bug #952086
7023
7024 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7025
7026         * src/SDCCmem.c (allocVariables): fixed bug #955321
7027
7028 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7029
7030         * src/hc08/main.c (_hc08_genAssemblerEnd),
7031         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
7032         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
7033         completely eliminated the use of a temporary file
7034         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
7035         when more than one file linked
7036         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
7037
7038 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7039
7040         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
7041         which fixes bug #543481
7042         * support/regression/tests/bug-751703.c: fixed comments left from a
7043         cut and paste error
7044         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
7045         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
7046         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
7047         scopes
7048         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
7049         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
7050         are now changed to underscores in moduleName
7051
7052 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7053
7054         * as/mcs51/lkmem.c: better fix for bug #954173
7055
7056 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
7057         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7058
7059         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
7060         * device/include/c8051f000.h,
7061         * device/include/c8051f120.h,
7062         * device/include/c8051f300.h,
7063         * device/include/c8051f310.h,
7064         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
7065         PWM16) and detab'ed
7066
7067 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7068
7069         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
7070         and mailing lists, doc'ed --no-peep-comments, removed reference
7071         to knoppix (newest version has no LyX/LaTeX), other minor changes
7072         * src/SDCCglue.c (glue): save 2 bytes stack space with
7073         option --main-return. The ljmp could probably be avoided too
7074
7075 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7076
7077         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
7078
7079 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7080
7081         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
7082         * src/SDCCopt.c (isLocalWithoutDef),
7083         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
7084         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
7085         (credit to Maarten Brock for patch #949363, on which this is based)
7086         * support/regression/tests/bug-751703.c: some test cases of extern used
7087         within inner scopes.
7088
7089 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7090
7091         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
7092         SPEC_STRUCT
7093         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
7094         struct definitions
7095         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
7096         dwWriteLabel): fix to create valid debugger symbols even when
7097         the module name has non-alphanumeric symbols in it
7098         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
7099         when a variable's allocation has been optimized away
7100
7101
7102 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7103
7104         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
7105         * src/hc08/main.c,
7106         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
7107         * src/mcs51/main.c,
7108         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
7109         * src/ds390/main.c,
7110         * src/z80/gen.c (z80_emitDebuggerSymbol),
7111         * src/z80/main.c,
7112         * src/pic/gen.c (pic14_emitDebuggerSymbol),
7113         * src/pic/main.c,
7114         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
7115         * src/pic16/main.c,
7116         * src/avr/gen.c (avr_emitDebuggerSymbol),
7117         * src/avr/main.c,
7118         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
7119         * src/xa51/main.c,
7120         * src/SDCCdebug.c (emitDebuggerSymbol),
7121         * src/SDCCdebug.h,
7122         * src/port.h: added a debugger struct to the port struct. Added a
7123         callback for defining debugger symbols
7124
7125         * src/SDCCast.c (createLabel),
7126         * src/SDCC.y (labeled_statement): mark all compiler generated labels
7127         with isitmp = 1
7128         * src/SDCCicode.h,
7129         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
7130         iCode back to the ast for the function
7131
7132         * src/hc08/ralloc.c (hc08_assignRegisters),
7133         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
7134         unneeded fields from the regs struct.
7135         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
7136         pushReg() & pullReg() functions instead of emitcode()
7137
7138         * src/hc08/gen.c (genLabel, genhc08Code),
7139         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
7140
7141         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
7142         debugger hooks
7143
7144         * src/hc08/gen.c (genEndFunction, genhc08Code),
7145         * src/hc08/gen.h,
7146         * src/mcs51/gen.c (genEndFunction, gen51Code),
7147         * src/mcs51/gen.h,
7148         * src/ds390/gen.c (genEndFunction, gen390Code),
7149         * src/ds390/gen.h,
7150         * src/z80/gen.c (genEndFunction, genZ80Code),
7151         * src/z80/gen.h,
7152         * src/z80/z80.h,
7153         * src/pic/gen.c (genEndFunction, genpic14Code),
7154         * src/pic/gen.h,
7155         * src/pic16/gen.c (genEndFunction, genpic16Code),
7156         * src/pic16/gen.h,
7157         * src/avr/gen.c (genEndFunction, genAVRCode),
7158         * src/avr/gen.h,
7159         * src/xa51/gen.c (genEndFunction, genXA51Code),
7160         * src/xa51/gen.h,
7161         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
7162         specific code to cdbFile.c and out of the backend code generators
7163
7164         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
7165         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
7166         starting address is now 0
7167
7168         * as/hc08/asm.h,
7169         * as/hc08/m08pst.c,
7170         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
7171         assembler directive for DWARF support
7172         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
7173
7174         * src/src.dsp,
7175         * src/Makefile.in,
7176         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
7177
7178 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7179
7180         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
7181         and inappropriate peephole optimization in jump tables
7182
7183 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7184
7185         * as/hc08/m08pst.c,
7186         * src/SDCCglue.c: sdccopt works for the hc08 port now
7187
7188 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
7189
7190         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
7191
7192 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7193
7194         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
7195
7196 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7197
7198         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
7199         rules
7200         * src/SDCCmain.c,
7201         * src/SDCCglobl.h,
7202         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
7203         comments from the peephole optimizer replacement rules
7204         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
7205         symbols
7206         * src/SDCCcse.c (updateSpillLocation),
7207         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
7208         equivalents
7209         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
7210         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
7211         objects far pointers
7212
7213 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7214
7215         * src/SDCCsymt.h: a missing part of my last change
7216         * src/pic/ralloc.c (regTypeNum),
7217         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
7218
7219 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7220
7221         * src/SDCCicode.h,
7222         * src/SDCCicode.c (aggrToPtrDclType),
7223         * src/SDCCptropt.h,
7224         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
7225         ptrPseudoSymConvert),
7226         * src/pic/ralloc.c (regTypeNum),
7227         * src/pic16/ralloc.c (regTypeNum),
7228         * src/hc08/ralloc.c (regTypeNum),
7229         * src/ds390/ralloc.c (regTypeNum),
7230         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
7231         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
7232
7233 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7234
7235         * link/z80/lkmain.c (afile),
7236         * as/hc08/lkmain.c (afile),
7237         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
7238         prevent a pointer problem when a filename has no directory and
7239         no extension specified.
7240
7241 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7242
7243         * link/z80/lkmain.c (afile): allow periods in directory names
7244         * link/z80/lkmain.c (afile),
7245         * as/mcs51/lkmain.c (afile),
7246         * as/hc08/lkmain.c (afile): allow linker script file to have an
7247         extension other than ".lnk"
7248         * link/z80/lklex.c (getfid),
7249         * link/z80/lkmain.c (parse),
7250         * as/mcs51/lklex.c (getfid),
7251         * as/mcs51/lkmain.c (parse),
7252         * as/hc08/lklex.c (getfid),
7253         * as/hc08/lkmain.c (parse): Support comments in the linker script
7254         file on lines by themselves and after filenames
7255
7256 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7257
7258         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
7259
7260 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7261
7262         * src/z80/peeph-z80.def: removed some peephole rules that don't
7263         work with multibyte arithmetic (fixed bug #937126)
7264         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
7265         to registers and not global variables
7266         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
7267         geniCodePreInc, geniCodePostDec, geniCodePreDec,
7268         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
7269         checking for assignments not internally generated (fixed bug #931895)
7270         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
7271         structure member (fixed bug #930072)
7272
7273 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7274
7275         * src/SDCCmain.c (linkEdit),
7276         * src/hc08/main.c (_hc08_parseOptions),
7277         * as/hc08/Makefile.in,
7278         * as/hc08/aslink.h,
7279         * as/hc08/asm.h,
7280         * as/hc08/m08pst.c,
7281         * as/hc08/lkrloc.c (relr, rele),
7282         * as/hc08/lkarea.c (lnkarea)
7283         * as/hc08/lkmain.c (afile, parse),
7284         * as/hc08/lkelf.c: support for ELF output
7285         * as/hc08/lks19.c (s19),
7286         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
7287
7288 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7289
7290         * as/mcs51/lkihx.c: Fixed bug #899105.
7291
7292 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7293
7294         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
7295         .dsp files from Unix to DOS.
7296
7297 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7298
7299         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
7300         function pointers; we have been compliant for several months now.
7301         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
7302         change that was accidently commented out
7303         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
7304         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
7305         bug #922319
7306
7307 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7308
7309         * src/hc08/gen.c: output of all of the internal debugging information
7310         is now controlled by the D() macro; it is disabled by default
7311
7312 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7313
7314         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
7315         harder to keep the same registers during a CAST iCode
7316         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
7317         long via int can be done in a single cast, if the signedness is
7318         correct.
7319         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
7320         putchar() in tinibios.c in ds390's library
7321
7322 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
7323
7324         * src/SDCCast.c (decorateType): fixed bug #898889,
7325         cast result of a literal complement too
7326         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
7327         fixed check for bitfields
7328
7329 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
7330
7331         * src/SDCCicode.c (geniCodeLogic): made it static,
7332         (geniCodeLogicAndOr): added in order to fix bug #905492,
7333         (ast2iCode): fixed bug #905492
7334         * support/regression/tests/bug-905492.c: added
7335         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
7336         (processParms): fixed bug #927659: don't copy parms, this will clear
7337         decorated flag
7338         * support/regression/tests/bug-927659.c: added
7339
7340 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
7341
7342         * src/SDCCast.c (addCast): don't cast float to char
7343         * device/lib/libsdcc.lib: added _memmove
7344
7345 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
7346
7347         * device/lib/large/Makefile: fixed parallel execution by
7348         replacing `make` by `$(MAKE)`
7349
7350 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7351
7352         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
7353         offsets (fixes bug #923936)
7354
7355 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
7356
7357         * device/lib/small/Makefile: fixed parallel execution by
7358         replacing `make` by `$(MAKE)`
7359
7360 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7361
7362         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
7363
7364 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
7365
7366         * src/pic/gen.c (genCpl): multi-byte complements were not working.
7367         * src/regression/Makefile: Regression test was not running.
7368
7369 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7370
7371         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
7372         complement if possible
7373         * src/SDCCval.c (valComplement),
7374         * src/SDCCicode.c (operandOperation): fixed complement of literal
7375         * support/regression/tests/onebyte.c (testComplement): added
7376
7377 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
7378
7379         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
7380         return an optimized tree; actually replace actParm with the new tree
7381         * src/SDCCast.h: added some parantheses to remove side effects
7382         * support/regression/tests/bug-920866.c
7383
7384 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
7385         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
7386         Bit operands were not being handled properly in the pic14 port.
7387         (now src/regression/add.c passes again).
7388
7389 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7390
7391         * src/SDCC.y (labeled_statement): case and default no longer require
7392         a following statement (RFE #893037)
7393
7394 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7395
7396         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
7397         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
7398         disabled (fixes bug #916294)
7399         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
7400         "mov a,acc"; patch provided by Lenny Story
7401         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
7402
7403 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7404
7405         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
7406         functions
7407         * src/ds390/gen.c (genFunction, genEndFunction),
7408         * src/ds390/ralloc.c (ds390_assignRegisters),
7409         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
7410         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
7411         pushed if there are parameters passed on the stack. Also, a cleaner
7412         way to decide if r0/r1 should be pushed/popped. (Together they fix
7413         bug #918693)
7414
7415 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7416
7417         * doc/sdccman.lyx,
7418         * device/lib/mcs51/crtpagesfr.asm,
7419         * device/lib/mcs51/crtxinit.asm,
7420         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
7421         to avoid confusion with Si Lab's SFRPAGE register.
7422
7423 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7424
7425         * src/SDCCglue.c (emitMaps): allow public sfr variables
7426         * src/SDCCglue.c (initialComments): include compiler build date
7427         with compiler version and put the timestamp of the generated
7428         assembly file on a serperate line to be less confusing.
7429         * src/port.h: added genInitStartup hook
7430         * src/avr/main.c,
7431         * src/ds390/main.c,
7432         * src/hc08/main.c,
7433         * src/pic/main.c,
7434         * src/pic16/main.c,
7435         * src/xa51/main.c,
7436         * src/z80/main.c: genInitStartup initialize as NULL (default to
7437         historical behaviour)
7438         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
7439         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
7440         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
7441         library instead of hard coding it into the compiler.
7442         * support/regression/ports/mcs51-stack-auto/spec.mk,
7443         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
7444         * device/lib/mcs51/Makefile,
7445         * device/lib/small/Makefile,
7446         * device/lib/large/Makefile,
7447         * device/lib/mcs51/crtpagesfr.asm,
7448         * device/lib/mcs51/crtstart.asm,
7449         * device/lib/mcs51/crtxclear.asm,
7450         * device/lib/mcs51/crtxinit.asm,
7451         * device/lib/mcs51/crtclear.asm,
7452         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
7453         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
7454         and into user configurable files.
7455         * device/lib/clean.mk: clean mcs51 directory too
7456         * support/regression/tests/longlit.c: added static to T1 declaration
7457         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
7458         accesses in the initialization code
7459
7460 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7461
7462         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
7463         OSCTRIMVAL as noted in bug #916008
7464
7465 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7466
7467         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
7468         in loops with multiple exits (reported as incorrect registers
7469         used by Martin Helmling in Sdcc-user list)
7470
7471 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7472
7473         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
7474         made ds390 register extensions look less like error messages
7475
7476 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7477
7478         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
7479         reported by Adam Wozniak in Sdcc-user list
7480
7481 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
7482
7483         * src/SDCCast.c (decorateType): fixed with bug and promotion in
7484         arithmetic optimizations, added debug output
7485
7486 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
7487
7488         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
7489         * sdcc.spec: updated and split sdcc into 3 rpms
7490         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
7491         needed for literals of LEFT_OP and '+'
7492         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
7493         introduced RESULT_TYPE_NOPROM
7494         (geniCodeMultiply): fixed logic for decision if mul is optimized to
7495         left shift
7496         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
7497         limited promotion to int only for '*'
7498         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
7499
7500 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
7501
7502         * src/pic16/gen.c (genSkip),
7503         (genc16bit2lit), (gencjneshort): commented out
7504         (is_LitOp): new helper function, checks operand type
7505         (genCmpEq): rewritten
7506
7507 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
7508
7509         * support/regression/tests/bug-908454.c: added
7510
7511 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
7512
7513         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
7514         * src/SDCCicode.c (usualBinaryConversions): op needs int type
7515         (geniCodeCast): cosmetic, don't preserve bit storage class
7516         (geniCodeLeftShift): added promotion
7517         (geniCodeLogic): fixed regression
7518         * src/SDCCsymt.c (computeTypeOr): accept bits too
7519         (compareType): 2nd part of fix for bug #908454, needed for bitfields
7520
7521 2004-03-07  Borut Razem <borut.razem AT siol.net>
7522
7523         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
7524
7525 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
7526
7527         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
7528         version of pic16_genPackRegisters which does not check if ic is a
7529         CAST operator,
7530         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
7531         function cause string1.c regression test fails
7532
7533 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
7534
7535         * sim/ucsim/configure.in,
7536         * sim/ucsim/configure,
7537         * sim/ucsim/doc/Makefile.in: use docdir
7538         * src/SDCC.y: fixed sbit atrributes
7539         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
7540         * src/SDCCast.c (decorateType): |^& need special promotion handling
7541         * src/SDCCast.h,
7542         * src/SDCCsymt.h: moved definition of RESULT_TYPE
7543         * src/SDCCsymt.h (computeType),
7544         * src/SDCCicode.c: computeType() needs op
7545         * src/SDCCsymt.c (checkTypeSanity),
7546         * doc/sddman.lyx: "plain" bitfields are unsigned
7547         * src/SDCCsymt.c (computeTypeOr): added
7548         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
7549         |^& ops
7550         * src/SDCCval.c (val*): computeType() needs op
7551         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
7552         * support/regression/tests/onebyte.c: added tests for |^&
7553
7554 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
7555
7556         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
7557         for writing icode into asm output.
7558
7559 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
7560
7561         * src/pic16/device.c: added some debug lines enabled
7562         with macro DEBUG_CHECK,
7563         * src/pic16/genarith.c: more debug in genPlus,
7564         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
7565         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
7566         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
7567         * (aopForSym): onStack symbols are re-placed in data memspace,
7568         and onStack flag is cleared,
7569         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
7570         copy temporary pcodeop,
7571         * (genPcall): added warning for not updating PCLATU,
7572         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
7573         always true for pic16 port,
7574         * (genMultOneWord): NEW, supports integer multiplication,
7575         * (genMult): modified to call genMultOneWord,
7576         * (ifxForOp): added warning when return NULL,
7577         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
7578         flag is set before call to operandFromSymbol for implicit
7579         added structures,
7580         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
7581         options.intlong_rent are set by default,
7582         * (_hasNativeMulFor): modified to allow port generation of integer
7583         multiplication,
7584         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
7585         set regtype to REG_SFR for all registers, restricting seting the
7586         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
7587
7588 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7589
7590         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
7591         more than 500 times in the regression tests
7592
7593 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7594
7595         * support/Util/SDCCerr.h,
7596         * support/Util/SDCCerr.c,
7597         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7598         enumerator_list),
7599         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
7600         for symbol conflicts.
7601         * support/valdiags/tests/enum.c,
7602         * support/valdiags/tests/tentdecl.c,
7603         * support/valdiags/tests/struct.c: expect possible error messages
7604         referring to original symbol definitions.
7605         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
7606         * src/SDCCsymt.h,
7607         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
7608
7609 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
7610
7611         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
7612
7613 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
7614
7615         * src/pic16/ralloc.c (newReg): fixed bug #908929
7616
7617 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7618
7619         * src/ds390/gen.c: added missing #include "main.h"
7620
7621 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
7622
7623         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
7624         checking if symbol is already in set,
7625         * src/pic16/device.h: prototype for checkAddSym,
7626         * src/pic16/gen.c: (_G): added entry interruptvector,
7627         * (assignResultValue): removed some commented out lines,
7628         * (genFunction): check for ISR via sym->type, absolute section for
7629         interrupt code is created via a new pBlock, the goto instruction is
7630         placed now correctly at the interrupt vector position, changed all
7631         references from ivec to _G.interruptvector,
7632         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
7633         is the interrupt is a high priority one, same for return from ISR,
7634         * src/pic16/glue.c: changed all calls of addSetHead for publics and
7635         externs to calls of checkAddSym,
7636         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
7637         pic16_pcode_verbose flag is set,
7638         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
7639         * src/pic16/pcoderegs.c: message about how many registers are saved
7640         will only be emitted if pic16_pcode_verbose flag is set,
7641
7642 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7643
7644         * src/ds390/ralloc.h,
7645         * src/ds390/ralloc.c (ds390_regWithIdx),
7646         * src/ds390/gen.c (emitcode),
7647         * src/ds390/main.h,
7648         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
7649         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7650         ds390operandCompare, getRegsRead, getRegsWritten,
7651         initializeAsmLineNode): customized instruction size calculation for
7652         ds390, started basis for some register optimizations
7653         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
7654         corresponding assembly output
7655         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
7656         missing push/pop of r0/r1. Optimized push/pops
7657
7658 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7659
7660         * src/mcs51/main.c (instructionSize): fixed ACALL size
7661         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
7662
7663 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
7664
7665         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
7666         the sorting of rlist with NULL elements
7667         * (print_idataType, print_idata): NEW to create idata sections
7668         * src/pic16/device.h: idataSymSet new variable
7669         * src/pic16/gen.c (genFunction): fixed some bugs in string
7670         comparing, improved the absolute section creation for ISRs,
7671         added FSR0L/FSR0H in registers that are saved in an ISR,
7672         * (genInline): fixed the processing of inline snippets,
7673         now they undergo no process by the peephole optimizer
7674         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
7675         are placed in idataSymSet,
7676         * (pic16emitStaticSeg): extern symbols are added in externs,
7677         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
7678         switching when aboslute variables are placed in access bank memory
7679         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
7680         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
7681         commented out with #if,
7682         * (pic16_packRegisters): reintroduce the check for CAST because some
7683         symbols are not correctly handled,
7684         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
7685         pCodeInstruction instead of pCode,
7686         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
7687         pCodeAsmDir definition,
7688         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
7689         directive, then the argument directive is emitted without the leading
7690         tab, hack for inline labels which must be in the first column,
7691         * (compareLabel,pic16_findNextInstruction),
7692         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
7693         * (insertBankSwitch): modified for the new pCodeAsmDir,
7694
7695 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7696         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
7697
7698         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
7699         instance,
7700         * (pushSide): commented out with #if,
7701         * (assignResultValue): fixed some typos in saving
7702         registers,
7703         * (genPcall): FIXED and sync'ed with genCall,
7704         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
7705         * (genNearPointerGet): fixed to handle some more cases,
7706         implementation scheme via table reads,
7707         * (genConstPointerGet): modified to access code memory correct,
7708         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
7709         and improved to handle some cases
7710         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
7711         instead of "RETLW" for init data
7712         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
7713         not IN_DIRSPACE, work around to reduce bank switching when aboslute
7714         variables are placed in access bank memory (<0x80 and >=0xf80),
7715         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
7716         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
7717         TBLWT_POSTDEC,TBLWT_PREINC
7718         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
7719         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
7720         directives
7721         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
7722         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
7723         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
7724         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
7725
7726 2004-02-29  Borut Razem <borut.razem AT siol.net>
7727
7728         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
7729         support/Util/findme.h, support/Util/system.h: enhance binary relative
7730         search for lib and include by using findProgramPath()
7731
7732 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7733
7734         * src/SDCCpeeph.h,
7735         * src/SDCCpeeph.c (pcDistance),
7736         * src/port.h,
7737         * src/mcs51/ralloc.h,
7738         * src/mcs51/ralloc.c (mcs51_regWithIdx),
7739         * src/mcs51/main.h,
7740         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
7741         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7742         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
7743         size calculation port specific, started basis for some register
7744         optimizations
7745         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
7746         missing push/pop of r0/r1. Optimized push/pops
7747         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
7748         * device/lib/_modsint.c (_modsint),
7749         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
7750         and stack version so regression tests pass
7751
7752 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
7753
7754         * src/Makefile.in (dep): include SLIBOBJS in dependency check
7755         * src/SDCCast.c (decorateType): catch another small optimization
7756         with '?' operator
7757         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
7758         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
7759         modified to finally use computeType() all over SDCC,
7760         see Feature Request #877103
7761         * src/SDCCval.h: cosmetic
7762         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
7763         valCompare(); regression tested in muldiv.c
7764         * support/regression/tests/muldiv.c (testMod): mod sign follows
7765         dividend only
7766
7767 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
7768
7769         * src/SDCCast.c (decorateType): fixed bug #902362
7770         * doc/INSTALL.txt: fixed install instructions for win32
7771
7772 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
7773
7774         * device/include/Makefile.in (install): fixed by replacing spaces
7775         by tabs
7776         * doc/README.txt,
7777         * doc/INSTALL.txt: updated for release
7778         * doc/sdccman.lyx: added warning for --xstack being buggy
7779
7780 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
7781
7782         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
7783         to eliminate build warnings.
7784         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
7785
7786 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
7787            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7788
7789         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
7790         removed -penable-stack, added comment for stack pragma, added
7791         warning for not initializing the stack/frame registers, removed
7792         comment at interrupts section
7793
7794         Stack is made permanent, there is no ability to disable stack usage.
7795         * src/pic16/device.h,
7796         * src/pic16/device.c: removed all references to USE_STACK macro,
7797         * src/pic16/device.c (pic16_dump_section): when no elements in
7798         rlist, free rlist before return,
7799         * (pic16_dump_int_registers): NEW, internal registers are a new set
7800         of general purpose registers reused by each function,
7801         * (checkAddReg): returns 1 if registers is added to set,
7802         * (pic16_groupRegistersInSection): when a registers is of type
7803         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
7804         * src/pic16/device.h: memRange and Assigned Memory are deleted,
7805         SRCASECMP macro is moved here from device.c
7806         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
7807         PO_PCLATU, PO_PRODL, PO_PRODH,
7808         * (pic16_pCodeOpType, genMinus,
7809         changed compares to "a" register, with AOP_ACC,
7810         * (pic16_genPlus): fixed some bugs and indented properly,
7811         * (pic16_addSign): changed size to size+offset in the MOVWF
7812         instruction,
7813         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
7814         multiply 8-bit operand by literal, result is 8-bit,
7815         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
7816         multiply 2 8-bit operand, result is 8-bit,
7817         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
7818         genUMult8X*_16,
7819         * src/pic16/gen.c: changed accUse to contain WREG only,
7820         * (pic16_emitcomment): renamed to pic16_emitpcomment,
7821         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
7822         true, do not use immediate addressing any more unless sym is a
7823         pointer in codespace,
7824         * (aopForRemat): do not use immediate addressing when symbol not in
7825         codespace and when symbol's address is requested,
7826         * (aopOp): for-loop in if(sym->accUse) is modified for the new
7827         accUse size (= 1),
7828         * (aopGet): added case for AOP_ACC and don't return "accumulator
7829         bug" but WREG instead,
7830         * (popGetTempReg): pushes contents of temporary register in stack,
7831         * (popReleaseTempReg): pops contents of temporary register from
7832         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
7833         * (pic16_popGet): separated case AOP_ACC to return register WREG
7834         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
7835         or PO_IMMEDIATE and initializes their instance/offset appropriately,
7836         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
7837         the use of immediate pointers to certain cases only.
7838
7839         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
7840         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
7841         * (assignResultValue, genCall, genRet): modified to use the new
7842         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
7843         genPcall is still broken,
7844         * (genFunction): added code to create 'A' type pBlocks when
7845         interrupt functions are generated, code not extensively tested yet,
7846         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
7847         * (genEndFunction): modified so ISRs pop stored registers from stack,
7848         * (genMultOneByte): cleanup,
7849         * (AccRsh): added flag andmask, to and result with appropriate mask,
7850         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
7851         * (genDataPointerGet): fixed and reenabled its use,
7852         * (genNearDataPointerGet): bugs fixed,
7853         * (genDataPointerSet): bugs fixed,
7854         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
7855         pic16_DumpSymbol, pic16_DumpOp,
7856         * src/pic16/genutils.h: function prototypes for the above functions,
7857         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
7858         pointers,
7859         * (pic16emitRegularMap): many many many improvements, but needs a
7860         major cleanup,
7861         * src/pic16/main.c: enable_stack in pic16_options is removed,
7862         * (_pic16_parseOptions): removed command line options -penable-stack,
7863         * (_process_pragma): emit stack symbol only when stack pragma is
7864         processed,
7865         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
7866         redirected to FSR0L/FSR0H pair,
7867         * (pic16_get_op, pic16_get_op2): modifications and improvements,
7868         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7869         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
7870         for immediates,
7871         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
7872         * (dumpPicOptype): NEW,
7873         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
7874         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
7875         with movff instruction,
7876         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
7877         added pic16_int_regs, some packRegsFor* functions are commented out,
7878         because produce errors,
7879         * src/pic16/NOTES: minor modifications
7880
7881 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7882
7883         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
7884         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
7885         --pack-iram.
7886         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
7887         * as/mcs51/lkaomf51.c: fixed bug #895763
7888
7889 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
7890
7891         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
7892
7893 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7894
7895         * doc/sdccman.lyx: added details about the HC08 storage classes and
7896         interrupts, fixed the register usage info for z80 & gbz80
7897
7898 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
7899
7900         * doc/sdccman.lyx: added more pic16 port documentation
7901         * device/include/pic16/: added header pic18fregs.h
7902
7903 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
7904
7905         * doc/sdccman.lyx: added Vangelis' contribution
7906
7907 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7908
7909         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
7910         extend to the next CALL or PCALL, not just to the next CALL.
7911
7912 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
7913
7914         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
7915
7916 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7917
7918         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
7919         bug #895752 and a better fix for bug #716790
7920
7921 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7922
7923         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
7924
7925 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7926
7927         * doc/sdccman.lyx: minor changes, minor changed
7928
7929 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
7930
7931         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
7932         which can't handle SDCC_NEWONEBYTEOPS,
7933         (geniCodeMultiply): removed conversion from mult to shift for pic14
7934         and pic16
7935
7936 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7937
7938         * src/hc08/gen.h,
7939         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
7940         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
7941         thus fixing bug #895406
7942
7943 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
7944
7945         * device/lib/_modsint.c,
7946         * device/lib/_modslong.c: sign follows divisor only
7947         * src/hc08/gen.c (genMultOneByte): if result size is 1,
7948         signs or signedness can be ignored
7949         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
7950         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
7951         added optimization for IFX,
7952         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
7953         arguments;
7954         reenabled optimization for IFX, which was removed on 2004-01-11
7955         * src/SDCCast.h: added return type IFX
7956         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
7957         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
7958         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
7959         SDCC_OLDONEBYTEOPS selects the old behaviour
7960         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
7961         changed again and commented promotion rule
7962         * src/SDCCval.c (valDiv): promotion no longer necessary
7963         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
7964         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
7965         rewritten
7966         * support/regression/tests/onebyte.c: added
7967
7968 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
7969
7970         * gen.c (genInline): reverted to old code for assemnling inline
7971         code because of bug reported James Chadd
7972
7973 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
7974
7975         * ralloc.h: missing declarations from previous patch,
7976         seems that patch for ralloc.h was never applied, fixed
7977
7978 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7979            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7980
7981         * pcode.c,
7982         * pcode.h,
7983         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
7984         indirect addressing. Marked FSR0 as deprecated
7985         * gen.c (pointerCode): commented out, not needed now
7986         (pic16_popGet2p): new MOVFF helper function
7987         (genGenPointerGet),
7988         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
7989         (shiftRLong): removed duplicate debugging info
7990
7991 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7992
7993         * src/ds390/gen.c (genNearPointerGet),
7994         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
7995         optimization with bits, but not bitfields.
7996         * src/ds390/ralloc.c (packRegisters),
7997         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
7998
7999 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
8000
8001         * src/SDCCcse.c (algebraicOpts): copy operands before modification
8002
8003 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8004
8005         * src/SDCCsymt.h,
8006         * src/SDCCicode.c (operandFromSymbol),
8007         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
8008         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
8009         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
8010         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
8011         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
8012         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
8013         bug #892038
8014         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
8015         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
8016         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
8017         * src/SDCCsymt.c (newSymbol),
8018         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
8019         enumerator_list),
8020         * src/SDCCval.h,
8021         * src/SDCCval.c (newiList): fixed bug #885705
8022
8023 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8024
8025         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
8026         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
8027
8028 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8029
8030         * device/include/c8051f120.h,
8031         * device/include/c8051f300.h,
8032         * device/include/c8051f310.h: added/updated header files for Silicon
8033         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8034         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
8035         in new section Submitting patches
8036
8037 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8038
8039         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
8040         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8041         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8042         genGenPointerSet),
8043         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
8044         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8045         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8046         genGenPointerSet),
8047         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
8048         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8049         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8050         genGenPointerSet),
8051         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
8052         genFarPointerGet, genCodePointerGet, genGenPointerGet,
8053         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
8054         genGenPointerSet): fixed bug #892400
8055         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
8056         to eliminate build warnings.
8057         * src/SDCCast.c (processParms),
8058         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
8059         fixed bug 751859
8060         * support/valdiag/valdiag.py: added GCC to the list of defines active
8061         when compiling with gcc
8062
8063 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8064
8065         * support/Util/SDCCerr.h,
8066         * support/Util/SDCCerr.c,
8067         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
8068         with an incomplete type (fixed bug #883734)
8069         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
8070
8071 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8072
8073         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
8074
8075 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8076
8077         * src/SDCCast.c (decorateType),
8078         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
8079         function pointer implementation
8080         * support/regression/tests/funptrs.c: added tests to verify both forms
8081         of function pointers work correctly. Added tests to verify parameters
8082         are passed in the correct order.
8083
8084 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
8085
8086         * device.c (regCompare): registers are sorted by ascending
8087         address and increasing size,
8088         * main.c (_pic16_finaliseOptions): removed the declaration
8089         of compiler macro MCU. Now a macro of the format pic18fxxxx
8090         will be defined from the command line
8091
8092 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
8093             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
8094
8095         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
8096         PCOP_RLCF was overwritten!
8097         * gen.c (genSkip): commented out calls to pic16_emitcode,
8098         * (genCmpEQ): fixed "long" compares, only high word did get compared,
8099         * (genlshTwo),
8100         * (genRRC): added debugging info,
8101         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
8102         overwritten while shifting,
8103         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
8104         overwritten while shifting,
8105         * (AccLsh),
8106         * (AccRsh),
8107         * (shiftLLeftOrResult),
8108         * (shiftRLeftOrResult),
8109         * (shiftRLong),
8110         * (shiftLLong): Implemented with pic16_emitpcode
8111         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
8112         * (genLeftShift): Fixed bug, operand for shift by variable always
8113         was "and"ed with 0x0f,
8114         * (genLeftShiftLiteral),
8115         * (genrshTwo),
8116         * (genRightShiftLiteral): added debugging info,
8117         * (genrshFour): added comment,
8118         * (genRightShift): determined signedness from operand "left"
8119         instead of "result"
8120
8121 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8122
8123         * src/SDCCicode.c (geniCodeParms),
8124         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
8125         function pointers, fixed function pointer bugs #861242 and #861896
8126
8127 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8128
8129         * device/include/c8051f000.h,
8130         * device/include/c8051f120.h,
8131         * device/include/c8051f300.h: added header files for Silicon
8132         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
8133
8134 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
8135
8136         * src/SDCCast.c (processParams): added new type flow and restructured
8137         (gatherAutoInit): added new type flow
8138         (addCast): cosmetic changes
8139         (getLeftResultType): added new type flow for array indices, patch
8140         provided by Stas, see FR #877103
8141         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
8142         array index patch by Stas
8143         * src/SDCCast.h: added prototype getResultTypeFromType()
8144         * src/SDCCval.h,
8145         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
8146         * src/pic/glue.c (pic14emitStaticSeg),
8147         * src/pic16/glue.c (pic16emitStaticSeg),
8148         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
8149         for initialization of symbols
8150         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
8151         * support/Util/SDCCerr.h:
8152         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
8153         * .version: bumped version number to 2.3.8
8154         * device/include/Makefile.in (install),
8155         * doc/Makefile (install): changed to 'rm `find ...`' construct to
8156         avoid warnings
8157
8158 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
8159
8160         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
8161         Slade Rich fixed an optimization bug
8162         * src/pic/pcodepeep.c,
8163         * src/pic/pcoderegs.c
8164         * doc/Makefile (install): added test for directory
8165
8166 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8167
8168         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
8169         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
8170         * src/pic/ralloc.c (getRegPtr, getRegGpr),
8171         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
8172         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
8173         * as/mcs51/asexpr.c (term),
8174         * as/hc08/asexpr.c (term): fixed bug #887146
8175
8176 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8177
8178         * src/z80/gen.c (genMult): handle single byte result product
8179         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
8180         DUMMY_READ_VOLATILE (fixed bug #886367)
8181
8182 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8183
8184         * support/regression/tests/libmullong.c: fixed logic, on little endian
8185         hosts we ended without a mullong_wrapper()
8186
8187 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8188
8189         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
8190         virus/worm forged address usage.
8191
8192 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8193
8194         Fixed promotion, it should be done on AST level:
8195         * src/SDCCast.c (addCast): added promotion to int
8196         (decorateType): updated call to upCast()
8197         * src/SDCCicode.c (geniCodeLeftShift): removed call to
8198         usualUnaryConversions()
8199
8200 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
8201
8202         * support/regression/tests/literalop.c (mulWrapper): Added a
8203         wrapper to remove integer overflow warnings.
8204
8205         * support/regression/tests/float_trans.c: Made work on host.
8206
8207         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
8208         location of sz80.
8209
8210         * support/regression/generate-cases.py (main): Changed from inline
8211         to a main method.
8212
8213         * doc/Makefile (install): Changed to depth first to get rid of
8214         missing directory install warning.
8215
8216         * as/Makefile (install-doc): Made work on Mac.
8217
8218 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
8219
8220         * src/SDCCast.c: added an additional type flow in decorateType() of
8221         opposite direction, see feature request #860006; it's enabled at runtime
8222         by setting the environment variable SDCC_NEWTYPEFLOW
8223         * src/SDCCast.h: changed prototype of decorateType()
8224         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
8225         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
8226         'char' to 'int' can be omitted, if both operands are 'unsigned char';
8227         see feature request #877103
8228         * src/SDCCval.c: updated call of decorateType()
8229         (valBitwise): fixed bug #882876
8230         (valMinus): added promotion
8231         (valLogicAndOr): result is unsigned
8232         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
8233         * src/SDCCsymt.c (computeType),
8234         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
8235         must not cause an unsigned operation
8236         * src/pic/glue (pic14emitRegularMap),
8237         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
8238
8239 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
8240
8241         * src/pic/pcode.c (PCodeID): commented out left over debug code
8242
8243 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
8244
8245         * support/valdiag/tests/overflow.c: added shift tests
8246         * src/pic/device.c,
8247         * src/pic/gen.c,
8248         * src/pic/gen.h,
8249         * src/pic/glue.c,
8250         * src/pic/main.c,
8251         * src/pic/pcode.c,
8252         * src/pic/pcode.h,
8253         * src/pic/pcodepeep.c,
8254         * src/pic/pcoderegs.c,
8255         * src/pic/ralloc.c,
8256         * src/pic/ralloc.h: applied patch from Slade Rich;
8257         added support for multiple code pages and multiple RAM banks on the
8258         PIC 14 port. The ASM files now no longer simply assume all the
8259         code / RAM are in the same page / bank. This means the linker can
8260         safely allocate code/RAM of separate ASM files to different pages/banks.
8261         * doc/sdccman.lyx: added Slade's tips
8262         * src/mcs51/peeph.def: fixed bug #880768
8263
8264 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8265
8266         * src/hc08/ralloc.c (rematStr): fixed bug #879282
8267         * src/SDCCast.c (decorateType): fixed bug #880197
8268
8269 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
8270
8271         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
8272         getopt.h.
8273
8274         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
8275         strtof is not part of C89 and isn't included with Mac OS X.
8276
8277 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8278
8279         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
8280         shiftL2Left2Result): fixed bug #879326
8281         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
8282         (genMultOneByte): fixed bug in signed vs unsigned multiplication
8283         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
8284         address fetch for clr instruction
8285         * device/lib/hc08/_mulint.c: created optimized assembly version
8286         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
8287
8288 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
8289
8290         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
8291         proposed in FR #877103
8292
8293 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
8294
8295         * src/SDCCval.c (cheapestVal): added missing checks
8296         * src/SDCCicode.c (usualBinaryConversions): fixed condition
8297         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
8298
8299 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
8300
8301         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
8302         equal operands
8303
8304 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
8305
8306         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
8307         loaded with the linker search paths (-L arguments) and the libraries
8308         to be linked with the current source (-l arguments). Changes
8309         currently will affect only the pic16 port.
8310         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
8311         include path the port specific paths and port specific libraries,
8312         * gplink command now contains the $3 argument,
8313         * src/pic16/device.h,
8314         * src/pic16/device.c,: structure PIC_device is made public and
8315         renamed to PIC16_device, the same for variable Pics which is renamed
8316         to Pics16. Updated all references to them.
8317         * src/pic16/glue.c (pic16glue): corrected bug with code
8318         initialization which bypassed the variable initializations block.
8319
8320         * device/lib/pic16/Makefile.rules: removed --penable-stack from
8321         COMPILE_FLAGS and added the --nostdinc option
8322
8323 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8324
8325         * device/include/mc68hc908jb8.h: Register defs for another member
8326         of the hc08 family. Contributed by Bjorn Bringert - thanks!
8327
8328 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
8329
8330         Documenting changes from previous commits.
8331         * configure.in (version 1.56),
8332         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
8333         when generating output files to configure the pic16 library,
8334         but now I've commented it out, since gputils aren't installed in the
8335         SF compile farm, so library won't compile
8336
8337         * device/lib/Makefile.in (version 1.56): initially I've added in
8338         target 'all' the prerequestive 'model-pic16' so it compiled the
8339         pic16 library, but now I've commented it out for the same reasons
8340         above,
8341         * added targets 'model-pic16' and 'objects-pic16' to compile the
8342         library
8343         * added target 'port-specific-objects-pic16' to handle the
8344         generated libraries and copy them into the build/ directory
8345         * added target 'clean-intermediate-pic16' to clean intermediate
8346         files into pic16 directory
8347         * in target 'installdirs' added line to create directory pic16 in
8348         the installation path
8349
8350         * device/include/Makefile.in (version 1.11): in target 'install'
8351         added lines to copy all header files to installation path,
8352         * in target 'installdirs' added line create directory for pic16
8353         headers in the installation path
8354
8355 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
8356
8357         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
8358          a function call
8359
8360 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
8361
8362         * configure,
8363         * device/lib/configure.in,
8364         * device/lib/configure: fixed for autoconf 2.57
8365
8366 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8367
8368         * src/z80/main.c (_parseOptions): fixed the portmode= command line
8369         option so that it actually works. Made it specific to the z80, since
8370         the gbz80 doesn't have these kinds of I/O ports.
8371
8372 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8373
8374         * device/include/z180.h,
8375         * device/lib/_memcpy.c,
8376         * device/lib/_memmove.c,
8377         * device/lib/_mulint.c,
8378         * device/lib/ser_ir.c,
8379         * device/lib/ser_ir_cts_rts.c,
8380         * device/lib/_strcmp.c,
8381         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
8382         * src/z80/main.c (_process_pragma): add support for pragmas bank and
8383         portmode; added deprecation warning for bank= and protmode= forms.
8384         Also, guard against buffer overflow.
8385         * src/z80/gen.c (aopGet): generate better code for sfr banked read
8386
8387 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8388
8389         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
8390         changed interrupt vector table generation to only emit declared vectors.
8391         * device/include/Makefile.in: added missing backslash
8392         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
8393
8394 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8395
8396         Mainly changes to support compilation of the device libraries
8397         * src/pic16/device.c: stack is allocated via symbol and not
8398         via literal number. The symbol is placed in the corresponding
8399         position of the data ram
8400         * (pic16_dump_section): relocatable and absolute uninitialized
8401         data are now emitted in sorted order to reduce section naming,
8402         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
8403         weren't marked as being in the access bank,
8404
8405 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8406
8407         Added portion of GNU PIC Library under the directory
8408         device/include/pic16 and device/lib/pic16. These files
8409         contain the declarations of SFRs for the PIC18Fxx2 devices.
8410         The directory is initialized via configure from toplevel.
8411
8412 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
8413
8414         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
8415         the spilllocations to be compared correctly
8416
8417 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8418
8419         * src/SDCCast.c (decorateType): fixed bug introduced today
8420
8421 2004-01-12  Borut Razem <borut.razem AT siol.net>
8422
8423         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
8424         doc/sdccman.lyx: upper case pragmas are deprecated
8425
8426 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8427
8428         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
8429         in simpler and even better code
8430
8431 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
8432
8433         * src/SDCCicode.c (operandOperation): fixed bug #874819
8434         * src/SDCCast.c (decorateType): fixed
8435         char foo (unsigned long ul) { return ul > 0; }
8436
8437 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8438
8439         * doc/sdccman.lyx: Moved and added some sections, small changes
8440         all over. Telling LaTeX to be less strict with word spacing
8441         to better keep the right margin. Changed some notes about
8442         maintainance of the ports in section 3.2.1 - is it OK like this?
8443
8444 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8445
8446         SDCC source changes:
8447         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
8448         convilong): modified to inform the pic16 port that builtin functions
8449         are external
8450
8451         PIC16 PORT specific changes:
8452         * src/pic16/device.c pic16_dump_equates() added,
8453         processor registers declared internally by the port are emitted in
8454         the translation as equates,
8455         * src/pic16/gen.c: inline code is passed unprocessed to the
8456         translation,
8457         * (pic16_popGetLit2): fnuction modified to take second operand as
8458         pCodeOp pointer and not as literal,
8459         * (popRegFromIdx): prefixed with pic16_,
8460         * (pic16_popCombine2): modified to receive already allocated pCode
8461         operands,
8462         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
8463         * (genFunction): initializes local stack frame and pushes on stack
8464         all the registers used by this function,
8465         * (genEndFunction): restores all registers from stack and restores
8466         stack frame,
8467         * src/pic16/glue.c (pic16emitRegularMap): various changes and
8468         improvements,
8469         * (pic16glue): changed the program startup sequence,
8470         * added new dbName code 'A' for functions placed in absolute section
8471         * src/pic16/main.c: added function attribute _naked,
8472         * added pragma 'code' to place a fnuction at an absolute address,
8473         * added command line arguments --debug-ralloc and --pcode-verbose,
8474         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
8475         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
8476         * (pic16_newpCodeOpLit2): modified to take the second operand as
8477         pCodeOp pointer,
8478         * (pic16_printpBlock): modified to emit each function in a separate
8479         section,
8480         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
8481         UPPER for immediate operands,
8482         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
8483         instruction,
8484         * src/pic16/peeph.def: all peepholes with movff are commented out,
8485         because there is a problem in the pcode peep optimizer,
8486         * src/pic16/ralloc.c: the register allocator can now reuse local
8487         function symbols for another function. This saves register usage.
8488         * src/pic16/ralloc.h: added flag isLocal in structure regs,
8489
8490         Added file src/pic16/NOTES with information about program writing on
8491         the current port version.
8492
8493 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8494
8495         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
8496         and peephole 252 (array access)
8497
8498 2004-01-09  Borut Razem <borut.razem AT siol.net>
8499
8500         * src/SDCCmain.c : fixed #872250: -l command line defined library
8501           files are scanned before standard library files
8502
8503 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8504
8505         * src/SDCCast.c (decorateType): fixed bug #874046
8506
8507 2004-01-09  Borut Razem <borut.razem AT siol.net>
8508
8509         * support/scripts/sdcc.nsi: remove previous installation
8510
8511 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8512
8513         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
8514         bytes for last interrupt vector (mcs51)
8515         * sdcc.spec: fixed typo
8516
8517 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8518
8519         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
8520         gen51Code): more efficient parameter receive for --model-large
8521         ("bug" #845294)
8522
8523 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8524
8525         * src/ds390/main.c,
8526         * src/z80/main.c: added missed needLinkerScript flags (more than
8527         one port structure defined in these file)
8528         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
8529         bug #795325
8530
8531 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
8532
8533         * src/SDCCmain.c: removed various references to DEFAULT_PORT
8534         * src/port.h: added flag needLinkerScript in port->linker
8535         structure to inform whether to create a .lnk file or not,
8536         * src/avr/main.c,
8537         * src/ds390/main.c,
8538         * src/hc08/main.c,
8539         * src/mcs51/main.c,
8540         * src/pic/main.c,
8541         * src/pic16/main.c,
8542         * src/xa51/main.c,
8543         * src/z80/main.c: changed appropriately to configure
8544         needLinkerScript flag
8545         * src/pic/gen.c,
8546         * src/pic16/gen.c (genAddrOf): fixed bug #863624
8547         * src/pic/glue.c: added variable udata_section_name to
8548         override default uninitialized data segment definition for
8549         devices only with SHAREBANK memory (reported from Erik Epetrich)
8550         * (pic14emitOverlay): modified to emit a commented overlay segment
8551         directive when no overlay data exist
8552         * (picglue): modified to emit uninitialized data segment
8553         according to udata_section_name
8554         * src/pic/main.c (_pic14_parseOptions): added command line
8555         options --udata-section-name=[name] to override default
8556         udata definition name
8557         * modified _linkCmd and _asmCmd to include compiler passed
8558         arguments via -W option
8559         * src/pic16/main.c: added $l in _asmCmd, changed extension for
8560         object file from '.rel' to '.o' in port->linker structure,
8561         changed size of fptr from 2 to 3 in port structure
8562
8563 2004-01-07  Borut Razem <borut.razem AT siol.net>
8564
8565         * support/scripts/sdcc.nsi: update PATH
8566         * support/scripts/sdcc.ico: craeted
8567
8568 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
8569
8570         * device/include/Makefile.in: fix install
8571         * doc/Makefile: fix install
8572
8573 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8574
8575         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
8576         in bug #860505
8577         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
8578         how the function variable allocation summary is displayed; also
8579         include information about variables allocated to the overlay
8580         segment
8581
8582 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8583
8584         * as/mcs51/lkmain.c: Help about -Y option
8585         * as/mcs51/lkarea.c: Fixed gcc warnings
8586
8587 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8588
8589         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
8590         fixed warning
8591         * support/valdiag/tests/overflow.c: added
8592         * src/SDCCast.c (decorateType),
8593         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
8594         LEFT_OP (left shift)
8595
8596 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8597
8598         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
8599         (default behaviour).
8600
8601 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8602
8603         A python script to validate compiler diagnostic messages. It can be
8604         used to verify that sdcc complains about bad c source code and
8605         gives a good location of the error.
8606         * support/valdiag/Makefile,
8607         * support/valdiag/valdiag.py,
8608         * support/valdiag/tests/*
8609
8610 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8611
8612         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
8613         * src/SDCCsymt.c (newEnumType),
8614         * src/SDCCsymt.h
8615         * support/Util/SDCCerr.c,
8616         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
8617         enum related bugs.
8618         * support/regression/tests/enum.c: added test for enum values that
8619         require at least 2 bytes of storage.
8620
8621 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8622
8623         * src/common.h: added ifndef/define/endif macros
8624         around the header file.
8625         Bug reported from Jesus Calvino-Fraga
8626
8627 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8628
8629         * sdcc.spec: updated
8630         * device/include/Makefile.in: don't install CVS directories
8631         * device/lib/Makefile.in: added removal of CVS directories after install
8632         * doc/Makefile: fixed install, added local_icons
8633         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
8634         * src/mcs51/gen.c (genRightShift): fixed bug #870788
8635         * src/ds390/gen.c (genRightShift): fixed bug #870788
8636         * src/SDCCast.c (decorateType): fixed bug #870781
8637
8638 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8639
8640         PIC16 port related changes:
8641         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
8642         added variable stackPos,
8643
8644         * gen.c: genCall, assignResultValue: added support for
8645         pushing/retrieving function parameters to/from stack,
8646         genFunction,genEndFunction: setup stack frame for the
8647         generated function,
8648         genAddrOf: will be changed according to bug 863624
8649
8650         * added files genutils.c and genutils.h which contain gen*
8651         debugged and optimised functions extracted from gen.c
8652
8653         * glue.c: added variable 'externs' which holds extern symbols,
8654         pic16emitRegularMap: is modified to properly handle relocatable
8655          symbols under the new scheme,
8656         pic16createInterruptVect: is modified
8657         pic16printPublics: is modified to emit 'global' assembler directives,
8658         added pic16_printExterns to print extern symbols,
8659         pic16glue: initializes stack/frame pointer in the beginning of
8660         the assembly output. Temporary hack, will be corrected later,
8661         because gplink yet does not support stack and SDCC does not
8662         yet support a type of crt0.o object to create the final binary.
8663
8664         * Removed many lines that contain 8051 legacy code.
8665         * The code is finally placed under a 'code' directive.
8666         * Added port specific options.
8667
8668         * _process_pragma: simplified since now we do not need *special*
8669         include file to define SFR registers. But a separate header
8670         will be needed. This will be developed later.
8671         * _pic16_parseOptions: added, parses port specific options:
8672         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
8673         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
8674         --preplace-udata-with=
8675
8676         * _pic16_setDefaultOptions: modified to initialize section names,
8677         but hack is temporarly out of order since it needs improvement.
8678         * _pic16_genAssemblerPreamble: configuration words are emitted by
8679         their address instead of their name. This part is incomplete and
8680         supports only the 18Fxx2 devices. Other devices will emit an error
8681         during assembly since they do not contain the same set of config
8682         registers
8683         * _pic16_genIVT: is modified,
8684
8685         * pcode.c: added definitions for some hardware registers that are needed
8686         for stack support
8687         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
8688         All PCI entries are updated. Now LFSR is supported.
8689         * Removed pic16_pciTRIS is mentioned by mdubuc in source
8690         * added pic16_newpCodeOpLit2 to support instructions with
8691         two literal arguments
8692         * pic16_pCode2str: corrected code that emits assembler instructions
8693         with two literal operands and those that have an access bit modifier
8694         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
8695         this fixes a bug which caused some labels to be lost, when an
8696         assembler directive was added, i.e. banksel,
8697         * pic16_FixRegisterBanking: improved logic that causes the insertion
8698         of bank switching,
8699         * InlineFunction: functions that are called once, are not any more
8700         inlined. This can be a port option in the future,
8701
8702         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
8703
8704         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
8705         hold the corresponding uninitialized symbols,
8706         * pic16_allocProcessorRegister: registers have explicit marked the
8707         accessBank field,
8708         * pic16_allocInternalRegister: registers are explicit marked as
8709         not used,
8710         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
8711         processing list, so bit registers were lost,
8712         *
8713
8714         * ralloc.h: added field 'accessBank' and original symbol operand
8715         in register definition,
8716         * removed the field isMapped from register definition,
8717
8718         ** Several functions have been removed from various sources:
8719         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
8720         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
8721         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
8722         pic16_assignRelocatableRegisters
8723
8724         ** others have been introduced:
8725         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
8726         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
8727
8728 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
8729
8730         * support/scripts/inc2h.pl: changed definition of BIT_AT
8731         to emit 'sbit at' instead of 'bit at'. This was a request.
8732
8733         PIC16 port related preliminary changes:
8734         * gen.c: prefixed function popRegFromString with
8735         pic16_ and all references to it corrected
8736         * pcode.c: all pic16_pc_* hardware registers prefixed
8737         with underscore (_),
8738         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
8739         * ralloc.c: newReg(): when register is REG_SFR then
8740         set address to rIdx,
8741         pic16_allocProcessorRegister(): marks register wasUsed=0
8742         pic16_writeUsedRegs(): added a call to assign processor
8743         registers via pic16_assignFixedRegisters
8744
8745 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8746
8747         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
8748         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
8749         variables in unused register banks.  Also the SSEG is placed
8750         wherever there is enough space for it, and IDATA can be anywhere
8751         in internal RAM.  For now compile using -Wl-Y[stack_size].
8752         The mem file is different for this option as well, since it
8753         makes no sense of talking about DSEG lenght.
8754
8755 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
8756
8757         * src/SDCClrange.c: fixed bug 869095 that caused segfault
8758         in certain cases, e.g. when ROM assignment, patch provided
8759         from Albert den Haan.
8760
8761 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
8762
8763         Many signedness and type propagation fixes:
8764         * src/SDCCicode.c: made geniCodeCast() static
8765         replaced SPEC_ by IS_ (cosmetic)
8766         (operandOperation): fixed div and mod operation
8767         (usualBinaryConversions): added support for promotion of char
8768         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
8769         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
8770         (geniCodeAdd): an array index will stay unsigned, even if promoted
8771         from char to int
8772         (geniCodeArray): ditto
8773         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
8774         * src/SDCCsymt.c (computeType): added more support for char;
8775         promotion of char is selectable by promoteCharToInt, fixed signedness
8776         for all cases
8777         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8778         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8779         * src/SDCCval (val*): replaced signedness calculation by
8780         computeType()
8781         rearranged if-branches (cosmetic)
8782         (valShift): added warning W_SHIFT_CHANGED
8783         (valCompare): fixed problem with different types
8784         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
8785         * support/regression/tests/literalop.c: added many cases
8786         * support/regression/tests/ast_constant_folding.c: changed finally to
8787         'unsigned int'
8788         * .version: new year, new version: 2.3.7
8789         * src/SDCCmain.c (main): applied patch #866468
8790         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
8791         provided by Scott Bronson
8792         * doc/sdccman.lyx: updated documentation for sdcdb
8793         updated and added chapter tips
8794
8795 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8796
8797         * src/SDCCsymt.h: missing from yesterday's commits
8798
8799 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8800
8801         * src/SDCC.y (struct_or_union_specifier),
8802         * support/Util/SDCCerr.c,
8803         * support/Util/SDCCerr.h: verify that struct & union tags are used
8804         as declared.
8805
8806 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8807
8808         * src/SDCCglobl.h: missing from yesterday's commits
8809
8810 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8811
8812         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
8813         sft_attributes, struct_declaration, parameter_declaration,
8814         type_name, start_block, declaration_list),
8815         * src/SDCC.lex (check_type): support redefinition of typedef names
8816
8817 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8818
8819         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
8820         aligned xdata arrays. Erik helped me with the if clause.
8821
8822 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8823
8824         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
8825         warning
8826
8827 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8828
8829         * src/SDCCast.h,
8830         * src/SDCCast.c (newAst_),
8831         * src/SDCCicode.h,
8832         * src/SDCCicode.c (ast2iCode, newiCode),
8833         * src/SDCCglobl.h,
8834         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
8835         expr, statement, expression_statement, selection_statement,
8836         iteration_statement, expr_opt, jump_statement): foundation for tracking
8837         sequence points
8838         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
8839         point code too)
8840
8841 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8842
8843         * support/Util/SDCCerr.c,
8844         * src/SDCCast.h,
8845         * src/SDCCast.c (createCase, createDefault, decorateType),
8846         * src/SDCClabel.c (labelUnreach),
8847         * src/SDCC.y (labeled_statement, jump_statement): More improvements
8848         to error messages.
8849         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
8850         (with thanks to Stas Sergeev)
8851         * device/include/time.h,
8852         * device/lib/time.c (CheckTime): suppress unreachable code warning
8853
8854 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8855
8856         * src/SDCCast.c (createIvalCharPtr),
8857         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
8858         bug #753752)
8859         * support/regression/tests/nullstring.c: tests for these two bugs
8860
8861 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8862
8863         * support/Util/SDCCerr.h,
8864         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
8865         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
8866         about storage class and 'at' used inside struct or union
8867         * src/SDCCBBlock.c (iCodeFromeBBlock),
8868         * src/SDCCcse.c (ifxOptimize),
8869         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
8870         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
8871         printIval, emitStaticSeg, emitOverlay),
8872         * src/SDCClabel.c (deleteIfx),
8873         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
8874         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
8875         gatherAutoInit, processParms),
8876         * support/Util/SDCCerr.h,
8877         * support/Util/SDCCerr.c (werrorfl): Support for better error location
8878         reporting for post-parse errors.
8879
8880 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8881
8882         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
8883         implicit casts via union; they don't work on big endian systems
8884         (possible fix for bug #861138)
8885
8886 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8887
8888         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
8889         * src/mcs51/main.c: fixed the fix for bug #737001
8890
8891 2003-12-15  Borut Razem <borut.razem AT siol.net>
8892
8893         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
8894
8895 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8896
8897         * support/makebin/makebin.c: put output in binary mode
8898
8899 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8900
8901         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
8902         xdata and data memory on startup. Set the environment variable
8903         SDCC_NOGENRAMCLEAR to disable this.
8904         * src/mcs51/peephole.def,
8905         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
8906         (allows non-interrupt and interrupt code to safely compete for a resource
8907         without the non-interrupt code having to disable interrupts)
8908
8909 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8910
8911         * src/SDCCicode.c (geniCodeAdd),
8912         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
8913         with valFromType if type might be a pointer and host is big endian).
8914         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
8915         types, not just integer types.
8916         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
8917         multiply defined with mismatching "at" address.
8918
8919 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8920
8921         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
8922         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
8923         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
8924         with embedded nulls (fixed bug #753752)
8925
8926 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8927
8928         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
8929         Apparently this did not see much testing (endless loop)
8930
8931 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8932
8933         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
8934
8935 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8936
8937         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
8938         gracefully handle NULL memmap pointers
8939
8940 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8941
8942         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
8943         instead of deleting the iCode when an operand is volatile
8944         * src/z80/gen.c (genDummyRead),
8945         * src/mcs51/gen.c (genDummyRead),
8946         * src/ds390/gen.c (genDummyRead),
8947         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
8948         not just IC_RIGHT
8949         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
8950         * src/SDCC.y: fixed bug #850420
8951
8952 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8953
8954         Applied z80 i/o port patch from Peter Townson and fixed some operators
8955         to better handle operands in A register.
8956         * device/include/z180.h
8957         * src/SDCC.y
8958         * src/SDCCglue.c
8959         * src/z80/gen.c
8960         * src/z80/gen.h
8961         * src/z80/main.c
8962         * src/z80/peeph-z80.def
8963         * src/z80/peeph.def
8964         * src/z80/z80.h
8965
8966 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8967
8968         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
8969
8970 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8971
8972         * device/lib/hc08/_mullong.c: Removed extra #endif
8973
8974 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8975
8976         * sim/ucsim/hc08.src/inst.cc,
8977         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
8978         carries from x to h
8979         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
8980         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
8981         * device/include/stdarg.h: fixed varargs for hc08
8982         * device/lib/Makefile.in,
8983         * device/lib/hc08/Makefile,
8984         * device/lib/hc08/_mulint.c,
8985         * device/lib/hc08/_mullong.c: fixed some endian problems
8986
8987 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8988
8989         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
8990         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
8991         * device/lib/_gptrget.c,
8992         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
8993
8994 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8995
8996         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
8997         * src/SDCCast.c (astErrors): fixed bug #846007
8998         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
8999
9000 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9001
9002         * src/SDCCast.c (decorateType): disabled a transformation I added in
9003         revision 1.188 (access to fields of a structure at an absolute address);
9004         it breaks with bitfields, extern declarations, and gcse analysis.
9005         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
9006         could be assigned through a pointer, so don't complain.
9007         * src/SDCCast.c (astErrors),
9008         * src/SDCCast.h,
9009         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
9010
9011 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
9012
9013         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
9014         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
9015         output of __config directives, since gpasm now supports them
9016         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
9017         pre-processor macro, i.e. -DMCU=p18f452
9018         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
9019         and modified to handle 'cast' icode similarly to '=' icode
9020         * src/pic16/device.h (typedef struct PIC_device): added field
9021         'extMIface' to indicate that chip has external memory interface
9022         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
9023         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
9024         18F8720
9025
9026 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9027
9028         * src/SDCC.y (pointer): fixed bug #846006
9029         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
9030         * src/SDCCast.c (decorateType): fixed bug #846009
9031         * src/ds390/peeph.def,
9032         * src/ds390/gen.c (genAnd, genOr),
9033         * src/mcs51/peeph.def,
9034         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
9035
9036 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9037
9038         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
9039         * src/SDCCdflow.c
9040         * src/SDCCcse.c
9041         * src/SDCCcse.h
9042         * src/SDCCBBlock.h
9043         * src/SDCCBBlock.c
9044
9045 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
9046
9047         fixed bug #845089
9048         * src/SDCCbitv.h,
9049         * src/SDCCbitv.c: added function to free a bitvector
9050         * src/SDCClrange.h,
9051         * src/SDCClrange.c: added function to recompute the liveranges
9052         * src/avr/ralloc.c,
9053         * src/ds390/ralloc.c,
9054         * src/hc08/ralloc.c,
9055         * src/mcs51/ralloc.c,
9056         * src/pic/ralloc.c,
9057         * src/pic16/ralloc.c,
9058         * src/xa51/ralloc.c,
9059         * src/z80/ralloc.c: recompute the liveranges after register packing
9060
9061 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
9062
9063         * src/SDCCloop.c (newInduction): fixed bug #845630
9064
9065 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9066
9067         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
9068         inadvertantly left behind from my 2003-11-12 change
9069
9070 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9071
9072         Updated headers I neglected to commit yesterday.
9073         * src/SDCClrange.h,
9074         * src/SDCCicode.h
9075
9076 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9077
9078         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
9079         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
9080         * src/SDCCopt.c (eBBlockFromiCode),
9081         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
9082         the creation of the key hash table from the sequencing so it can be used
9083         earlier (for some GCSE bug fixes still pending)
9084
9085 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9086
9087         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
9088         * support/regression/tests/addsub.c: testing genPlus shortcut
9089
9090 2003-11-15  Borut Razem <borut.razem AT siol.net>
9091
9092         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
9093
9094 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9095
9096         * src/SDCCcse.c (cseBBlock): fixed bug #527779
9097         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
9098         ordering is immaterial.
9099         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
9100
9101 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9102
9103         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
9104         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
9105         (SIGSEV) of bug #840381
9106         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
9107         unlink new file before rename if new and old filenames are the same)
9108
9109 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9110
9111         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
9112         uninitialized variables) for the mcs51. Set environment variable
9113         SDCC_GENRAMCLEAR to test.
9114         xdata initialization slightly shorter
9115
9116 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9117
9118         * src/SDCCsymt.h,
9119         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
9120         #838241 & 780691 (basicly the same bug)
9121         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
9122         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
9123
9124 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
9125
9126         * src/SDCCmain.c (linkEdit): "fix" #834252
9127
9128 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9129
9130         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
9131         * src/SDCCast.h,
9132         * src/SDCC.y: fixed bug #819403
9133
9134 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9135
9136         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
9137         the reentrant attribute.
9138         * src/hc08/gen.c (genPackBits): added missing stack readjustment
9139         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
9140         simulation
9141         * src/SDCCast.c (decorateType): fixed bug with storage class not being
9142         updated during pointer dereference; f.e. ~(((char *)1)*) was being
9143         erroneously reduced to a literal.
9144         * src/hc08/ralloc.c (packRegisters, rematStr),
9145         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
9146         some cases
9147
9148 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9149
9150         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
9151         * doc/sdccman.lyx: changed from 'article' to 'book'
9152         * doc/Makefile: readded test_suite_spec and cdbfileformat
9153
9154 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
9155
9156         * device/include/stdlib.h: include malloc.h to comply with ANSI
9157         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
9158
9159 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9160
9161         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
9162         * doc/clean.mk: also remove *.out files
9163         * doc/sdccman.lyx: some additions, larger top/bottom margins
9164
9165 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9166
9167         * src/SDCC.y: fixed bug #837365
9168         * support/regression/tests/bitopcse.c
9169         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
9170         a symbol (might be valop instead)
9171         * device/lib/Makefile.in: added errno.c to HC08SOURCES
9172         * device/lib/clean.mk: added hc08 to the cleaning list
9173
9174 2003-11-04  Borut Razem <borut.razem AT siol.net>
9175
9176         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
9177           made 2003-11-04
9178         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9179           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
9180           malloc is declared in standard stdlib.h
9181
9182 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9183
9184         * device/lib/hc08/Makefile: need to clean .rel not .o files
9185         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
9186
9187 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9188
9189         * src/port.h,
9190         * src/hc08/main.c,
9191         * src/mcs51/main.c,
9192         * src/ds390/main.c,
9193         * src/z80/main.c,
9194         * src/avr/main.c,
9195         * src/pic/main.c,
9196         * src/pic16/main.c,
9197         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
9198         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
9199         tests (which uses the port's oclsExpense function)
9200         * src/SDCC.y,
9201         * src/SDCCast.c,
9202         * src/SDCCicode.c,
9203         * src/hc08/gen.c,
9204         * src/ds390/gen.c,
9205         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
9206
9207 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9208
9209         * src/SDCCcse.c (ifxOptimize),
9210         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
9211         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
9212         deleting the IFX iCode.
9213         * src/hc08/ralloc.c: reduced unneeded slocs
9214         * src/hc08/gen.c: fixed bug in asmopToBoolean
9215
9216 2003-11-04  Borut Razem <borut.razem AT siol.net>
9217
9218         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
9219           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9220           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
9221           transferred to configure
9222
9223 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
9224
9225         Use headers defined in the C[++] standards:
9226         * sim/ucsim/gui.src/serio.src/fileio.cc
9227         * sim/ucsim/gui.src/serio.src/frontend.cc
9228         * sim/ucsim/gui.src/serio.src/main.cc
9229         * sim/ucsim/gui.src/serio.src/posix_signal.cc
9230         * support/Util/NewAlloc.c
9231         * as/hc08/lklibr.c
9232         * as/mcs51/lklibr.c
9233         * as/z80/aslist.c
9234         * as/z80/assym.c
9235
9236 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9237
9238         * Added MSVC projects for hc08 assembler and linker:
9239         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
9240         /as/hc08/link_hc08.dsp
9241
9242 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
9243
9244         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
9245
9246 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
9247
9248         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
9249
9250 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9251
9252         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
9253
9254 2003-10-31  Borut Razem <borut.razem AT siol.net>
9255
9256         * support/cpp2/cpplib.h,
9257           support/cpp2/cpplib.c,
9258           support/cpp2/cpplex.c,
9259           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
9260           to switch _asm block preprocessing on / off. Default is
9261           #pragma preproc_asm +
9262
9263 2003-10-31  Borut Razem <borut.razem AT siol.net>
9264
9265         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
9266           when outputting comment blocks (when executed with -C option) and
9267           _asm (SDCPP specific) blocks
9268
9269 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9270
9271         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
9272
9273 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
9274
9275         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
9276
9277 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
9278
9279         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
9280         * src/SDCCast.c (decorateType): fixed bug #832664
9281
9282 2003-10-31  Borut Razem <borut.razem AT siol.net>
9283
9284         * support/cpp2/cpplex.c: fixed for SDCPP:
9285           comments(when executed with -C option) and _asm blocks
9286           were included even if they where in skipped #if block.
9287           Applied solution from GCC cpp 3.3.2
9288
9289 2003-10-31  Borut Razem <borut.razem AT siol.net>
9290
9291         * src/SDCC.lex: sdcc now understands both formats:
9292           '# <line_number> <file_name>' and
9293           '#line <line_number> <file_name>'
9294         * support/cpp2/cppmain.c: sdcpp now generates the standard
9295           '# <line_number> <file_name>' instead of former
9296           '#line <line_number> <file_name>'
9297
9298 2003-10-30  Borut Razem <borut.razem AT siol.net>
9299
9300         * support/cpp2/cpphash.h,
9301         * support/cpp2/cpplib.h
9302         * support/cpp2/cpplex.c,
9303         * support/cpp2/cppmain.c,
9304         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
9305
9306 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9307
9308         Fixed a number of problems revealed by bug #827883.
9309         * src/SDCCloop.c (loopInvariants): Spill location of the
9310         result operand should be recomputed if extracted from
9311         a loop. Also, don't extract assignments of an iTemp
9312         from a literal.
9313         * src/SDCCast.c (isConformingBody): loop reversal should
9314         not occur if the control variable is involved with a
9315         relational operator.
9316
9317 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
9318
9319         * .version: bumped to 2.3.6 to reflect the big improvements
9320         made by Erik and Klaus. Thanks!
9321
9322 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
9323
9324         Replaced the livrange code.
9325         * src/SDCClrange.c: added new LR code
9326         * src/SDCCloop.c,
9327         * src/SDCCBBlock.h: removed remainig parts from old LR code
9328         * src/ds390/ralloc.c,
9329         * src/ds390/gen.c: minor fixes to make it work with new code
9330
9331 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9332
9333         * as/hc08/asm.h,
9334         * as/hc08/lkrloc.c,
9335         * src/hc08/gen.c,
9336         * src/hc08/ralloc.c: Fix various warnings related to the hc08
9337         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
9338         (tweaked fix for bug #818696)
9339
9340 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9341
9342         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
9343
9344 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9345
9346         * src/SDCCmain.c,
9347         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
9348         * src/mcs51/gen.c (gencjneshort),
9349         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
9350         more efficient (per Scott Bronson's suggestion)
9351
9352 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9353
9354         Extended the semantics of the critical keyword to include
9355         individual statements. See RFE #827755 and #799831
9356         * src/SDCC.y
9357         * src/SDCCicode.c
9358         * src/SDCCopt.c
9359         * src/SDCCast.c
9360         * support/Util/SDCCerr.c
9361         * support/Util/SDCCerr.h
9362         * src/mcs51/gen.c
9363         * src/ds390/gen.c
9364         * src/hc08/gen.c
9365
9366 2003-10-19  Borut Razem <borut.razem AT siol.net>
9367
9368         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
9369
9370 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9371
9372         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
9373         Fixed bug #818696
9374         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
9375         and predecrement operand is displayed
9376
9377 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9378
9379         * src/SDCCval.c (valMinus): fixed bug #826041
9380
9381 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9382
9383         Some hc08 related updates that I missed earlier
9384         * sim/ucsim/stypes.h
9385         * support/regression/ports/hc08/spec.mk
9386
9387 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9388
9389         New target "hc08" for the Motorola 68hc08 family of micros
9390
9391         * configure
9392         * configure.in
9393         * Makefile
9394         * src/hc08/*
9395         * src/SDCCmain.c
9396         * src/port.h
9397         * sim/ucsim/hc08.src/*
9398         * sim/ucsim/configure.in
9399         * src/ucsim/configure
9400         * sim/ucsim/packages_in.mk
9401         * as/hc08/*
9402         * as/Makefile
9403         * device/include/mc68hc908qy.h
9404         * device/lib/hc08/*
9405         * device/lib/Makefile.in
9406         * support/regression/ports/hc08/*
9407         * support/regression/Makefile
9408
9409 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9410
9411         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
9412         regression test
9413         * src/ds390/gen.c (genCast): fixed bug #821957
9414
9415 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9416
9417         * device/lib/logf.c: "fixed" overlay bug
9418         * support/regression/ports/host/spec.mk: added m library
9419         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
9420         * support/regression/tests/float_trans: added (for Eric)
9421
9422 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
9423
9424         * src/mcs51/gen.c (genCpl): fixed bug
9425         http://sf.net/mailarchive/message.php?msg_id=6263915
9426
9427 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
9428
9429         * src/SDCCast.c (decorateType): added extended constant folding
9430         * src/SDCCsymt.c (computeType): cleanup
9431         * src/SDCCval.c (valShift): minor optimization
9432         * support/regression/tests/ast_constant_folding.c: added
9433
9434 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9435
9436         * src/SDCCmain.c: removed some unintended changes
9437
9438 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9439
9440         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
9441         * src/z80/gen.c: fixed part of bug #817589
9442         * src/SDCCsymt.c (checkFunction): fixed bug #817895
9443
9444 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
9445
9446         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
9447         * src/SDCCcflow.c
9448         * src/SDCCcse.c
9449         * src/SDCCdflow.c
9450         * src/SDCClabel.c
9451         * src/SDCClrange.c
9452         * src/SDCCmem.c
9453         * src/SDCCopt.c
9454         * src/SDCCpeeph.c
9455         * src/SDCCset.c
9456         * src/avr/ralloc.c
9457         * src/ds390/ralloc.c
9458         * src/izt/ralloc.c
9459         * src/mcs51/ralloc.c
9460         * src/pic/ralloc.c
9461         * src/pic16/ralloc.c
9462         * src/xa51/ralloc.c
9463         * src/z80/ralloc.c
9464         * src/z80/gen.c: removed unused label "release:"
9465
9466 2003-10-06  Borut Razem <borut.razem AT siol.net>
9467
9468         * src/SDCC.lex: removed definition of unused variables
9469           save_optimize and save_options
9470
9471 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
9472
9473         * clean.mk: removed '=' in "-maxdepth=1"
9474         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
9475         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
9476
9477 2003-10-06  Borut Razem <borut.razem AT siol.net>
9478
9479         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
9480           my_unput() replaced by unput()
9481
9482 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
9483
9484         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
9485         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
9486         type-punned pointer will break strict-aliasing rules"
9487         Old LR behaviour is again default; Klaus' LR can be choosen by
9488         defining the environment variable LRKLAUS
9489         * src/SDCCBBlock.h
9490         * src/SDCCloop.c
9491         * src/SDCClrange.c
9492         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
9493         * clean.mk: fixed removal of files in bin/CVS/
9494         * device/lib/clean.mk: fixed removal of directories small and large
9495         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
9496         * src/SDCCicode.c,
9497         * src/SDCCval.c: removed superflous test for pedantic
9498
9499 2003-10-05  Borut Razem <borut.razem AT siol.net>
9500
9501         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
9502           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
9503           message "unmatched #pragma SAVE and #pragma RESTORE"
9504
9505 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9506
9507         * doc/sdccman.lyx: various additions and updates (interrupts, inline
9508           assembly, critical functions, atomic, nojtbound)
9509
9510 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
9511
9512         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
9513         * src/SDCCBBlock.h
9514         * src/SDCCloop.c
9515         * src/SDCCloop.h
9516         * src/SDCClrange.c
9517
9518 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9519
9520         * src/z80/gen.h,
9521         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9522         * src/mcs51/gen.h
9523         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9524         * src/ds390/gen.h
9525         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9526         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
9527         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
9528
9529 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9530
9531         * src/z80/gen.c (genRet): fixed bug #524753
9532         * src/z80/gen.c (genCast): fixed internal error on cast from
9533         pointer to long
9534         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
9535         fix for bug #477835 to the z80
9536         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
9537         for tracking iCodes in the peephole optimizer for z80
9538
9539 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9540
9541         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
9542         the other part of bug #814548
9543         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
9544
9545 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
9546
9547         * src/SDCCcse.c: fixed part of bug #814548
9548
9549 2003-09-28  Borut Razem <borut.razem AT siol.net>
9550
9551         * src/asm.c: rewrite of printILine() to use temporary file instead
9552           a pipe
9553         * src/xa51/main.c: commented out declaration of int rewinds
9554
9555 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9556
9557         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
9558
9559 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9560
9561         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
9562         * src/asm.c (printILine): Fixed bug #811015
9563
9564 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9565
9566         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
9567         freeing.
9568
9569 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9570
9571         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
9572         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
9573         to correctly handle general case of AOP_PAIRPTR
9574         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
9575
9576 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9577
9578         * src/mcs51/ralloc.c (fillGaps),
9579         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
9580         register positioning bug)
9581
9582 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
9583
9584         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
9585
9586 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9587
9588         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
9589         genCodePointerGet, genGenPointerGet, genFarPointerSet,
9590         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
9591         (ralloc doesn't intentionally do this now, but perhaps later)
9592         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
9593         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
9594         register positioning bugs (Fixed bug #762602 and #795325)
9595         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
9596         (Fixed bug #808779)
9597         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
9598         lines that --i-code-in-asm generates
9599
9600 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9601
9602         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
9603         trying to fclose a FILE* that was already closed.
9604
9605 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9606
9607         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
9608         of const struct should be treated as if const themselves)
9609
9610 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
9611
9612         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
9613
9614 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9615
9616         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
9617         Unix (/n) and DOS (/r/n) line terminations.
9618
9619 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9620
9621         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
9622         bug #613775
9623
9624 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9625
9626         * src/mcs51/gen.c (genFunction, genEndFunction),
9627         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
9628         and restore of EA so that stack offsets to parameters are
9629         correct when using both critical and reentrant/stack-auto.
9630         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
9631         size (can be triggered in error if sloc is shared between
9632         different sized objects)
9633         * device/include/float.h: fixed macros to explicitly use
9634         unsigned long where needed
9635
9636 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
9637
9638         Feature req. 799831: added code to allow nesting of critical functions
9639         * src/mcs51/gen.c (genFunction, genEndFunction)
9640         * src/ds390/gen.c (genFunction, genEndFunction)
9641
9642 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9643
9644         * src/SDCCsymt.c (sclsFromPtr),
9645         * src/SDCCsymt.h,
9646         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
9647         support for standard C idiom of memory mapped variables; for
9648         example, *((xdata int*)0x1234) = 1 is now internally equivalent
9649         to xdata int at 0x1234 tempvar = 1.
9650         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
9651         provided by Akiya ISHIDA
9652
9653 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
9654
9655         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
9656         * src/SDCCval.c (constVal): added reduction from int to char
9657         * src/SDCCval.c (valMult, valDiv): fixed sign handling
9658         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
9659         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
9660         to ignore the sign
9661         * support/regression/tests/shifts.c: fixed
9662
9663 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9664
9665         * src/z80/gen.c (genXor): Fixed bug #805445
9666
9667 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9668
9669         Fixed bug #621531 (const & volatile confusion in the type chain).
9670         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
9671         refer to the const or volatile state of the pointer itself.
9672
9673         * src/SDCCast.c
9674         * src/SDCCglue.c
9675         * src/SDCCicode.c
9676         * src/SDCCsymt.c
9677         * src/SDCCval.c
9678         * src/SDCC.y
9679         * src/SDCCsymt.h
9680         * src/pic/gen.c
9681         * src/pic/ralloc.c
9682         * src/pic16/gen.c
9683         * src/pic16/ralloc.c
9684         * support/regression/tests/const.c
9685
9686 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9687
9688         When checking for duplicated modules, use absolute paths
9689         instead of relative paths.  Files changed:
9690
9691         * as/mcs51/lklib.c
9692         * link/z80/lklib.c
9693
9694 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9695
9696         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
9697
9698 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9699
9700         * device/include/string.h: added size_t typedef, changed
9701         prototypes to use size_t, eliminated separate reentrant and
9702         non-reentrant declarations, added _memmove declaration
9703         * device/lib/_memcpy.c: changed to use size_t instead of int,
9704         changed /4 to >>2 to avoid division library call
9705         * device/lib/_memcmp.c,
9706         * device/lib/_memset.c,
9707         * device/lib/_strncat.c,
9708         * device/lib/_strncpy.c,
9709         * device/lib/_strncmp.c: changed to use size_t instead of int
9710         * device/lib/_memmove.c: new file (fixed bug #772294)
9711         * device/lib/Makefile.in: added _memmove.c
9712         * device/lib/z80/asm_strings.s: fixed bug #772290
9713         * support/regression/tests/bitfields.c: attempt to fix host assertion
9714         failure on amd64-unknown-linux2.2
9715
9716 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9717
9718         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
9719         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
9720         * as/z80/asmain.c (main): fixed bug #801766
9721
9722 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
9723
9724         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
9725         compilers
9726
9727 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9728
9729         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
9730         reported in bug #800609
9731
9732 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
9733
9734         * Top header beautifications in src/pic16 directory:
9735           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
9736           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
9737           pcoderegs.h, ralloc.c, ralloc.h
9738         * main.c: added top header and GPL license notice
9739         * pcode.c: fixed the if-conditional warning
9740
9741 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
9742
9743         * device/lib/_mullong.c: replaced int by short for gcc
9744
9745 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9746
9747         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
9748         and JUMPTABLE iCodes properly now (worked by accident before)
9749         * src/mcs51/gen.c (leftRightUseAcc),
9750         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
9751         iCode properly now. Use getSize instead of nRegs since a & b
9752         aren't part of the nRegs tally.
9753
9754 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
9755
9756         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
9757         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
9758           before instructions that use the _STATUS register
9759
9760 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
9761
9762         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
9763         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
9764         fetching of the pointer
9765         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
9766         copied from genNearPointerSet()
9767         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
9768         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
9769         If they pop r0/r1 they must be called in the opposite order than aopOp().
9770         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
9771         (resp. --stack-auto), prepared for --xstack
9772
9773 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9774
9775         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
9776
9777 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9778
9779         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
9780         these ports have their own __sdcc_external_start()
9781
9782 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
9783
9784         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9785         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
9786         type for bits was changed. It resulted in bit variables becoming
9787         global, which is not permitted in PIC 14 assembly output.
9788
9789 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9790
9791         * doc/sdccman.lyx: various additions and updates. Rearranged sections
9792
9793 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9794
9795         Z80 and MCS51 linkers complaint if a public symbol is defined
9796         in more than one library module:
9797
9798         * as/mcs51/lklib.c
9799         * link/z80/lklib.c
9800         * as/mcs51/Makefile.in
9801
9802 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9803
9804         A few small changes that speed up the peephole optimizer.
9805
9806         * src/SDCCpeeph.c
9807
9808 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9809
9810         Try to make the peephole optimizer smarter by maintaining
9811         an association between the assembly source code and the
9812         iCodes that originated them. Put this information to use
9813         with a new peephole rule condition "notVolatile" so that
9814         the rules can be aggressive yet still safe.
9815
9816         * src/SDCCpeeph.c
9817         * src/SDCCpeeph.h
9818         * src/mcs51/gen.c
9819         * src/mcs51/peeph.def
9820
9821 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9822
9823         Fixed bug #741761
9824
9825         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
9826         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
9827         if the left or right operand symbols have the accuse flag set.
9828
9829 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9830
9831         Changed the type of the result of the ! (NOT) operator to char;
9832         previously it returned the same type as the source. This allows
9833         us to eliminate all the genFloatNot functions (all of its target
9834         implementations were very buggy) since !float can use the same
9835         code as !long now.
9836
9837         * src/SDCCicode.c (ast2iCode): ! returns char
9838         * src/mcs51/gen.c (genNot, genNotFloat),
9839         * src/ds390/gen.c (genNot, genNotFloat),
9840         * src/z80/gen.c (genNot, genNotFloat),
9841         * src/pic/gen.c (genNot, genNotFloat),
9842         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
9843
9844 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
9845
9846         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9847         1. Interrupt would not compile properly. Ensure PCLATH register is saved
9848            during interrupts. Ensure WSAVE is located at a shared bank address.
9849         2. Fixed page selection in some places
9850         3. Fixed BTFSS/C to where necessary use registers directly and not simply
9851            the registers name strings.
9852         4. Fixed "signed / unsigned compare" compiler warnings.
9853         5. The PIC port manages its own allocation of the general purpose
9854            registers, but makes no attempt to reuse them. As a result when
9855            compiling it soon runs out of general purpose registers. Some
9856            additional code was added to the files pcode.c and device.c to walk
9857            through the function call tree and rename the registers so that they
9858            get reused.
9859
9860         * src/pic/device.c
9861         * src/pic/gen.c
9862         * src/pic/glue.c
9863         * src/pic/pcode.c
9864         * src/pic/pcode.h
9865         * src/pic/ralloc.c
9866         * src/pic/ralloc.h
9867         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
9868         genPlus() & genMinus() when the result is the same as left or right
9869
9870 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9871
9872         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
9873
9874 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9875
9876         Made bitfield a distinct type from bit so that bitfields
9877         convert as per ANSI C and bits retain their traditional
9878         boolean style behaviour. Implemented bitfield support in
9879         the z80 port.
9880
9881         * src/SDCCsymt.h,
9882         * src/SDCCsymt.c,
9883         * src/SDCCast.c,
9884         * src/cdbFile.c,
9885         * src/mcs51/gen.c,
9886         * src/ds390/gen.c: bit v bitfield split
9887         * src/z80/gen.c: New support for bitfields
9888         * support/regression/tests/bitfields.c: reenabled z80,
9889         added more tests
9890
9891 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9892
9893         Rules 246.x, 247.x relate to bitfields, the others speed up
9894         access to xdata mapped I/O devices.
9895
9896         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
9897
9898 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9899
9900         Cleaned up genPackBits and genUnpackBits and added two helper
9901         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
9902         for literal assignments in genPackBits (thanks to Frieder for
9903         reminding me).
9904
9905         * src/mcs51/gen.c
9906         * src/ds390/gen.c
9907
9908 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9909
9910         Fixed bug #748310 (pointer to function type mishandled when the
9911         function name is omitted). Also fixed a SIGSEGV when a function
9912         attribute (reentrant, etc) is used on a non-function or on a
9913         function but misplaced before the parameter list.
9914
9915         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
9916         bug #748310
9917         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
9918         * support/Util/SDCCerr.h,
9919         * support/Util/SDCCerr.c: Added func attr misuse error msg
9920
9921 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9922
9923         Fixed bug #787649 by anonymous
9924         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
9925         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
9926
9927 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9928
9929         Fixed numerous bitfield problems.
9930
9931         * src/SDCC.y: More bitfield related error checking
9932         * src/SDCCsymt.h,
9933         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
9934         * support/Util/SDCCerr.h,
9935         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
9936         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9937         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9938         * support/regression/tests/bitfields.c: tests added
9939
9940 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9941
9942         Made the constant following the "interrupt" keyword optional. If
9943         omitted, the function will not automatically be given an entry
9944         in the interrupt vector table (similar to #pragma NOIV, but
9945         less syntacticly kludgy). The interrupt number is also now
9946         range checked. Also fixed a bug in the high order bit example
9947         in the manual.
9948
9949         * src/SDCC.y
9950         * src/SDCCmem.c
9951         * src/SDCCglue.c
9952         * src/SDCCsymt.h
9953         * support/Util/SDCCerr.c
9954         * support/Util/SDCCerr.h
9955         * doc/sdccman.lyx
9956
9957 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9958
9959         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
9960         * src/SDCCicode.c (operandOperation): rewritten some ops
9961         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
9962         * src/SDCCsymt.c (computeType): literals are handled the same way as any
9963         other type
9964         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
9965         be re-activated by defining REDUCE_LITERALS)
9966         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
9967         unsigned, but are signed by default
9968         * src/SDCCval.c (constVal): rearranged
9969         * src/SDCCval.c (valMod): preliminary fix
9970         * src/SDCCval.c (valCastLiteral): use TYPE_* types
9971         * support/regression/literalop.c: added, work in progress
9972
9973 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9974
9975         Generate warnings for useless declarations like "char data;"
9976         that don't do what new users expect.
9977
9978         * src/SDCC.y
9979         * support/Util/SDCCerr.h
9980         * support/Util/SDCCerr.c
9981
9982 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
9983
9984         * src/SDCCval.c (valMult): fix overflow detection of negative int
9985
9986 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9987
9988         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
9989
9990         Changes to support big endian targets:
9991
9992         * src/ports.h
9993         * src/SDCCglue.c
9994         * src/avr/main.c
9995         * src/ds390/main.c
9996         * src/izt/i186.c
9997         * src/mcs51/main.c
9998         * src/pic/main.c
9999         * src/pic16/main.c
10000         * src/xa51/main.c
10001         * src/z80/main.c
10002
10003 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
10004
10005         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
10006         * device/lib/time.c: fixed warning "integer overflow in expression"
10007
10008 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
10009
10010         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
10011         * src/SDCCval.c (constVal): changed default to signed; hex and octal
10012         constants are unsigned; added recognition of "u" flag for unsigned
10013         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
10014         * src/SDCCval.c (valDiv, valMod): fixed signdness
10015         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
10016         signedness of modulo, left and right shift
10017         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
10018         * support/Util/SDCCerr.h: added warning W_INT_OVL
10019         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
10020         * src/SDCCast.c (ast_print): improved output of constants
10021
10022 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10023
10024         Fixed some warnings when building with MSVC:
10025
10026         * as/mcs51/asdata.c
10027         * as/z80/asdata.c
10028         * as/mcs51/asm.h
10029         * as/z80/asm.h
10030         * link/z80/aslink.h
10031         * link/z80/lkdata.c
10032         * link/z80/lkeval.c
10033         * link/z80/lkgb.c
10034         * link/z80/lkihx.c
10035         * link/z80/lks19.c
10036         * link/z80/lksym.c
10037         * support/cpp2/cpplib.c
10038         * src/ds390/gen.c
10039         * src/mcs51/gen.c
10040
10041 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
10042
10043         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
10044
10045 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10046
10047         * support/librarian/clean.mk: Do not remove Makefile.
10048         * support/librarian/Makefile: added.
10049
10050 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10051
10052         Added librarian to MSVC build:
10053         * all.dsp
10054         * sdcc.dsw
10055         * support/librarian/librarian.dsp
10056
10057         'configure' not needed for librarian, removed:
10058         * support/librarian/configure
10059         * support/librarian/configure.in
10060         * support/librarian/config_in.h
10061         * support/librarian/Makefile.in
10062
10063         Hopefully these ones built the librarian and the rest of sdcc properly:
10064         * Makefile
10065         * Makefile.common.in
10066
10067         Messed up 'configure', so revert to previous version:
10068         * configure
10069         * configure.in
10070
10071 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
10072
10073         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
10074         there, while the mantissa of a double is "only" 53 bits wide.
10075
10076 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10077
10078         Adding sdcclib to the build.  MSVC project coming soon.
10079         Files added/changed:
10080
10081         * support/librarian/clean.mk
10082         * support/librarian/configure
10083         * support/librarian/configure.in
10084         * support/librarian/config_in.h
10085         * support/librarian/Makefile.bcc
10086         * support/librarian/Makefile.in
10087         * support/librarian/sdcclib.c
10088         * Makefile.bcc
10089         * Makefile
10090         * Makefile.common.in
10091         * configure
10092         * configure.in
10093
10094 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10095
10096         Linker now complaints if linked modules have conflicting options, for
10097         example, one compiled using --model-large and another one compiled with
10098         --model-small.  The following files were modified:
10099
10100         * as/mcs51/asdata.c
10101         * as/mcs51/aslink.h
10102         * as/mcs51/asm.h
10103         * as/mcs51/asmain.c
10104         * as/mcs51/asout.c
10105         * as/mcs51/i51pst.c
10106         * as/mcs51/lkdata.c
10107         * as/mcs51/lklibr.c
10108         * as/mcs51/lkmain.c
10109         * as/z80/asdata.c
10110         * as/z80/asm.h
10111         * as/z80/asmain.c
10112         * as/z80/asout.c
10113         * as/z80/z80pst.c
10114         * link/z80/aslink.h
10115         * link/z80/lkdata.c
10116         * link/z80/lklibr.c
10117         * link/z80/lkmain.c
10118         * src/SDCCglue.c
10119
10120 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10121
10122         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
10123         as/mcs51/lklibr.c: Generate a warning when a library is not found.
10124
10125 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
10126
10127         * src/z80/mappings.i: fix _mul[us][int,long] entries
10128
10129 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10130
10131         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
10132
10133 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10134
10135         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
10136         * support/regression/tests/bitopcse.c: added
10137         fixed warning:
10138         * src/avr/gen.c:
10139         * src/pic/gen.c:
10140         * src/pic16/gen.c:
10141         * src/z80/gen.c:
10142         * src/xa51/gen.c:
10143
10144 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10145
10146         added support for new library format to z80, gbz80 linkers:
10147         *link/z80/aslink.h
10148         *link/z80/lklex.c
10149         *link/z80/lklib.c
10150         *link/z80/lklist.c
10151
10152 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10153
10154         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
10155         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
10156
10157 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
10158
10159         added DUMMY_READ_VOLATILE:
10160         * src/SDCC.y:
10161         * src/avr/gen.c:
10162         * src/xa51/gen.c:
10163         * src/z80/gen.c:
10164         * src/pic/gen.c:
10165         * src/pic16/gen.c:
10166         * src/mcs51/gen.c:
10167         * src/ds390/gen.c:
10168         * src/SDCCcse.c (algebraicOpts): many improvements
10169         * src/SDCCcse.h: removed algebraicOpts()
10170         * src/SDCCicode.c (picDummyRead): added
10171
10172 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10173
10174         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
10175         "Insufficient space in data memory".
10176
10177 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10178
10179         * src/mcs51/gen.c: fixed bug #771358
10180         * src/z80/gen.c: fixed bug #759087
10181
10182 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
10183
10184         * src/pic16/glue.c: minor cleanup by Vangelis
10185
10186 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10187
10188         * device/include/regc515c.h: fixed #758477
10189         * device/lib/_gptrget.c: saving some cycles in generic pointer get
10190         * device/lib/_gptrput.c: saved a few bytes
10191         * my tab spacing is 8, yours too?)
10192         * device/lib/_ser.c: process RX bytes earlier than TX bytes
10193         * device/lib/serial.c: process RX bytes earlier than TX bytes
10194         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
10195
10196 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10197
10198         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
10199
10200 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10201
10202     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
10203
10204 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
10205
10206         * device/lib/Makefile.in: bad fix, reverted to 1.43
10207
10208 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
10209
10210         * device/lib/Makefile.in: added missing z80 object files
10211
10212 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
10213
10214         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
10215         pic16 progress by Vangelis:
10216         * src/SDCCglobl.h:
10217         * src/SDCCmain.c:
10218         * src/pic/Makefile:
10219         * src/pic:
10220         * pic/Makefile:
10221         * pic16/device.c:
10222         * pic16/device.h:
10223         * pic16/gen.c:
10224         * pic16/gen.h:
10225         * pic16/genarith.c:
10226         * pic16/glue.c:
10227         * pic16/main.c:
10228         * pic16/pcode.c:
10229         * pic16/pcode.h:
10230         * pic16/pcodepeep.c:
10231         * pic16/peeph.def:
10232
10233 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10234
10235     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
10236
10237 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10238
10239     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
10240     added gbz80 build to MSVC project.
10241     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
10242     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
10243     from 8051 stuff and setup so it links using a .lnk file.
10244
10245 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10246
10247     * support/librarian/sdcclib.c: sdcc librarian.
10248     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
10249     with sdcclib.
10250
10251 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10252
10253     * as/mcs51/lkmain.c: properly handle extensions in function afile.
10254
10255 2003-07-02  Borut Razem <borut.razem AT siol.net>
10256
10257         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
10258         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
10259         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
10260         src/xa51/main.c, src/z80/main.c:
10261         virtualization of glue() function: each port has it's own glue function,
10262         which is accessed by do_glue function pointer in PORT.general structure
10263
10264 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
10265
10266         * DS800C400 fun, improved ROM interface and tinibios.
10267
10268 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
10269
10270         * More support for DS80C400. Now includes beginning of interface to ROM.
10271
10272 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
10273
10274         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
10275
10276 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10277
10278         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
10279
10280 2003-06-19  Borut Razem <borut.razem AT siol.net>
10281
10282         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
10283
10284 2003-06-19  Borut Razem <borut.razem AT siol.net>
10285
10286         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
10287         fixed Z80 port - crt0.o: cannot open.
10288
10289 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
10290
10291         * support/Util/MySystem.c (merge_command): revert bad fix
10292
10293 2003-06-18  Borut Razem <borut.razem AT siol.net>
10294
10295         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
10296
10297 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10298
10299         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10300         option --use-stdout sends errors to stdout instead of stderr.
10301
10302 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
10303
10304         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
10305
10306 2003-06-15  Borut Razem <borut.razem AT siol.net>
10307
10308         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
10309         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
10310         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
10311         fixed width array of pointers replaced with sets;
10312         multiple include and lib paths ared transferred to preprocessor and linker
10313         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
10314         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
10315         fixed width array of pointers
10316         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
10317         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
10318         fixupPath(), getPathDifference()
10319         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
10320         fixed width array of pointers
10321
10322 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
10323
10324         * src/pic16/ralloc.c: fix warnings
10325         * src/pic16/pcode.c: fix warning
10326
10327 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
10328
10329          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
10330         know all the details, but essentially this set of changes enable
10331         the pic16 port to generate movff instructions and generate assembler
10332         directives,
10333         * src/SDCCmain.c:
10334         * src/pic16/gen.c:
10335         * src/pic16/glue.c:
10336         * src/pic16/pcode.c:
10337         * src/pic16/device.c:
10338         * src/pic16/main.c:
10339         * src/pic16/pcode.h:
10340         * src/pic16/pcoderegs.c:
10341         * src/pic16/ralloc.c:
10342         * src/pic16/ralloc.h:
10343
10344 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10345
10346         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10347         added option --vc, so sdcc errors and warnings are compatible with
10348         Microsoft Visual Studio.
10349
10350 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10351
10352         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
10353           device/lib/libfloat.lib: added atof function.
10354
10355 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
10356
10357         * doc/sdccman.lyx: updated to Lyx 1.3
10358         * doc/cdbfileformat.lyx: updated to Lyx 1.3
10359         * doc/test_suite_spec.lyx: updated to Lyx 1.3
10360         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
10361
10362 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
10363
10364         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
10365
10366 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10367
10368         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
10369           additions to the "related tools/documentation" section
10370
10371 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
10372
10373         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
10374
10375 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
10376
10377         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
10378         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
10379
10380 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
10381
10382         * doc/sdccman.lyx: fix double dash and other minor things
10383         * doc/Makefile: fix double dash
10384
10385 2003-05-28  Karl Bongers(patches from Martin Helmling)
10386         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
10387           condition and ignore commands.
10388
10389 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10390
10391         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
10392           is in parts still quite out of date, I did changes as far as I felt makes sense
10393           for a non-native english speaker.
10394           Please feel free to add to the manual or to correct my changes.
10395         * doc/Makefile: undid touching the date of intermediate tex files.
10396
10397 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10398
10399         * doc/sdccman.lyx: Manual has an index now
10400
10401 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
10402
10403         Finalize muluint/mulsint and mululong/mulslong merging:
10404         * device/lib/_mulint.c
10405         * device/lib/_mullong.c
10406         * device/lib/gbz80/mul.s
10407         * device/lib/gbz80/stubs.s
10408         * device/lib/z80/mul.s
10409         * device/lib/z80/stubs.s
10410         * src/SDCCsymt.c (initCSupport)
10411
10412 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10413
10414         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
10415         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
10416           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
10417           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
10418           instead of /Zm500.
10419
10420 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10421
10422         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
10423           the regression tests I'm not brave enough to enable 245.b, 245.c
10424         * doc/sdccman.lyx: added latex preamble for hyperref package.
10425           Using pdflatex this will give you a hyperlinked pdf file with
10426           bookmarks. (prepend '%' before /usepackage if this breaks something)
10427
10428 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10429
10430          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
10431
10432 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
10433
10434         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
10435
10436 2003-05-21    <johan AT balder>
10437
10438         * src/SDCCglue.c (printIval): fixed bug #739934
10439
10440 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10441
10442         Applied patch from bug 737905 (renamed yylineo to mylineno):
10443         * src/altlex.c
10444         * src/SDCCast.c
10445         * src/SDCglobl.h
10446         * src/SDCC.lex
10447         * src/SDCCsymt.c
10448         * src/SDCCval.c
10449         * src/pic16/pcode.c: Cleaned warnings
10450         * src/pic16/pcodeflow.c: Cleaned warnings
10451         * src/pic16/pcoderegs.c: Cleaned warnings
10452
10453 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
10454
10455         * src/pic16/pcode.c: Cleaned warnings
10456         * src/pic16/pcodepeep.c: Cleaned warnings
10457         * src/pic16/ralloc.c: Cleaned warnings
10458
10459 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10460
10461         * doc/sdccman.lyx: fixed bug 739745
10462         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
10463
10464 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
10465
10466         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
10467         it can be defined with CFLAGS when running configure
10468         * src/SDCCmain.c: fixed compiling + linking with object files
10469
10470 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
10471
10472         * configure.in: configure for pic16 port,
10473             added --disable-pic16-port
10474         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
10475         * src/SDCCmain.c: linkOptions is changed to set *,
10476             added if/endif conditional macros to remove options help
10477             messages from optionsTable when a port is not configured, added
10478             support for the PIc16 port in the ports table, when executing
10479             the compiler with no port specified on command line, a default
10480             port is selected with the new macro DEFAULT_PORT which is
10481             defined in port.h, in setDefaultOptions() linkOptions is removed
10482             from initialization assignment, since now it is a set,
10483             parseCmdLine uses setParseWithComma for linkOptions, in
10484             linkEdit() linkOptions are accessed with new function indexSet()
10485             which returns the i'th item of a set variable. See SDCCset.c, in
10486             linkEdit() when calling buildCmdLine(), added linkOptions as
10487             last argument. Now users can pass arguments to gplink via the
10488             -Wl option, main() uses pic16glue() to glue up pic16 programs
10489         * src/SDCCpeeph.c: various changes to support pic16
10490         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
10491             return the i'th item of the set
10492         * src/SDCCset.h: added function prototype for indexSet()
10493         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
10494         * src/clean.mk: added pic16 in CLEANALLPORTS variable
10495         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
10496             added macro DEFAULT_PORT
10497         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
10498         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
10499             generated
10500         * src/pic16/glue.c: commented out some error producing lines
10501         * src/pic16/main.c: __config directives are commented out to stop
10502             gpasm complaining and test the linkage with gplink, _linkCmd and
10503             _asmCmd changed to be more gplink and gpasm friendly
10504         * src/pic16/peeph.def: peep rule 3 is commented out, since it
10505             produced an error when parsed, peep rule 12 is added to utilize
10506             movff, but it is commented out since the pCode does not support
10507             yet a command with 2 address arguments
10508
10509 2003-05-18    <johan AT balder>
10510
10511         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10512         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10513 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
10514
10515         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
10516   Added feature to script commands from file.
10517
10518 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
10519
10520         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
10521         * src/SDCCutil.c: include ctype.h for win32
10522
10523 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
10524
10525         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
10526
10527 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
10528
10529         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
10530   Fixed so you can set breakpoints prior to run, run does not stop
10531   on entry now.  Add tbreak.  Other enhancements and fixes for use
10532   with ddd.
10533
10534 2003-05-12  Borut Razem <borut.razem AT siol.net>
10535
10536         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
10537
10538 2003-05-11  Borut Razem <borut.razem AT siol.net>
10539
10540         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
10541         the path of bin directory, so that PATH is the only env. variable, which has to be set
10542         in case of standard installation.
10543         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
10544         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
10545         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
10546
10547 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10548
10549         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
10550         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
10551         temp files are in the port dir; clean the gen/test directory when
10552         generating new test.c
10553         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
10554         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
10555         * support/regression/tests/zeropad.c: added
10556
10557 2003-05-09    <johan AT balder>
10558
10559         * src/SDCCglue.c: fixed bug #597940
10560
10561 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
10562
10563         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10564   cache sfr, optimize next,step, fix off by one sourceline,
10565   support ddd list function.
10566         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
10567
10568 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10569
10570         * support/regression/HTMLgen.py: added compare_s2f()
10571         * support/regression/Makefile: redo 1.27
10572         * support/regression/generate-cases.py: redo 1.5
10573
10574 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
10575
10576         * support/regression/tests/float.c: workaround 33 bit hex constant
10577         * support/regression/tests/simplefloat.c: fix division for host
10578
10579 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
10580
10581         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
10582         that tame's the PIC's over-aggressive optimizer.
10583
10584 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10585
10586          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
10587          support for MSVC.
10588
10589 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
10590
10591         Initial support for DS80C400. "Hello world" runs on TINIm400
10592         (with polled I/O).
10593
10594 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
10595
10596          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10597          * Some notes on ddd usage added in debugger/README
10598          Martin Helmling adding more features and fixes for ddd GUI debugger.
10599          Code added for nexti, stepi, up, down, and other adjustments.
10600
10601 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
10602
10603         * src/pic/pCodepeep.c non-wildcard asmops are now handled
10604         * src/pic/peeph.def Added two rules to optimize carry manipulation
10605         * src/pic/* removed debug printfs
10606
10607 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
10608
10609         * debugger/mcs51/cmd.c: added header newalloc.h
10610
10611 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
10612
10613         * as/Makefile: new EXEEXT
10614         * as/z80/Makefile: remove trailing slash of BUILDIR
10615         * as/z80/clean.mk: new EXEEXT
10616         * Makefile.common.in: add to CFLAGS (and others), don't replace it
10617         * support/cpp2/Makefile.in: new EXEEXT
10618         * src/pic/glue.c (pic14emitRegularMap): fixed warning
10619
10620 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
10621
10622         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
10623         EXEEXT was introduced to fix all related problems with targets
10624         "clean", "install" and "uninstall"; a couple of further flaws
10625         especially with "clean" have been fixed too
10626         * as/mcs51/Makefile.in
10627         * as/mcs51/clean.mk
10628         * as/z80/Makefile
10629         * Makefile
10630         * clean.mk
10631         * debugger/mcs51/Makefile.in
10632         * debugger/mcs51/clean.mk
10633         * link/z80/Makefile
10634         * link/z80/Makefile.in
10635         * link/z80/clean.mk
10636         * link/Makefile
10637         * packihx/Makefile.in
10638         * packihx/clean.mk
10639         * sim/ucsim/Makefile
10640         * sim/ucsim/clean.mk
10641         * sim/ucsim/avr.src/Makefile.in
10642         * sim/ucsim/avr.src/clean.mk
10643         * sim/ucsim/s51.src/Makefile.in
10644         * sim/ucsim/s51.src/clean.mk
10645         * sim/ucsim/xa.src/Makefile.in
10646         * sim/ucsim/xa.src/clean.mk
10647         * sim/ucsim/z80.src/Makefile.in
10648         * sim/ucsim/z80.src/clean.mk
10649         * sim/ucsim/main_in.mk
10650         * sim/ucsim/packages_in.mk
10651         * sim/ucsim/gui.src/Makefile.in
10652         * sim/ucsim/gui.src/serio.src/Makefile.in
10653         * sim/ucsim/gui.src/serio.src/clean.mk
10654         * src/Makefile.in
10655         * src/clean.mk
10656         * support/cpp2/Makefile.in
10657         * support/cpp2/clean.mk
10658         * support/makebin/Makefile
10659         * support/makebin/clean.mk
10660         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
10661         * doc/sdccman.lyx: --program-suffix no longer needed
10662
10663 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
10664
10665          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
10666          Martin Helmling added support for ddd GUI debugger.
10667          Code added to display assembly, set variables, and other commands
10668          to interface to ddd.
10669
10670 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
10671
10672         * as/Makefile: fix target clean
10673         * as/clean.mk: fix target clean
10674         * as/z80/clean.mk: fix target clean
10675
10676 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
10677
10678         * Makefile.common.in: added  AT EXEEXT AT
10679         * configure.in: removed all mingw32 stuff
10680         * configure: rebuilt from configure.in
10681         * doc/sdccman.lyx: updated section "installation"
10682         * support/scripts/sdcc_mingw32: adapted to configure
10683         * support/scripts/sdcc_cygwin_mingw32: added
10684
10685 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
10686
10687         * src/pic Added object file support for the PIC port
10688         * src/pic Applied patch from Craig Franklin (this started the object file support)
10689         * src/regression Updated the PIC regression tests for object files
10690
10691 2003-04-20  Borut Razem <borut.razem AT siol.net>
10692
10693         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
10694           lklex.c: In function `getfid':
10695           lklex.c:203: warning: array subscript has type `char'
10696         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
10697           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
10698         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
10699           stack handling macros
10700
10701 2003-04-19  Borut Razem <borut.razem AT siol.net>
10702
10703         * "handling space characters in file path" task:
10704         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
10705         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
10706         * support/Util/MySystem.h: make it self-sufficient
10707         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
10708           src/z80/main.c, sdcc/as/mcs51/lklex.c:
10709           handling space characters in file path
10710         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
10711           (it will be used by assemblers, which have their own includes, e.g. gpasm)
10712         * support/Util/MySystem.c: handling space characters in executable's path
10713
10714 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
10715
10716         * as/z80/Makefile: fix permanent rebuild of z80
10717         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
10718         * support/regression/tests/bitfields.c: added Johan's bitfields.c
10719
10720 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
10721
10722         * src/SDCCopt.c: add special case optimization to replace modulo by
10723           a power of two with a bitwise AND.
10724
10725 2003-04-18    <johan AT balder>
10726
10727         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
10728
10729 2003-04-17    <johan AT balder>
10730
10731         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
10732         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
10733
10734 2003-04-13  Borut Razem <borut.razem AT siol.net>
10735
10736         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
10737         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
10738           fixed mingw problem in adl_NORMALIZE_PATH
10739
10740 2003-04-12  Borut Razem <borut.razem AT siol.net>
10741
10742         * fixed "#pragma SAVE/RESTORE can not be nested":
10743         * src/SDCC.lex: reworked pragma handling functions
10744         * sdcc/src/SDCCglobl.h: reworked stack handling macros
10745         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
10746
10747 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10748
10749         * src/SDCCutil.c (pathEquivalent): defined but not used
10750         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
10751         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
10752         * configure: rebuilt from configure.in
10753         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10754         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10755         * device/include/Makefile.in: replace sdcc_datadir
10756         * device/lib/Makefile.in: replace sdcc_datadir
10757         * Makefile.common.in: add LDFLAGS from configure
10758         * packihx/Makefile.in: use LDFLAGS
10759         * src/Makefile.in: use LDFLAGS
10760         * support/cpp2/Makefile.in: add LDFLAGS from configure
10761         * support/makebin/Makefile: use LDFLAGS
10762         * .version: bumped version number to 2.3.5
10763
10764 2003-04-12  Borut Razem <borut.razem AT siol.net>
10765
10766         * completed "different paths" task:
10767         * src/SDCCmacro.c: fixed bug in handling quotes
10768         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
10769         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
10770
10771 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10772
10773         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
10774
10775 2003-04-11 kevin Vigor <kevin AT vigor.nu>
10776
10777         * ds390/gen.c ds390/peeph.def: fix bug 706781
10778
10779 2003-04-11  Borut Razem <borut.razem AT siol.net>
10780
10781         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
10782
10783 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
10784
10785         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
10786         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
10787          set - this bit used to not be set...).
10788         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
10789           bad code in PIC Port
10790         * src/regression/and2.c added to test bug 609268
10791         * src/regression/Makefile added and2.c to regression test
10792
10793
10794 2003-04-08    <johan AT CP255758-A>
10795
10796         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
10797         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
10798         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
10799
10800 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
10801
10802         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
10803         fix bug #487815
10804         * support/cpp2/Makefile.in: fix bug #487815
10805         * configure: rebuilt from configure.in
10806         * Makefile.common.in: docdir changed, new path suffixes
10807         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10808         * sdcc_vc_in.h: reflect changes from sdccconf.h
10809         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
10810         * src/SDCCutil.h: remove BINDIR hack
10811         * doc/sdccman.lyx: update new path hierarchy
10812
10813 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10814
10815         * src/SDCCpeeph.c: added okToRemoveSLOC test
10816
10817 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10818
10819         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
10820
10821 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10822
10823         * src/SDCCpeeph.c: added labelIsReturnOnly test
10824         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
10825
10826 2003-04-05    <johan AT balder>
10827
10828         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
10829         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
10830         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
10831         * src/SDCCast.c: fixed a warning
10832         * src/SDCCast.h: fixed a warning
10833         * src/SDCCicode.c (operandFromAst): fixed a warning
10834
10835 2003-04-04    <johan AT balder>
10836
10837         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
10838         * src/SDCCast.c (decorateType): fixed bug #715076
10839         * src/SDCC.y: fixed bug #702907
10840
10841 2003-04-03    <johan AT balder>
10842
10843         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
10844         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
10845         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
10846         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
10847         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
10848
10849 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
10850
10851         * _decdptr.c: fix return values
10852         * _gptrget.c: fix return values
10853         * _gptrgetc.c: fix return values
10854         * _gptrput.c: fix return values
10855         * _mulint.c: fix return values
10856         * as/z80/Makefile: fix 'make -j' problem
10857
10858 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
10859
10860         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
10861         * configure.in: big cleanup, updated to autoconf 2.5x
10862         * configure: rebuilt from configure.in
10863         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10864         * sdcc_vc_in.h: reflect changes from sdccconf.h
10865         * doc/Makefile: fixed a flaw in "make install"
10866
10867 2003-04-02    <johan AT balder>
10868
10869         * src/ds390/gen.c (genCmp): no comments
10870         * src/mcs51/gen.c (genCmp): no comments
10871         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
10872         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
10873
10874 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
10875
10876         * support/regression/generate-cases.py: place generated file in given sub directory
10877         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
10878         * support/regression/Makefile: improvements for 'make -j';
10879         side effect: it's simpler and faster now
10880
10881 2003-03-31  Borut Razem <borut.razem AT siol.net>
10882
10883         * src/z80/main.c: link-{port} and as-{port} defined without path
10884         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
10885
10886 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
10887
10888         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
10889
10890 2003-03-30  Borut Razem <borut.razem AT siol.net>
10891
10892         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
10893           changed type of list parameter to set
10894         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
10895         * src/port.h: changed type of do_assemble() parameter to set
10896         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
10897           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
10898           definition of "cppoutfilename" macro with NULL value in preProcess()
10899         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
10900         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
10901         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
10902           replaced with set *binPathSet
10903         * shash_add() deallocates the item, if allready exsists, before adding the new one
10904         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
10905
10906 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
10907
10908         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
10909           a nested for loop bug in the PIC port
10910         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
10911           for loops
10912
10913 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
10914
10915         * support/Util/dbuf.h: remove C++ stuff to make it portable
10916
10917 2003-03-28  Borut Razem <borut.razem AT siol.net>
10918
10919         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
10920           literal strings in stringLiteral()
10921         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
10922         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
10923           to the project
10924
10925 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
10926
10927         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
10928
10929 2003-03-26    <johan AT balder>
10930
10931         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
10932         * src/ds390/gen.c (saveRegisters): catched symbol abuse
10933         * src/SDCCast.c (decorateType): fixed " -v < 3"
10934
10935 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
10936
10937         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
10938         Added Lenny Story's debug infrastructure changes:
10939         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
10940         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
10941         * src/cdbFile.c: added
10942         * src/SDCCdebug.c: added
10943         * src/SDCCdebug.h: added
10944         * src/SDCCast.c (createFunction)
10945         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
10946         * src/SDCCmain.c (parseCmdLine, main)
10947         * src/SDCCmem.c (redoStackOffsets)
10948         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
10949         * src/SDCCsymt.h
10950         * src/common.h
10951         * src/avr/gen.c (genAVRCode)
10952         * src/ds390/gen.c (gen390Code)
10953         * src/mcs51/gen.c (gen51Code)
10954         * src/pic/gen.c (genpic14Code)
10955         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
10956         * src/xa51/gen.c (genXA51Code)
10957         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
10958
10959 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10960
10961         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
10962         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
10963
10964 2003-03-22    <johan AT balder>
10965
10966         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
10967
10968 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
10969
10970         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
10971         * doc/cdbfileformat.lyx: added, written by Lenny Story
10972         * doc/Makefile: added cdbfileformat.lyx
10973         * doc/clean.mk: added cdbfileformat.lyx
10974
10975 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
10976
10977         * src/mcs51/peeph.def: fix bug #705773
10978
10979 2003-03-20    <johan AT balder>
10980
10981         An sfr/sbit can have an "at #" AND an initializer
10982         * src/SDCCsymt.c (checkSClass):
10983         * src/SDCCmem.c (allocGlobal):
10984         * src/SDCCmem.c (allocLocal):
10985         * src/SDCCast.c (createBlock):
10986
10987 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
10988
10989         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
10990
10991 2003-03-16    <johan AT balder>
10992
10993         Undid the hackup of const and volatile, the problem is much bigger
10994         * src/SDCC.y:1.65
10995         * src/SDCCast.c:1.171
10996         * src/SDCCglue.c:1.138
10997         * src/SDCCicode.c:1.146
10998         * src/SDCCsymt.c:1.150
10999         * src/SDCCval.c:1.65
11000
11001 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
11002
11003         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
11004         * src/ds390/gen.c (genAddrOf): fixed bug #704087
11005
11006 2003-03-13    <johan AT balder>
11007
11008         Hackup const and volatile modifiers in type chains a bit:
11009         * src/SDCC.y:1.63
11010         * src/SDCCast.c:1.169
11011         * src/SDCCglue.c:1.136
11012         * src/SDCCicode.c:1.143
11013         * src/SDCCsymt.c1.146
11014         * src/SDCCsymt.h1.59
11015         * src/SDCCval.c:1.63
11016
11017 2003-03-12    <johan AT balder>
11018
11019         * src/SDCCBBlock.h: more LRH debugging junk
11020         * src/SDCCcflow.h: more LRH debugging junk
11021         * src/SDCCloop.c: more LRH debugging junk
11022         * src/SDCC.y (struct_declaration): fixed bug #697590
11023         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
11024         * src/ds390/gen.c (aopForRemat): fixed bug #700031
11025         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
11026
11027 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11028         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
11029         test function names must now match exactly).
11030         * src/SDCCcse.c: added special case in findCheaperOp to allow
11031         extending a short integer. Makes less awful code for bug 700121 test case.
11032
11033 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11034
11035         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
11036         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
11037
11038 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11039
11040         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
11041         actually called (operandsNotEqual() was called for all
11042         operandsNotEqualX tests).
11043
11044 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
11045
11046         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
11047         with shorter literals. Fixes bug 700121.
11048
11049 2003-03-11    <johan AT balder>
11050
11051         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
11052
11053 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
11054
11055         * src/SDCCloop.c (mergeRegions): an evil beast is dead
11056         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
11057
11058 2003-03-10  Borut Razem <borut.razem AT siol.net>
11059
11060         * src/SDCCmain.c: pipe preprocessor's output
11061         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
11062         * sdcc_vc_in.h: define pclose as _pclose for WIN32
11063         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
11064         which closes all pipes in pipeSet set
11065         * src/SDCCset.c: free deleted item in function deleteSetItem()
11066         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
11067         moved from z80 to src subproject
11068         * .version: increased version number to 2.3.4
11069
11070 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
11071
11072         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
11073         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
11074         * support/regression/ports/xa51/spec.mk: fix typo
11075
11076 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
11077
11078         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
11079
11080 2003-03-09  Borut Razem <borut.razem AT siol.net>
11081
11082         * src/SDCCmain.c: pipe preprocessor's output
11083         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
11084         * sdcc_vc_in.h: define pclose as _pclose for WIN32
11085         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
11086         which closes all pipes in pipeSet set
11087         * src/SDCCset.c: free deleted item in function deleteSetItem()
11088         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
11089         moved from z80 to src subproject
11090
11091 2003-03-09  Borut Razem <borut.razem AT siol.net>
11092
11093         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
11094         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
11095         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
11096         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
11097         * src/SDCCglobl.h: unification of WIN32 native definitions
11098
11099 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11100
11101         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
11102
11103 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
11104
11105         * src/configure.in:   check for endianess (even while cross-compiling)
11106         * src/configure:      check for endianess (even while cross-compiling)
11107         * src/configure_in.h: check for endianess (even while cross-compiling)
11108         * src/avr/gen.c:        remove old endianess stuff
11109         * src/mcs51/gen.c:      remove old endianess stuff
11110         * src/ds390/gen.c:      remove old endianess stuff
11111         * src/pic/gen.c:        remove old endianess stuff
11112         * src/pic/genarith.c:   remove old endianess stuff
11113         * src/pic/glue.c:       fix endianess check
11114         * src/pic16/gen.c:      remove old endianess stuff
11115         * src/pic16/genarith.c: remove old endianess stuff
11116         * src/pic16/glue.c:     fix endianess check
11117         * src/xa51/gen.c:       remove old endianess stuff
11118         * src/z80/gen.c:        fix endianess check
11119         * src/SDCCglue.c:       fix endianess check
11120         * src/ds390/peeph.def: fix bug 700036
11121
11122 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
11123
11124         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
11125         * src/configure: find appropriate data-types on host for SDCC's int and long
11126         * src/configure.in: find appropriate data-types on host for SDCC's int and long
11127         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
11128         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
11129
11130 2003-03-07    <johan AT balder>
11131
11132         Just a big NOOP:
11133                 some minor cleanups before the big shot
11134                 OP_DEFS and OP_USES now use Kevin's protection
11135                 new option --nolabelopt
11136
11137         * src/SDCCBBlock.c:
11138         * src/SDCCast.c,:
11139         * src/SDCCcflow.c:
11140         * src/SDCCcse.c:
11141         * src/SDCCicode.c:
11142         * src/SDCCicode.h:
11143         * src/SDCClabel.c:
11144         * src/SDCCloop.c:
11145         * src/SDCCmain.c:
11146         * src/ds390/ralloc.c:
11147         * src/mcs51/ralloc.c:
11148         * src/pic/ralloc.c:
11149         * src/xa51/ralloc.c:
11150         * src/z80/ralloc.c:
11151
11152 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
11153
11154         * src/pic/pcode.c (get_op): fix 64 bit warnings
11155         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
11156         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
11157         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
11158         * support/regression/tests/malloc.c: fix 64 bit warnings
11159
11160 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
11161
11162         * src/mcs51/gen.c (genMinus): fixed bug 696436
11163
11164 2003-03-02  Borut Razem <borut.razem AT siol.net>
11165
11166         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
11167
11168 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
11169
11170         * configure.in: test for mkstemp
11171         * sdccconf_in.h: add HAVE_MKSTEMP
11172
11173 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
11174
11175         * device/include/ctype.h: removed warning while using --stack-auto
11176         * device/include/malloc.h: removed warning while using --stack-auto
11177         * device/include/string.h: removed warning while using --stack-auto
11178
11179 2003-02-23  Borut Razem <borut.razem AT siol.net>
11180
11181         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
11182         because NDEBUG is defined (see man assert)
11183         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
11184
11185 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11186
11187         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
11188         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
11189
11190 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11191
11192         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
11193         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
11194
11195 2003-02-18    <johan AT balder>
11196
11197         * as/mcs51/asmain.c (asmbl): module can start with a digit
11198         * as/z80/asmain.c (asmbl): module can start with a digit
11199
11200 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
11201
11202         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
11203         * src/asm.c: fix pipe() for Mingw32
11204
11205 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
11206
11207         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
11208         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
11209         make -V work again; --c1mode reads now from stdin
11210         * doc/sdccman.lyx: added --c1mode
11211         * support/Util/SDCCerr.c: new messages for c1 mode
11212         * support/Util/SDCCerr.h: new messages for c1 mode
11213         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
11214
11215 2003-02-15    <johan AT balder>
11216
11217         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
11218
11219 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
11220
11221         * doc/sdccman.lyx: Environment variables, -o and other minor things
11222
11223 2003-02-14    <johan AT balder>
11224
11225         * src/xa51/main.c: before anyone really tries to use it :)
11226
11227         * Install doc's in share/sdcc/doc
11228         * removed some obsolete files
11229         * Do a proper make distclean and uninstall
11230         M Makefile.common.in
11231         R sdccbuild.sh
11232         M as/Makefile
11233         M device/include/Makefile.in
11234         M device/lib/Makefile.in
11235         M doc/sdccman.lyx
11236         M link/Makefile
11237         M sim/ucsim/doc/Makefile.in
11238         M src/clean.mk
11239         R src/avr/peeph.rul
11240         R src/xa51/peeph.rul
11241         M support/cpp2/Makefile.in
11242         M support/makebin/Makefile
11243
11244
11245 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
11246
11247         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
11248
11249 2003-02-10  Borut Razem <borut.razem AT siol.net>
11250
11251         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
11252         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
11253         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
11254         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
11255         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
11256         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
11257         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
11258         src/z80/Makefile.bcc: Borland Makefile cleanup
11259         * as/z80/Makefile.bcc: Added Borland Makefile
11260         * support/cpp2/borland.h: Removed
11261
11262 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
11263
11264         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
11265         * src/SDCC.lex: new pragma NOIV
11266         * src/SDCCglobl.h: new pragma NOIV
11267         * src/SDCCmem.c: new pragma NOIV
11268
11269 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11270
11271         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
11272
11273 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11274
11275         * src/SDCCmain.c: signal handling is switched off by --debug
11276         * doc/Makefile: small fix for install; use clean.mk again
11277         * doc/clean.mk: clean *.pdf and *.html too
11278
11279 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
11280
11281         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
11282         * device/lib/printfl.c: fix a ds390 bug by making it portable
11283         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
11284         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
11285         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
11286         * debugger/mcs51/cmd.c: converted multi-line string literals
11287         * sim/ucsim/globals.cc: converted multi-line string literals
11288         * src/SDCCmain.c: introduced signal handler to remove temp files
11289         * doc/Makefile: small tweaks, implement clean
11290         * doc: removed generated files
11291
11292 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11293
11294         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
11295         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
11296         Address Record is not correctly generated for DS390."
11297
11298 2003-02-02  Borut Razem <borut.razem AT siol.net>
11299
11300         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
11301         * as/mcs51/asm.h: fixed compilation with Borland C
11302         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
11303         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
11304         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
11305         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
11306         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
11307         src/z80/Makefile.bcc: delete $(LIB) only if exist
11308         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
11309
11310 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
11311
11312         * device/include/malloc.h: introduced NULL
11313         * device/include/string.h: introduced NULL
11314         * device/include/stdlib.h: introduced NULL
11315         * device/lib/_memcpy.c: removed NULL
11316         * device/lib/_strcat.c: removed NULL
11317         * device/lib/_strchr.c: removed NULL
11318         * device/lib/_strcmp.c: removed NULL
11319         * device/lib/_strcpy.c: removed NULL
11320         * device/lib/_strcspn.c: removed NULL
11321         * device/lib/_strlen.c: removed NULL
11322         * device/lib/_strncat.c: removed NULL
11323         * device/lib/_strncmp.c: removed NULL
11324         * device/lib/_strncpy.c: removed NULL
11325         * device/lib/_strpbrk.c: removed NULL
11326         * device/lib/_strrchr.c: removed NULL
11327         * device/lib/_strspn.c: removed NULL
11328         * device/lib/_strstr.c: removed NULL
11329         * device/lib/_strtok.c: removed NULL
11330         * device/lib/malloc.c: removed NULL, include own header
11331
11332 2003-02-02    <johan AT balder>
11333
11334         * 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
11335         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
11336         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
11337         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
11338         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
11339         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
11340
11341 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11342
11343         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
11344         area 'DATA'"
11345
11346 2003-02-01    <johan AT balder>
11347
11348         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
11349
11350 2003-01-31    <johan AT CP255758-A>
11351
11352         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
11353
11354 2003-01-30    <johan AT balder>
11355
11356         * src/SDCCBBlock.c: automatic bug detection
11357         * src/SDCCicode.c: automatic bug detection
11358
11359 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11360
11361         * src/SDCCglobl.h:   now --xram-size 0 works
11362         * src/SDCCmain.c:    now --xram-size 0 works
11363
11364 2003-01-29    <johan AT balder>
11365
11366         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
11367
11368 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11369
11370         * as/mcs51/aslink.h: Added options --xram-size and --code-size
11371         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
11372         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
11373         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
11374         * src/SDCCglobl.h:   Added options --xram-size and --code-size
11375         * src/SDCCmain.c:    Added options --xram-size and --code-size
11376
11377 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
11378
11379         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
11380         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
11381
11382 2003-01-27    <johan AT balder>
11383
11384         * src/SDCC.y: fixed bug #613764
11385
11386 2003-01-26    <johan AT balder>
11387
11388         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
11389         * src/SDCCsymt.h: fixed bug #673374
11390         * src/SDCCglue.c: fixed bug #661910
11391         * src/SDCCast.c: fixed bug #458099 and 673374
11392
11393 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
11394
11395         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
11396         * as/mcs51/strcmpi.h: added
11397         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
11398         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
11399         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
11400         * as/mcs51/assym.c: strcmpi -> as_strcmpi
11401         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
11402         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
11403         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
11404         * as/mcs51/Makefile.aslink: new module strcmpi
11405         * as/mcs51/Makefile.asx8051: new module strcmpi
11406         * as/mcs51/Makefil.bcc: new module strcmpi
11407         * as/mcs51/Makefile.in: new module strcmpi
11408         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
11409
11410 2003-01-26    <johan AT balder>
11411
11412         * src/SDCCglue.c: reverted back to 1.124
11413         * src/SDCCast.c: reverted back to 1.156
11414         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
11415
11416 2003-01-25    <johan AT balder>
11417
11418         * src/SDCCglue.c: A better fix for bug #661910
11419         * src/SDCCast.c: A better fix for bug #661910
11420         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
11421
11422 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11423
11424         * src/Makefile.in: remove spawn.o
11425         * src/SDCCmain.c: remove spawn.h
11426         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
11427         * src/spawn.c: removed
11428         * src/spawn.h: removed
11429         * support/regression/ports/ds390/spec.mk: link with -r
11430
11431 2003-01-24    <johan AT CP255758-A>
11432
11433         * src/ds390/gen.c (aopOp): fixed bug #667458
11434         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
11435         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
11436         (createIvalCharPtr): an ival doesn't always have a storage class anymore
11437
11438 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11439
11440         * src/mcs51/peeph.def: better assembler identation by Frieder
11441         * src/mcs51/gen.c: better assembler identation by Frieder
11442
11443 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
11444
11445         * as/z80/string.h: removed for gcc 3.2
11446         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
11447         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
11448
11449 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11450
11451         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
11452         * src/SDCCpeeph.c (replaceRule): fix bug #663503
11453         * support/regression/Makefile: separate temp files for ports
11454         * support/regression/generate-cases.py: separate temp files for ports
11455         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11456         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11457
11458 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11459
11460         * moved tinitalk to device/examples/ds390
11461
11462 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
11463
11464         * as/mcs51/lkmem.c: rflag is for DS390
11465         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
11466         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
11467                          (linkEdit): move mem- and map-files the same way as ihx-files
11468         * src/z80/main.c (_setDefaultOptions): removed --generic
11469         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
11470         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
11471         * src/pic/glue.c (picglue): --c1mode works again
11472         * src/pic16/glue.c (pic16glue): --c1mode works again
11473         * src/asm.c (printCLine): fix #660034
11474
11475 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
11476
11477         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
11478         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
11479         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
11480         * as/mcs51/lkmem (summary): better fix for sp problem
11481         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
11482         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
11483         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
11484                                               remove --stack-after-data
11485
11486 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
11487
11488         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
11489         * src/SDCCutil.c (join): ugly bug: missing '\0'
11490         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
11491
11492 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11493
11494         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
11495         * src/port.h: typo
11496         * src/pic/main.c (_asmCmd): gpasm supports -o
11497         * src/z80/main.c: more general macros
11498         * device/lib/Makefile.in: remove intermediate files
11499
11500 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11501
11502         * .version: Bumped version number to 2.3.3
11503         * src/SDCCBBlock.c: new option -o
11504         * src/SDCCglobl.h: new option -o
11505         * src/SDCCglue.c: new option -o
11506         * src/SDCCmain.c: new option -o
11507         * src/asm.c: new option -o
11508         * src/ds390/main.c: new option -o
11509         * src/pic/glue.c: new option -o
11510         * src/pic/pcode.c: new option -o
11511         * src/pic/ralloc.c: new option -o
11512         * src/pic16/glue.c: new option -o
11513         * src/pic16/pcode.c: new option -o
11514         * src/pic16/ralloc.c: new option -o
11515         * src/z80/main.c: new option -o
11516         * device/lib/Makefile.in: use -o
11517         * support/regression/ports/ds390/spec.mk: use -o
11518         * support/regression/ports/gbz80/spec.mk: use -o
11519         * support/regression/ports/mcs51/spec.mk: use -o
11520         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
11521         * support/regression/ports/z80/spec.mk: use -o
11522         * support/regression/ports/ucz80/spec.mk: use -o
11523         * support/regression/ports/xa51/spec.mk: use -o
11524         * support/regression/fwk/lib/timeout.c: fix usage string
11525
11526 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
11527         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
11528
11529 2003-01-07    <johan AT balder>
11530
11531         * src/SDCCast.c (decorateType): fixed bug #600035
11532
11533 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
11534         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
11535         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
11536         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
11537         * src/pic/pcode.c: outcommented unused variable to remove warnings
11538         * src/pic/ralloc.c: outcommented unused variable to remove warnings
11539
11540 2003-01-06    <karl AT turbobit.com>
11541         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
11542    regression tests.
11543
11544 2003-01-06    <johan AT balder>
11545
11546         * src/SDCCicode.c: fixed array add
11547
11548 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
11549         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
11550         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
11551
11552 2003-01-04    <johan AT balder>
11553
11554         * src/SDCCval.c (getNelements): fixed the initialized array of structures
11555
11556 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11557         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
11558
11559 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11560         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
11561         * support/regression/tests/bug-524697.c: fit mem usage into 8032
11562
11563 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11564         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
11565
11566 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
11567         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
11568
11569 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
11570         * src/mcs51/main.c: removed {bindir}{sep} from aslink
11571
11572 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11573
11574     * in /sdcc/as/mcs51/ changed these files in order to create an
11575     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
11576     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
11577     following files to include the previous two files: aslink.dsp,
11578     Makefile.aslink, Makefile.bcc, and Makefile.in.
11579
11580     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
11581     .adb instead of .cdb
11582
11583 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11584
11585         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
11586         value from option --iram-size.
11587
11588 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11589
11590         * /sdcc/as/mcs51/lklist.c: added boundary check before using
11591         dram[] array.
11592
11593 2002-09-18    <wiml AT hhhh.org>
11594
11595         * SDCClrange.h: exposed setFromRange() and setToRange()
11596         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
11597           packRegsForAccUse() (bug 542397)
11598         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
11599           multiple times and emitting the fetch operations more than once
11600           added aopGetUsesAcc() function to allow binary operators to
11601           fetch their operands in the correct order; made genMinus() emit
11602           compact code for X = LITERAL - Y
11603
11604 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11605         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
11606         sprintf() in line 1267.
11607
11608 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11609         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
11610         like ports.
11611
11612 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11613         Changes to aslink (All the changes are marked with 'JCF'):
11614
11615         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
11616         summary().
11617
11618         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
11619         area BSEG.  Also moves, if possible, the DATA area down into the internal
11620         ram so more space is available.
11621
11622         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
11623         sflag.
11624
11625         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
11626         not bytes.  Function summary() which creates a memory usage summary
11627         file with extension .mem.  Reports of overlaping stack and small stack
11628         size.  If the space for the stack is less than 16 bytes aslink trows a
11629         warning.
11630
11631         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
11632         the 8051.  Option 'y' for memory summary output file.
11633
11634         Changes to sdcc (All the changes are marked with 'JCF'):
11635
11636         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
11637
11638         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
11639         overlaying area for it (uses RegBankUsed[4]).
11640
11641         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
11642         bank zero as used by default.  By default aslink locates the stack
11643         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
11644         the creation of the .mem file.  Delegates the allocation of data area
11645         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
11646         the begining of the stack area to aslink.
11647
11648         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
11649         glue() in SDCCglue.c creates an area for it.
11650
11651 2002-09-03  Borut Razem <borut.razem AT siol.net>
11652         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
11653         sdcc/src/pic/glue.c:
11654         introduced atexit() handler for teporay files removal in case of
11655         errors, assertions, ...
11656
11657 2002-08-29  Borut Razem <borut.razem AT siol.net>
11658         * sdcc/support/cpp2/auto-host_vc_in.h:
11659         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
11660         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
11661         Maybe there is a similar problem with BORLANDC? It should be checked!
11662
11663         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
11664         corrected improper use of assert: the assignment to clr variable was done inside the assert.
11665         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
11666         was not executed, and the compiler (cl) launched a warning:
11667         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
11668
11669 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11670         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
11671
11672 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
11673         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
11674
11675         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11676           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
11677           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
11678           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11679           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
11680           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
11681           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
11682         - added Release configuration in VS projects
11683         - review of compiler an linker options
11684         - VC .exe files are generated in bin_vc directory, not to interfere
11685           with binaries generated from other projects (cygwin, mingw, bcc ...)
11686
11687         * sdcc/src/yacc.dsp: added
11688
11689         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
11690         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
11691         and insert the version number definitions from .version
11692
11693         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
11694
11695         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
11696         added - genarate auto-host.h using auto-host_vc_in.h as template
11697
11698         * sdcc/sdcc_vc.h,
11699         removed from CVS, generated automatically
11700
11701 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
11702         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
11703
11704 2002-08-11  Borut Razem <borut.razem AT siol.net>
11705         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
11706
11707 2002-08-10  Borut Razem <borut.razem AT siol.net>
11708         * src/SDCCmain.c (main):
11709         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
11710         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
11711         The consequence was that some temporary files were not removed.
11712
11713         * src/SDCCglue.c:
11714         unification of code in functions tempfilename() and tempfile():
11715         function tempnam() is defined in Visual Studio 6.0 and .NET
11716
11717         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
11718
11719         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11720           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
11721         - removed compiler command line option /WX: Treats all warnings as errors
11722         - update a list of source files, included into the project
11723
11724         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11725           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
11726         changed project type to Generic Project so that can be correcly converted to VS.NET project
11727
11728         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
11729
11730         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
11731
11732         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
11733
11734         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
11735         added return 0 statements after assert() to make compiler happy
11736
11737         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
11738         added newline in the def file to keep MSC compiler satisfied
11739
11740         * sdcc/src/z80/gen.c:
11741         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
11742           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
11743         - solved MSC error in function aopDump()
11744
11745         * sdcc_vc.h: define PREFIX as "\\sdcc"
11746
11747 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
11748         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
11749
11750 2002-06-22  Scott Dattalo <scott AT dattalo.com>
11751         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
11752         - Rewrote the register banking algorithm.
11753         - Added pCode live-range analysis to registers (for now, only non-used and
11754         singly-used registers optimized away)
11755
11756         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
11757
11758         * 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.
11759
11760 2002-05-10  Scott Dattalo <scott AT dattalo.com>
11761         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
11762
11763 2002-04-22  Michael Hope  <michaelh AT vroom>
11764
11765         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
11766
11767         * configure.in (DD_COPT): Added include support required for gbdk.
11768
11769         * .version: Bumped version number just to increase it.
11770
11771         * src/SDCCmain.c: Added -nostdinc to the default options.
11772
11773 2002-04-15  Michael Hope  <michaelh AT vroom>
11774
11775         * device/lib/z80/printf.c (sprintf): Added.
11776
11777         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
11778
11779         * src/z80/peeph.def: Added transpose redundent load rule.
11780
11781         * src/z80/main.c: Added force callee saves for jaune.
11782
11783         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
11784
11785         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
11786
11787 2002-03-28  Johan Knol  <johan AT balder>
11788
11789         * src/SDCCval.c: fixed bug #532436
11790
11791 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11792         * /src/port.h:
11793         Added "char *Processor" field to the port structure.
11794
11795         * /src/SDCCmain.c:
11796         Added -p option. Allows port dependent processor to be specified.
11797
11798         * all ports:
11799         Initialized the new field char *Processor field to NULL in all ports
11800
11801         * /src/pic/*:
11802         Compiler generated registers for interrupt context saving
11803         were not getting allocated.
11804
11805 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
11806
11807         * /src/SDCCast.c:
11808         Fixed left shift. Will promote the left side of a left shift
11809         if a) left shifting more than size of operand or b) when assigned
11810         to something size > size of left side
11811
11812 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11813         * src/pic/*
11814         tons of changes. Register allocation has been
11815         rewritten. Added customization for the various PICs. Flow
11816         analysis is restructured. ...
11817
11818         * src/pic/device.h:
11819         Added
11820
11821         * src/pic/device.c:
11822         Added. device.c is a PIC port hack to accomodate variations
11823         in PIC devices.
11824
11825 2002-03-13  Michael Hope  <michaelh AT vroom>
11826
11827         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
11828
11829 2002-03-04  johanknol  <johanknol AT manik>
11830
11831         * /src/SDCCval.c: fixed
11832
11833         const unsigned char arr[][2] = { { 0, 1 } };
11834         t18.c:1: error: Initializer element is not constant
11835
11836 2002-03-04  bela  <bela AT manik>
11837
11838         * /device/include/mcs51reg.h:
11839         ds89c420 register definition update
11840
11841 2002-03-03    <johan AT FRIJA>
11842
11843         * support/Util/SDCCerr.c: did something, but don't no why anymore
11844
11845         * support/regression/tests/bug-524691.c: made it a little less shy
11846
11847         * src/SDCCast.c (decorateType): fixed bug #524697
11848
11849         * src/SDCCast.c: made some lineno improvements
11850
11851         * src/SDCCval.c (getNelements): changed warning to error
11852
11853         * src/SDCCglue.c (printIvalArray): changed warning to error
11854
11855         * src/SDCCicode.c: fixed a warning for mingw
11856
11857         * src/SDCCast.c (decorateType): fixed the << promotion for ops
11858
11859         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
11860
11861 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
11862
11863         * src/ds390/peeph.def:
11864         Added some more peephole rules
11865
11866         * src/ds390/gen.c: Various fixes & enhancements
11867
11868         * src/SDCClrange.c, src/SDCClrange.h:
11869         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
11870
11871         * src/ds390/ralloc.c:
11872         various fixes & enhancements (ds390) specific
11873
11874         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
11875         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
11876         from rallocs.
11877
11878         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
11879
11880 2002-03-02    <johan AT FRIJA>
11881
11882         * src/SDCCast.c (decorateType): fixed bug #524708
11883
11884         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
11885
11886         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
11887
11888 2002-03-01  Michael Hope  <michaelh AT vroom>
11889
11890         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
11891
11892         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
11893
11894 2002-03-01    <johan AT FRIJA>
11895
11896         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
11897
11898         * src/SDCCast.c (decorateType): fixed bug #524209
11899
11900         * src/SDCCval.c (valNot): fixed bug #524195
11901
11902 2002-02-26    <johan AT balder>
11903
11904         * src/xa51/gen.c: fixed a warning
11905
11906         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
11907
11908         * src/SDCCast.c (decorateType): fixed bug #522534
11909
11910 2002-02-23    <johan AT balder>
11911
11912         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
11913
11914 2002-02-22    <johan AT balder>
11915
11916         * src/SDCCast.c: fixed bug #514865
11917
11918         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
11919
11920 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
11921
11922         * sdcc/src/SDCCloop.c:
11923         Previous fix was not good. basic blocks that have "break" or "return" are
11924         not really partof a loop , but live ranges used in these blocks should
11925         be live thru the entire loop, so set partOfLoop but don't add them to
11926         loop region
11927
11928 2002-02-21    <johan AT FRIJA>
11929
11930         * src/SDCCcse.c: fixed bug #514308
11931
11932 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
11933
11934         * src/SDCCloop.c:
11935         Fixed BUG #519583. If a conditional block ended in a return/break
11936         statement inside a loop, it was not being considered part of the loop.
11937
11938         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
11939
11940 2002-02-10  Karl Bongers <karl AT turbobit.com>
11941
11942         * debugger/*:
11943         Fixed up SDCDB debugger somewhat.  Updated debugger/README
11944         with lots of comments and notes.
11945
11946         * device/examples/test2.c:
11947         Fix bug, "red" variable not being initialized(compiler complained).
11948
11949         * device/examples/Makefile, examples/test3.c:
11950         Add Makefile in device/examples folder, compiles test3.c
11951         for use as a multiple module SDCDB test case.
11952
11953         * sim/ucsim/cmd.src/cmdset.cc:
11954         Took out debug printfs in ucsim "next" command.
11955
11956         * sim/ucsim/xa.src:
11957         Karl and Johan start ucsim XA support.  Most dissassembly working,
11958         about 75% emulation done(plenty of work remaining).
11959
11960         * sim/ucsim/z80.src:
11961         Add Z80 support to ucsim, add test-ucz80 regression test,
11962         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
11963         Notice z80 compiler fails on examples/test3.c/crc code.
11964
11965 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
11966
11967         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
11968         Added support for --parms-in-bank1
11969
11970         * src/ds390/peeph.def:
11971         added a few more peephole optimzations
11972
11973         * src/ds390/main.c:
11974         1) added __builtin_inp & __builtin_outp used to read in data of given length
11975            from a memory mapped port
11976         2) added __builtin_memcmp
11977         3) added __builtin_swapw swap bytes of a short
11978
11979         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
11980         1) handle multiple send & receives from register bank1
11981         2) ralloc can now allocate DPTR1 to some liveRanges
11982
11983         * src/SDCCsymt.c, src/SDCCsymt.h:
11984         changes to handle multiple sends & receives
11985
11986         * src/SDCCptropt.h:
11987         added some pointer arithmetic optimization
11988
11989         * src/SDCCptropt.c:
11990         added some pointer arithmetic optimizations but not stable yet so not
11991         called from anywhere (will get this working shortly)
11992
11993         * src/SDCCopt.c: fixed for multiple sends & receives
11994
11995         * src/SDCCmain.c:
11996         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
11997         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
11998            set preprocessor defines (depending on options)
11999
12000         * src/SDCCicode.c, src/SDCCicode.h:
12001         changes made to handle multiple sends & receives
12002
12003         * src/SDCCglobl.h:
12004         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
12005
12006         * src/SDCCcse.c, src/SDCCcse.h:
12007         added function findbackward def (to be used in upcoming optimization)
12008
12009         * src/SDCCcflow.c, src/SDCCcflow.h:
12010         added function returnAtEnd - to determine if a basic block terminates with
12011         a RETURN iCode
12012
12013         * src/SDCCast.c, src/SDCCast.h:
12014         added option parms-in-bank1
12015
12016         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
12017         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
12018         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
12019         adjusted for --parms-in-bank1 option
12020
12021         * device/include/string.h:
12022         donot redefine "reentrant" keyword
12023
12024         * device/include/ds80c390.h: Added some more SFRs
12025
12026 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
12027
12028         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
12029
12030 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
12031
12032         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
12033
12034 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
12035
12036         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
12037
12038 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
12039
12040         * Added --xram-movc option
12041
12042 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
12043
12044         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
12045
12046 2002-01-11  Johan Knol
12047
12048         * Added math lib of Jesus Calvino-Fraga
12049
12050 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
12051
12052         * src/SDCCmain.c (processFile): fix processing of ../../src.c
12053         * support/regression/Makefile: new target test-mcs51-stack-auto
12054         * support/regression/ports/mcs51-stack-auto/spec.mk: added
12055
12056 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
12057
12058         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
12059
12060 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
12061
12062         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
12063
12064 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
12065
12066         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
12067
12068         * src/SDCCglue.h: add definition for printIvalChar()
12069
12070 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
12071
12072         * src/SDCCast.c: fix #498138 by Johan
12073
12074         * src/SDCCglue.c: fix #498138 by Johan
12075
12076 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
12077
12078         * support/regression/Makefile: fix clean
12079
12080         * support/regression/ports/ds390/support.c: fix transmission of last character
12081
12082 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
12083
12084         * /sdcc/src/ds390/gen.c:
12085         a) improved computing address of stack variable
12086         b) took out some #if 0 code
12087         c) improved parmBytes adjustment
12088         d) improved genPlusIncr & genMinusIncr
12089         e) genCmp could generate bad code (when left assigned to DPTR)
12090         f) Fixed bug in hasInc
12091
12092         * /sdcc/src/ds390/ralloc.c:
12093         a) packRegsForSupport could mess up live information (Fixed)
12094         b) packRegsDPTRuse could be incorrect for left & right shift
12095
12096         * /sdcc/src/mcs51/ralloc.c:
12097         packRegsForSupport could mess up the live information (Fixed)
12098
12099         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
12100
12101         * /sdcc/src/SDCCast.c:
12102         can reverse a loop even if function call is present as long
12103         as the loop control variable is local & is not passed as parameter
12104
12105 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12106
12107         * /sdcc/ChangeLog: *** empty log message ***
12108
12109         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
12110         More builtin function additions for TININative
12111
12112         * /sdcc/src/ds390/ralloc.c:
12113         Had broken the regression testsuite
12114
12115         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
12116
12117         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
12118         Added funcattr hasStackParms will be set for reentrant functions when there
12119         are paramteres on the stack, this helps in minimizing frame pointer generation
12120         typeFromStr can handle function pointers now
12121
12122         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
12123         *** empty log message ***
12124
12125 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12126
12127         * /src/ds390/gen.c, /src/ds390/main.c:
12128         More builtin function additions for TININative
12129
12130         * /src/ds390/ralloc.c:
12131         Had broken the regression testsuite
12132
12133         * /src/SDCCast.c: Fixed a bug in dumptree
12134
12135         * /src/SDCCsymt.c, /src/SDCCsymt.h:
12136         Added funcattr hasStackParms will be set for reentrant functions when there
12137         are paramteres on the stack, this helps in minimizing frame pointer generation
12138         typeFromStr can handle function pointers now
12139
12140         * /doc/builtins.txt, /doc/TININative.txt:
12141         *** empty log message ***
12142
12143
12144 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
12145
12146         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
12147         ALPHA version for -mTININative
12148
12149         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
12150         updated to reflect changes in the port structure
12151
12152         * /src/port.h:
12153         added function do_assemble (similar to do_link) if non-null this function
12154         will be called to do assembly (-mTININative) requires a multi command
12155         assembly
12156         added function genAssemblerEnd will be called to generate assembler Epilogue
12157
12158         * /src/SDCCsymt.c:
12159         added _JavaNative to debug info printing
12160
12161         * /src/SDCCmain.c: added option --tini-libid
12162         added port->do_assemble function (-mTININative) has a multi command assemble
12163
12164         * /src/SDCCglue.c: Disabled "constExpr" check
12165         added port->genAssemblerEnd function
12166
12167         * /src/SDCCglobl.h: Added option --tini-libid value
12168
12169         * /src/SDCCast.h:
12170         tookout optimizeCompare from the header (has no external references)
12171
12172         * /src/SDCCast.c: made one more function "static"
12173
12174 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
12175
12176         * src/z80/mappings.i: Added z80asm support.
12177
12178         * src/z80/main.c: Added z80asm support on --asm=z80asm
12179
12180         * src/z80/gen.c: Fixed asm portability issues.
12181
12182         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
12183
12184         * src/SDCCglue.c (printExterns): Added global/extern split.
12185
12186 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
12187
12188         * support/regression/Makefile: added test for mcs51 model large
12189
12190         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
12191
12192         * support/regression/ports/gbz80/spec.mk: added -mgbz80
12193
12194 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
12195
12196         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
12197
12198 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
12199
12200         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
12201
12202         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
12203
12204 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
12205
12206         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
12207
12208         * support/regression/tests/simplefloat.c: Port to mcs51.
12209
12210 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
12211         * support/regression/tests/bug-485362.c: Added.
12212
12213         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
12214
12215         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
12216
12217         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
12218
12219         * src/z80/gen.c (aopDump): Added a dump function.
12220
12221 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
12222         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
12223
12224         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
12225
12226         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
12227
12228         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
12229
12230         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
12231
12232         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
12233
12234         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
12235
12236         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
12237
12238         * support/regression/ports/ds390/support.c: Use tinibios.
12239
12240         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
12241
12242 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
12243
12244         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
12245         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
12246
12247         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
12248
12249         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
12250
12251 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
12252
12253         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
12254
12255         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
12256         (packRegsForIYUse): Created and optimised.
12257
12258 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12259
12260         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
12261 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
12262
12263         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
12264
12265         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
12266
12267         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
12268
12269 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12270
12271         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
12272
12273         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
12274
12275 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12276
12277         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
12278
12279         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
12280
12281         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
12282
12283 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12284
12285         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
12286         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
12287         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
12288
12289         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
12290
12291         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
12292         (genNotFloat): Added.
12293         (genUminusFloat): Added.
12294
12295         * device/lib/z80/Makefile: Added floating pt stubs.
12296
12297         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
12298
12299         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
12300
12301         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
12302
12303 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12304
12305         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
12306
12307         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
12308
12309         * sdcc/support/regression/Makefile: Add port ds390.
12310
12311         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
12312
12313         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
12314
12315         * sdcc/support/regression/ports/ds390/spec.mk: Added.
12316
12317         * sdcc/support/regression/ports/ds390/support.c: Added.
12318
12319         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
12320
12321         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
12322
12323         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
12324
12325 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12326
12327         * device/include/malloc.h: Added z80 and gbz80 support.
12328
12329         * device/lib/gbz80/heap.s: Added.
12330
12331         * device/lib/z80/heap.s: Added.
12332
12333         * device/lib/malloc.c: Added z80 and gbz80 support.
12334
12335         * support/regression/tests/malloc.c (testMalloc): Added.
12336
12337         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
12338
12339         * support/regression/tests/bug-478094.c: Added.
12340
12341         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
12342
12343 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
12344
12345         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
12346
12347         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
12348
12349         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
12350
12351         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
12352
12353         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
12354
12355 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12356
12357         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
12358
12359 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
12360
12361         * support/regression/tests/bug-477927.c: Added.
12362
12363         * src/z80/peeph.def: Added minor rules.
12364
12365         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
12366
12367         * src/z80/peeph.def: Added jump optimisation modification.
12368
12369 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
12370
12371         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
12372
12373 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
12374
12375         * support/regression/tests/funptrs.c: Added.
12376
12377 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
12378
12379         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
12380
12381 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
12382
12383         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
12384
12385         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
12386
12387         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
12388         (movLeft2ResultLong): Created.
12389
12390         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
12391         (joinPushes): Added.  Joins two char pushes into a word push.
12392
12393 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
12394
12395         * support/cpp2/Makefile.in (install): Added creation of dest dir.
12396
12397         * support/makebin/Makefile (install): Added creation of dest dir.
12398
12399 2001-10-24 Karl Bongers <karl AT turbobit.com>
12400
12401         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
12402
12403 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
12404
12405         * src/z80/ralloc.c: Turned off faulty pack for one use.
12406
12407         * src/z80/peeph-gbz80.def: Removed redundent restart options.
12408
12409         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
12410
12411 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
12412
12413         * support/regression/Makefile: Improved clean
12414
12415         * support/regression/ports/gbz80/spec.mk: Added clean
12416
12417         * support/regression/ports/host/spec.mk: Added clean
12418
12419         * support/regression/ports/z80/spec.mk: Added clean
12420
12421         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
12422
12423         * support/regression/ports/mcs51/timeout.c: little improvements
12424
12425 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
12426
12427         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
12428
12429         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
12430
12431         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
12432
12433 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
12434
12435         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
12436
12437         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
12438
12439 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
12440         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
12441
12442         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
12443
12444         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
12445
12446         * src/mcs51/main.c (_linkCmd): Added bin path to command.
12447
12448         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
12449
12450         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
12451
12452         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
12453
12454         * support/regression/tests/longor.c: Added.
12455
12456 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
12457
12458         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
12459
12460         * as/mcs51/aslink.h: define PATH_MAX
12461
12462         * as/mcs51/asm.h: define PATH_MAX
12463
12464         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
12465
12466         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
12467
12468         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
12469
12470         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
12471
12472         * src/SDCCglobl.h: define PATH_MAX
12473
12474         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
12475
12476         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
12477
12478 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
12479
12480         * src/z80/gen.c (gencjneshort): Fixed
12481
12482         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
12483
12484 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
12485
12486         * support/regression/tests/bug-469671.c: Added.
12487
12488         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
12489
12490 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
12491
12492         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
12493
12494         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
12495
12496 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
12497
12498         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
12499
12500         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
12501
12502         * src/device/lib/_mullong.c : removed hint: nooverlay bug
12503
12504         * src/device/lib/_divuint.c : removed hint: nooverlay bug
12505
12506         * src/device/lib/_divulong.c: removed hint: nooverlay bug
12507
12508         * src/device/lib/_moduint.c : removed hint: nooverlay bug
12509
12510         * src/device/lib/_modulong.c: removed hint: nooverlay bug
12511
12512 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
12513
12514         * 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.
12515
12516         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
12517
12518         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
12519
12520 2001-10-07    <johan AT FRIJA>
12521
12522         * device/lib/gets.c (gets): fixed the return value.
12523
12524 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
12525         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
12526
12527         * 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.
12528
12529         * 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.
12530
12531         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
12532
12533         * src/pic/gen.c: Removed Safe_strdup.
12534
12535         * configure.in: Added option to enable libgc support.
12536
12537         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
12538         (bitVectUnion): Optimised.
12539         (bitVectIntersect): Optimised.
12540         (bitVectBitsInCommon): Optimised.
12541         (bitVectCplAnd): Optimised.
12542
12543         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
12544
12545 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12546
12547         * src/SDCCmain.c: distinguish between assembler debug and plain options
12548
12549         * src/avr/main.c:   remove standard assembler options
12550
12551         * src/ds390/main.c: remove standard assembler options
12552
12553         * src/mcs51/main.c: remove standard assembler options
12554
12555         * src/port.h: removed "PENDING" comment
12556
12557 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12558
12559         * src/device/lib/_mulint.c  : new, with assember functions
12560
12561         * src/device/lib/_mullong.c : new, with assember functions
12562
12563         * src/device/lib/_divuint.c : with assember functions
12564
12565         * src/device/lib/_divsint.c : with assember functions
12566
12567         * src/device/lib/_divulong.c: with assember functions
12568
12569         * src/device/lib/_divslong.c: with assember functions
12570
12571         * src/device/lib/_moduint.c : with assember functions
12572
12573         * src/device/lib/_modsint.c : with assember functions
12574
12575         * src/device/lib/_modulong.c: with assember functions
12576
12577         * src/device/lib/_modslong.c: with assember functions
12578
12579         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
12580
12581         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
12582
12583         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
12584                                       replaced _mululong.c and _mulslong.c by _mullong.c
12585
12586 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12587
12588         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
12589
12590 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12591
12592         * src/SDCCglue.c: test, if win32api is available for MINGW
12593
12594 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12595
12596         * src/SDCCsymt.c: no more _modifier in printTypeChain()
12597         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
12598         * support/regression/ports/gbz80/spec.mk: removed GENERIC
12599         * support/regression/ports/host/spec.mk: removed GENERIC
12600         * support/regression/ports/mcs51/spec.mk: removed GENERIC
12601         * support/regression/ports/z80/spec.mk: removed GENERIC
12602
12603 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
12604
12605         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
12606
12607         * support/regression/tests/bug-467035.c: Created.
12608
12609 2001-10-01    <johan AT FRIJA>
12610
12611         * src/SDCC.y: fixed bug #466586 part 1
12612
12613 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
12614
12615         * SDCCicode.c: z80 has no generic pointers
12616         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
12617
12618 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
12619
12620         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
12621
12622 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
12623
12624         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
12625
12626         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
12627
12628 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
12629
12630         * configure.in: Fixed up so that ucsim is only configured once.
12631
12632         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
12633
12634         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
12635         (getPathDifference): As above.
12636
12637         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
12638
12639         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
12640
12641 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
12642         * .version: Updated to 2.3.1
12643
12644         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
12645         Added copyright header.
12646
12647         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
12648         (assemble): Added support for macro based assembler commands.
12649         (linkEdit): Added support for macro based linker commands.
12650         (preProcess): Changed the pre-processor to use macros.
12651         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
12652         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
12653
12654         * device/lib/z80/crt0.s: Added module name for debugging.
12655
12656 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
12657
12658         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12659
12660         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
12661
12662         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
12663
12664         * src/Makefile.in: Added SDCCmacro and SDCCutil
12665
12666 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
12667
12668         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12669
12670 2001-09-16    <johan AT FRIJA>
12671
12672         * 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.
12673
12674 2001-09-15    <johan AT FRIJA>
12675
12676         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
12677         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
12678
12679 2001-09-11    <johan AT FRIJA>
12680
12681         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
12682
12683 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
12684
12685         * support/regression/tests/bug-460444.c: Added test case.
12686
12687         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
12688         (genCast): Added justification for all of the asserts.
12689
12690 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
12691
12692         * support/regression/support.c: _xdata replaced by xdata
12693
12694         * support/regression/spec.mk: removed _generic
12695
12696 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
12697
12698         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
12699
12700         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
12701         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
12702
12703         * src/z80/peeph.def: Added a rule to optimise shift then compare.
12704
12705         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
12706
12707         * support/regression/tests/bug-460010.c: Added test case.
12708
12709         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
12710
12711 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
12712
12713         * support/regression/Makefile: inter-port-clean adjusted for mcs51
12714
12715         * support/regression/testfwk.c: removed workaround for bug #436344
12716
12717         * support/regression/tests/bp.c: use less memory with mcs51
12718
12719         * support/regression/tests/bug-441448.c: use less memory
12720
12721         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
12722
12723         * support/regression/collate-results.py: typo
12724
12725 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
12726
12727         * support/regression/tests/fetchoverlap.c: Added new test case.
12728
12729         * support/regression/tests/bp.c: Added new test case.
12730
12731         * support/regression/tests/bug-448984.c: Added new test case.
12732
12733         * support/regression/tests/pow2shifts.c: Added new test case.
12734
12735         * src/z80/gen.c: Turned off the noise it normally generates for the release.
12736         (genlshTwo): Fixed right shift for count > 8.
12737
12738         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
12739
12740 2001-09-08    <johan AT FRIJA>
12741
12742         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
12743
12744 2001-09-07    <johan AT FRIJA>
12745
12746         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
12747
12748         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
12749
12750 2001-09-06    <johan AT FRIJA>
12751
12752         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
12753         * bernhard noted me at this: "() equals to (void)" (1.38)
12754
12755 2001-09-05    <johan AT FRIJA>
12756
12757         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
12758
12759 2001-09-04    <johan AT FRIJA>
12760
12761         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
12762
12763
12764 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
12765
12766         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
12767
12768 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
12769
12770         * link/z80/aslink.h: Fixed path for PATH_MAX
12771
12772 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
12773
12774         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
12775
12776         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
12777
12778         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
12779
12780         * 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.
12781
12782 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
12783
12784         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
12785         (genCmp): Fixed up genCmp for the GB with longs.
12786
12787         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
12788
12789         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
12790
12791         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
12792
12793         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
12794
12795 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
12796
12797         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
12798
12799 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
12800
12801         * 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.
12802
12803         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
12804
12805 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
12806
12807         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
12808
12809         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
12810
12811 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
12812
12813   * sim/ucsim/configure:    little improvement of Cygwin-detection
12814   * sim/ucsim/configure.in: little improvement of Cygwin-detection
12815   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
12816   * support/regression/tests/bug-221100.c: small changes for mcs51
12817   * support/regression/tests/bug-221168.c: small changes for mcs51
12818   * support/regression/tests/bug-227710.c: small changes for mcs51
12819   * support/regression/tests/staticinit.c: small changes for mcs51
12820   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
12821   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12822   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12823
12824 $Revision$