* device/lib/gbz80/crt0.s,
[fw/sdcc] / ChangeLog
1 2006-10-20 Maarten Brock <sourceforge.brock AT dse.nl>
2
3         * device/lib/gbz80/crt0.s,
4         * device/lib/gbz80/crt0_rle.s,
5         * device/lib/gbz80/div.s,
6         * device/lib/gbz80/fstubs.s,
7         * device/lib/gbz80/heap.s,
8         * device/lib/gbz80/mul.s,
9         * device/lib/gbz80/putchar.s,
10         * device/lib/gbz80/stubs.s,
11         * device/lib/z80/crt0.s,
12         * device/lib/z80/crt0_rle.s,
13         * device/lib/z80/div.s,
14         * device/lib/z80/fstubs.s,
15         * device/lib/z80/heap.s,
16         * device/lib/z80/mul.s,
17         * device/lib/z80/putchar.s,
18         * device/lib/z80/stubs.s: reverted, I was mistaken
19
20 2006-10-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
21
22         * src/mcs51/peeph.def: peephole 238.x added check for notvolatile
23         * support/regression/ports/mcs51/support.c: removed race
24         condition on TI in _putchar allowing to use serial port mode 0
25
26 2006-10-20 Borut Razem <borut.razem AT siol.net>
27
28         * sebugger/mcs51/sdcdb.c: replaced isblank() with isspace()
29
30 2006-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
31
32         * device/lib/gbz80/crt0.s,
33         * device/lib/gbz80/crt0_rle.s,
34         * device/lib/gbz80/div.s,
35         * device/lib/gbz80/fstubs.s,
36         * device/lib/gbz80/heap.s,
37         * device/lib/gbz80/mul.s,
38         * device/lib/gbz80/putchar.s,
39         * device/lib/gbz80/stubs.s,
40         * device/lib/z80/crt0.s,
41         * device/lib/z80/crt0_rle.s,
42         * device/lib/z80/div.s,
43         * device/lib/z80/fstubs.s,
44         * device/lib/z80/heap.s,
45         * device/lib/z80/mul.s,
46         * device/lib/z80/putchar.s,
47         * device/lib/z80/stubs.s: removed all leading underscores from area names
48
49 2006-10-17 Maarten Brock <sourceforge.brock AT dse.nl>
50
51         * support/regression/ports/mcs51/support.c: use highest baudrate so the
52           regression tests are not waiting in the simulator for simulated
53           transmission of debug output
54
55 2006-10-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
56
57         * device/lib/printf_large.c: slightly smaller
58         * doc/sdccman.lyx: do not use spaces within html links
59
60 2006-10-16 Borut Razem <borut.razem AT siol.net>
61
62         * configure.in, configure, sdccconf_in.h, src/SDCCglobal,
63           debugger/mcs51/Makefile.in, debugger/mcs51/sdcdb.[ch],
64           debugger/mcs51/aclocal.m4, debugger/mcs51/acinclide.m4,
65           debugger/mcs51/config.h.in, debugger/mcs51/configure.in,
66           debugger/mcs51/configure:
67           [ 1185668 ] add gnu readline support to sdcdb - enabled
68
69 2006-10-16 Raphael Neider <rneider AT web.de>
70
71         * src/pic/pcode.c (BankSelect): another fix on (partial) BANKSELs,
72           fixes #1577882, removes close to all banking optimizations
73
74 2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
75
76         * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
77           variables in code memory
78         * support/regression/tests/absolute.c: added test for this
79
80 2006-10-15 Raphael Neider <rneider AT web.de>
81
82         * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
83           devices,
84           (BankSelect): emit BANKSEL before touching linker-placed regs,
85           fixes #1570934
86
87 2006-10-10 Raphael Neider <rneider AT web.de>
88
89         * src/SDCCmain.c (optionsTable): accept --stack-size for PICs,
90         * src/pic/device.c (pic14_getSharebankSize,pic14_getSharebankAddress),
91         * src/pic/main.c (_pic14_parseOptions),
92         * src/pic/main.h: mostly reverted to previous state, now use results
93             from SDCCmain.c's argument parsing
94
95 2006-10-10 Borut Razem <borut.razem AT siol.net>
96
97         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
98           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
99           [ 1185668 ] add gnu readline support to sdcdb -
100           prepared for READLINE, not enabled yet,
101           thanks to <tal.bav AT gmail.com>
102
103 2006-10-10 Raphael Neider <rneider AT web.de>
104
105         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
106         * src/pic16/devices.inc,
107         * device/include/pic16 (pic18f[24]620.h),
108         * device/include/pic18fregs.h,
109         * device/lib/pic16/pics.all,
110         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
111             18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
112             Gary Plumbridge and Anton Strobl
113
114 2006-10-10 Raphael Neider <rneider AT web.de>
115
116         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
117           --stack-siz=NUM options to configure the argument passing stack
118         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
119         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
120           (pic14_getSharebankSize): obey --stack-siz=NUM,
121           (pic14_getSharebankAddress): obey --stack-loc=NUM
122
123 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
124
125         * doc/sdccman.lyx: added to the manual
126         * doc/figures/ddd_example.png: added (neither pdflatex nor
127         most browsers seem to like the .eps file)
128
129 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
130
131         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
132         to /tmp and /var/tmp acc. LSB
133         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
134         RESULT_TYPE_IFX
135         * support/regression/tests/onebyte.c: added test
136
137 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
138
139         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
140
141 2006-10-05 Borut Razem <borut.razem AT siol.net>
142
143         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
144           thanks to dfulab:
145           - sdcc.dsw: changed property eol-style to CRLF
146           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
147
148 2006-10-04 Raphael Neider <rneider AT web.de>
149
150         * device/include/pic/{pic16f84.h,pic16f84a.h},
151         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
152           from patch #1522504, thanks to Robas Teodor
153
154 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
155
156         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
157           fixes bug 1566015
158
159 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
160
161         * src/pic16/glue.c (pic16emitMaps),
162         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
163         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
164         * device/lib/pic16/libc/string/memcpypgm2ram.c,
165         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
166           Philipp Krause
167         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
168         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
169
170 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
171
172         * support/librarian/sdcclib.c: Added option -l.
173         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
174           usage totals.
175         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
176           using Windows command prompt.
177
178 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
179
180         * device/lib/libsdcc.lib: added module rand
181         * src/ds390/ralloc.c (rematStr),
182         * src/hc08/ralloc.c (rematStr),
183         * src/mcs51/ralloc.c (rematStr),
184         * src/z80/ralloc.c (rematStr): made output more consistent
185         * src/mcs51/gen.c: cosmetic changes
186
187 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
188
189         * src/port.h: added mem.cabs_name to PORT
190         * src/ds390/main.c,
191         * src/hc08/main.c,
192         * src/mcs51/main.c,
193         * src/pic16/main.c,
194         * src/pic/main.c,
195         * src/xa51/main.c,
196         * src/z80/main.c: added cabs_name initializers
197         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
198           constants
199           (emitMaps): emit absolutes in code memory into cabs_name
200         * src/SDCCmem.c,
201         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
202         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
203         * support/regression/fwk/include/testfwk.h: added define for at
204         * support/regression/tests/absolute.c: added, new
205
206 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
207
208         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
209           optimizations, see also patch 887161 by Stas Sergeev
210         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
211           to be necessary anymore,
212           (102, 103, 104, 127): renamed all occurances of bp to _bp
213
214 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
215
216         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
217           thanks Weston T. Schmidt for patch 1555221
218         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
219         * src/SDCCicode.c(geniCodeMultiply): small optimization
220
221 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
222
223         * device/include/stdlib.h: added rand prototypes
224         * device/lib/rand.c: new, added
225         * device/lib/Makefile.in: added rand.c
226         * src/z80/peeph.def,
227         * src/z80/peeph-gbz80.def,
228         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
229
230 2006-09-20 Raphael Neider <rneider AT web.de>
231
232         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
233
234 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
235
236         * as/link/aslink.h: cosmetic changes
237         * as/link/mcs51/Makefile.in,
238         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
239
240 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
241
242         * as/link/aslink.h,
243         * as/link/mcs51/aslink.h,
244         * as/link/z80/aslink.h: merged and moved to as/link/
245         * as/link/lkstore.c,
246         * as/link/mcs51/lkstore.c: moved to as/link/
247         * as/link/clean.mk: remove *.o
248         * as/link/mcs51/alloc.h: deleted
249         * as/link/mcs51/lkarea.c: added lnksect prototype
250         * as/link/mcs51/lkdata.c,
251         * as/link/mcs51/lklex.c,
252         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
253         * as/link/mcs51/lkmem.c,
254         * as/link/mcs51/lknoice.c: removed include strcmpi.h
255         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
256         * as/link/mcs51/aslink.dsp,
257         * as/link/mcs51/Makefile.aslink,
258         * as/link/mcs51/Makefile.bcc,
259         * as/link/mcs51/Makefile.in: updated for moved files
260         * as/link/z80/lkarea.c,
261         * as/link/z80/lkhead.c,
262         * as/link/z80/lklex.c,
263         * as/link/z80/lklibr.c,
264         * as/link/z80/lklist.c,
265         * as/link/z80/lkmain.c,
266         * as/link/z80/lkrloc.c,
267         * as/link/z80/lksym.c: synced with mcs51
268         * as/link/z80/lkdata.c,
269         * as/link/z80/lkeval.c,
270         * as/link/z80/lkihx.c,
271         * as/link/z80/lks19.c: cosmetic changes
272         * as/link/z80/Makefile.in,
273         * as/link/z80/linkgbz80.dsp,
274         * as/link/z80/linkz80.dsp: updated for moved files
275
276 2006-09-16 Borut Razem <borut.razem AT siol.net>
277
278         * debugger/mcs51/sdcdb.c: partially fixed
279           [ 1203664 ] sdcdb fails to open files w. two "." periods
280         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
281           debugger/mcs51/symtab.h: fixed indenting
282         * configure.in, configure: up to date with latest Maarten's changes
283
284 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
285
286         as/link/mcs51
287         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
288         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
289         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
290         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
291         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
292         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
293         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
294         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
295         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
296         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
297         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
298         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
299         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
300         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
301         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
302         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
303         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
304         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
305         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
306         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
307         as/link/mcs51/alloc.h,
308         as/link/mcs51/clean.mk,
309         as/link/mcs51/conf.mk,
310         as/link/mcs51/Makefile.bcc,
311         as/link/mcs51/Makefile.in,
312         as/link/mcs51/readme.390,
313         as/link/mcs51/strcmpi.c,
314         as/link/mcs51/strcmpi.h,
315         as/mcs51/clean.mk,
316         as/mcs51/Makefile.bcc,
317         as/mcs51/Makefile.in,
318         configure,
319         Makefile.in,
320         sdcc.dsw: moved mcs51 linker to as/link/mcs51
321
322 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
323
324         * as/link,
325         * as/link/Makefile.in,
326         * as/link/z80/linkgbz80.dsp,
327         * as/link/z80/linkz80.dsp,
328         * configure,
329         * link,
330         * link/clean.mk,
331         * link/Makefile.in,
332         * link/README,
333         * link/z80,
334         * link/z80/aslink.h,
335         * link/z80/clean.mk,
336         * link/z80/conf.mk,
337         * link/z80/linkgbz80.dsp,
338         * link/z80/linkz80.dsp,
339         * link/z80/lkarea.c,
340         * link/z80/lkdata.c,
341         * link/z80/lkeval.c,
342         * link/z80/lkgb.c,
343         * link/z80/lkgg.c,
344         * link/z80/lkhead.c,
345         * link/z80/lkihx.c,
346         * link/z80/lklex.c,
347         * link/z80/lklibr.c,
348         * link/z80/lklist.c,
349         * link/z80/lkmain.c,
350         * link/z80/lkrloc.c,
351         * link/z80/lks19.c,
352         * link/z80/lksym.c,
353         * link/z80/Makefile.in,
354         * Makefile.in,
355         * sdcc.dsw: moved link/ to as/link/
356
357 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
358
359         * as/mcs51/i51mch.c (machine): fixed warning
360
361 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
362
363         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
364
365 2006-09-09 Borut Razem <borut.razem AT siol.net>
366
367         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
368           sdcdb WIN32 native port
369         * src/clean.mk: fixed
370
371 2006-09-08 Borut Razem <borut.razem AT siol.net>
372
373         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
374
375 2006-09-08 Raphael Neider <rneider AT web.de>
376
377         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
378         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
379             to gplink to disable processor mismatch warning and to allow
380             the use of devices with only aliased (shared) memory banks,
381           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
382
383 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
384
385         * doc/sdccman.lyx: Some re-formating plus example on using
386           #pragma preproc_asm +/-
387
388 2006-09-07 Borut Razem <borut.razem AT siol.net>
389
390         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
391           section
392
393 2006-09-06 Borut Razem <borut.razem AT siol.net>
394
395         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
396           line at sdcc.nsi:153
397         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
398
399 2006-09-05 Borut Razem <borut.razem AT siol.net>
400
401         * configure.in, configure: support for winsock2
402         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
403           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
404           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
405           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
406           debugger/mcs51/symtab.h: sdcdb WIN32 native port
407
408 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
409
410         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
411           and OP_DEFS
412         * support/regression/tests/bug1551947.c: new, added
413         * src/SDCCsymt.h: strings are char* not byte*
414
415 2006-09-05 Raphael Neider <rneider AT web.de>
416
417         * device/lib/pic16/libdev/pic18f4550.c,
418           device/include/pic16/pic18f4550.h: added PORTD/TRISD
419             declarations/definitions from patch #1520949
420
421 2006-09-05 Raphael Neider <rneider AT web.de>
422
423         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
424           byte-aligned bitfields, fixes #1539278
425
426 2006-09-05 Raphael Neider <rneider AT web.de>
427
428         * src/pic/gen.c (genReceive): skip unreferenced arguments,
429           fixes #1544120
430
431 2006-09-04 Borut Razem <borut.razem AT siol.net>
432
433         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
434         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
435           -mno-cygwin is a part of the compiler name
436         * support/scripts/sdcc_mingw32: don't disable ucsim
437
438 2006-09-03 Borut Razem <borut.razem AT siol.net>
439
440         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
441         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
442
443 2006-09-03 Raphael Neider <rneider AT web.de>
444
445         * src/pic/ralloc.c,
446         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
447           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
448           fixes #1550049
449
450 2006-09-01 Borut Razem <borut.razem AT siol.net>
451
452         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
453           to make ppc-osx happy
454
455 2006-08-31 Borut Razem <borut.razem AT siol.net>
456
457         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
458         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
459         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
460         * support/regression/ports/ds390/spec.mk,
461           support/regression/ports/mcs51/spec.mk,
462           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
463           To run regression tests in mingw environment:
464           make DEV_NULL=NUL CC=gcc
465
466 2006-08-30 Borut Razem <borut.razem AT siol.net>
467
468         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
469           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
470           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
471           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
472           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
473           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
474           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
475           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
476           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
477           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
478           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
479           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
480           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
481           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
482           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
483           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
484           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
485           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
486           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
487           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
488           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
489           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
490           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
491           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
492           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
493           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
494           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
495           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
496           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
497           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
498           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
499           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
500           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
501           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
502           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
503           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
504           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
505           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
506           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
507           ucsim WIN32 native port
508
509 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
510
511         * doc/sdccman.lyx: added note on dynamic memory heap initialization
512
513 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
514
515         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
516         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
517
518 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
519
520         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
521         * support/regression/tests/bug1546986.c: new, added
522         * as/mcs51/.cvsignore,
523         * debugger/mcs51/.cvsignore,
524         * src/.cvsignore: deleted
525
526 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
527
528         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
529           definitions)
530
531 2006-08-20 Borut Razem <borut.razem AT siol.net>
532
533         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
534           removed cl_listen_console::match(), cl_console::match(),
535           restructured cl_commander::proc_input()
536
537 2006-08-16 Borut Razem <borut.razem AT siol.net>
538
539         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
540           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
541           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
542
543 2006-08-14 Borut Razem <borut.razem AT siol.net>
544
545         * support/regression/Makefile.in,
546           support/regression/ports/pic14/gpsim.cmd,
547           support/regression/ports/pic14/spec.mk,
548           support/regression/ports/pic14/support.c:
549           added pic14 regression test
550
551 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
552
553         * as/doc/asxhtm.html: documented changed ABS behaviour
554         * as/doc/README: fixed some typos
555
556 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
557
558         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
559           not defined on host
560
561 2006-08-12 Borut Razem <borut.razem AT siol.net>
562
563         * support/regression/fwk/include/testfwk.h,
564           support/regression/fwk/lib/testfwk.c,
565           support/regression/generate-cases.py,
566           support/regression/Makefile.in:
567           regression test framework does not depend on function pointers and
568           variable arguments
569
570 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
571
572         * device/include/stddef.h: c temporary hack to fix bug 1518273
573
574 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
575
576         * device/include/mcs51/cc2510fx.h: added
577         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
578           to projects.
579
580 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
581
582         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
583         * as/z80/Makefile.in: added strcmpi.c
584         * as/z80/z80adr.c: added upper case registers and lower case conditionals
585         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
586
587 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
588
589         * device/lib/gbz80/asm_strings.s,
590         * device/lib/gbz80/crt0_rle.s,
591         * device/lib/gbz80/div.s,
592         * device/lib/gbz80/mul.s,
593         * device/lib/gbz80/shift.s,
594         * device/lib/z80/asm_strings.s,
595         * device/lib/z80/crt0_rle.s,
596         * device/lib/z80/div.s,
597         * device/lib/z80/mul.s,
598         * device/lib/z80/shift.s: changed to all lower case menmonics except the
599           flags which are all upper case
600
601 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
602
603         * as/z80/asm.h: made CASE_SENSITIVE 1
604         * link/z80/aslink.h: made CASE_SENSITIVE 1
605         * src/z80/gen.c (throughout): made all conditionals upper case
606         * support/regression/tests/bug1503067.c: new
607
608 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
609
610         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
611           (shiftIntoPair): added case 2 for PAIR_IY,
612           (setupToPreserveCarry): replaced parameters with iCode and check if
613            PAIR_DE is in use to fix bug 1399290,
614           (genPlus, genMinus): updated call to setupToPreserveCarry
615         * support/regression/tests/bug1399290.c: new
616
617 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
618
619         * device/lib/Makefile.in (Z80SOURCES): enabled float support
620         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
621         * src/ds390/gen.c (shiftRLong),
622         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
623         * src/mcs51/gen.c (sameReg): changed to sameByte,
624           (xch_a_aopGet): new,
625           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
626            shiftRLong): fixed bug 1533966
627         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
628           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
629         * support/regression/Makefile.in: disabled z80, enabled ucz80
630         * support/regression/tests/float_trans.c: enabled test for z80 and host
631         * support/regression/tests/shifts2.c: new, for testing bug 1533966
632
633 2006-08-01 Borut Razem <borut.razem AT siol.net>
634
635         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
636           comparison is always false due to limited range of data type
637           on PPC64 machine (openpower-linux1) where "char = unsigned char"
638
639 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
640
641         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
642         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
643         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
644         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
645
646 2006-07-31 Borut Razem <borut.razem AT siol.net>
647
648         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
649           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
650           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
651           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
652           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
653           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
654           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
655           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
656           enable ucsim mingw compilation. Serial port is disabled,
657           since it uses termios.h API, which is not available on native
658           WIN32
659
660 2006-07-31 Borut Razem <borut.razem AT siol.net>
661
662         * Small Device C Compiler 2.6.0 released
663         * support/scripts/sdcc.nsi: added FULL_DOC option
664         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
665
666 2006-07-28 Borut Razem <borut.razem AT siol.net>
667
668         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
669         * doc/INSTALL.txt: updated
670
671 2006-07-27 Borut Razem <borut.razem AT siol.net>
672
673         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
674           device/lib/pic/libdev/Makefile.in: fixed bug
675           [ 1438354 ] pic libsdcc: distclean doesn't work
676         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
677           device/lib/pic16/libio/Makefile.in: fixed bug
678           [ 1438344 ] pic16 lib: clean doesn't work properly
679         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
680
681 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
682
683         * device/lib/pic/libsdcc/fsdiv.c,
684         * device/lib/pic/libsdcc/fsmul.c,
685         * device/lib/pic16/libsdcc/float/fsdiv.c,
686         * device/lib/pic16/libsdcc/float/fsmul.c,
687         * device/lib/_fsdiv.c,
688         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
689         * support/regression/tests/bug1520966.c: added
690         * doc/knownbugs.html: removed [ 1520966 ] from the list
691
692 2006-07-25 Borut Razem <borut.razem AT siol.net>
693
694         * configure.in, configure, sdccconf_in.h: fixed bug
695           [ 1519095 ] regression test onebyte.c fails on ppc64 host
696         * doc/knownbugs.html: removed [ 1519095 ] from the list
697
698 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
699
700         * doc/knownbugs.html: added, contains list of known bugs at release
701         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
702
703 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
704
705         * device/include/mcs51/compiler.h: added SFRX for xdata based special
706           function registers and corrected defaults with additional warning
707         * device/lib/malloc.c: cosmetic changes
708         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
709         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
710           (fillGaps): and used it
711
712 2006-07-20 Raphael Neider <rneider AT web.de>
713
714         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
715           output unless SDCCPICDEBUG is set
716         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
717           output if SILENT is set
718
719 2006-07-11 Borut Razem <borut.razem AT siol.net>
720
721         * doc/README.txt: updated
722
723 2006-07-10 Borut Razem <borut.razem AT siol.net>
724
725         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
726           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
727           in WIN32 installation
728         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
729           release candidate 1
730
731 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
732
733         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
734         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
735
736 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
737
738         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
739
740 2006-07-06 Borut Razem <borut.razem AT siol.net>
741
742         * support/regression/tests/bitfields.c:
743           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
744         * support/regression/tests/constantRange.c:
745           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
746
747 2006-07-04 Borut Razem <borut.razem AT siol.net>
748
749         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
750           src/port.mk,
751           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
752           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
753           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
754           reverted changes from 2006-07-03
755         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
756         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
757           added CPPFLAGS, used by the host port
758
759 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
760
761         * support/regression/valdiag/tests/switch.c,
762         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
763         * support/regression/tests/libmullong.c: fixed for host
764         * support/regression/ports/host/spec.mk: disable all warnings for host,
765         SDCC runs with --less-pedantic too
766
767 2006-07-03 Borut Razem <borut.razem AT siol.net>
768
769         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
770           defined CPPFLAGS
771         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
772         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
773           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
774           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
775           include ../port.mk
776         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
777           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
778           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
779           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
780
781 2006-07-02 Raphael Neider <rneider AT web.de>
782
783         * src/pic16/devices.inc,
784         * device/include/pic16/pic18fregs.h,
785         * device/include/pic16/pic18f4550.h,
786         * device/lib/pic16/pics.all,
787         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
788
789 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
790
791         * as/hc08/lkaomf51.c (OutputName),
792         * as/mcs51/lkaomf51.c (OutputName),
793         * as/z80/asmain.c (asmbl),
794         * src/ds390/main.c (asmLineNodeFromLineNode),
795         * src/hc08/ralloc.c (hc08_assignRegisters),
796         * src/mcs51/main.c (asmLineNodeFromLineNode),
797         * src/xa51/ralloc.c (checkRegMask),
798         * src/xa51/gen.c (emitcode),
799         * src/z80/gen.c (_emit2),
800         * src/SDCCast.c (searchLitOp),
801         * src/SDCCglobl.h,
802         * support/packihx/packihx.c,
803         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
804         * src/ds390/gen.c (aopPutUsesAcc),
805         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
806         * support/regression/tests/libmullong.c (mullong_wrapper),
807         * src/SDCCsymt.c (powof2),
808         * src/SDCCast.c,
809         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
810         * src/SDCCsymt.h: added TYPE_TARGET_*
811         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
812         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
813         SDCCast because 1) header problems 2) this is the right place
814         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
815         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
816         prototype
817
818 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
819
820         * src/SDCCicode.h: removed buggy semicolon in unused macro
821         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
822         search for previous definiton of auto symbols too,
823         (findPrevUse): fixed logic of emitWarnings
824
825 2006-06-26 Raphael Neider <rneider AT web.de>
826
827         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
828           PCLATH and PCLATU on interrupts, potentially fixes #1505141
829
830 2006-06-25 Raphael Neider <rneider AT web.de>
831
832         * device/lib/pic/libm: NEW, added math library functions
833         * device/lib/pic/libsdcc: NEW; added float support functions
834         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
835         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
836           NEW, added math related headers
837         * device/include/asm/pic/features.h: NEW
838         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
839           (popGet): allow larger offsets for AOP_PCODE,
840           (genDataPointerSet): handle literals explicitly, more debug output,
841           (genAssign): fixed for float using aopLiteral ;-)
842         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
843           GOTO initialisation routine
844         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
845           flag on registers, fixes #1469043 (local variables do not work)
846         * src/pic/main.c (_pic14_do_link),
847         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
848           available
849
850 2006-06-25 Borut Razem <borut.razem AT siol.net>
851
852         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
853           characters printed (not including the trailing '\0' used to end
854           output to strings). Problem detected in regression test bug-927659.c.
855           NOTE: printf() family functions should return int instead
856           unsigned int!
857         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
858           specifier are printed as themselves
859         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
860           support flags, width and precision specifiers
861
862 2006-06-24 Borut Razem <borut.razem AT siol.net>
863
864         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
865           to the list of sdcc tagrets not supporting bit type
866         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
867           testfor pic16 due to bug:
868           [ 1511794 ] pic16: regression test bug-895992.c fails
869
870 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
871
872         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
873         * src/SDCCglue.c (initPointer), fixed bug 1496419
874         * support/regression/tests/bug1496419.c: new, added
875
876 2006-06-22 Borut Razem <borut.razem AT siol.net>
877
878         * support/regression/ports/pic16/support.c: use gpsim usart module from
879           libgpsim_modules library
880
881 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
882
883         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
884         IP0H to IPH0.
885
886 2006-06-19 Raphael Neider <rneider AT web.de>
887
888         * src/pic/glue.h,src/pic16/glue.h: added prototypes
889         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
890           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
891           (pic14printExterns,pic14printPublics,pic16printPublics,
892           pic16_printExterns): use new functions to emit symbols
893           (picglue,pic16glue): emit publics before emitting externs
894         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
895           locally defined functions to avoid bug #1443651
896         * support/regression/tests/bug-716242.c: removed pic16 workaround
897         * support/regression/ports/pic16/spec.mk: ignore errors during build
898
899 2006-06-19 Raphael Neider <rneider AT web.de>
900
901         * src/pic/glue.h: added pic14aopLiteral prototype
902         * src/pic/glue.c (pic14aopLiteral): return unsigned int
903         * src/pic/gen.c: removed stdint.h dependency
904           (aopGet): use Safe_strdup()
905           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
906           (genDataPointerSet): use pic14aopLiteral()
907         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
908           for pic16; thanks to Bernhard and Maarten
909
910 2006-06-18 Borut Razem <borut.razem AT siol.net>
911
912         * support/regression/tests/structflexarray.c: flexible array members
913           not supported by gcc < 3
914         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
915           GUI tool by default
916         * src/pic/gen.c: don't include [p]strdin.h on solaris
917         * support/Util/pstdint.h: addad svn attributes
918         * support/regression/tests/constantRange.c,
919           support/regression/tests/rotate.c: include inttypes.h instead
920           stdint.h on solaris, addad svn attributes
921
922 2006-06-18 Raphael Neider <rneider AT web.de>
923
924         * src/SDCCsymt.c (initCSupport): change return type of divschar to
925           int for PIC16
926         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
927           (pic16_genMinusBits): simplified sign-extension
928           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
929             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
930             adjusted to correctly handle mixed-signed operands, disabled
931             now unused multiplciation routines
932         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
933           (assignResultValue): added argument denoting the size of the result
934             as returned by the function (fixes upcasts in assigning from
935             function calls: char foo(); int i = foo();)
936           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
937             function result to assignResultValue
938           (genMult): disabled inlined multiplication code
939           (genDiv): augmented to also handle the modulus operator, fixed to
940             handle mixed-signed operands correctly
941           (genMod): simply call genDiv, disabled unused code
942           (genAssign): fixed missing (sign-)extension on result
943         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
944             valid char operands, allow signed operands for native code, added
945             division and modulo operator handling
946         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
947
948         As a consequence, onebyte.c (if split into two files) and muldiv.c
949         pass regression tests.
950
951 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
952
953         * doc/Makefile.in: two runs of makeindex seem needed to get
954         correct page references in the index of sdccman.pdf
955         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
956
957 2006-06-17 Borut Razem <borut.razem AT siol.net>
958
959         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
960
961 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
962
963         * doc/sdccman.lyx: updated, added (porting source code, debugging),
964         mentioned ec2drv and paulmon
965
966 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
967
968         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
969           consecutive abs areas
970           (find_empty_space, allocate_space): added map to handle codemap or
971            xdatamap,
972           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
973            absolute idata and xdata
974         * as/mcs51/lkmem.c (summary2): updated legend
975
976 2006-06-16 Raphael Neider <rneider AT web.de>
977
978         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
979
980 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
981
982         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
983           1208515
984         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
985
986 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
987
988         * src/port.h (struct PORT): added field gp_tags, to hold the tag
989         value of generic pointers,
990         * src/avr/main.c,
991           src/ds390/main.c,
992           src/hc08/main.c,
993           src/izt/i186.c,
994           src/izt/tlcs900h.c,
995           src/mcs51/main.c,
996           src/pic/main.c,
997           src/pic16/main.c,
998           src/xa51/main.c,
999           src/z80/main.c: PORT structure, added elements for gp_tags field,
1000         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
1001         fields in the PORT structure of each port,
1002         * src/SDCCast.c (decorateType): allow processing of generic pointers
1003         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
1004         S_FIXED symbols
1005
1006 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
1007
1008         * link/z80/lkgb.c,
1009         * link/z80/lkgg.c,
1010         * src/pic16/gen.c,
1011         * src/pic16/main.c,
1012         * src/pic16/pcode.c,
1013         * src/pic/main.c,
1014         * src/pic/pcoderegs.c,
1015         * src/SDCCicode.c,
1016         * src/SDCCmain.c,
1017         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
1018           bug 1504689 on minGW
1019
1020 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1021
1022         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
1023
1024 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
1025
1026         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
1027
1028 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
1029
1030         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
1031           for optimization
1032
1033 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
1034
1035         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
1036         to a char variable. Fixed bug #1504211
1037         * device/include/pic16/adc.h,
1038         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
1039         and fixed bug #1364390
1040
1041 2006-06-10 Borut Razem <borut.razem AT siol.net>
1042
1043         * CVSROOT: removed the CVS left-over
1044
1045 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1046
1047         * as/hc08/asmain.c (asexit),
1048         * as/hc08/lkmain.c (lkexit),
1049         * as/mcs51/asmain.c (asexit),
1050         * as/mcs51/lkmain.c (lkexit),
1051         * src/SDCCglue.c (DEFSETFUNC),
1052         * src/SDCCmain.c (linkEdit, assemble),
1053         * support/librarian/sdcclib.c (AddRel),
1054           replaced unlink() by standard C remove()
1055         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
1056         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
1057           gatherImplicitVariables): new, added to fix bug 608752,
1058           (createFunction): added gatherImplicitVariables()
1059         * src/SDCCast.h: added createRMW prototype
1060         * src/SDCCsymt.h (struct symbol): added infertype
1061         * support/regression/tests/bug608752.c: new, added
1062
1063 2006-06-10 Raphael Neider <rneider AT web.de>
1064
1065         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
1066           multibyte dummy reads (fixes #1503234)
1067
1068 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
1069
1070         * device/include/mcs51/compiler.h: new, added header file to enable
1071           creating common sfr definition header files for different compilers
1072
1073 2006-06-05 Raphael Neider <rneider AT web.de>
1074
1075         * src/pic16/{pcode.h,genarith.c}:
1076           introduced pCodeOp combining any two pCodeOps (previously only
1077           two register operands could be combined), removed pcop2 from
1078           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
1079         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
1080         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
1081           rewritten to use new PO_TWO_OPS
1082         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
1083         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
1084           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
1085           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
1086           (pic16_get_op): embraced return arg to allow #define return(x),
1087             added new case for combined opcodes
1088           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
1089           (pic16_pCode2str,pic16_getRegFrompCodeOp,
1090            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
1091
1092 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
1093
1094         * src/SDCCval.c (checkConstantRange): added
1095         * src/SDCCval.h: added checkConstantRange
1096         * support/Util/SDCCerr.c,
1097         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
1098         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
1099         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
1100         * src/SDCCast.c (decorateType): added checkConstantRange,
1101         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
1102         can be emitted with the correct always true/false warning,
1103         added optimization for double '!';
1104         result of decorateType() must be assigned back to the tree, because
1105         decorateType() can change the tree
1106         * src/SDCCicode.c (geniCodeLogic),
1107         (geniCodeAssign): replaced new checkConstantRange, added warnings,
1108         (checkConstantRange): removed, it was only a fragment which never
1109         emitted a warning
1110         * src/SDCCsymt.c (computeType): fixed promotion for
1111         "-1 < (unsigned bit) b"
1112         * src/pic/ralloc.c (packRegsForAssign),
1113         * src/pic16/ralloc.c (packRegsForAssign),
1114         * src/hc08/ralloc.c (packRegsForAssign),
1115         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
1116         from mcs51
1117         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
1118         * support/regression/tests/constantRange.c: added
1119         * support/valdiag/tests/constantRange.c: added
1120         * support/valdiag/valdiag.py: added -DPORT_HOST=1
1121
1122 2006-06-02 Borut Razem <borut.razem AT siol.net>
1123
1124         * support/regression/ports/pic16/support.c: increase stack size
1125           to 255 bytes
1126         * support/regression/Makefile.in: sort tests by name so that the
1127           resutlts can be compared on different machines / platforms
1128
1129 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1130
1131         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
1132         * src/ds390/gen.c (emitLabel): new, added,
1133           (genDjnz): fixed stack overflow bug,
1134           (throughout): cosmetic changes to sync with mcs51/gen.c,
1135           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
1136         * src/mcs51/gen.c (genEndFunction): small optimization,
1137           (throughout): cosmetic changes to sync with ds390/gen.c
1138
1139 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1140
1141         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
1142           (_print_format): fixed printing pointers
1143         * src/mcs51/gen.c (emitLabel, movb): new, added,
1144           (genAssign): small optimization,
1145           (genDjnz): fixed stack overflow bug,
1146           (throughout): replaced sprintf with SNPRINTF,
1147           replaced mcs51_regWithIdx with REG_WITH_INDEX,
1148           replaced emitcode("mov", "b,...") with MOVB(...),
1149           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
1150           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1151         * src/mcs51/peeph.def: added rules 140 and 264
1152         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
1153           so they may get optimized into registers
1154
1155 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
1156
1157         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
1158           immediately when encountered,
1159           (printUsage): always use stderr even on windows
1160
1161 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
1162
1163         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
1164         (processParms): fixed bug #1247551
1165         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
1166         parseCmdLine, main): print '--version' to stdout,
1167         print 'help' to stdout if --help is given,
1168         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
1169         arguments are given; fixed --help
1170
1171 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
1172
1173         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
1174         * support/regression/tests/bug-1493710.c: added
1175
1176 2006-05-27 Borut Razem <borut.razem AT siol.net>
1177
1178         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
1179           static instead auto
1180         * support/regression/ports/pic16/support.c: increase stack size
1181           from default 64 bytes to 128 bytes
1182         * support/regression/tests/staticinit.c,
1183           support/regression/tests/float.c: regression tests fully enabled
1184           for pic16 port by putting the initialized data arrays into the code
1185           section
1186         * support/regression/ports/pic16/spec.mk: don't link default libraries.
1187           This was changed by mistake in the previous version.
1188
1189 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
1190
1191         * src/pic16/gen.c (genFunction, genEndFunction): some
1192         beautifications, fixed bug with falsely restoring FSR2 in large
1193         stack model, thanks to Beau E. Cox for reporting the bug
1194
1195 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1196
1197         * debugger/mcs51/break.c,
1198         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
1199           use %p to print pointers, made address variables unsigned
1200         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
1201         * debugger/mcs51/symtab.c (parseSymbol): must return something
1202         * src/mcs51/gen.c (aopForSym): small optimization,
1203            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
1204           (freeAsmop): added missing break,
1205           (aopPut): removed parameter bvolatile, determine it inside the function,
1206           (saveRegisters, unsaveRegisters): small optimization,
1207           (genIpush): removed pointless check,
1208           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
1209           replaced sprintf with SNPRINTF,
1210           replaced strcpy with strncpyz,
1211           updated aopPut calls,
1212           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1213         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
1214
1215 2006-05-24 Borut Razem <borut.razem AT siol.net>
1216
1217         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
1218           modification of test for the pic16 port, put the array to the code
1219           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
1220
1221 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1222
1223         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
1224         * support/Util/pstdint.h: added
1225
1226 2006-05-22 Borut Razem <borut.razem AT siol.net>
1227
1228         * src/regression/Makefile: removed bool2.c test, added -q linker option
1229         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
1230           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
1231           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
1232           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
1233           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
1234           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
1235           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
1236           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
1237           define SUPPORT_BIT_TYPES 0, removed unused bit variables
1238
1239 2006-05-22 Raphael Neider <rneider AT web.de>
1240
1241         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
1242           bug #1492360 (problematic due to generic pointers, see code)
1243
1244 2006-05-22 Borut Razem <borut.razem AT siol.net>
1245
1246         * support/regression/ports/pic16/specs.mk: removed stack size linker
1247           directive
1248         * support/regression/tests/array.c,
1249           support/regression/tests/bitopcse.c,
1250           support/regression/tests/bug-908454.c,
1251           support/regression/tests/malloc.c: modified for pic16 regression test
1252         * support/regression/tests/bitfields.c:
1253           pic16 - excluded bitfileds of size > 8
1254         * support/regression/tests/bp.c: pic16 - reduced data size
1255         * support/regression/tests/bug-221100.c: pic16 - reduced data size
1256         * support/regression/tests/bug-460010.c:
1257           pic16 - used the absolute address the fits in memory
1258         * support/regression/tests/bug-716242.c:
1259           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
1260         * support/regression/tests/float.c:
1261           pic16 - excluded - data size too big
1262         * support/regression/tests/onebyte.c:
1263           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
1264         * support/regression/tests/shifts.c:
1265           pic16 - function names probably have to differ in first X characters
1266           (gpasm limitation?)
1267         * support/regression/tests/staticinit.c:
1268           pic16 - excluded some tests due error: no target memory available for
1269           section ".idata"
1270
1271 2006-05-22 Borut Razem <borut.razem AT siol.net>
1272
1273         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1274           second try. Thanks Stas Sergeev once more.
1275
1276 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1277
1278         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
1279           (genLeftShift, genRightShift): fixed bug 1491627
1280         * src/hc08/peeph.def (rules 7, 8.x): added
1281         * support/regression/tests/shifts.c (ShiftLeftByParam,
1282           ShiftRightByParam, testShiftByParam): added to test variable shifting
1283
1284 2006-05-20 Raphael Neider <rneider AT web.de>
1285
1286         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
1287         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
1288           (allocReg): add only new registers to dynAllocRegs,
1289           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
1290             #1489055, #1445850, and probably #1483693
1291
1292 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
1293
1294         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
1295         bug in for-loop that didn't emit the last of CONFIG and ID registers
1296
1297 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
1298
1299         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
1300           with offset
1301         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
1302           1489016, 1434401 and 1490124
1303         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
1304           1489016, 1434401 and 1490124
1305
1306 2006-05-17 Borut Razem <borut.razem AT siol.net>
1307
1308         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1309           thanks Stas Sergeev
1310
1311 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1312
1313         * device/include/mcs51/P89c51RD2.h,
1314         * device/include/mcs51/P89LPC901.h,
1315         * device/include/mcs51/P89LPC922.h,
1316         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
1317
1318 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1319
1320         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
1321         to fix missing stack pragma in compiled binary object file,
1322
1323 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
1324
1325         * support/packihx/configure.in,
1326         * support/packihx/configure: removed warning, autoconf >= 2.5x can
1327         determine sizeof basic types even while cross compiling
1328
1329 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
1330
1331         * src/avr/gen.c (aopop),
1332         * src/ds390/gen.c (aopOp),
1333         * src/hc08/gen.c (aopOp),
1334         * src/mcs51/gen.c (aopop),
1335         * src/pic16/gen.c (pic16_aopOp),
1336         * src/pic/gen.c (aopOp),
1337         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
1338         if size of operand is smaller than spill location
1339
1340 2006-05-12 Borut Razem <borut.razem AT siol.net>
1341
1342         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
1343           have to have CR/LF line endings even if they are checked out on *nix
1344           or on WIN32 in cygwin binmode
1345
1346 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
1347
1348         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
1349         * device/include/ds80c390.h: added sfr16 definitions
1350         * src/ds390/gen.c,
1351         * src/ds390/gen.h,
1352         * src/ds390/main.c,
1353         * src/ds390/ralloc.c,
1354         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
1355           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
1356           bit returning functions
1357         * support/regression/tests/sfr16.c: enabled test on ds390
1358
1359 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1360
1361         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
1362         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
1363
1364 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1365
1366         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
1367         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
1368           (cl_address_space constructor): removed expensive initialization,
1369           (cl_address_space::get_cell): extended for late initialization,
1370           (cl_address_space::*): use late initialization,
1371           (cl_address_decoder::activate): removed expensive initialization,
1372           This reduced regression test running time by 25%
1373
1374 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
1375
1376         * packihx/,
1377         * configure.in,
1378         * configure,
1379         * sdcc.dsw,
1380         * Makefile.bcc,
1381         * Makefile.in,
1382         * support/packihx/Makefile.in,
1383         * support/packihx/clean.mk,
1384         * support/packihx/Makefile.bcc,
1385         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
1386
1387 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1388
1389         * src/SDCCval.c (valNot): fix for regression test failure
1390           of not.c on big endian hosts
1391
1392 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1393
1394         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
1395
1396 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1397
1398         * device/lib/mcs51/Makefile.in: changed string comparison operator
1399           to = for POSIX compliance; == is bash extension
1400
1401 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1402
1403         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
1404           kosmonaut_pirx
1405
1406 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
1407
1408         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
1409         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
1410         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
1411         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
1412         bug report #1478657,
1413
1414 2006-05-05 Borut Razem <borut.razem AT siol.net>
1415
1416         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
1417           making the html
1418
1419 2006-05-02 Borut Razem <borut.razem AT siol.net>
1420
1421         * doc/Makefile.in: removed *.ind dependency since there is no rule to
1422           create *.ind, which made make to fail if invoked with -j 2
1423
1424 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
1425
1426         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
1427           Hubert Sack for patch 1479782
1428
1429 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
1430
1431         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
1432
1433 2006-05-01 Raphael Neider <rneider AT web.de>
1434
1435         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
1436           (create_pic): store only prefix-free device name,
1437           (init_pic): check for device names with "16" prefix,
1438           (list_valid_pics),
1439         * src/pic/device.h (struct PIC_device),
1440         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
1441             stored device name,
1442         * device/include/pic/pic12f{635,675,629,683}.h,
1443         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
1444         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
1445         * device/include/pic/pic16f505.h,
1446         * device/lib/pic/libdev/pic16f505.c: removed
1447         * device/include/pic/pic14devices.txt: added support for pic12f
1448             devices, removed unsupported non 16-bit devices
1449             [above changes provided by patch from Zik Saleeba]
1450         * src/pic/*, src/pic16/*, device/include/pic16/*,
1451           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
1452
1453 2006-05-01 Borut Razem <borut.razem AT siol.net>
1454
1455         * configure.in, configure, doc/Makefile.in:
1456           sync with nightly build makefile - latex, dvipdf and dvips
1457           not needed any more
1458
1459 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
1460
1461         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
1462         in the library source
1463
1464 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
1465
1466         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
1467
1468 2006-04-28 Raphael Neider <rneider AT web.de>
1469
1470         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
1471         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
1472           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
1473         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
1474
1475 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
1476
1477         * device/lib/pic/libdev/Makefile.in,
1478         * device/lib/hc08/Makefile.in,
1479         * device/lib/gbz80/Makefile.in,
1480         * device/lib/z80/Makefile.in,
1481         * device/lib/ds390/Makefile.in,
1482         * device/lib/ds400/Makefile.in: added srcdir to include search path,
1483         thanks to Borut for the bug report
1484         * configure.in,
1485         * configure: always create doc/Makefile independent from --enable-doc
1486         * Makefile.in: always install from directory doc independent from
1487         --enable-doc
1488         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
1489         removed
1490         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
1491         * doc/Makefile.in: install *.txt if present
1492         * device/include/Makefile.in (install): added installation of pic/*.inc
1493         and pic/*.txt files again, they were erroneously removed
1494
1495 2006-04-28 Raphael Neider <rneider AT web.de>
1496
1497         * src/pic/{gen.c,main.h,pcode.c},
1498         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
1499             concerning signedness with casts
1500
1501 2006-04-28 Raphael Neider <rneider AT web.de>
1502
1503         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
1504             definition of an interrupt handler,
1505         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
1506             interrupt handler stuff from picglue() to separate routine,
1507           (picglue): enabled definition of intr handlers in files w/o main()
1508
1509 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1510
1511         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
1512           compilation with MSVC 2005 Express Edition (VC8)
1513
1514 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
1515
1516         * device/lib/Makefile: fixed build of gbz80 lib
1517
1518 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1519
1520         * support/regression/tests/bug-460010.c,
1521         * support/regression/tests/bug-524691.c,
1522         * support/regression/tests/bug-716242.c: removed conditional defines
1523           that are already in testfwk.h
1524
1525 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1526
1527         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
1528           (AccAXRsh1): added, shift right by 1,
1529           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
1530            AccAXLrl1
1531         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
1532
1533 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
1534
1535         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
1536         remove cast to same type
1537         * src/SDCCast.c (decorateType): fix for RFE 1475742,
1538         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
1539         * as/z80/Makefile,
1540         * link/z80/Makefile: removed, they have moved to
1541         Makefile.in files
1542         * configure,
1543         * configure.in: replaced duplicate message about ucsim by missing sdcpp
1544         * install-sh: fix bug #1204398 by setting umask 0022
1545         * device/lib/Makefile: separate build of z80 and gbz80 lib
1546
1547 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
1548
1549         Enabled VPATH feature: changed nearly all Makefiles (149 files).
1550         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
1551
1552         One basic decision: e.g. src/clean.mk includes further files. In order
1553         to make this work there are two solutions:
1554         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
1555           run configure on them. This way they can use
1556           'include $(srcdir)/port-clean.mk'
1557         - always include clean.mk by the Makefile at the same level. To avoid
1558           that `make clean` tries to include and build Makefile.dep the
1559           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
1560           implemented, because now even `make uninstall` doesn't create
1561           Makefile.in. clean.mk could be eliminated by pasting it in
1562           Makefile.in.
1563
1564         * debugger/mcs51/Makefile.in: build own objects from library sources
1565         (SLIB, SDCC) in current directory
1566
1567         * configure, configure.in: renamed --disable-device-lib-build in
1568         --disable-device-lib; added --enable-doc, the required tools are
1569         searched by configure; added result message; the toolchain for the
1570         belonging ports are now only built, if the port is enabled.
1571
1572         * support/regression/*: all output is written in directory gen, because
1573         the fwk and ports directories don't livet in the build tree using vpath
1574
1575         * doc/sdccman.lyx: renamed --disable-device-lib-build to
1576         --disable-device-lib, added --enable-doc, added section VPATH
1577
1578         * sim/ucsim/configure.in,
1579         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
1580         z80 are enabled by default
1581
1582 2006-04-24 Raphael Neider <rneider AT web.de>
1583
1584         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
1585             to config word, "pic14_"-prefixed some extern functions
1586           (pic14_emitConfigWord): emit __config directive(s) if assignment to
1587             config word has been found
1588         * src/pic/device.h: added prototypes
1589         * src/pic/pcode.c: added "pic14_"-prefix where needed
1590         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
1591             fixup
1592         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
1593             words,
1594           (pic14emitRegularMap): ignore config words,
1595           (pic14createInterruptVect): moved generating __config directives away
1596           (picglue): have __config directives emitted
1597
1598 2006-04-24 Borut Razem <borut.razem AT siol.net>
1599
1600         * doc/Makefile: sync with nightly build makefile
1601
1602 2006-04-24 Raphael Neider <rneider AT web.de>
1603
1604         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
1605             registers that have not been assigned proper liveranges,
1606             fixes #1469504 and #1474602,
1607           (pCodeRegOptimizeRegUsage): fixed typo in comment
1608
1609 2006-04-24 Borut Razem <borut.razem AT siol.net>
1610
1611         * device/examples/main8051.c: deleted - it was removed from CVS
1612           24.mar.2000 and after that modified 18.feb.2001, so it reappered
1613           after the transition to Subversion
1614         * src/SDCCalloc.h: deleted - it was removed  from CVS
1615           3.feb.2001 and after that modified 18.feb.2001, so it reappered
1616           after the transition to Subversion
1617         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
1618           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
1619           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
1620           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
1621
1622 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
1623
1624         * as/asx8051.dsp: added mcs51/strcmpi.h
1625         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
1626         * as/hc08/aslink.h: updated lnksect prototype
1627         * as/hc08/asm.h,
1628         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
1629         * as/hc08/asmain.c,
1630         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
1631           (newdot): handle A_ABS
1632         * as/hc08/asout.c,
1633         * as/mcs51/asout.c (outarea): output address
1634         * as/hc08/lkaomf51.c,
1635         * as/mcs51/lkaomf51.c: disabled unused array UsageType
1636         * as/hc08/m08pst.c,
1637         * as/mcs51/i51pst.c,
1638         * as/z80/z80pst.c: "ABS" is not A_OVR
1639         * as/hc08/lkarea.c (newarea): read a_addr,
1640           (lnkarea): added codemap array, sort absolute areas to the front,
1641            combine all GSINITx/GSFINAL,
1642           (find_empty_space, allocate_space): new functions,
1643           (lnksect): return next address, handle absolute sections
1644         * as/mcs51/lkarea.c (newarea): read a_addr,
1645           lnksect2 prototype changed,
1646           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
1647           (find_empty_space, allocate_space): new, factored out of lnksect2,
1648           (lnksect2): return next address, handle absolute sections
1649         * as/hc08/lkhead.c,
1650         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
1651         * as/hc08/lklibr.c (addfile, fndsym),
1652         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
1653           index out of range and detect both '\' and '/'
1654         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
1655         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
1656           regression tests (ds390 cannot return bool yet)
1657         * doc/sdccman.lyx: changed version number, document changed --no-peep,
1658           document critical interrupts on z80, document changed SDCC define
1659         * src/asm.c (_asxxxx_mapping): fixed .org directive,
1660           (_a390_mapping): added .org directive
1661         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
1662           (genMultOneByte): fixed warnings
1663         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
1664           ones
1665         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
1666         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
1667           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
1668         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
1669         * src/pic16/main.c: removed newReg prototype
1670         * src/pic16/pcode.c,
1671         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
1672           warnings
1673         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
1674           ones
1675         * src/pic16/ralloc.c
1676         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
1677           to fix warnings
1678         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
1679           from short to PIC_OPTYPE
1680         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
1681         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
1682           optype from short to PIC_OPTYPE
1683         * src/port.h: made int_size unsigned to fix warnings
1684         * src/SDCC.y: fixed warning on MSVC
1685         * src/SDCCicode.c (getArraySizePtr): return unsigned int
1686         * src/SDCCopt.c (convertToFcall): fixed warnings
1687         * src/SDCCsymt.h: removed double prototype for genSymName
1688         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
1689           offset int to fix warnings
1690
1691 2006-04-22 Borut Razem <borut.razem AT siol.net>
1692
1693         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1694           references to CVS replaced with Subversion
1695
1696 2006-04-21 Borut Razem <borut.razem AT siol.net>
1697
1698         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1699           references to CVS replaced with Subversion
1700
1701 2006-04-19 Borut Razem <borut.razem AT siol.net>
1702
1703         * src/version.awk: adapted for svn
1704         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
1705           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
1706           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
1707           /binutils-avr/etc/*.vi, *.jin: removed all properties
1708           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
1709
1710 2006-04-19 Borut Razem <borut.razem AT siol.net>
1711
1712         * CVS to Subversion migration completed
1713
1714 2006-04-18 Borut Razem <borut.razem AT siol.net>
1715
1716         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
1717           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
1718
1719 2006-04-17 Borut Razem <borut.razem AT siol.net>
1720
1721         * device/include/Makefile.in: added pic/*.inc to the installation
1722
1723 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
1724
1725         * support/regression/collate-results.py: fixed output in case of
1726         a valdiag error
1727         * support/regression/generate-cases.py: fixed splitting of pathnames
1728         with dots
1729         * as/hc08/lklibr.c (addfile),
1730         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
1731
1732 2006-04-11 Raphael Neider <rneider AT web.de>
1733
1734         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
1735         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
1736         * src/pic16/pcode.c (assignValnums): fixed #1460578
1737
1738 2006-04-11 Raphael Neider <rneider AT web.de>
1739
1740         * device/lib/pic/libdev/*.c,
1741         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
1742           fixes #1468739, enables compilation in --std-c99 mode
1743         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
1744
1745 2006-04-11 Raphael Neider <rneider AT web.de>
1746
1747         * src/pic/device.c (find_device): removed debug output
1748           (list_valid_pics): enabled verbose listing of supported devices
1749         * device/include/stdbool.h: define bool as char for pic14/16 as well
1750
1751 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1752
1753         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
1754
1755 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1756
1757         * .version: bumped version to 2.5.6
1758         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
1759
1760 2006-04-06 Raphael Neider <rneider AT web.de>
1761
1762         * .version: bumped version to 2.5.6 (pic14 ABI changed)
1763         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
1764         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
1765           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
1766             pic14_constructAbsMap
1767           (pic14printPublics): declare absolute global symbols as global
1768           (pic14createInterruptVect),
1769         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
1770           (newReg): assume new registers unused, use correct name in
1771             hashtable (reg->name instead of name), more debugLog output
1772         * src/pic/device.h (PIC_device): added fields for verbose output
1773         * src/pic/device.c: moved device definition to pic14devices.txt,
1774             added routines for runtime parsing of pic14devices.txt,
1775             added support for second config word
1776         * src/pic/main.c (_process_pragma): removed #pragma maxram,
1777           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
1778           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
1779           (_pic14_parseOptions): moved pCodeInitRegisters here
1780           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
1781         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
1782           (pCodeInitRegisters): rewrapped comments, perpared new approach to
1783             handling the pseudo stack
1784         * device/lib/Makefile.in: ignore failures in objects-pic16,
1785         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
1786         * device/lib/pic/NEWS: document new dependency on picXXX.lib
1787         * device/lib/pic/Makefile.subdir,
1788         * device/lib/pic16/Makefile.subdir: improved clean rules
1789         * device/lib/pic/libdev/: NEW, pic14 device libraries
1790         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
1791         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
1792         * device/include/Makefile.in: create subdir and install pic14 headers
1793         * device/include/pic/p16f_common.inc: removed unused declarations
1794         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
1795             PICs from inc2h.pl v1.6,
1796             replaced BIT_AT macros with struct declarations
1797         * device/include/pic/pic14devices.txt: definition of supported devices,
1798             all above improvements contributed by Zik Saleeba, thanks
1799         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
1800         * support/scripts/sdcc.nsi: also install pic14 device libraries and
1801             headers
1802
1803 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1804
1805         * device/include/mcs51/c8051f410.h: added interrupt numbers,
1806         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
1807           thanks to Charles Olds
1808
1809 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1810
1811         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
1812
1813 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1814
1815         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
1816         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
1817         * support/regression/bug1464657.c: added, new test
1818
1819 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1820
1821         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
1822           version number
1823
1824 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1825
1826         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
1827           --no-peep and --peep-file <file> are used don't use default rules but
1828           do use the <file>
1829
1830 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1831
1832         * src/mcs51/gen.c (genCall): fixed bug 1457608
1833
1834 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1835
1836         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
1837         changes seem to cause (trigger?) problems with the build system.
1838
1839 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
1840
1841         * src/SDCCpeeph.c (operandsLiteral): new, added,
1842           (callFuncByName): inserted operandsLiteral
1843         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
1844
1845 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1846
1847         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
1848         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
1849
1850 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1851
1852         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
1853           implemented patch 1120823 Thanks to Willy De la Court (normal
1854           interrupts need an interrupt number now if they are made critical),
1855           and enabled nesting of critical functions though not for gbz80
1856           (genCritical, genEndCritical): added functions
1857           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
1858         * src/z80/mappings.i: added "ei" to all mappings
1859
1860 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1861
1862         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
1863         submitted by the Debian SDCC maintainer Aurelien Jarno:
1864         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
1865         archive with gcc 4.1 on mips and wrote the patch"
1866
1867 2006-03-16 Raphael Neider <rneider AT web.de>
1868
1869         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
1870           the left operand is shorter than the result (c* = lit-c* + int),
1871           fixes bug #1450796
1872         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
1873           OP_SYMBOL
1874
1875 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1876
1877         * src/.version: increased version number to 2.5.5
1878         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
1879         linking is done manually in pic16 port's _linkEdit,
1880         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
1881         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
1882         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
1883         allocate asmop as AOP_ACC,
1884         (aopForRemat): added parameter 'bool result' in function declaration,
1885         (pic16_aopGet): return AOP_ACC when accessing WREG,
1886         (pic16_popGetTempReg): minor modification,
1887         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
1888         'pic16_allocWithIdx',
1889         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
1890         calling function in absolute addresses,
1891         (genAssign): take into account AOP_ACC asmop,
1892         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
1893         * src/pic16/pcoderegs.c: some debug functions and lines added,
1894         * src/pic16/ralloc.c (decodeRegType): added but commented out,
1895         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
1896         register too,
1897         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
1898         call to allocReg, not by manually allocating a new one,
1899         (pic16_assignRegisters): now before going through the register
1900         allocating functions mark all registers as free. This eliminates some
1901         side effects resulting from peephole parser done earlier in the backbone
1902
1903 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
1904
1905         * src/SDCCicode.c (geniCodeLogic),
1906         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
1907
1908 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
1909
1910         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
1911           (genSend): bugfix, do not allocate and free twice,
1912           (shiftRLong): handle partially overlapping aops
1913         * support/regression/tests/bitopcse.c: fixed warning redefined idata
1914
1915 2006-03-08 Borut Razem <borut.razem AT siol.net>
1916
1917         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
1918           for pic16
1919
1920 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
1921
1922         * support/regression/tests/bug1409955.c: new, added
1923         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
1924         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
1925           (aopForSym, aopOp): increment asmop.allocated if reused,
1926           (freeAsmop): decrement asmop.allocated and check for zero instead of
1927           using asmop.freed,
1928           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
1929           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
1930            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
1931            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
1932            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
1933            genSignedRightShift, genRightShift, genDataPointerGet,
1934            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
1935            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
1936             in reverse order from allocation,
1937           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
1938             added swappedLR to keep track
1939         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
1940           pdata & code for GCC, z80, gbz80 & hc08
1941         * support/regression/tests/zeropad.c: moved defines to testfwk.h
1942
1943 2006-03-08 Raphael Neider <rneider AT web.de>
1944
1945         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
1946
1947 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
1948
1949         * device/include/mcs51/c8051f410.h: new SiLabs mcu
1950         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
1951         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
1952
1953 2006-03-06 Borut Razem <borut.razem AT siol.net>
1954
1955         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
1956           made the linker quiet
1957
1958 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
1959
1960         * src/pic16/gen.c (genPcall): fixed bug #1443644
1961         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
1962         which dumps before the function entry point a data byte which represents
1963         the number of the local variables used by the specified function, added
1964         'xinst' for initial support for Extended Instruction Support,
1965         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
1966         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
1967         port->fun_prefix anymore (may change later),
1968         (genFunction, genEndFunction): do not store/restore local registers for
1969         _main (this should take care the --main-return command line option in
1970         the future),
1971         (genOr): removed some legacy pic-port instructions,
1972         * src/pic16/genarith.c (genAddLit): re-enabled old code because
1973         performing operations with SFR's causes data to be written more than
1974         once to each SFR. Perhaps SFRs should be handled in special cases...
1975         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
1976         pcode.h
1977         * src/pic16/main.c (_process_pragma): stack bound checking did not take
1978         into account for stack starting position,
1979         (struct OPTIONS pic16_optionsTable): added command line argument
1980         --extended or -y for Extended Instruction Support,
1981         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
1982         (deassignLRs): *** perhaps the most important change, old 'for' code
1983         (commented out for reference), didn't account for some registers which
1984         were left marked 'not free' after a pointer operation. The change
1985         reduces register usage a lot in some cases
1986
1987 2006-03-04 Borut Razem <borut.razem AT siol.net>
1988
1989         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
1990           _clean
1991         * support/regression/tests/bug-524697.c: decreased array size for
1992           mcs51 to fit into the internal RAM
1993         * support/regression/Makefile.in: a little bit more verbose
1994
1995 2006-03-03 Borut Razem <borut.razem AT siol.net>
1996
1997         * support/regression/fwk/lib/testfwk.c,
1998           support/regression/fwk/include/testfwk.h: introduced function
1999           _prints(), nonrecursive _printn(), call _initEmu() from main()
2000         * support/regression/ports/gbz80/support.asm,
2001           support/regression/ports/ucz80/support.asm,
2002           support/regression/ports/z80/support.asm,
2003           support/regression/ports/ds390/support.c,
2004           support/regression/ports/hc08/support.c,
2005           support/regression/ports/host/support.c,
2006           support/regression/ports/mcs51/support.c,
2007           support/regression/ports/xa51/support.c: added empty _initEmu()
2008           function
2009         * support/regression/ports/pic16/gpsim.cmd,
2010           support/regression/ports/pic16/spec.mk,
2011           support/regression/ports/pic16/support.c,
2012           support/regression/Makefile.in: added pic16 regression test
2013
2014 2006-03-01 Raphael Neider <rneider AT web.de>
2015
2016         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
2017           genConstPointerGet): use safe way of generating MOVFF to cover
2018             literals as well as registers, fixes bug #1440527
2019         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
2020             dereference
2021           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
2022             more correctly, fixes bug #1232186
2023           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
2024         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
2025             gplink guess the correct processor in more cases, applied patch
2026             from Till Riedel attached to and fixing bug #1436552
2027
2028 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2029
2030         * support/regression/tests/array.c: added, contains check for #1434401
2031         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
2032
2033 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
2034
2035         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
2036         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
2037         * device/include/mcs51/c8051f326.h,
2038         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
2039         * device/include/mcs51/c8051f000.h,
2040         * device/include/mcs51/c8051f018.h,
2041         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
2042           PCON_IDLE,PCON_STOP and added sfr16 definitions
2043
2044 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2045
2046         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
2047           genGetWord): fixed bug 1409955
2048
2049 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
2050
2051         * device/include/hc08/mc68hc908gp32.h,
2052         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
2053
2054 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
2055
2056         * src/SDCCast.c (constExprValue): return NULL if not a value
2057         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
2058         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
2059         * support/regression/tests/bitfields.c: enabled signed bitfield for all
2060
2061 2006-02-13 Borut Razem <borut.razem AT siol.net>
2062
2063         * src/regression/ptrarg.c: added, fails due to bug #1430967
2064         * src/regression/Makefile: ptrarg.c added, ...
2065
2066 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
2067
2068         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
2069         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
2070
2071 2006-02-11 Borut Razem <borut.razem AT siol.net>
2072
2073         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
2074           print "Processor: xxx" message to stdout only if --verbose
2075
2076 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
2077
2078         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
2079         * support/regression/tests/bug1426356.c: added
2080         * support/regression/tests/bitfields.c: removed 2 tests
2081
2082 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
2083
2084         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
2085         * device/include/mcs51/c8051f330.h,
2086         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
2087           PCON_IDLE,PCON_STOP and added sfr16 definitions
2088         * device/lib/_divsint.c,
2089         * device/lib/_divuint.c,
2090         * device/lib/_divulong.c,
2091         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
2092           register bank bug for small stackauto
2093
2094 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2095
2096         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
2097
2098 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
2099
2100         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
2101         * all.dsp: corrected several bin paths
2102         * device/include/mcs51/c8051f120.h,
2103         * device/include/mcs51/c8051f300.h,
2104         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
2105           to PCON_IDLE,PCON_STOP
2106         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
2107         * device/lib/printf_large.c (output_float): fixed bug 1388703
2108         * support/regression/tests/bug1057979.c: added test for bug 1388703
2109
2110 2006-02-08 Raphael Neider <rneider AT web.de>
2111
2112         * src/pic/pcode.c (pciTRIS): fixed typo,
2113           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
2114           (LinkFlow): fixed handling of flows that end in a call,
2115           (ReuseReg): perform safety check earlier
2116         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
2117             to work with flows at the beginning of a pBlock,
2118             fixes #1426557 (Symbol not previously defined),
2119           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
2120             usage information
2121           (RemoveUnusedRegisters): update register usage info
2122         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
2123             created, reuse existing ones instead
2124         * src/pic/gen.c (genPcall): fixed #1424719
2125
2126 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
2127
2128         * link/z80/lkmain.c,
2129         * link/z80/lklex.c,
2130         * link/z80/lkdata.c,
2131         * link/z80/aslink.h: fixed build on current cygwin:
2132         replaced getline() by lk_getline()
2133
2134 2006-02-01 Borut Razem <borut.razem AT siol.net>
2135
2136         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
2137           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
2138           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
2139           src/regression/bool1.c, src/regression/bool2.c,
2140           src/regression/bool3.c, src/regression/call1.c,
2141           src/regression/compare.c, src/regression/compare10.c,
2142           src/regression/compare2.c, src/regression/compare3.c,
2143           src/regression/compare4.c, src/regression/compare5.c,
2144           src/regression/compare6.c, src/regression/compare7.c,
2145           src/regression/compare8.c, src/regression/compare9.c,
2146           src/regression/configword.c, src/regression/for.c,
2147           src/regression/inline.c, src/regression/mult1.c,
2148           src/regression/nestfor.c, src/regression/or1.c,
2149           src/regression/pointer1.c, src/regression/ptrfunc.c,
2150           src/regression/rotate1.c, src/regression/rotate2.c,
2151           src/regression/rotate3.c, src/regression/rotate4.c,
2152           src/regression/rotate5.c, src/regression/rotate6.c,
2153           src/regression/rotate7.c, src/regression/string1.c,
2154           src/regression/struct1.c, src/regression/sub.c,
2155           src/regression/sub2.c, src/regression/switch1.c,
2156           src/regression/while.c, src/regression/xor.c,
2157           src/regression/create_stc, src/regression/simulate,
2158           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
2159           regression tests
2160         * src/regression/gpsim_assert.h: added
2161
2162 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
2163
2164         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
2165         ((void (code *) (void)) 0) ();
2166         * as/hc08/aslex.c,
2167         * as/hc08/aslink.h,
2168         * as/hc08/asm.h,
2169         * as/hc08/asmain.c,
2170         * as/hc08/lkdata.c,
2171         * as/hc08/lklex.c,
2172         * as/hc08/lkmain.c,
2173         * as/mcs51/aslex.c,
2174         * as/mcs51/aslink.h,
2175         * as/mcs51/asm.h,
2176         * as/mcs51/asmain.c,
2177         * as/mcs51/lkdata.c,
2178         * as/mcs51/lklex.c,
2179         * as/mcs51/lkmain.c,
2180         * as/z80/aslex.c,
2181         * as/z80/asm.h,
2182         * as/z80/asmain.c: fixed build on current cygwin:
2183         replaced getline() by as_getline()
2184
2185 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
2186
2187         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
2188         declarator in the symbol chain
2189         * src/SDCCsymt.h,
2190         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
2191         parameter list for function pointers
2192         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
2193         * support/regression/tests/bug-716242.c: added
2194
2195 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
2196
2197         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
2198         offset if possible
2199         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
2200
2201 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
2202
2203         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
2204         inifinitely recurseable, added static
2205         * support/regression/tests/bug-1408066.c: added
2206
2207 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
2208
2209         * src/SDCCicode.h,
2210         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
2211         renamed, added possibility to create "postLoopLbl"-labels
2212         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
2213         newiTempLoopHeaderLabel
2214         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
2215         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
2216         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
2217         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
2218         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
2219         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
2220         (basicInduction): fixed bug #136564, made static,
2221         (loopInduction): changed parameter of basicInduction, made static,
2222         (addPostLoopBlock): added
2223         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
2224         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
2225         findLoopEndSeq
2226         * support/regression/tests/bug-136564.c: added
2227         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
2228         --std-sdcc99 to LIBSDCCFLAGS
2229
2230 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
2231
2232         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
2233         while loop
2234         * support/regression/tests/bug-1406131.c: added
2235
2236 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
2237
2238         * src/SDCCast.c (decorateType): fix promotion of unary minus
2239         * src/SDCCsymt.c (computeType): beautified
2240         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
2241         (valUnaryPM, valComplement): fix sign and promotion,
2242         (valNot): ANSI: result type is int (SDCC: unsigned char)
2243         * support/regression/tests/uminus.c: speedup by removing superflous
2244         test case 'int'
2245         * support/regression/tests/onebyte.c: added promotion and signedness
2246         tests for unary minus
2247         * support/regressions/tests/bug-477927.c: disable warning about
2248         uninitialized variables
2249         * support/regression/tests/not.c: added
2250
2251 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
2252
2253         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
2254         * src/mcs51/gen.c (gen51Code): show final register usage after
2255         fillGaps in asm with --i-code-in-asm
2256         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
2257         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
2258         incUsed, rliveClear, adjustIChain): made static,
2259         (setFromRange): excluded because it's unused,
2260         (findPrevUseSym, markWholeLoop): added,
2261         (findPrevUse): rewritten; fixes bug 895992; now a complete search
2262         through all branches of predecessors enables sdcc to emit the warning
2263         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
2264         (rlivePoint): made static, added parameter emitWarnings which is only
2265         true during the first run out of two,
2266         (findRecursiveSucc, findRecursivePred): removed,
2267         (computeLiveRanges): made static, added parameter emitWarnings,
2268         (dumpIcRlive): added for debugging only
2269         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
2270         removed prototype of setFromRange()
2271         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
2272         in call of computeLiveRanges()
2273         * support/regression/tests/bug-895992.c: added
2274         * support/regression/tests/bug-971834.c: added
2275         * support/valdiag/tests/bug-895992.c: added
2276         * support/valdiag/tests/bug-971834.c: added
2277
2278 2005-12-18 Raphael Neider <rneider AT web.de>
2279
2280         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
2281           (genUnpackBits): improved code for direct operands,
2282           (genPackBits): improved code for literal assignment to bitfields
2283             and for direct destination operands (no FSR indirection),
2284             prevented redundant AND, fixes #1362800,
2285           (AccLsh): added parameter to disable masking of the result
2286         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
2287           skip instructions with side-effects (like incfsz),
2288           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
2289         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
2290         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
2291           fixes #1375263
2292
2293 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
2294
2295         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
2296         volatile variables as spill location
2297
2298 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
2299
2300         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
2301         replacing literals
2302         * support/regression/tests/bug-1376320.c: added
2303
2304 2005-12-08 Raphael Neider <rneider AT web.de>
2305
2306         * src/pic/device.c: renamed is_shared to pic14_is_shared
2307         * src/pic/gen.c (genIfx): re-enabled handling of sbits
2308         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
2309           (is_valid_identifier): added for above workaround
2310
2311 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
2312
2313         * device/lib/Makefile.in: fixed to enable port-specific-objects
2314         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
2315           char, thanks Hubert Sack
2316         * doc/sdccman.lyx: documented --xstack-loc,
2317           elaborated a bit more on interrupts and pitfalls,
2318           removed "setjmp/longjmp unsupported",
2319           documented some unsupported C99 features
2320         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
2321         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
2322           if, thanks Hubert Sack
2323         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
2324         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
2325           make make_library
2326         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
2327           regression tests can report resource usage (rfe 700441)
2328         * support/regression/collate-results.py: report resource usage
2329         * support/regression/ports/ds390/spec.mk,
2330         * support/regression/ports/hc08/spec.mk,
2331         * support/regression/ports/mcs51/spec.mk,
2332         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
2333         * support/regression/ports/ds390/uCsim.cmd,
2334         * support/regression/ports/hc08/uCsim.cmd,
2335         * support/regression/ports/mcs51/uCsim.cmd,
2336         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
2337         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
2338           library, use the default one
2339         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
2340           building the library
2341
2342 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2343
2344         * config.dsp: added dependency on .version and configure_vc.awk
2345         * device/include/setjmp.h: updated for --stack-auto and --xstack
2346         * device/include/mcs51/at89c51snd1c.h: corrected line endings
2347         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
2348         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
2349         * device/lib/libsdcc.lib: added _setjmp
2350         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
2351           (decorateType): fixed bug 1372851,
2352           (optimizeGetHbit): fixed warning
2353         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
2354           array initialisation
2355         * support/regression/tests/bug1057979.c: added test for bug 1358192
2356         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
2357
2358 2005-12-03 Borut Razem <borut.razem AT siol.net>
2359
2360         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
2361           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
2362
2363 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2364
2365         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
2366         createIval): implement symbol independant "flexible array member",
2367         (createIvalCharPtr): implemented flexible array initialisation with a
2368         string
2369         * src/SDCCsymt.c (copyStruct): removed,
2370         (getSize): fixed misleading comment,
2371         (getAllocSize): removed, the additional allocation size is now in
2372         sym->flexArrayLength,
2373         (checkStructFlexArray): new, syntax checks for flexible array members,
2374         (compStructSize): added syntax checks for "flexible array members"
2375         (copyStruct): removed,
2376         (copyLinkChain): removed inefficient fix for bug 770487
2377         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
2378         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
2379         symbol->flexArrayLength
2380         * src/SDCCerr.c,
2381         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
2382         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
2383         * support/regression/tests/structflexarray.c: added
2384         * support/valdiag/tests/structflexiblearray.c: added
2385
2386 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2387
2388         * src/SDCCast.c (decorateType): fixed bug 1368489
2389         * support/Util/SDCCerr.c,
2390         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
2391
2392 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2393
2394         * device/include/mcs51/at89c51snd1c.h: added file submitted by
2395           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
2396
2397 2005-11-27 Borut Razem <borut.razem AT siol.net>
2398
2399         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
2400           support/cpp2/mkdeps.h: added command line option
2401           -obj-ext=<extension> to SDCPP to define object file externion, used
2402           for generation of make dependencies (-M)
2403         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
2404
2405 2005-11-26 Borut Razem <borut.razem AT siol.net>
2406
2407         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
2408           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
2409           added pic and pic16 libraries
2410
2411 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2412
2413         * device/include/float.h: Corrected typo in prototype of __fsgt
2414
2415 2005-11-25 Borut Razem <borut.razem AT siol.net>
2416
2417         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
2418           added creation of model-mcs51-stack-auto libraries
2419
2420 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
2421
2422         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
2423         and fields-list too
2424         * src/SDCCast.c (createIvalArray): removed obsolete comment
2425
2426 2005-11-24 Borut Razem <borut.razem AT siol.net>
2427
2428         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
2429           added missing device/lib/mcs51/crt*.asm sources
2430
2431 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
2432
2433         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
2434
2435 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
2436
2437         * device/lib/_fs2schar.c,
2438         * device/lib/_fs2sint.c,
2439         * device/lib/_fs2slong.c: optimized inline asm
2440
2441 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2442
2443         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2444           Better handling of floats between -1.0 and 0.0.
2445
2446 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2447
2448         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
2449           (the missing "if"s prohibited removal of redundant labels)
2450
2451 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2452
2453         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2454           Properly convert floats between -1.0 and 0.0 to long, int, and char
2455           types (max integer value of negative floats tends to zero).
2456         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2457           Removed changes made so to work properly with floats between
2458           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
2459           and _fs2char.c
2460
2461 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2462
2463         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
2464         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
2465         (genCast) cosmetic change
2466         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
2467         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
2468         from mcs51
2469         * support/regression/tests/bitfields (testSignedBitfields): added
2470
2471 2005-11-18 Borut Razem <borut.razem AT siol.net>
2472
2473         * sdcc/device/lib/Makefile.in: remove all unnecessary files
2474         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
2475           introduced SILENT option to make building of pic16 libraries less
2476
2477 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2478
2479         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2480           Now they work properly with floats between -1.0 and 0.0
2481         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
2482
2483 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2484
2485         * src/SDCCicode.c (printOperand): added missing else
2486
2487 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2488
2489         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
2490         reformatted for better readability
2491         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
2492         signed bitfields
2493
2494 2005-11-17 Borut Razem <borut.razem AT siol.net>
2495
2496         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
2497           introduced SILENT option to make building of pic16 libraries less
2498           verbose - used for nightly snapshot build
2499         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
2500           available on Win32 platforms.
2501         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
2502           medium, large, pic and pic16
2503
2504 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2505
2506         * device/lib/printf_large.c: Temporary patch for bug 1358192:
2507           printf("%f"...) sets fraction to zero.
2508
2509 2005-11-16 Raphael Neider <rneider AT web.de>
2510
2511         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
2512           fixes #1357221
2513         * src/pic/gen.c (genIfx): implemented for CARRY bit
2514         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
2515           to generic pointers, fixes #1357332,
2516           (pic16_movLit2f): NEW,
2517           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
2518
2519 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2520
2521         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
2522
2523 2005-11-11 Raphael Neider <rneider AT web.de>
2524
2525         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
2526         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
2527           compute pointer's type from operand,
2528           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
2529           improved single bit reads, fixes bug #1353379
2530
2531 2005-11-09 Borut Razem <borut.razem AT siol.net>
2532
2533         * support/scripts/sdcc.nsi: added lib/pic to the package
2534
2535 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
2536
2537         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
2538
2539 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2540
2541         * support/regression/tests/bug1348008.c: added
2542         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
2543         * support/regression/tests/bug1337835.c: updated comment
2544
2545 2005-11-06 Borut Razem <borut.razem AT siol.net>
2546
2547         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2548           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2549           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2550           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2551           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
2552           dynamic construction of cl_error_class and derivates - 2.nd try
2553
2554 2005-11-05 Borut Razem <borut.razem AT siol.net>
2555
2556         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
2557           bug, which caused Bus Errors on sparc solaris
2558
2559 2005-11-04 Borut Razem <borut.razem AT siol.net>
2560
2561         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2562           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2563           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2564           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2565           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
2566           and derivates to resolve the initialization problem on OSX
2567
2568 2005-11-02 Borut Razem <borut.razem AT siol.net>
2569
2570         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2571           corrected typo - #include <winsock2.h>
2572
2573 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
2574
2575         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
2576           (_asxxxx_mapping): added org directive for future enhancements
2577
2578 2005-11-01 Borut Razem <borut.razem AT siol.net>
2579
2580         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2581           enabled sockets on WIN32
2582         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
2583
2584 2005-10-31 Borut Razem <borut.razem AT siol.net>
2585
2586         * support/regression/generate-cases.py: escape backslashes in {testcase}:
2587           WIN32 backslash path delimiters should be escaped when used in C strings
2588         * support/regression/tests/bitfields.c: exclude failing assertions for
2589           __CYGWIN32__ and __MINGW32__ hosts
2590
2591 2005-10-30 Borut Razem <borut.razem AT siol.net>
2592
2593         * src/SDCCutil.c: corrected double comparison typo
2594
2595 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
2596
2597         * device/lib/medium/Makefile: added for new memory model medium
2598         * device/include/asm/mcs51/features.h: updated for medium/pdata
2599         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
2600           added Multiply & Accumulate sbit's and MAC0_PAGE define
2601         * device/include/mcs51/c8051f300.h: added sfr16 definitions
2602         * device/include/mcs51/c8051f310.h: added sfr16 definitions
2603         * device/lib/_mullong.c: update for medium model
2604         * device/lib/incl.mk: added medium model
2605         * doc/sdccman.lyx: documented medium model
2606         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
2607         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
2608         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
2609         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
2610           (allocParms): set SCLS and OCLS to pdata for medium model
2611         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
2612           for pdata,
2613           (powof2): return <0 if not power of 2
2614         * src/avr/gen.c (genBitWise): use updated powof2
2615         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
2616           (shiftR2Left2Result): small optimization in setup, save acc when storing,
2617           (shiftLLeftOrResult): use B if necessary
2618         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
2619         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
2620         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
2621         * support/regression/Makefile.in: added test-mcs51-medium
2622         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
2623
2624 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
2625
2626         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
2627         specifier unsigned
2628         * device/lib/time.c (mktime): fixed bug 1334315
2629
2630 2005-10-28 Raphael Neider <rneider AT web.de>
2631
2632         * device/include/pic/p16f_common.inc: added common declarations
2633         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
2634
2635 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2636
2637         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
2638           (aopPutUsesAcc): added to predict accumulator use,
2639           (assignResultValue): save acc if necessary,
2640           (genMinusDec): store result if indirectly addressed,
2641           (genDivOneByte):  save acc if necessary,
2642           (movLeft2Result): bugfix if left already in acc,
2643           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
2644             attention to accumulator use (esp. pdata),
2645           (genReceive): receive pdata correctly
2646         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
2647         * src/SDCCicode.h: added isOperandInPagedSpace prototype
2648
2649 2005-10-27 Raphael Neider <rneider AT web.de>
2650
2651         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
2652
2653 2005-10-27 Raphael Neider <rneider AT web.de>
2654
2655         * .version: changed version to 2.5.4
2656         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
2657         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
2658           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
2659             arithmetics support routines
2660         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
2661         * device/lib/Makefile.in: also create installdir for pic
2662
2663         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
2664           pic14 port as well
2665         * src/pic/device.c (dump_sfr): rewritten to delegate register
2666           placement to the linker (use `extern sym' rather than sym EQU addr),
2667           (validAddress): fixed to check last specified address
2668         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
2669           (popGetLit): truncate literal value to 8 bit,
2670           (popGet): moved assert to more appropriate place
2671           (popGetExternal): create pCode operand from and mark the according
2672             symbol as being `extern'
2673           (popGetAddr): added sanity check on immediate's offset, provide
2674             GPOINTER tag on demand
2675           (aopPut): fixed for immediates,
2676           (mov2w_op): move operand's address or contents to WREG (depending on
2677             operand type), safer variant of mov2w,
2678           (movwf,call_libraryfunc): NEW, handy abbreviations,
2679           (get_argument_pcop,get_return_val_pcop,pass_argument,
2680           get_returnvalue): interface for accessing function parameters and
2681             return values,
2682           (assignResultValuei,genRet): use new parameter/return value interface
2683           (pic14_getDataSize): back to old version handling generic pointers,
2684           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
2685             provided implementation and/or fixed old one,
2686           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
2687             calls, removed legacy 8051 reference code
2688           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
2689           (loadSignToC): NEW, move the operands sign bit to CARRY,
2690           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
2691             genRightShiftSigned, accepts negative shift counts,
2692           (setup_fsr): load FSR and adjust IRP (indirect memory access),
2693           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
2694             generic pointers, __data pointers and __code pointers,
2695           (genUnpackBits,genPackBits): rewritten to work with generic pointers
2696             and signed bitfields, limit bitfields to 8 bit,
2697           (genDataPointerGet): fixed number of bytes read,
2698           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
2699           (genPointerGet,genPointerSet): fixed handling of __code pointers,
2700             pointers to constant data are no longer assumed to point to __code
2701             space, removed invalid pointer types,
2702           (bitpatternFromVal): retrieve the PICs representation of an integer
2703             or float literal,
2704           (genDataPointerSet): fixed assigning to po_immediate operands,
2705           (genGenPointerSet): implemented as library call,
2706           (genIfx): fixed incorrect condition,
2707           (genAddrOf): limit generic pointers' addresses to 2 bytes,
2708             provide GPOINTER tag according to destination's storage class,
2709           (genCast): added code to handle casting to generic pointers, added
2710             sign-/zero extension of the result
2711           (aop_isLitLike,op_isLitLike): fixed handling of immediates
2712         * src/pic/gen.h: added macros to access IRP bit in STATUS register
2713         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
2714           extend the result
2715         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
2716           address/register resides in the shared banks
2717           (emitSymbolToFile): improved to handle global and `pinned' symbols,
2718             put all variables into separate sections (have the linker arrange
2719             them)
2720           (picglue): put init code and interrupt handlers in separate sections
2721         * src/pic/main.c: added port specific options table, modified to PORT
2722           structure to make GPOINTERs 3 byte, added pic14_options
2723           (_pic14_do_link): private linking routine (update paths to libraries,
2724             add libsdcc.lib by default)
2725         * src/pic/main.h: declare pic14_options
2726         * src/pic/pcode.c: fixed instructions i/o relations,
2727           (RegCond): reverted to correct version,
2728           (newpCodeOpLit): truncate literals to 8 bit,
2729           (genericPrint): added debug output,
2730           (getRegFromInstruction): fixed for various operand types, simplified
2731           (BuildFlow): fixed broken handling of isntructions with labels
2732           (LinkFlow): start at last instruction in flow (skip trailing comments),
2733             pass the flow on to the next instruction after CALL
2734           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
2735           (insertPCodeInstruction): fixed inserting after a skip instruction,
2736           (DoBankSelect): fixed for labeled instructions
2737           (OptimizepBlock): honor --nopeep switch
2738           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
2739         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
2740         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
2741           (pCodeOptime2pCodes): allow disabling this optimization via
2742             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
2743             but is still buggy), started implementation of a dataflow based
2744             pCode optimization (CSE + dead code elimination)
2745           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
2746         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
2747           names are independant of the stack location and therefore portable across
2748           devices
2749
2750 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2751
2752         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
2753           (selectSpil): fixed bug 1337835 by not spilling bit variables
2754         * support/regression/tests/bug1337835.c: added test for this bug
2755         * src/mcs51/peeph.def: restart after rule 3.c,
2756           addded rules 263.x to optimize loading constants
2757
2758 2005-10-26 Raphael Neider <rneider AT web.de>
2759
2760         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
2761         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
2762           (genAssign): emit warning when casting literals to generic pointer
2763             type, also applies when taking the address of a fixed variable,
2764           (genCast): improved casting to generic pointers
2765         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
2766           extern variables, added verbose error message
2767         * device/include/pic16/{string.h,errno.h}: added #pragma library c
2768
2769 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
2770
2771         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
2772         carry must be complemented too
2773         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
2774         could be emitted by genMinus
2775         * src/SDCCval.c (constVal): fixed bug 1305065
2776
2777 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
2778
2779         * src/SDCCast.c (addCast): added promotion for bit variables
2780         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
2781         promotion casts + optimisation
2782         (optimizeGetWord): fix warning 'i' might be used uninitialized
2783         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
2784         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
2785
2786 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
2787
2788         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
2789         all chars are promoted to int; promotion should be handled in SDCCast.c
2790
2791 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2792
2793         * device/lib/_strcmp.c: Fixed bug 1326457
2794
2795 2005-10-11 Raphael Neider <rneider AT web.de>
2796
2797         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
2798         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
2799
2800 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
2801
2802         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
2803         * support/regression/tests/sfr16.c: added test for the sfr32 bug
2804
2805 2005-10-04 Raphael Neider <rneider AT web.de>
2806
2807         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
2808           device/lib/pic16/pics.all: added pic18f1320
2809         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
2810
2811 2005-09-30 Raphael Neider <rneider AT web.de>
2812
2813         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
2814         * src/pic16/devices.inc: NEW, provides device descriptions
2815         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
2816
2817 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2818
2819         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
2820           GETHBIT
2821
2822 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
2823
2824         * doc/sdccman.lyx: updated Highest Order Bit documentation,
2825           documented Any Order Bit, Higher Order Byte and Higher Order Word
2826         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
2827         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
2828           (optimizeGetAbit): new, to get any bit, not only the high bit,
2829           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
2830           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
2831           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
2832           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
2833             RIGHT_OP: also try GETBYTE, GETWORD optimization,
2834             GETABIT, GETBYTE, GETWORD: decorate them,
2835           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
2836           (ast_print): added GETABIT, GETBYTE, GETWORD
2837         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
2838         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
2839           (geniCodeBinary): new generic binary icode,
2840           (ast2iCode): added GETABIT, GETBYTE, GETWORD
2841         * src/port.h: updated comment for PORT.hasExtBitOp
2842         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
2843           (genGetByte): new, to get a single byte,
2844           (genGetWord): new, to get a word from a long,
2845           (gen51Code): added GETABIT, GETBYTE, GETWORD
2846         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
2847
2848 2005-09-23 Raphael Neider <rneider AT web.de>
2849
2850         * configure.in, configure: have device/lib/pic configured
2851         * device/lib/Makefile.in: added model-pic14
2852         * device/lib/clean.mk: added pic/ to clean rule
2853         * device/lib/pic: added rudimentary pic14 library providing support
2854           functions for multiplication/division/generic pointer access
2855         * src/SDCCopt.c (convilong): mark support functions as extern
2856           for pic14 port as well
2857         * src/pic/gen.c (genMult): added assertions,
2858           (genpic14Code): emit warning on unhandled iCodes
2859         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
2860         * src/pic/pcode.c (pCodeOpCopy),
2861         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
2862           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
2863           SFR_REGISTER}), made safe for future extensions
2864         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
2865           instructions even if preceeded by SKIP instructions (also remove
2866           them); removed unused code
2867         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
2868           prevents leaving parts of the structure uninitialized after copying
2869
2870 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
2871
2872         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
2873           ago by me
2874         * support/regression/tests/addsub.c: added test for the bug
2875
2876 2005-09-21 Raphael Neider <rneider AT web.de>
2877
2878         * device/include/pic16/pic18f1220.h,
2879           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
2880         * device/lib/pic16/Makefile.rules: added missing opening paren
2881         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
2882           are provided in genutils.c,
2883           (genUminusFloat,genUminus,genCmpEq): added asserts on different
2884           operand/result sizes,
2885           (genCmp): assert on NULL pointers first, then check deref'ed values
2886         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
2887           result size
2888
2889 2005-09-18 Raphael Neider <rneider AT web.de>
2890
2891         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
2892           as these are now unused,
2893           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
2894         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
2895           local, avoids uninitialized pointer dereference on r->name
2896         * src/pic16/ralloc.c (newReg): fixed indentation
2897
2898 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
2899
2900         * src/SDCCval.c (constVal): fixed bug 730366
2901         * support/Util/SDCCerr.c,
2902         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
2903
2904 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2905
2906         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
2907
2908 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
2909
2910         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
2911
2912 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
2913
2914         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
2915           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2916         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
2917           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2918         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
2919         * packihx/packihx.c (hexDigit): made c unsigned char
2920         * as/mcs51/lklibr.c (fndsym),
2921         * link/z80/lkgb.c (gb),
2922         * link/z80/lklibr.c (fndsym),
2923         * link/z80/lkrloc.c (relr),
2924         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
2925         * src/SDCC.lex (checkCurrFile, process_pragma),
2926         * src/SDCCglue.c (spacesToUnderscores),
2927         * src/SDCCmain.c (setParseWithComma, processFile),
2928         * src/asm.c (tvsprintf, printCLine),
2929         * src/avr/gen.c (emitcode, aopPut),
2930         * src/ds390/gen.c (emitcode),
2931         * src/hc08/gen.c (emitcode, emitinline),
2932         * src/mcs51/gen.c (emitcode, genInline),
2933         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2934           tokenizeLineNode),
2935         * src/pic/ralloc.c (debugLog),
2936         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2937           tokenizeLineNode),
2938         * src/pic16/ralloc.c (debugLog),
2939         * src/z80/main.c (_process_pragma):
2940            made all ctype.h function calls safe
2941         * src/SDCCopt.c: include math.h for fabs
2942         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
2943           and used them throughout the code to make ctype.h function calls safe
2944         * src/ds390/main.c (asmLineNodeFromLineNode),
2945         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
2946         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
2947            unsigned char*
2948         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
2949           (newpCodeAsmDir): made ctype.h function calls safe
2950         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
2951           pic16_emitcode):  made lbp unsigned char*
2952         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
2953           (pic16_newpCodeAsmDir): made ctype.h function calls safe
2954         * src/xa51/gen.c (emitcode),
2955         * src/z80/gen.c (_emit2): made lbp unsigned char*
2956         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
2957            char*
2958
2959 2005-09-05 Raphael Neider <rneider AT web.de>
2960
2961         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
2962           access bank splitpoint
2963
2964 2005-09-05 Raphael Neider <rneider AT web.de>
2965
2966         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
2967
2968 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
2969
2970         * .version: changed to version 2.5.3
2971         * doc/sdccman.lyx: changed version to 2.5.3,
2972           documented --codeseg and --constseg and pragma codeseg and constseg,
2973           documented bit parameters (reentrant) and bit returning
2974         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
2975            currFunc->recvSize, but is this ok for all ports?
2976           (ast2iCode): result of ~ on unsigned char must be cast to int for
2977            bool to work
2978         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
2979           function pointers in bit space
2980         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
2981           (processFuncArgs): call port.reg_parm() with reentrancy info
2982         * src/port.h,
2983         * src/avr/main.c,
2984         * src/ds390/main.c,
2985         * src/hc08/main.c,
2986         * src/pic/main.c,
2987         * src/pic16/main.c,
2988         * src/xa51/main.c,
2989         * src/z80/main.c: port.reg_parm prototype extended with
2990           "bool reentrant" parameter
2991         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
2992           options.stackAuto for allocating bit register parameters
2993         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
2994           (genSend): set BitBankUsed if it is,
2995           (selectRegBank): factored out of genCall for use in genPcall,
2996           (genCall): removed redundant dtype assignmen, use selectRegBank,
2997           (genPcall): handle returning in Carry properly, save in F0 if needed,
2998           (genReceive): handle bit register parameters
2999         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
3000           (mcs51_assignRegisters): enable bit registers for all reentrant
3001            functions and don't set BitBankUsed unconditionally
3002         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
3003         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
3004         * support/regression/tests/funptrs.c: added tests for BOOL and for return
3005
3006 2005-08-27 Borut Razem <borut.razem AT siol.net>
3007
3008         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
3009         ppc-osx (Darwin) does not support -u option. It seems that it is
3010         supported only on Linux - GNU cp
3011
3012 2005-08-25 Borut Razem <borut.razem AT siol.net>
3013
3014         * sim/ucsim/gui.src/serio.src/Makefile.in,
3015           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
3016           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3017           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
3018           install and strip, since the strip at /usr/ccs/bin should be used
3019           on solaris
3020
3021 2005-08-24 Borut Razem <borut.razem AT siol.net>
3022
3023         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
3024
3025 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
3026
3027         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
3028         ffffffffu
3029
3030 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
3031
3032         * as/mcs51/aslink.h: completed lkrloc.c prototypes
3033         * as/mcs51/lkmain.c (link_main): fixed warning
3034         * device/include/stdbool.h: ds390 has no advanced bit support yet
3035         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
3036         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
3037         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
3038           and updated their macros
3039         * src/SDCCval.c (constVal): updated comment for renamed b_long
3040
3041 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
3042
3043         * as/mcs51/asdata.c: changed ctype['['] to BINOP
3044         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
3045           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
3046           (oprio): set priority for '['
3047         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
3048            and adb_24_bit
3049         * as/mcs51/asm.h: added defines R_BIT and S_BIT
3050         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
3051         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
3052         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
3053           added overlayable BIT_BANK area
3054         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
3055           (summary2): explain 'T' in legenda
3056         * as/mcs51/lkrloc.c: replaced old K&R style,
3057           (relr): added R_BIT processing,
3058           (errmsg): added "Bit-addressable relocation error",
3059           (adb_bit): added for converting from byte- to bit-addressable space,
3060           (adb_24_bit): added for converting from byte- to bit-addressable space
3061         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
3062            used in reentrant functions now even as return value
3063         * device/lib/_gptrput.c (_gptrput): removed obsolete code
3064         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
3065           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
3066         * src/SDCCglobl.h: added indicator BitBankUsed
3067         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
3068            the bit registers b0-b7
3069         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
3070           (geniCodeCast): fixed bug 1263853,
3071           (geniCodeLogicAndOr): put result in bool or char,
3072           (geniCodeReceive): added parameter func for accessing the return type,
3073           (geniCodeFunctionBody): pass func to geniCodeReceive
3074         * src/SDCCmain.c: added indicator BitBankUsed
3075         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
3076         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
3077           (checkSClass): don't put automatic bool/bit on stack,
3078           (checkFunction): removed check on function cannot return bit
3079         * src/SDCCsymt.h: added newBoolLink prototype
3080         * src/mcs51/gen.c (rb1regs): added bit registers,
3081           (movc): created for assigning to carry,
3082           (pushReg, popReg): created for pushing registers,
3083           (sameRegs): check both AOP_REG and AOP_CRY types,
3084           (aopOp): handle bit registers,
3085           (aopPut): optimization no self-assign,
3086           (saveRegisters): push reg->base (bits) only once for bit registers,
3087            and use pushReg,
3088           (unsaveRegisters): pop reg->base only once and use popReg,
3089           (assignResultValue): added parameter func and return in carry for bits,
3090           (genIpush): optimization no reload in A if not changed,
3091           (genSend): bit parameters in reentrant functions are passed in bit
3092            registers by first assigning to bits in B, then save registers and
3093            copy B to bits,
3094           (genCall): handle returning in Carry properly, save it in F0 if needed,
3095           (genPcall): updated assignResultValue call, this is not safe yet for bit
3096            returning function !!!
3097           (genFunction): don't generate equ's for bit registers and use pushReg,
3098           (genEndFunction): take care of bit returning functions and use popReg,
3099           (genRet): return bit in Carry,
3100           (genIfx): optimize bit registers and other directly addressable bits,
3101           (genReceive): updated assignResultValue call
3102         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
3103           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
3104            registers when using stack-auto
3105         * src/mcs51/ralloc.c (_G): added allBitregs,
3106           (regs8051): added the bit registers,
3107           (createStackSpil): use macro IS_BIT,
3108           (getRegBit): added to allocate a bit register, else spill,
3109           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
3110           (updateRegUsage): factored out to ease stepping while debugging,
3111           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
3112            also allocate bit registers,
3113           (fillGaps): handle bit registers,
3114           (findAllBitregs): added to create bit vector with all bit registers,
3115           (mcs51_allBitregs): returns this bit vector,
3116           (mcs51_assignRegisters): when using stack-auto use bit registers for
3117            passing parameters and creating local variables
3118         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
3119
3120 2005-08-22 Borut Razem <borut.razem AT siol.net>
3121
3122         * device/lib/Makefile.in: replaced find option -or with -o
3123           to make it run on solaris
3124
3125 2005-08-22 Raphael Neider <rneider AT web.de>
3126
3127         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
3128           fixes #1265442 (crash on Solaris)
3129
3130 2005-08-20 Borut Razem <borut.razem AT siol.net>
3131
3132         * configure, configure.in: added tests for libsocket and libnsl libraries,
3133           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
3134           from support/regression/Makefile.in
3135         * support/regression/Makefile.in: added
3136         * device/lib/pic16/Makefile.common.in: force make to use bash shell
3137         * sim/ucsim/libtool: regenerated on sparc-solaris
3138         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3139           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
3140           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
3141           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
3142           sparc-solaris, which doesn't use GNU ld linker
3143         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
3144         * as/Makefile: find on sparc-solaris does not support -maxdepth option
3145
3146 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
3147
3148         * src/mcs51/peeph.def: updated comments
3149
3150 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3151
3152         * device/lib/_gptrget.c,
3153         * device/lib/_gptrput.c: slightly shorter
3154         * doc/sdccman.lyx: incremented version
3155         * src/mcs51/peeph.def: moved peephole comments to the line of first
3156           change to better keep line correlation, reanimated 186.e
3157         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
3158
3159 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3160
3161         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
3162           David Saxton with quotes around file name.
3163
3164 2005-08-15 Borut Razem <borut.razem AT siol.net>
3165
3166         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
3167           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
3168           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
3169           make tests run on x86_64 platform
3170
3171 2005-08-13 Raphael Neider <rneider AT web.de>
3172
3173         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
3174           as it might be executed DURING a build (parallel make is wonderful)
3175
3176 2005-08-13 Raphael Neider <rneider AT web.de>
3177
3178         * device/lib/Makefile.in (port-specific-objects-pic16):
3179           revert to cp $(PORT)/bin/*.* $(PORTDIR)
3180         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
3181           dependency
3182         * device/lib/pic16/Makefile.rules: build subdirs before creating
3183           the library, removed builddir rule, create $(builddir) early in
3184           recurse rule, use empty recurse rule for leaf directories
3185         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
3186           mkdir errors (race condition), removed duplicate suffix "hex"
3187           from clean rules
3188         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
3189         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
3190           prevents mkdir -p from aborting on Alpha
3191
3192 2005-08-12 Raphael Neider <rneider AT web.de>
3193
3194         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
3195           db-statements in order to allow for arrays of pointers in code
3196           sections to be placed without interspersed 0-padding, fixes
3197           bug #1256215
3198         * (emitStatistics): fixed division by zero for pic18f1220
3199         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
3200           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
3201         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
3202         * (pic16_pCodeConstString): keep track of already emitted string
3203           literals to prevent "duplicate definitions of symbol _str_NR"
3204         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
3205           debug message
3206         * device/lib/Makefile.in: ignore failing PIC16 library builds
3207         * device/lib/pic16/Makefile: do not build if gputils are missing
3208         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
3209
3210 2005-08-10 Raphael Neider <rneider AT web.de>
3211
3212         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
3213           my last commit)
3214
3215 2005-08-10 Raphael Neider <rneider AT web.de>
3216
3217         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
3218           Rokas' patch to add the new fixed point type "__fixed16x16"
3219         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
3220           functions for __fixed16x16 arithmetics
3221         * device/lib/pic16: reimplemented the build system to support
3222           a separate build directory, better handling of libio (create
3223           the library in a separate subdir for each architecture) and
3224           easier configuration (centralized in Makefile.common)
3225
3226 2005-08-07 Raphael Neider <rneider AT web.de>
3227
3228         * src/pic16/gen.c (genrshTwo): fixed sign extension
3229         * src/pic16/device.c: added pic18f2320, 4220 and 4320
3230         * device/include/pic16/pic18f2220.h: changed some bit definitions,
3231           added T0CONbits
3232         * device/include/pic16/pic18f4220.h: NEW, header for
3233           pic18f4220 and pic18f4320
3234         * device/include/pic16/pic18fregs.h: added new devices,
3235           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
3236         * device/include/pic16/signal.h: resolved name clashes
3237           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
3238           to also allow testing for interrupt enable bits, added
3239           comments on how to use the macros
3240         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
3241         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
3242           register definitions for the devices
3243         * device/lib/pic16/pics.all: added new devices
3244         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
3245           allocated memory
3246         * device/lib/pic16/libc/stdlib/memfree: do not count
3247           the block header as free memory
3248         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
3249           simplified and added missing end-of-blocklist-marker
3250           (reported by Peter Onion, fixes #1252814)
3251         * (_mergeHeapBlock): fixed loop condition
3252         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
3253           len==0, restructured code
3254         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
3255           up a bit, reduced bitfield accesses, prevent endless loops
3256           in case of heap corruption
3257         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
3258           "unreferenced arguments/must return a value" warnings
3259         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
3260           replaced BAUDREG with SPBRG
3261         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
3262           device/lib/pic16/debug/gstack/gstack.c: replaced
3263           _naked, _asm, _endasm with __naked, __asm, __endasm
3264
3265 2005-08-05 Raphael Neider <rneider AT web.de>
3266
3267         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
3268           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
3269
3270 2005-08-05 Borut Razem <borut.razem AT siol.net>
3271
3272         * device/lib/Makefile.in: added missing ';'
3273         * configure: removed ^M characters
3274
3275 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3276
3277         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
3278           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
3279           License
3280
3281 2005-08-04 Borut Razem <borut.razem AT siol.net>
3282
3283         * configure.in: pic16 libraries build 2nd try - enable running
3284           configure in device/lib/pic16
3285         * configure: regenerated from configure.in
3286         * device/lib/Makefile.in: create $(PORT)/bin directory
3287
3288 2005-08-03 Raphael Neider <rneider AT web.de>
3289
3290         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
3291           to get/set values via pointers
3292         * (genUnpackBits,genPackBits): changed detection of
3293           ptr->bitfield vs. sym.bitfield, fixed access via generic
3294           pointers, removed dead (wrong) code for multibyte bitfields
3295         * (genNearPointerGet, genGenPointerGet): removed useless code,
3296           fixed bitfield detection, fixes #1250594
3297         * (genNearPointerSet): removed useless code
3298         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
3299           and introduced macro pic16_emitpcode that conditionally emits
3300           the origin of the following pCode (useful for debugging SDCC)
3301         * src/pic16/pcode.c: changed (and disabled) some debug outputs
3302         * (createDefmap): fixed handling of LFSR for --optimize-df
3303
3304 2005-08-02 Borut Razem <borut.razem AT siol.net>
3305
3306         * device/lib/Makefile.in: pic16 libraries build enabled since
3307           gputils-0.13.2 are now localy installed at sourceforge's compile farm
3308
3309 2005-08-02 Raphael Neider <rneider AT web.de>
3310
3311         * src/pic16/gen.c (genPackBits): removed deprecated warning
3312         * (genGenPointerSet): fixed bitfield detection
3313
3314 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3315
3316         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
3317
3318 2005-07-31 Raphael Neider <rneider AT web.de>
3319
3320         * device/lib/pic16/libdev/pic18f458.c,
3321           device/include/pic16/pic18f458.h: added missing T0CONbits
3322
3323 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3324
3325         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
3326
3327 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
3328
3329         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
3330
3331 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3332
3333         * device/include/mcs51/at89c51ed2.h: added.
3334
3335 2005-07-23 Raphael Neider <rneider AT web.de>
3336
3337         * src/pic/gen.h: added emitpcode macro for debugging
3338         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
3339           and replace by macro adding debug information on demand
3340         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
3341         * (gencjne): tried to fix; replaced with correct (slower) code
3342         * (gen{Unp,P}ackBits): fixed single bit access
3343         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
3344         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
3345           previous instruction
3346         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
3347           register has to be handled with care (forbidding movement
3348           of assignments/uses, removing assignments completely, ...)
3349         * (pCodeOptime2pCodes): make use of regIsSpecial
3350         * added lots of debugging output (commented out)
3351         * src/pic/rallloc.c (deassignLRs): prevent operand registers
3352           from being reused as result UNLESS it is known to work
3353
3354 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3355
3356         * support/Util/dbuf.h: include <stddef.h> for size_t
3357         * .version: changed to version 2.5.2
3358
3359 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3360
3361         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
3362
3363 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3364
3365         * src/hc08/gen.c (genMinus): fixed bug #1241835,
3366           (genModOneByte): removed needless psha/pula
3367
3368 2005-07-22 Raphael Neider <rneider AT web.de>
3369
3370         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
3371           have PIC14 handled like PIC16, fixes broken pic14 linker calls
3372         * src/pic/gen.c (resolveIfx): do not "invent" labels
3373         * (genSkipc): changed to positive logic
3374         * (genSkipCond): removed as no longer needed
3375         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
3376           backport from PIC16
3377         * (genLeftShift): check operands are in different registers
3378         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
3379           INCF does not update CARRY...
3380         * src/pic/main.c: fixed _linkCmd
3381         * src/pic/pcode.c (unlinkpCode): added inactive code
3382         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
3383           alive (do not assign result and operand overlapping registers)
3384
3385 2005-07-22 Raphael Neider <rneider AT web.de>
3386
3387         * src/pic/device.c (dump_sfr): replaced register declaration with
3388           call to emitSymbolToFile() to avoid duplicate symbols
3389         * (assignRelocatableRegisters): do not declare external symbols
3390         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
3391           right (take size of type, not etype)
3392         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
3393         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
3394         * (packRegsForAccUse): disabled assignment of WREG as
3395           the result reg to prevent occurence of just fixed #1235003,
3396           fixes #1242954
3397         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
3398           symbols (avoids duplicate symbols in .asm file)
3399         * (pic14emitRegularMap): use emitSymbolToFile()
3400         * src/pic/gen.c (aopOp): fixed spillLocation handling
3401         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
3402         * (genDataPointerSet): removed unneccessary variables/output
3403
3404 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
3405
3406         * as/mcs51/lkarea.c: enlarged codemap for banked memory
3407         * device/lib/mcs51/crtbank.asm: added # to 0x0F
3408
3409 2005-07-21 Raphael Neider <rneider AT web.de>
3410
3411         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
3412           architecture cannot handle them efficiently, fixes bug #1235003
3413         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
3414           check for empty sets before using them (fixes bug #1232190)
3415
3416 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
3417
3418         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
3419           (lnksect2): generate warnings for memory overlap
3420         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
3421           constseg to set the name of these segments so you can instruct the linker
3422           to place them in banks
3423         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
3424         * src/SDCCglobl.h: added MODEL_HUGE to enum,
3425           added code_seg and const_seg to options
3426         * src/SDCCglue.c (emitMaps): use options.const_seg,
3427           (createInterruptVect): put interrupt vectors in segment HOME,
3428           (glue): put HOME before static segment and put the main glue in HOME,
3429           (glue): use options.code_seg
3430         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
3431         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
3432           these segments so you can instruct the linker to place them in banks
3433           (linkEdit): use code_loc for HOME segment which should be the first
3434           segment in code memory now
3435         * src/SDCCmem.c: fixed more stuff like bug 1238386
3436         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
3437           (changePointer): don't change function pointers to code pointers for
3438           banked functions,
3439           (compareType): added exceptional check for banked function pointers
3440         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
3441         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
3442           after static in code memory
3443         * src/mcs51/gen.c: added aopLiteralLong prototype,
3444           (aopForSym): use getSize for functions,
3445           (genCall): generate banked calls over one trampoline __sdcc_banked_call
3446           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
3447           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
3448           the segment,
3449           (genPcall): use call for literal function pointers and generate banked
3450           calls over the one trampoline so there's only one place for the user to
3451           modify according to his/hers hardware,
3452           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
3453           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
3454         * src/mcs51/main.c: added keyword banked,
3455           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
3456         * support/Util/SDCCerr.c,
3457         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
3458           needed for passing the bank and address to the trampoline
3459         * device/lib/mcs51/crtbank.asm: added for bankswitching
3460         * device/lib/mcs51/Makefile: added crtbank
3461
3462 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3463
3464         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
3465           for fields at offset 0 of a struct or union as reported
3466           on 2005-07-07 in the developer mailing list.
3467
3468 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
3469
3470         * src/SDCCmem.c: fixed bug 1238386
3471
3472 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3473
3474         * src/mcs51/peeph.def: added labelrefcounting for peepholes
3475           (patch #1144962), added peephole 300, enabled 259.x
3476         * doc/sdccman.lyx: removed screenshot and provided link instead
3477
3478 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3479
3480         * doc/sdccman.lyx: added section about debugging with ddd
3481         * doc/figures/ddd_example.eps: screenshot of debugging session
3482
3483 2005-07-04 Raphael Neider <rneider AT web.de>
3484
3485         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
3486           like CODE pointers, fixes #1115683
3487         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
3488           call, fixes bugs #1232211, #1228110,
3489           fixed wrong casts to pCodeFlow from pCodeInstructions
3490
3491 2005-07-04 Raphael Neider <rneider AT web.de>
3492
3493         * src/pic/gen.c (popGet): changed assert to allow for
3494           bit operands
3495         * (popGetAddr): changed signature to provide
3496           an additional index, patched all call sites
3497         * (genCmpEq): handle literal-like operands correctly
3498         * (genAddrOf): added sanity checks on __code/__data pointers
3499         * (genAssign): added handling of symbols from __code section
3500         * (gencjne): do not generate code for comparisons whose result
3501           is neither stored nor used, fixes bug #1171114
3502         * (AccLsh, AccRsh): operate on operand instead of WREG
3503         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
3504           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
3505           by known count
3506         * rewrote complete shift-by-literal logic, commented unused
3507           functions out
3508         * (genConstPointerGet): get multiple bytes (if result size > 1),
3509           fixed handling of non-immediate addresses
3510         * (genPointerGet): handle CODE pointers like CONST pointers
3511         * (genpic14Code): insert C-SRC lines as Cource-pCodes
3512         * ({aop,op}_isLitLike): NEW, single place to decide whether an
3513           operand is to be treated as a literal or not
3514         * (mov2w,genPcall,genCmpEq),
3515           src/pic/genarith.c: use aop_isLitLike() to decide between
3516           literal/register contents
3517         * (addSign): added missing offset
3518         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
3519           only emit comment in debug-mode,
3520           use {aop,op}_isLitLike throughout the file
3521         * src/pic/glue.c: fix initializers for pointers (work in progress)
3522         * src/pic/pcode.c (get_op): honor index on _const symbols
3523         * ({reset,dump}pCodeStatistics): NEW, estimate code size
3524         * (dumppBlock): added pCode size estimation
3525         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
3526           check for IS_SYMOP before OP_SYMBOL'ing
3527         * fixed indentation, compacted switch-statements
3528         * (allocReg): find free register and allocate it instead of
3529           allocating new registers all the time
3530         * (deassignLRs): prevent POINTER_GET's from being assigned the same
3531           registers as its operands (necessary only for multibyte GETs)
3532
3533 2005-07-01 Raphael Neider <rneider AT web.de>
3534
3535         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
3536           debugging .asm-output macros FENTRY + FEXIT
3537         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
3538           way... I wonder...
3539         * (emitpComment): NEW, printf to pCode
3540         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
3541           offset handling
3542         * (popGetAddr): NEW, variant of popGet to access an immediates
3543           high(er) bytes instead of the n'th byte of memory they reference,
3544           replaced popGet with popGetAddr where neccessary
3545         * (genDataPointerGet): reactivated and fixed implementation
3546         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
3547           accesses
3548         * (genDataPointerSet): fixed multibyte assignments
3549         * (genpic14Code): fixed --i-code-in-asm handling
3550         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
3551         * (genPlus): fixed index-out-of-bounds error
3552         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
3553         * src/pic/ralloc.c: added debugging output macro FENTRY2
3554         * (spillThis): fixed indentation, enbraced for-body for clarity
3555         * (rematStr): commented out as now unused
3556         * (regTypeNum): commented out special spill case (overwrites
3557           arbitrary values)
3558         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
3559
3560 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
3561
3562         * doc/sdccman.lyx: documented sfr16/sfr32,
3563           added example for using storage class with function pointers
3564         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
3565
3566 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
3567
3568         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
3569         * device/lib/_itoa.c,
3570         * device/lib/_ltoa.c: optimized codesize
3571         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
3572           but don't know how to suppress the double warning.
3573         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
3574         * support/Util/SDCCerr.c,
3575         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
3576
3577 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
3578
3579         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
3580           fixed old K&R prototypes
3581         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
3582         * device/lib/_gptrget.c,
3583         * device/lib/_gptrgetc.c,
3584         * device/lib/_gptrput.c: changed versions for new memory indicator values,
3585           also new versions for small generic pointers and banked generic pointers
3586         * src/port.h: added const_name
3587         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
3588         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
3589         * src/SDCCcse.c (findPrevIc): check all associative operators
3590         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
3591         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
3592         * src/SDCCmem.c: updated comments,
3593           set far-space to 0 for pdata, results in optimized code
3594         * src/SDCCmem.h: added macro CONST_NAME
3595         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
3596           moving the info into the highest bits, see also gptrget/gptrput
3597         * src/src.dsp: added sdcc.ico to project files
3598         * src/avr/gen.c (genCast): fixed bug 0x%d
3599         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
3600         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
3601           relation between ptr_type and DCL_TYPE,
3602           (genCast): fixed bug 0x%d
3603         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
3604           (CODE)" for const_name
3605         * src/hc08/gen.c (genCast): fixed bug 0x%d
3606         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
3607           (hc08_port): added "CONST (CODE)" for const_name
3608         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
3609           (aopForRemat, adjustArithmeticResult): disconnected direct relation
3610           between ptr_type and DCL_TYPE,
3611           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
3612           operand* and took AOP() inside function so sfr-ness can be checked,
3613           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
3614           new prototype,
3615           (genFunction, genEndFunction): optimized stack setup,
3616           (genMinus): optimized for literals with ending zeroes (in bytes),
3617           (genCast): fixed bug 0x%d
3618         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
3619           (mcs51_port): added "CONST (CODE)" for const_name
3620         * src/mcs51/peeph.def: made rule 226 more generic
3621         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
3622         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
3623         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
3624         * src/z80/main.c (z80_port): added NULL for const_name,
3625           (gbz80_port): added NULL for const_name
3626         * support/regression/tests/bug663539.c,
3627         * support/regression/tests/sfr16.c: new tests
3628
3629 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3630
3631         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
3632
3633 2005-06-24 Raphael Neider <rneider AT web.de>
3634
3635         * device/lib/pic16/libdev/pic18f[68][567]20.c:
3636           corrected typos...
3637         * device/include/pic16/signal.h: added USBIF
3638           and SIG_USB
3639
3640 2005-06-24 Raphael Neider <rneider AT web.de>
3641
3642         * device/lib/pic16/libdev/pic18f2455.c,
3643           device/include/pic16/pic18f2455.h: NEW
3644         * device/include/pic16/pic18fregs.h,
3645           device/lib/pic16/pics.all,
3646           src/pic16/device.c: added 18f2455
3647         * device/lib/pic16/libdev/pic18f[68][567]20.c,
3648           device/include/pic16/{pic18f[68][567].h,usart.h}:
3649           replaced MULTIPLE_USARTS define with more relaible
3650           compatibility sfrs (for USART access)
3651
3652 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
3653
3654         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
3655           and the output asm file line is printed on two lines.
3656
3657 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3658
3659         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
3660           BGT, BLE, BHI, and BLS instructions
3661         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
3662           genCmpEq): removed
3663         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
3664           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
3665           fixes bug #1216342
3666         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
3667
3668 2005-06-15 Raphael Neider <rneider AT web.de>
3669
3670         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
3671         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
3672         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
3673           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
3674           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
3675
3676 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3677
3678         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
3679           Marcel Telka in bug #1215704
3680
3681 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
3682
3683         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
3684           located in shared memory bank.
3685
3686 2005-05-31 Raphael Neider <rneider AT web.de>
3687
3688         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
3689           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
3690           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
3691
3692 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
3693
3694         * device/lib/_strncpy.c: fixed the fix
3695
3696 2005-05-26 Raphael Neider <rneider AT web.de>
3697
3698         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
3699           initializers with \0, bug #1208187
3700         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
3701           intializers with \0, bug #1208187
3702
3703 2005-05-26 Raphael Neider <rneider AT web.de>
3704
3705         * src/pic16/glue.c (pic16_printIvalChar): fixed string
3706           initializers with \0, bug #1208187
3707         * src/pic16/main.c (_process_pragma): added sanity checks
3708           for stack position and size, emit warnings when appropriate
3709
3710 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3711
3712         * device/lib/_strncpy.c: fixed not filling with \0
3713
3714 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3715
3716         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
3717           createFunction),
3718         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
3719           compound_statement),
3720         * src/SDCCsymt.h,
3721         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
3722
3723 2005-05-24 Raphael Neider <rneider AT web.de>
3724
3725         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
3726
3727 2005-05-24 Raphael Neider <rneider AT web.de>
3728
3729         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
3730           TRISE definitions, closes bug #1162453
3731
3732 2005-05-22 Raphael Neider <rneider AT web.de>
3733
3734         * src/pic16/main.c (_process_pragma): check for missing
3735           arguments to pragmas code and udata
3736         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
3737           consistency fixes to match other headers (thanks to Jim Paris)
3738         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
3739
3740 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3741
3742         * src/SDCCicode.c (isOperandEqual): fixed missing ;
3743
3744 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
3745
3746         * support/regression/tests/bug1198642.c: new test
3747         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
3748         * src/SDCCcse.c (findPrevIc): added comment, please have a look
3749         * support/scripts/resource.h,
3750         * support/scripts/resource.rc,
3751         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
3752         * support/scripts/sdcc.ico: added 32x32 icon
3753
3754 2005-05-18 Raphael Neider <rneider AT web.de>
3755
3756         * device/lib/pic16/libdev/pic18f*.c,
3757         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
3758           keywords to "__sfr" and "__at (X)"
3759         * device/include/pic16/pic18fregs.h: added pic18f4520
3760         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
3761           #1203088 (MPLAB compatibility)
3762
3763 2005-05-17 Raphael Neider <rneider AT web.de>
3764
3765         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
3766         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
3767         * device/lib/pic16/pics.all: added new devices
3768         * src/pic16/device.c: added support for pic18f4520
3769
3770 2005-05-16 Raphael Neider <rneider AT web.de>
3771         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
3772         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
3773         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
3774           convenience function for bit access
3775
3776 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3777
3778         * device/lib/printf_large.c: fixed bug 1193299
3779         * support/regression/tests/bug1057979.c: added test %3.3s
3780
3781 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3782
3783         * device/include/mcs51/8051.h,
3784         * device/include/mcs51/8052.h: made parseable with lint
3785         * device/include/mcs51/lint.h: added include file for (sp)lint
3786         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
3787         * doc/cdbfileformat.lyx,
3788         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
3789
3790 2005-05-14 Raphael Neider <rneider AT web.de>
3791
3792         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
3793         * device/lib/pic16/libc/stdlib/itoa.c (new)
3794         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
3795         * device/lib/pic16/libio/Makefile: exclude subdir according to
3796           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
3797         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
3798         * src/pic16/gen.c (genFunction): prevent annoying warning
3799         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
3800           nameclashes on BeOS
3801         * support/cpp2/cppmain.c (cpp_output_string): new
3802         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
3803           fixes bug 1116802
3804
3805 2005-05-13 Borut Razem <borut.razem AT siol.net>
3806
3807         * src/SDCCmain.c (linkEdit): fixed bug 1195202
3808
3809 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3810
3811         * .version: changed to version 2.5.1; back to bleeding edge development
3812
3813 2005-05-11 Borut Razem <borut.razem AT siol.net>
3814
3815         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
3816           generate PDF version 1.3 documents
3817
3818 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3819
3820         * .version: changed to version 2.5.0
3821
3822 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3823
3824         * doc/sdccman.lyx: updated weblinks, index and smaller updates
3825
3826 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3827
3828         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
3829         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
3830         well as many smaller updates.
3831         * .version: changed to version 2.5.0-pre1
3832
3833 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3834
3835         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
3836
3837 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3838
3839         * support/regression/tests/bug1185672.c: added
3840         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
3841           bug 1185672
3842         * src/mcs51/gen.c (genCall): added comments, made it look safer
3843         * src/mcs51/gen.c (genEndFunction): simplified
3844
3845 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3846
3847         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
3848
3849 2005-04-14 Borut Razem <borut.razem AT siol.net>
3850
3851         * fixed bug 1045046 - SIGSEGV with really simple code?:
3852           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
3853           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
3854
3855 2005-04-14 Borut Razem <borut.razem AT siol.net>
3856
3857         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
3858           src/pic16/device.h: temporarily disabled experimental #inline pragma
3859           for 2.5.0 release
3860
3861 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
3862
3863         * device/include/z80/stdio.h,
3864         * device/include/z80/string.h: removed these highly incomplete files so
3865           SDCC can use the default ones in device/include/
3866
3867 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3868
3869         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
3870         gcc warning.
3871         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
3872         fix sdcpp warnings.
3873
3874 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3875
3876         * device/include/malloc.h: removed redundant __reentrant prototypes
3877         * device/lib/_mullong.c: added working xstack variant in asm (C version
3878           doesn't pass regression tests)
3879         * device/lib/bpx.c: used __data and made bpx char for mcs51
3880         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
3881           (createFunction): fixed bug with xstackPtr
3882         * src/SDCCcse.c: corrected comments
3883         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
3884           (killDeadCode, eBBlockFromiCode): removed unused code
3885         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
3886           corrected comments
3887         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
3888           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
3889           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
3890           (genModOneByte): fixed warning in MSVC
3891         * src/mcs51/main.c (): added comments
3892         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
3893
3894 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3895
3896         * src/SDCCmain.c (linkEdit): oops, changed one line too many
3897
3898 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
3899
3900         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
3901
3902 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
3903
3904         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
3905         characters arrays of larger size than the declared one.
3906
3907 2005-04-10 Borut Razem <borut.razem AT siol.net>
3908
3909         * src/pic/gen.c (genInline),
3910           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
3911           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
3912           (findNextInstruction), (findPrevInstruction),
3913           (findInstructionUsingLabel),
3914           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
3915         * src/pic/pcode.c (findLabel): added missing '\n'
3916         * src/src.dsp: added SDCCdwarf2.c to the project
3917
3918 2005-04-09 Borut Razem <borut.razem AT siol.net>
3919
3920         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
3921
3922 2005-04-08 Raphael Neider <rneider AT web.de>
3923
3924         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
3925           into the chain after a given one) and mergeDefmapSymbols (combine
3926           defmap entries for each symbol per pcode)
3927         * (createDefmap): have defmap entries merged in the end
3928         * (defmapReplaceSymRef): split defmap entries covering two accesses to
3929           a symbol before replacing one access type's symbol, merge symbols in
3930           the end (replacement symbol might already have an entry)
3931         * (assignValnums): keep reference to written WREG intact
3932
3933 2005-04-08 Raphael Neider <rneider AT web.de>
3934
3935         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
3936           Alpha)
3937
3938 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
3939
3940         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
3941         bytes
3942
3943 2005-04-07 Raphael Neider <rneider AT web.de>
3944
3945         * device/include/pic16/usart.h: added compatibility defines for
3946           devices with more than one USART
3947         * device/include/pic16/pic18f[68][567]20.h: activated above defines
3948
3949 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3950
3951         * device/lib/Makefile.in: updated for port specific include
3952
3953 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3954
3955         * support/regression/ports/mcs51/spec.mk: added mcs51 include
3956
3957 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3958
3959         * device/include/8051.h,
3960         * device/include/8052.h,
3961         * device/include/at89S8252.h,
3962         * device/include/at89c55.h,
3963         * device/include/at89x051.h,
3964         * device/include/at89x51.h,
3965         * device/include/at89x52.h,
3966         * device/include/mcs51reg.h,
3967         * device/include/reg51.h,
3968         * device/include/reg764.h,
3969         * device/include/regc515c.h,
3970         * device/include/sab80515.h: (re)moved these 12 files
3971         * device/include/mcs51/8051.h,
3972         * device/include/mcs51/8052.h,
3973         * device/include/mcs51/at89S8252.h,
3974         * device/include/mcs51/at89c55.h,
3975         * device/include/mcs51/at89x051.h,
3976         * device/include/mcs51/at89x51.h,
3977         * device/include/mcs51/at89x52.h,
3978         * device/include/mcs51/mcs51reg.h,
3979         * device/include/mcs51/reg51.h,
3980         * device/include/mcs51/reg764.h,
3981         * device/include/mcs51/regc515c.h,
3982         * device/include/mcs51/sab80515.h: and added them here
3983
3984 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3985
3986         * device/include/stdarg.h: changed SDCC specific keywords to double
3987           underlined form.
3988         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
3989           mcs51 and ds390.
3990         * device/include/hc08/mc68hc908gp32.h,
3991         * device/include/hc08/mc68hc908jb8.h,
3992         * device/include/hc08/mc68hc908jkjl.h,
3993         * device/include/hc08/mc68hc908qy.h: fixed comments
3994         * device/include/mcs51/README: updated
3995         * device/include/mcs51/c8051f120.h: added PINRSF
3996         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
3997         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
3998           amidst code. Also inline is not supported.
3999
4000 2005-04-06 Raphael Neider <rneider AT web.de>
4001
4002         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
4003         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
4004           callers stack/frame pointers
4005
4006 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
4007
4008         * device/include/pic16/usart.h: added, missing in previous commit,
4009         * device/include/pic16/adc.h: fixed typo,
4010         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
4011         commit,
4012         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
4013         <p18fxxx.inc>
4014         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
4015         uninitialized because a bug appears with gplink
4016         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
4017         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
4018         complains for unrecognised option
4019
4020 2005-04-05 Raphael Neider <rneider AT web.de>
4021
4022         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
4023           structs as well (using memcpy)
4024         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
4025           on ISRs (GOTO has no label)
4026         * src/pic16/device.h: added OF_OPTIMIZE_DF
4027         * src/pic16/main.c: added compiler switch --optimize-df to enable the
4028           new data flow analysis/optimization
4029         * src/pic16/pcode.c: added (prototypes for and implementation of)
4030           dataflow analysis functions, fixed pCodeInstructions' inCond and
4031           outCond values, made RCALL a branch instruction
4032         * (pic16_unlinkpCode): keep C line if possible
4033         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
4034           C line moved if possible
4035         * (pic16_getRegFrompCodeOp): NEW, improved version of...
4036         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
4037           to use new pic16_getRegFrompCodeOp (works for more SFRs)
4038         * (pic16_BuildFlow): fixed skip instructions with label (did not start
4039           new flow)
4040         * (pic16_getJumptabpCode): NEW, needed in...
4041         * (LinkFlow): fixed handling of jumptables, calls and conditional
4042           branches
4043         * (pic16_InsertCommentAfter): NEW
4044         * (pic16_pCodeReplace): made verbose and flow preserving
4045         * (AnalyzeFlow): added call to data flow analysis
4046         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
4047         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
4048         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
4049
4050 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4051
4052         * src/SDCCast.c (decorateType): fixed bug #1105626
4053
4054 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
4055
4056         * device/include/asm/pic16/features.h,
4057         * pic18f*.h headers,
4058         * device/include/pic16/adc.h,
4059         * device/include/pic16/delay.h,
4060         * device/include/pic16/i2c.h,
4061         * device/include/pic16/malloc.h,
4062         * device/include/pic16/stdio.h,
4063         * device/include/pic16/stdlib.h,
4064         * device/include/pic16/string.h,
4065         * device/lib/pic16/libc/stdio/printf_tiny.c,
4066         * device/lib/pic16/libc/stdio/printf_small.c,
4067         * device/lib/pic16/libc/stdio/strmgpsim.c,
4068         * device/lib/pic16/libc/stdio/strmmssp.c,
4069         * device/lib/pic16/libc/stdio/strmusart.c,
4070         * device/lib/pic16/libc/stdio/vfprintf.c,
4071         * device/lib/pic16/libc/stdlib/ltoa.c,
4072         * device/lib/pic16/libc/stdlib/putchar.c,
4073         * device/lib/pic16/libc/stdlib/x_ftoa.c,
4074         * device/lib/pic16/libc/stdlib/memchrpgm.c,
4075         * device/lib/pic16/libc/stdlib/memchrram.c,
4076         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
4077         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
4078         * device/lib/pic16/libio/adc/adcbusy.c,
4079         * device/lib/pic16/libio/adc/adcread.c,
4080         * device/lib/pic16/libio/adc/adcsetch.c,
4081         * device/lib/pic16/libio/usart/ubaud.c,
4082         * device/lib/pic16/libio/usart/ubusy.c,
4083         * device/lib/pic16/libio/usart/udrdy.c,
4084         * device/lib/pic16/libio/usart/uopen.c,
4085         * device/lib/pic16/libio/usart/uputc.c,
4086         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
4087         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
4088         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
4089         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
4090         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
4091         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
4092         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
4093         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
4094         specific keywords to double underlined form,
4095         * device/lib/pic16/libc/Makefile.rules,
4096         * device/lib/pic16/libsdcc/Makefile.rules,
4097         * device/lib/pic16/libm/Makefile,
4098         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
4099         to compile with C standard set in Makefile.common
4100         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
4101         rand.c and crc.c in compilation process,
4102         * device/lib/pic16/libsdcc/int/divuint.c,
4103         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
4104         `c' from signed to unsigned,
4105         * device/lib/pic16/startup/crt0.c,
4106         * device/lib/pic16/startup/crt0i.c,
4107         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
4108         keywords to double underlined form, bug fixes in _do_cinit function
4109         which prevented the correct initialization of the .idata segment,
4110         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
4111         core to enter a infinite loop
4112         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
4113
4114 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4115
4116         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
4117
4118 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4119
4120         * device/include/Makefile.in: add support for hc08 subdirectory
4121         * device/include/hc08/: new subdirectory
4122         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
4123         Lucas Loizaga, thanks!
4124         * device/include/hc08/mc68hc908qy.h,
4125         * device/include/hc08/mc68hc908gp32.h,
4126         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
4127         their own directory. Changed internal macro names to use the compiler
4128         reserved namespace. Changed SDCC specific keywords to double
4129         underlined form.
4130         * device/include/math.h,
4131         * device/include/malloc.h,
4132         * device/include/stdarg.h,
4133         * device/include/stdbool.h
4134         * device/include/string.h,
4135         * device/include/tinibios.h,
4136         * device/include/ds400rom.h,
4137         * device/include/8051.h,
4138         * device/include/8052.h,
4139         * device/include/80c51xa.h,
4140         * device/include/at89c55.h,
4141         * device/include/at89S8252.h,
4142         * device/include/at89x51.h,
4143         * device/include/at89x52.h,
4144         * device/include/ds80c390.h,
4145         * device/include/reg764.h,
4146         * device/include/regc515c.h,
4147         * device/include/sab80515.h,
4148         * device/include/mcs51/c8051f000.h,
4149         * device/include/mcs51/c8051f018.h,
4150         * device/include/mcs51/c8051f020.h,
4151         * device/include/mcs51/c8051f040.h,
4152         * device/include/mcs51/c8051f060.h,
4153         * device/include/mcs51/c8051f120.h,
4154         * device/include/mcs51/c8051f300.h,
4155         * device/include/mcs51/c8051f310.h,
4156         * device/include/mcs51/c8051f320.h,
4157         * device/include/mcs51/c8051f330.h,
4158         * device/include/mcs51/c8051f350.h,
4159         * device/include/z180.h: Changed SDCC specific keywords to double
4160         underlined form.
4161
4162 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
4163
4164         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
4165         18F4455,
4166         * (pic16_assignConfigWordValue): disable testing of configuration
4167         register value with config mask,
4168         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
4169         function with port->fun_prefix,
4170         * (genFunction): when generating a naked interrupt function never
4171         create an absolute segment placed in interrupt vector address, place
4172         the actual interrupt function at IVA instead, when an interrupt
4173         function is generated with unspecified interrupt then do not create
4174         the absolute section,
4175         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
4176         code for generating a call to generic pointer get/put function with
4177         a call to function pic16_callGenericPointer(),
4178         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
4179         the call to the generic pointer get/put functions with prefixing the
4180         function name with port->fun_prefix,
4181         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
4182         * src/pic16/main.c (_process_pragma): prefix function with
4183         port->fun_prefix,
4184         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
4185         calling assembler, old 18Fxxxx macro is deprecated,
4186         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
4187         PC_ASMDIR in while condition,
4188         * (findInstruction): add PC_ASMDIR in while condition,
4189         * (buildCallTree): prefix main with port->fun_prefix,
4190         * (pic16_pCode2str): fixed bug that didn't emit the memory access
4191         identifier for variable with banked access in instructions BTFSS,
4192         BTFSC, BCF, BSF, BTG
4193         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
4194         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
4195         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
4196         perform optimization when enviroment variable NO_REG_OPT is set,
4197         * (insideLRBlock): NEW, return 1 if register is inside an
4198         INF_LOCALREGS block,
4199         * (RemoveRegFromLRBlock): remove a register that is completely
4200         eliminated by register optimization, but it is still left in local
4201         register store/restore in/from stack block,
4202         * (Remove2pcodes): after removing register, check to see if it
4203         should be removed from local register store/restore in/from stack
4204         block,
4205         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
4206         DUMMY_READ_VOLATILE,
4207
4208         * device/include/pic16/adc.h: minor prototype modifications and
4209         update,
4210         * device/include/pic16/malloc.h: added GPL notice various
4211         modifications,
4212         * device/include/pic16/stdint.h: NEW, standard header for ints
4213         * device/include/pic16/delay.h: NEW, header for delay functions,
4214         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
4215         delay1mtcy,
4216         * device/include/pic16/signal.h: NEW, header providing helper macros
4217         for implementing signal handlers,
4218         * device/include/pic16/stdio.h: added prototypes for functions,
4219         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
4220         prototypes for stdin and stdout, added macro PUTCHAR to
4221         automatically implement putchar function prototype,
4222         * device/include/pic16/usart.h: modified and updated USART library,
4223         * device/lib/pic16/libio/adc/,
4224         * device/lib/pic16/libio/i2c: some modifications to improve library
4225         performance,
4226         * device/lib/pic16/libc/stdio/: modifications for the new printf*
4227         family of functions,
4228         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
4229         family of functions and other sources,
4230         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
4231         of the PIC18Fxx[28] devices,
4232         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
4233         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
4234         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
4235         _do_cinit function, because the previous failed when local variables
4236         where not placed in the same memory bank,
4237         * device/lib/pic16/libsdcc/char/: various modifications to improve
4238         library performance,
4239         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
4240         information on the new functions of the c library and more...
4241
4242 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4243
4244         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
4245
4246 2005-03-26 Raphael Neider <rneider AT web.de>
4247
4248         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
4249           if condition == CARRY)
4250         * (genCmp): adapted to new genSkipc semantics
4251         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
4252           on rIfx (genCmp was broken)
4253
4254 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4255
4256         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
4257         * src/z80/main.c (_keywords[]),
4258         * src/SDCCglobal.h (struct options),
4259         * src/SDCC.y,
4260         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
4261         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
4262         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
4263         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
4264         always available in leading double underscore form. The C99 support is
4265         mostly missing, but it's a start.
4266         * support/regression/tests/bug-227710.c: fixed nonconforming use of
4267         reserved identifier "__data".
4268
4269 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4270
4271         * src/mcs51/peeph.def: fixed bug 1170013
4272
4273 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
4274
4275         * device/include/mcs51reg.h: fixed bug 842007
4276
4277 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4278
4279         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
4280         last time.
4281
4282 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4283
4284         * src/port.h (struct PORT),
4285         * src/avr/ralloc.c (avr_assignRegisters),
4286         * src/avr/main.c,
4287         * src/ds390/ralloc.c (ds390_assignRegisters),
4288         * src/ds390/main.c,
4289         * src/hc08/ralloc.c (hc08_assignRegisters),
4290         * src/hc08/main.c,
4291         * src/mcs51/ralloc.c (mcs51_assignRegisters),
4292         * src/mcs51/main.c,
4293         * src/pic/ralloc.c (pic14_assignRegisters),
4294         * src/pic/main.c,
4295         * src/pic16/ralloc.c (pic16_assignRegisters),
4296         * src/pic16/main.c,
4297         * src/xa51/ralloc.c (xa51_assignRegisters),
4298         * src/xa51/main.c,
4299         * src/z80/ralloc.c (z80_assignRegisters),
4300         * src/z80/ralloc.h,
4301         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
4302         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
4303         * src/SDCCcse.h,
4304         * src/SDCCdflow.c (computeDataFlow),
4305         * src/SDCCdflow.h,
4306         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
4307         * src/SDCCloop.h,
4308         * src/SDCCcflow.c (*),
4309         * src/SDCCcflow.h,
4310         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
4311         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
4312         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
4313         immedDom() returning wrong block; probably fixes bug #1160833)
4314
4315 2005-03-20 Borut Razem <borut.razem AT siol.net>
4316
4317         * support/scripts/inc2h.pl: WIN32 port
4318
4319 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
4320
4321         * device/lib/makefile.in: added abs.c and labs.c
4322
4323 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
4324
4325         * device/include/stdint.h: added
4326         * device/lib/abs.c: added
4327         * device/lib/labs.c: added
4328         * device/include/stdlib.h: added abs() and labs() prototypes
4329         * device/lib/libsdcc.lib: added abs and labs
4330         * device/include/float.h,
4331         * device/lib/_fsmul.c,
4332         * device/lib/printf_fast.c,
4333         * device/lib/printf_tiny.c: updated comments
4334
4335 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4336
4337         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
4338         bug #1164313
4339
4340 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4341
4342         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
4343         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
4344
4345 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
4346
4347         * device/lib/printf_large.c: removed inline assembly for portability and
4348           readability. Use printf_fast if speed or size are more important.
4349         * src/pic16/gen.c: removed conditions around use of DEBUGpc
4350         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
4351
4352 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
4353
4354         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
4355         prevent compiler warning
4356
4357 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4358
4359         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
4360         moved to level 0 and declared as static. Also they are explicit
4361         placed in access bank. This was necessery because some times they
4362         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
4363         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
4364         optimizations. Currently only compare to unsigned char is implemented,
4365         * src/pic16/gen.c: added fReturnIdx array,
4366         * (struct resolvedIfx) is moved to gen.h and made public,
4367         * (struct _G): added sregsAlloc and sregsAllocSet fields,
4368         * (aopForSym): added an optimization to directly store in stack of
4369         the operand of a SEND iCode,
4370         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
4371         but as registers instead (AOP_REG) using the fReturnIdx array,
4372         * (pic16_freeAsmop): remove the freed register from the
4373         _G.sregsAlloc field,
4374         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
4375         a compare of 'WREG',
4376         * (pic16_popGetTempRegCond): changed function prototype, now
4377         function takes also a bitVector argument v which holds the current
4378         set of registers that are allocated for stack access by aopForSym,
4379         registers allocated in aopForSym for accessing stack symbols are not
4380         any more part of the functions usedRegs field,
4381         * (genCall): some times aopOp is called for a stack variable to be
4382         send, aopForSym might perform the push, if this is true make sure
4383         that genCall doesn't push the variable twice by testing _G.resDirect,
4384         * (genFunction): changed testing for unspecified interrupt number
4385         from 256 to INTNO_UNSPEC,
4386         * modified selection scheme of frame pointer generation. Previously
4387         if function did use local registers a frame pointer was generated,
4388         now a frame pointer is generated only if function has arguments
4389         (that need PLUSW2 register access), or has stack arguments, or the
4390         compiler is not instructed to omit the frame pointer,
4391         * (genEndFunction): before restoring local registers that were saved
4392         in the function preamble, also restore the registers that *might*
4393         have been allocated for stack access,
4394         * (genRet): removed some old comments,
4395         * (genCmp, the active (RN's) version): added a call to the
4396         pic16_genCmp_special function to perform the compare with a more
4397         robust and optimized way,
4398         * (genInline): a feature has been added in inline code generation,
4399         which allows a wildcard variable substitution when writing inline
4400         assembly. Code is incomplete and experimental therefore undocumented,
4401         * (genCast): changed order of aopOp for result and right to allow
4402         aopForSym to directly load the result if possible,
4403         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
4404         perform an optimized compare on some selected special occasions,
4405         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
4406         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
4407         generate an IVT any more,
4408         * src/pic16/main.c (pic16_optionsTable): added command line option
4409         --optimize-cmp,
4410         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
4411         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
4412         macros,
4413         * src/pic16/NOTES: Raphael Neider added in list of active developers
4414         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
4415         jumptable_end to prevent bug #,
4416         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
4417         inCond and outCond fields,
4418         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
4419         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
4420         turn off register spilling,
4421         * (packRegsForOneUse): synced with other ports' versions although it
4422         is not used currently,
4423         * (pic16_packRegisters): added an optimization while reading
4424         structure bitfields, some registers may be saved (malloc code is
4425         decreased by 80 bytes)
4426
4427 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
4428
4429         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
4430         left is a bitfield, if yes, then don't optimize assignment. Perhaps
4431         this can be optimized more?
4432
4433 2005-03-10 Raphael Neider <rneider AT web.de>
4434
4435         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4436           genNearPointerGet): (hopefully) fixed access to bitfields via
4437           pointers (p->bitN = x; and x = p->bitN; failed)
4438
4439 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
4440
4441         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
4442
4443 2005-03-09 Raphael Neider <rneider AT web.de>
4444
4445         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
4446
4447 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
4448
4449         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
4450         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
4451           (regTypeNum): set REG_BIT type if necessary
4452         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
4453         * support/regression/tests/critical.c: check bug 1144613
4454
4455 2005-03-02 Raphael Neider <rneider AT web.de>
4456
4457         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
4458
4459 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4460
4461         * src/avr/ralloc.c (serialRegAssign),
4462         * src/ds390/ralloc.c (serialRegAssign),
4463         * src/hc08/ralloc.c (serialRegAssign),
4464         * src/mcs51/ralloc.c (serialRegAssign),
4465         * src/pic/ralloc.c (serialRegAssign),
4466         * src/pic16/ralloc.c (serialRegAssign),
4467         * src/xa51/ralloc.c (serialRegAssign),
4468         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
4469
4470 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
4471
4472         * src/SDCCast.c (decorateType): fixed bug 1124787
4473
4474 2005-02-20 Hubert Sack <sack AT digiplan.de>
4475         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4476
4477         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
4478         patch #1121755
4479
4480 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4481
4482         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
4483         to keep the correct label reference count when adding/removing references
4484         to labels. A peephole file using this is appended to patch #1144962.
4485
4486 2005-02-14 Raphael Neider <rneider AT web.de>
4487
4488         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
4489         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
4490         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
4491           retrievals of result operand's value on assignment
4492
4493 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
4494
4495         * device/include/pic16/string.h: modified prototype for memccpy()
4496         to memccpy(void *, void *, char, size_t)
4497         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
4498         check whether to omit frame pointer or not,
4499         * (genInline): convert all occurences of "\n" to LF in inline
4500         assembler blocks, this helps formatting the inline text,
4501         * (pic16_loadFSR0): modified prototype,
4502         * (genNearPointerGet, genNearPointerSet): reorganization of code,
4503         removed some 8051 legacy code,
4504         * (genPackBits): enabled handling bitfields exceeding one byte in size,
4505         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
4506         before allocating temporary registers in functions,
4507
4508 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4509
4510         * support/regression/tests/bitvars.c: corrected the "fix"
4511
4512 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4513
4514         * support/regression/tests/bitvars.c,
4515         * support/regression/tests/bitwise.c,
4516         * support/regression/tests/rotate.c: "fixed" problems on Alpha
4517
4518 2005-02-10 Raphael Neider <rneider AT web.de>
4519
4520         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
4521           different size for Alpha
4522         * src/pic16/gen.c (genCmpEq) : improved compare with 0
4523
4524 2005-02-09 Raphael Neider <rneider AT web.de>
4525
4526         * src/SDCC.lex(doPragma) : save and restore warning options as well
4527           (also added new stack plus clone- and copyAndFreeSDCCERRG())
4528         * have #pragma less_pedantic set the errorlevel to WARNING
4529           (fixes #1117001)
4530         * (cloneOptimize) : fixed wrong malloc's size
4531         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
4532           facilitate correct handling of #pragma (save|restore)
4533
4534 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4535
4536         * src/mcs51/gen.c: removed non-standard C nameless struct/union
4537
4538 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
4539
4540         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
4541
4542 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
4543
4544         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
4545
4546 2005-02-02 Raphael Neider <rneider AT web.de>
4547
4548         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
4549         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
4550         * (pic16_storeForReturn): fixed to allow returning function pointers
4551         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
4552         * device/include/pic16/{stddef.h,stdbool.h}: added
4553
4554 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
4555
4556         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
4557
4558 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
4559
4560         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
4561         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
4562          appeared to be required
4563
4564 2005-01-31 Borut Razem <borut.razem AT siol.net>
4565
4566         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
4567           include/mcs51 and include/z80 directories to the package
4568
4569 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4570
4571         * src/hc08/gen.c (genFunction): fixed bug #1112752
4572
4573 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4574
4575         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
4576
4577 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4578
4579         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
4580
4581 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
4582
4583         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
4584
4585 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
4586
4587         * device/include/c8051fxxx.h: removed these 6 files
4588         * device/include/mcs51/c8051fxxx.h: added these 11 new files
4589
4590 2005-01-26 Raphael Neider <rneider AT web.de>
4591
4592         * src/pic16/gen.c (genAssign): fixed assignment from longs
4593           in codespace (were cut to three bytes)
4594         * (genDummyRead): implemented (except for CODESPACE...),
4595           fixed bug #1108575
4596         * src/pic16/glue.c (emitStatistics): beautified
4597         * device/lib/pic16/libm/Makefile: added include path
4598
4599 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4600
4601         * src/z80/gen.c (aopPut): fixed bug #1103902
4602
4603 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4604
4605         * device/lib/expf.c: fixed bug #1095792
4606
4607 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
4608
4609         * device/lib/pic16/libm: added Math library sources
4610
4611 2005-01-24 Raphael Neider <rneider AT web.de>
4612
4613         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
4614           to enable upcast to pCodeOpReg2 (there is no type tag to
4615           differenciate the two and pic16_popGet2p cast into PCOR2)
4616         * src/pic16/main.c (_process_pragma): fixed another malloc bug
4617           (sizeof(sectNames) changed to sizeof(sectName))
4618           Both patches fix segfaults under MinGW.
4619
4620 2005-01-23 Raphael Neider <rneider AT web.de>
4621
4622         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
4623           Safe_[mc]?alloc()'ed variables
4624         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
4625           of (byte sized) temporaries (assign them to WREG for now)
4626         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
4627           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
4628           this might fix SIGSEGVs on MinGW...
4629         * src/SDCCopt.c (killDeadCode): restored original behaviour
4630           (volatile operands might get thrown away though)
4631
4632 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
4633
4634         * src/pic16/gen.c: fixed bug #1106975,
4635         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
4636         pointer update, INTCON is saved, global interrupts are disabled and
4637         restored after updateing TOS.
4638         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
4639         * added function attribute 'shadowregs' to take advantage of shadow
4640         registers,
4641         * added function attribute 'wparam' as an alternative to the wparam
4642         pragma,
4643         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
4644         user declares a non-ISR function as 'shadowregs',
4645         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
4646
4647 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
4648
4649         * .version: bumped version number to 2.4.8
4650         * device/lib/pic16/pics.all: list of PIC18F devices supported by
4651         pic16 port,
4652         * device/lib/pic16/libio/i2c/: I2C module support library,
4653         * device/include/pic16/i2c.h: I2C support library header,
4654         * device/lib/pic16/libc/stdio/: standard IO support sources,
4655         * (printf_small.c): printf_small() source, supports float print,
4656         * (printf_tiny.c): printf_tiny() source, does not support floats,
4657         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
4658         enable global optimizations for entire library source, other
4659         Makefiles in the source tree are also modified to reflect this,
4660         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
4661         function,
4662         * doc/sdccman.lyx: updated to reflect new changes,
4663         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
4664         sym->onStack if-case,
4665         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
4666         sbit, idata, _idata, xdata, _xdata,
4667         * added pragma library, to link an external library, (see doc),
4668         * removed command line options, --pomit-config-words, --pomit-ivt,
4669         --pleave-reset-vector,
4670         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
4671         when calling assembler to reflect memory model used, also define
4672         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
4673         reflect stack model used,
4674         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
4675         on stack return NULL,
4676
4677 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4678
4679         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
4680           of the operands is volatile. Fixes #1020220
4681
4682 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4683
4684         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
4685         * (OptimizeRegUsage): make sure that there is really no other flow where
4686           the first pCode is used
4687
4688 2005-01-22 Raphael Neider <rneider AT web.de>
4689
4690         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
4691           to fix #1106967 (pCode->seq are not set up correctly)
4692
4693 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4694
4695         * src/SDCCglue.c (glue): make sure code area is declared before the
4696         static initialization area.
4697
4698 2005-01-21 Raphael Neider <rneider AT web.de>
4699
4700         * device/lib/Makefile.in: fixed test for pic16 install dir
4701         * device/lib/pic16/*/Makefile*: modified compile flags to enable
4702           optimizations
4703         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
4704           added --optimize-goto compiler switch and pragma wparam documentation
4705         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
4706         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
4707           and PRODH closing bug #1071770 (peephole optimizer)
4708
4709 2005-01-19 Raphael Neider <rneider AT web.de>
4710
4711         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
4712           cmdLine buffers (used when calling sdcpp...) are large enough
4713           (MAX_PATH=256 truncates arguments leading to system halts when
4714           used in MinGW...)
4715         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
4716         * (genUminus): rewritten to for efficiency
4717         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
4718           used uninitialized in some cases)
4719         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
4720           copy the third byte from the int -- now assumes 0x80 (data memory)
4721         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
4722           operands (genAddLit expects the iCode's operands to swapped as
4723           well), fixed leftover bytes (crashed for short left operands)
4724         * (pic16_genMinusDec): performance improvements, removed false
4725           PIC14 emitSKPNCs
4726         * (pic16_genMinus): fixed to cope with differently sized operands
4727         * src/pic16/glue.c (pic16_glue): added new banksel optimization
4728           for --obanksel > 1
4729         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
4730         * src/pic16/graph.[ch]: implementation of directed graphs, used by
4731           new banksel optimization
4732         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
4733           analysis for temporary registers (segfaults...)
4734         * src/pic16/peeph.def: added rule
4735
4736 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
4737
4738         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
4739         which converts a float number to its ASCII representation
4740         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
4741         functions to convert the fractional and integer part of a float to ASCII,
4742         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
4743         realloc.c): added _MALLOC_SPEC to explicit place variables in data
4744         ram
4745         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
4746         _STATMEM macros,
4747         * device/include/pic16/adc.h: added GPL info,
4748         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
4749         a pCodeOp as tested operand,
4750         * (genNearPointerGet): optimized bit testing, does not use
4751         intermediate register for bit value, test directly instead with
4752         BTFSS, BTFSC, works only for single bits,
4753         * (genpic16Code): dump the name of the iCode in the asm,
4754         * src/pic16/ralloc.c (decodeOp): removed static declaration and
4755         renamed to pic16_decodeOp,
4756         * (serialRegAssign): do not allocate a temporary register for iCode
4757         sequences that test a single bit for 1/0
4758
4759 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
4760
4761         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
4762         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
4763         access stack and frame pointers. They are initially assigned to
4764         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
4765         accessing SFRs. Updated all occurences of modification of stack or
4766         frame pointer in gen.c and pcode.c,
4767         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
4768         assigning of a literal value to pointers,
4769         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
4770         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
4771         selected
4772
4773 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
4774
4775         * doc/sdccman.lyx: update documentation about stack pragma, added
4776         some info for stack memory models
4777
4778 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4779
4780         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
4781
4782 2005-01-08 Raphael Neider <rneider AT web.de>
4783
4784         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
4785           udata sections to fix bug #1097823
4786
4787 2005-01-05 Raphael Neider <rneider AT web.de>
4788
4789         * src/pic16/gen.c (genGenericShift): added handling of differently
4790           sized left operand and result
4791
4792 2005-01-04 Raphael Neider <rneider AT web.de>
4793
4794         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
4795         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
4796           to hold the condition bit)
4797         * added new version of genCmp (old code available via #define)
4798         * added new version of genShiftLeft/genShiftRight in a generic
4799           way, now supports shifting by negative values
4800         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
4801           shiftCount (expected by genGenericShift)
4802         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
4803         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
4804           dump
4805         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
4806           is an invalid literal too...)
4807
4808 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
4809
4810         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
4811         from Raphael Neider,
4812         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
4813         for 8-bit literals. This fixes some literal operands which are sign
4814         extended to 16-bits ints when instruction needs only 8-bits.
4815
4816 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
4817
4818         * device/lib/logf.c: added mcs51 assembly version
4819         * device/lib/expf.c: added mcs51 assembly version
4820         * device/lib/_logexpf.c: new shared asm code for expf and logf
4821         * device/include/math.h: add defines for assembly math library
4822         * device/lib/Makefile.in: build new _logexpf.c
4823         * device/lib/libfloat.lib: use new _logexpf.c
4824
4825 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4826
4827         * src/pic/device.c
4828         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
4829           device types which have less than 0x7f registers.
4830
4831 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4832
4833         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
4834
4835 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4836
4837         * device/lib/printf_fast.c: only build on supported arch.
4838         * device/lib/printf_tiny.c: only build on supported arch.
4839         * device/lib/printf_fast_f.c: only build if asm float lib
4840         * device/lib/_fsget1arg.c: only build if asm float lib
4841         * device/lib/_fsget2args.c: only build if asm float lib
4842         * device/lib/_fsnormalize.c: only build if asm float lib
4843         * device/lib/_fsreturnval.c: only build if asm float lib
4844         * device/lib/_fsrshift.c: only build if asm float lib
4845         * device/lib/_fsswapargs.c: only build if asm float lib
4846         * device/include/stdio.h: don't provide print_fast,
4847           print_fast_f, print_tiny prototypes if --xstack used
4848
4849 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
4850
4851         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
4852         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
4853           to the SOURCES
4854
4855 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4856
4857         * device/lib/printf_fast_f.c: same as printf_fast, but
4858           with floating point enabled
4859         * device/lib/printf_fast.c: minor tweaks
4860         * device/include/stdio.h: add printf_fast_f
4861
4862 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4863
4864         * src/SDCCmain.c: make --float-reent default for mcs51
4865         * device/lib/_fsadd.c: added mcs51 assembly version
4866         * device/lib/_fssub.c: added mcs51 assembly version
4867         * device/lib/_fsmul.c: added mcs51 assembly version
4868         * device/lib/_fsdiv.c: added mcs51 assembly version
4869         * device/lib/_fseq.c: added mcs51 assembly version
4870         * device/lib/_fsneq.c: added mcs51 assembly version
4871         * device/lib/_fsgt.c: added mcs51 assembly version
4872         * device/lib/_fslt.c: added mcs51 assembly version
4873         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
4874         * device/lib/Makefile.in: add _fscmp to build
4875         * device/lib/libfloat.lib: add _fscmp to build
4876
4877 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4878
4879         * device/lib/_fs2slong.c: added mcs51 assembly version
4880         * device/lib/_fs2sint.c: added mcs51 assembly version
4881         * device/lib/_fs2schar.c: added mcs51 assembly version
4882         * device/lib/_fs2ulong.c: added mcs51 assembly version
4883         * device/lib/_fs2uint.c: added mcs51 assembly version
4884         * device/lib/_fs2uchar.c: added mcs51 assembly version
4885         * device/lib/_slong2fs.c: added mcs51 assembly version
4886         * device/lib/_sint2fs.c: added mcs51 assembly version
4887         * device/lib/_schar2fs.c: added mcs51 assembly version
4888         * device/lib/_ulong2fs.c: added mcs51 assembly version
4889         * device/lib/_uint2fs.c: added mcs51 assembly version
4890         * device/lib/_uchar2fs.c: added mcs51 assembly version
4891         * device/include/float.h: added #define to select asm vs c
4892
4893 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
4894
4895         * device/lib/printf_fast.c: improvements to float output
4896         * device/include/float.h: add defines for assembly float library
4897         * device/lib/_fsget1arg.c: receive 1 float arg
4898         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
4899         * device/lib/_fsnormalize.c: normalize a float
4900         * device/lib/_fsreturnval.c: return float, various helper routines
4901         * device/lib/_fsrshift.c: right shift a float's mantissa
4902         * device/lib/_fsswapargs.c: swap 2 floats
4903         * device/lib/Makefile.in: build these 6 new files for mcs51
4904         * device/lib/libfloat.lib: add these 6 files to the library
4905
4906 2004-12-26 Borut Razem <borut.razem AT siol.net>
4907
4908         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
4909           built by gcc 3.4.2
4910
4911 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
4912
4913         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
4914           and fully reentrant and register bank neutral.
4915         * device/lib/printf_fast.c: added float (not enabled by default),
4916           added compact/slower integer (also not enabled by default),
4917           improved size/speed of fast integer code, other minor changes
4918         * device/include/stdio.h, device/lib/Makefile.in,
4919           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
4920
4921 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
4922
4923         * src/pic16/pcode.c: declaring variables other than at the start of a
4924           block is not supported in C by VC6.
4925
4926 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
4927
4928         * applied a previous patch from Raphael Neider that wasn't included
4929         in the previous commits, which fixes infinite loops within jumptable
4930         improvements,
4931         * made some fixes that previous patches introduced
4932
4933 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
4934
4935         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
4936         that fixes an issue with AOP_PCODE asmop's offset,
4937         * (pic16_popCopyReg): update instance field too,
4938         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
4939         function of pic port,
4940         * (genCmp, genAnd, genAssign),
4941         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
4942
4943 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
4944
4945         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
4946         variables initial values to idata section,
4947         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
4948         variables in some functions. This utilizes parmBytes field of iCode
4949         structure to hold the offset of the variable in stack. (might be
4950         able to use the stack field too?)
4951         * applied patch from Raphael Neider # ### , # ###
4952         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
4953         variable initial values in idata section,
4954         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
4955         for static variables with initial value
4956         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
4957         applied fix in while loop from Raphael Neider.
4958
4959 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
4960
4961         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
4962         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
4963         * src/ds390/ralloc.c (serialRegAssign): spill bits
4964         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
4965         * support/Util/SDCCerr.c,
4966         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
4967         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
4968         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
4969
4970 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
4971
4972         * device/include/sdcc-lib.h: inserted LGPL, added includes
4973           asm/ds390/features.h and asm/mcs51/features.h
4974         * device/include/asm/default/features.h,
4975         * device/include/asm/gbz80/features.h,
4976         * device/include/asm/z80/features.h: added empty _AUTOMEM
4977           and _STATMEM
4978         * device/include/asm/ds390/features.h,
4979         * device/include/asm/mcs51/features.h: added files with defines for
4980           _AUTOMEM and _STATMEM indicating automatic and static storage class
4981         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
4982         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
4983         * src/SDCCicode.c (geniCodeCast),
4984         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
4985         * src/SDCCloop.c (loopInduction): removed unused variable lr
4986         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
4987           to convertToFcall to include char modulo (RFE 1065037), added check
4988           if left operand is unsigned and use abs of literal value
4989         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
4990           as it doesn't work after conversion from peephole.def to peephole.rul
4991         * src/mcs51/gen.c (toBoolean): added check for size,
4992           (genModOneByte): optimized code for signed char modulo a literal
4993           power of 2 (thanks to Hubert Sack),
4994           (genRRC): removed unnecessary "clr c",
4995           (genRLC): replaced "add a,acc" with cheaper "rlc a"
4996         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
4997           jump optimization,
4998           swapped rules 256.c and 256.d,
4999           extended 256.d by using new multiple checks (thanks Erik),
5000           added rules 256.e and 256.f,
5001           updated rule 261.a and 261.b to new generated code
5002         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
5003
5004 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5005
5006         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
5007           induction related bugs, including first part of bug #1074377
5008
5009 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
5010
5011         * applied patch from bug-report #1076292,
5012         * applied patches for genAnd and Goto-optimizations for Raphael
5013         Neider,
5014         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
5015         dump a less iCode information,
5016         * src/pic16/device.h (pic16_options_t): added field debgen,
5017         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
5018         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
5019         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
5020         puclic,
5021         * (various functions): added macros FENTRY and FENTRY2 to functions,
5022         to emit function prologue,
5023         * (various functions): fixed indentation,
5024         * (genNearPointerGet): fixed loading of FSR0,
5025         * (genPackBits): applied patch from Raphael Neider to fix updating
5026         of FSR0 and touching only the modified bits,
5027         * src/pic16/genarith.c (various functions): added macros FENTRY to
5028         emit function prologue in comments,
5029         * src/pic16/pcode.h: added functions debugf2, debugf3,
5030         * src/pic16/ralloc.c: partial fix for packForPush caused
5031         segmentation fault,
5032
5033 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5034
5035         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
5036           <stsp AT users.sourceforge.net> with reversed byte order
5037         * support/regression/tests/rotate.c: added (ds390 skips some tests)
5038
5039 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5040
5041         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
5042           bug #1074377
5043         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
5044         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
5045
5046 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5047
5048         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
5049
5050 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5051
5052         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
5053           conditions,
5054           (setFromConditionArgs): friendly operand parser for peephole rules,
5055           (operandBaseName, operandsNotRelated): new peephole condition
5056           "operandsNotRelated" -- similar to "operandsNotSame", but takes
5057           architecture specific register naming into account, handles n-way
5058           comparisons, and supports quoted literals
5059         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
5060
5061 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5062
5063         * src/mcs51/peeph.def: fixed bug #1076940
5064
5065 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
5066
5067         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
5068
5069 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5070
5071         Adding support for replacing ljmps with sjmps in jumptables
5072         generated for switch statements. For now you need to set the
5073         environment variable SDCC_SJMP_JUMPTABLE to enable this.
5074         Now 4 algorithms for mcs51 jumptable generation are used:
5075         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
5076         addresses loaded pc-relative for up to 112 cases and stack-pushing
5077         target addresses loaded with offset from dptr for up to 256 cases.
5078
5079         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
5080         * src/mcs51/main.c: adapted constants for switch table generation
5081         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
5082
5083 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
5084
5085         * device/lib/printf_large.c (_print_format): fixed bug 1073386
5086         * support/regression/tests/bug1057979.c: added test for bug 1073386
5087
5088 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5089
5090         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
5091         compilers
5092
5093 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
5094
5095         * src/pic16/device.h,
5096         * src/pic16/genarith.c,
5097         * src/pic16/glue.c,
5098         * src/pic16/main.c,
5099         * src/pic16/pcode.c: applied patches #1068154 and #1070213
5100
5101 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
5102
5103         Large cummulative patch for pic16 port.
5104         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
5105         to call when a stack overflow occurs,
5106         * (malloc.h): added CVS Id tag,
5107         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
5108         variable,
5109         * added libc directory. The current version of LibC contains string
5110         functions, ctype functions and macros and some functions of the
5111         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
5112         be extensively tested in the future. Standard disclaimer here.
5113         Library is not automatically build yet. But one can build it by
5114         invoking 'make' inside the libc directory.
5115         * added ADC library under libio. Preliminary version yet.
5116
5117         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
5118         * src/pic16/gen.c (aopForRemat): asmop size is filled by
5119         aopForRemat() now and not by pic16_aopOp(),
5120         * (pic16_popGetTempReg): removed warning messgae when allocating
5121         temporary registers, its a buggy feature and will be removed,
5122         * (pic16_popGet): set register instance field in AOP_CRY,
5123         * (pic16_outBitC): fixed for results in size greater than 1,
5124         * (genUminusFloat): fixed for pic16, ported code from mcs51,
5125         * (pic16_storeForReturn): optimized return of 0,
5126         * (genCmp): experimental code for new genCmp which uses PIC18's
5127         special compare&skip instructions. Initial tests fail some times
5128         with variables grater than 1 byte in size, so new code is disabled,
5129         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
5130         a single bit,
5131         * (genCast): began a fix to optimize the casting of a bit to another
5132         bit, now assigning a bitfield to another bitfield will fail, sorry,
5133         * src/pic16/main.c: disabled the use of lr-support feature,
5134         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
5135         * added some function prototypes, added function _debugf prototype,
5136         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
5137         bits with offset (case PO_GPR_BIT),
5138         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
5139         command line,
5140         * (isBankInstruction): modified to return 0 for no banking instruction,
5141         and 1 for banking instruction,
5142         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
5143         caused stop processing pCodes after a inline assembly block,
5144         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
5145         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
5146         registers when it shouldn't,
5147         * src/pic16/ralloc.c (allocReg): add preliminary support for
5148         supporting a limited set of temporary registers,
5149
5150 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5151
5152         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
5153           genDataPointerSet): ensure assignments always copy in MSB to LSB
5154           order,
5155           (loadRegFromAop): recognize CLRH optimization,
5156           (genFunction): optimize RECEIVE iCodes in reentrant functions
5157
5158 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5159
5160         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
5161           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
5162           selected.
5163         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
5164         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
5165           contiguous with data
5166
5167 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5168
5169         * device/lib/_gptrget.c (_gptrget),
5170         * device/lib/_gptrgetc.c (_gptrgetc),
5171         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
5172           instead of sjmp to ret
5173         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
5174           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
5175
5176 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5177
5178         * .version: bumped version to 2.4.7
5179         * device/lib/_gptrget.c (_gptrget): is now _naked
5180         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
5181         * device/lib/_gptrput.c (_gptrput): is now _naked
5182         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
5183           (createFunction): fixed xstack
5184         * src/SDCCglue.c (emitMaps): set allocation required for bit area
5185         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
5186           or bit either,
5187           (geniCodeCritical): store original interrupt state in an iTemp bit
5188           var unless stack-auto
5189         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
5190         * src/SDCCmain.c (setIncludePath): added include/target to search path
5191         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
5192         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
5193           prototype,
5194           (processFuncArgs): put bit vars in bit area
5195         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
5196           unsaveRBank): fixed xstack,
5197           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
5198           (genFunction, genEndFunction): fixed xstack,
5199           (genAssign): optimization don't walk backwards through mem
5200         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
5201         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
5202         * support/regression/Makefile: also make library (for stack-auto) when
5203           making "all" and added "test-mcs51-xstack-auto"
5204         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
5205         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
5206         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
5207         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
5208         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
5209           make-library by MAKE_LIBRARY
5210         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
5211           regression tests for xstack
5212         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
5213         * support/regression/tests/critical.c: test for critical on mcs51
5214
5215 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5216
5217         * support/regression/ports/ucz80/spec.mk: use include and lib files from
5218           built version of sdcc instead of installed version
5219
5220 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5221
5222         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
5223         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
5224           vprintf.c now
5225         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
5226         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
5227           WARNING: remove device/lib/build/z80/printf.o by hand when
5228           updating from previous build!
5229         * device/lib/z80/printf.c: updated comment
5230         * support/regression/tests/bug1057979.c: test all ports now
5231         * support/regression/tests/bug1065458.c: file added
5232
5233 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5234
5235         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
5236           *_start and *_end symbols for static functions
5237
5238 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
5239
5240         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
5241           and search crt0.o in all library paths,
5242           (setIncludePath): proper handling of --nostdinc,
5243           (setLibPath): proper handling of --nostdlib
5244         * support/regression/Makefile,
5245         * support/regression/ports/ds390/spec.mk,
5246         * support/regression/ports/gbz80/spec.mk,
5247         * support/regression/ports/hc08/spec.mk,
5248         * support/regression/ports/mcs51/spec.mk,
5249         * support/regression/ports/mcs51-large/spec.mk,
5250         * support/regression/ports/mcs51-stack-auto/spec.mk,
5251         * support/regression/ports/z80/spec.mk: use include and lib files from
5252           built version of sdcc instead of installed version
5253         * doc/sdccman.lyx: fixed typo in --nostdinc
5254
5255 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
5256
5257         * src/pic/pcode.c,
5258         * src/pic/device.c,
5259         * src/pic/ralloc.c,
5260         * src/pic/gen.c : added support to generate code for struct bit fields.
5261
5262 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5263
5264         * as/xa51/xa_version.h,
5265         * device/include/errno.h,
5266         * device/include/regc515c.h,
5267         * device/lib/_itoa.c,
5268         * device/lib/_ltoa.c,
5269         * device/lib/ser_ir_cts_rts.c,
5270         * sim/ucsim/xa.src/glob.cc,
5271         * sim/ucsim/xa.src/inst_gen.cc,
5272         * sim/ucsim/xa.src/xa_bit.cc,
5273         * sim/ucsim/xa.src/xa_sfr.cc,
5274         * sim/ucsim/z80.src/inst_dd.cc,
5275         * sim/ucsim/z80.src/inst_fdcb.cc,
5276         * support/scripts/keil2sdcc.pl,
5277         * src/pic16/pic16.dsp,
5278         * src/pic16/pic16a.dsp: corrected cvs line endings
5279         * device/lib/printf_large.c: fixed bug 1057979
5280         * src/pic16/gen.c: fixed non-C standard code
5281         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
5282         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
5283         * support/regression/ports/mcs51/support.c: reload T1 asap
5284         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
5285           pdata use and clear idata startup behaviour
5286         * support/regression/tests/bug1057979.c: added
5287
5288 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
5289
5290         * device/examples/ds390/ow390/ad26.h,
5291         * device/examples/ds390/ow390/cnt1d.h,
5292         * device/examples/ds390/ow390/crcutil.c,
5293         * device/examples/ds390/ow390/ownet.h,
5294         * device/examples/ds390/ow390/owsesu.c,
5295         * device/examples/ds390/ow390/swt12.h,
5296         * device/examples/ds390/ow390/swtoper.c,
5297         * device/examples/ds390/ow390/temp10.h,
5298         * device/examples/ds390/ow390/thermodl.c,
5299         * device/examples/ds390/tinitalk/tinitalk.dsp,
5300         * device/examples/ds390/tinitalk/tinitalk.dsw,
5301         * device/examples/mcs51/clock/hw.h,
5302         * device/examples/mcs51/simple2/go.bat,
5303         * device/examples/serialcomm/windows/serial.h,
5304         * device/examples/xa51/dummy.c,
5305         * device/examples/xa51/hello.c,
5306         * device/include/80c51xa.h,
5307         * device/include/at89x051.h: corrected cvs line endings
5308
5309 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
5310
5311         * src/pic16/main.c (options): added command line --gstack, to trace
5312         stack over/under flows,
5313         * added pragma 'wparam' to allow passing first byte of function
5314         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
5315         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
5316         call to __gstack_test function and sets up the symbol as extern,
5317         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
5318         * popaop): added call to pic16_testStackOverflow,
5319         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
5320         wparamList list,
5321         * (genCall, genPcall): now all parameters are passed via stack
5322         except in functions that are pass to wparam pragma in which WREG is
5323         used too,
5324         * (genPcall): REENTRANT flag is checked to see if variable prototype
5325         contains reentrant keyword, don't call a non-reentrant function, via
5326         a reentrant function pointer or vice versa, functions are never
5327         passed via WREG,
5328         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
5329         D.Winkler,
5330         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
5331         SIGSEGV when accessing a NULL register stucture,
5332         * (pic16_printGPointerType): modified to handle UPPER modifier for
5333         function initializers, changed prototype of function to simpler one,
5334         * (pic16_printIvalFuncPtr): check to see if function is already
5335         added in externs list,
5336         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
5337         optimized a move from W to SFR with a move to the same register
5338         later after a CALL,
5339         * device/lib/pic16/debug: NEW directory, contains debug features
5340         which are enabled when linking with libdebug.lib, currently command
5341         line option --gstack enables stack pointer tracing for over/under
5342         flow, corresponding sources are in debug/gstack
5343
5344 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
5345
5346         * doc/sdccman.lyx: updated SDCC version,
5347         * (PIC16 port): update list of command line options,
5348         * src/pic16/device.h (structure pic16_options_t): added field gstack
5349         to enable stack overflow tracing on push/pops,
5350         * src/pic16/device.c (statistics structure): added statistics
5351         structure,
5352         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
5353         pic16_dump_int_registers): increase statistics counters for each
5354         * variable which is encountered
5355         * (pic16_dump_usection): emit each .udata variable to its own udata
5356         section,
5357         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
5358         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
5359         parameters via stack, otherwise use old scheme,
5360         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
5361         assembler output file,
5362         * src/pic16/main.c: added command line options --gstack to enable
5363         push/pop tracing for stack overflow,
5364         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
5365         instructions): added size of each instruction,
5366         * (pic16_countInstruction): estimate size of instructions in
5367         the_pFile list, inline assembly blocks are not counted,
5368         * (pic16_FixRegisterBanking): trace previous register usage, when
5369         banksel optimizations is greater than 0, don't emit a redudant
5370         banksel directive,
5371
5372 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
5373
5374         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
5375         * src/pic16/ralloc.c : applied same fix for pic16.
5376         * src/pic/gen.c : tidied it up a little.
5377
5378 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5379
5380         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
5381         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
5382
5383 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5384
5385         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
5386
5387 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5388
5389         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
5390         non-reentrant function __modsint in the interrupt function (thus
5391         corrupting math operations during serial I/O)
5392         * device/lib/ser_ir.c: as above, changed buffersize
5393         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
5394         256.c,d for zeroing
5395         * doc/Makefile: added option -t for rsync
5396
5397 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5398
5399         * src/SDCCast.h (struct ast),
5400         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
5401
5402 2004-10-20 Borut Razem <borut.razem AT siol.net>
5403
5404         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
5405         package
5406
5407 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
5408
5409         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
5410         makefile targets,
5411         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
5412         support functions to replace long sequences of MOVFF's from access
5413         bank registers to stack and vice versa,
5414         * src/pic16/device.h: added new field opt_flags, where optimization
5415         flags can be set to enable certain features,
5416         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
5417         * pBlock, (genFunction, genEndFunction): surroung loop for
5418         saving/loading used registers in stack with PC_INFO pCodes,
5419         INF_LREGS. Code in between can then be optimized by pCode optimizer
5420         to support function calls,
5421         * (genDataPointerSet): fixed bug which loaded float fields in
5422         structures with corrupt data,
5423         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
5424         in a standard way debug info on stderr. Feature used for developing
5425         and debugging only,
5426         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
5427         obsolete chunks of code,
5428         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
5429         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
5430         * pic16/src/pcode.c (pic16_newpCodeInfo,
5431         * (pic16_newpCodeOpLocalRegs),
5432         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
5433         feature,
5434         * (pic16_pCodeConstString): printing of the initial value of a
5435         symbol as a comment is inhibited since parsing was already done by
5436         copyStr and output is corrupt,
5437         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
5438
5439 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5440
5441         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
5442
5443 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
5444
5445         * as/mcs51/lkarea.c: removed old K&R style,
5446           (lnksect): changed check on boundary error,
5447           (lnksect2): changed check on boundary error,
5448           (lnksect2): extend XSTK to end of page if size = 1
5449         * as/mcs51/lkmain.c: removed old K&R style,
5450           (Areas51): create l_IRAM symbol
5451         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
5452         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
5453           model-mcs51-stack-auto, added model-mcs51-xstack-auto
5454         * device/lib/_mullong.c: added version to be compiled with xstack
5455         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
5456         * device/lib/mcs51/crtxclear.asm: clear pdata as well
5457         * device/lib/mcs51/crtxstack.asm: fixed comment
5458         * src/SDCCglue.c: maxInterrupts defaults to 0,
5459           (emitMaps): added pdata,
5460           (createInterruptVect): (re)moved default,
5461           (glue): added pdata,
5462           (glue): moved __start__xstack to XSTK with default size 1
5463         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
5464           and options.float_rent when options.stackAuto is set,
5465           (linkEdit): only write XDATA_NAME if provided on command line
5466         * src/SDCCmem.h,
5467         * src/SDCCmem.c: added pdata
5468         * src/port.h: added pdata_name to PORT
5469         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
5470           (saveRegisters, unsaveRegisters): removed usage of B,
5471           (genMinus): fixed accumulator clash,
5472           (genJumpTab): added comment, this needs another look
5473         * src/mcs51/gen.c: added check for "B in use" paranoia,
5474           added pushB() and popB()
5475         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
5476           chance
5477         * src/avr/main.c,
5478         * src/ds390/main.c,
5479         * src/hc08/main.c,
5480         * src/mcs51/main.c,
5481         * src/pic/main.c,
5482         * src/pic16/main.c,
5483         * src/xa51/main.c,
5484         * src/z80/main.c: (reset_regparms) made void parameter explicit and
5485           added PSEG (PAG,XDATA) or NULL to port specifier
5486         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
5487         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
5488           (_mcs51_genInitStartup): removed __start__xstack equ,
5489           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
5490         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
5491         * src/z80/gen.c (_rleAppend): fixed warnings
5492         * support/regression/tests/zeropad.c: added pdata test
5493         * .version: bumped to 2.4.6
5494
5495 2004-10-17 Borut Razem <borut.razem AT siol.net>
5496
5497         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
5498         as a part of nightly build
5499
5500 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
5501
5502         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
5503         WREG holds the first byte function parameters,
5504         * (aopForSym): take special case for symbols which are in FARSPACE
5505         but in CODESPACE too,
5506         * (assignResultValue): modified to take into account _G.useWreg,
5507         * (genCall): don't use wreg for parameter passing when function is
5508         declared as reentrant, too, added optimization INCF to stack
5509         pointer when stack parameter count is 1,
5510         * (genFunction, genEndFunction): refurnished and fixed to not using
5511         wreg for passing parameters when function has varargs or is
5512         reentrant, fixed bug with symbol name compare for generating
5513         functions in absolute address,
5514         * (pic16_storeForReturn): refurnished,
5515         * (genCmp): began writing a new version of the function, not ready
5516         yet, therefore it is disabled,
5517         * (genAssign): do not read code memory when assigning a function to
5518         a pointer function,
5519         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
5520         array of characters, not pointer,
5521         * (pic16initialComments): in debug mode emit an .ident directive for
5522         the assembler,
5523         * (_process_pragma): emit a new warning type (internal to pic16)
5524         when setting stack to default length, emit a similar warning when
5525         placing a function at absolute address and address is not word aligned
5526         * (_pic16_parseOptions): added 'return TRUE' statement,
5527         * (_pic16_linkEdit): if compiling a source, then add the source's
5528         file object, first in the list of objects to link,
5529
5530 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
5531
5532         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
5533         * src/pic/main.c : removed VC warning.
5534         * src/pic/gen.c : changed comment.
5535
5536 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
5537
5538         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
5539         reference to a deprecated symbol _GPTRREG was causing failure to
5540         link. Thanks G. M. Gallant for the info.
5541
5542 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
5543
5544         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
5545         comments for Bugs item #954788.
5546
5547 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
5548
5549         * src/pic16/device.c (pic16_dump_gsection,
5550         * pic16_groupRegistersInSection): handle symbols declared to be in
5551         access bank differently,
5552         * src/pic16/gen.c (struct _G): added field resDirect,
5553         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
5554         send values read from stack directly to result and don't allocate
5555         temporary values,
5556         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
5557         same registers,
5558         * (pic16_sameRegsOfs): NEW,
5559         * (freeAsmop): if _G.resDirect is set then do not mark registers as
5560         free because they were not allocated from temporary pool,
5561         * pic16_popRegFromString): workaround to fix a problem with
5562         allocating variables twice or never,
5563         * (genGenPointerGet): using PRODL instead of FSR0H,
5564         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
5565         instead of FSR0H,
5566         * (genAssign): take advantage of the _G.resDirect flag,
5567         * (genCast): around line 11844, use mov2f instead of directly
5568         MOVFF'ing between operands to account for literal values,
5569         * src/pic16/genutils.c: some new debug functions for gpsim have been
5570         added,
5571         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
5572         float with integer part only,
5573         * src/pic16/main.c (_process_pragma): handle pragma udata access to
5574         place variables in access bank
5575         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
5576         updated sources to reflect recent changes in gen.c
5577
5578 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
5579
5580         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
5581         sources that searched for headers in installation path, now the
5582         device/include/pic16 is used,
5583         * src/pic16/glue.c (pic16glue),
5584         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
5585         .line directives if not in debug mode, this suppresses assembler's
5586         warnings for ignored directives
5587
5588 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5589
5590         * src/port.h: made reset_regparms prototype void parameter explicit.
5591         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
5592         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
5593         * doc/sdccman.lyx: documented warning disabling and how to use
5594           printf_large to make it print floats.
5595         * device/include/stdbool.h: NEW
5596         * device/lib/_atof.c,
5597         * device/lib/_divuint.c,
5598         * device/lib/_divulong.c,
5599         * device/lib/expf.c,
5600         * device/lib/printf_large.c,
5601         * device/lib/sincosf.c,
5602         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
5603         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
5604           a completely reentrant lib.
5605
5606 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
5607
5608         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
5609         * device/include/pic16/stdio.h: fixed bug with colon
5610
5611 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
5612
5613         * device/include/pic16/stdio.h,
5614         * device/include/pic16/stdlib.h,
5615         * device/include/pic16/math.h: NEW
5616         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
5617         declared as _naked to reduce overhead
5618         * device/lib/Makefile.in (target port-specific-objects-pic16):
5619         changed * to *.* so to ignore the CVS directory,
5620         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
5621         stacked variables back in stack,
5622         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
5623         corruption
5624
5625 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
5626
5627         * .version: bumped version number to 2.4.5
5628         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
5629         * support/Util/SDCCerr.c (messages structure): added entry for
5630         W_POSSBUG2
5631
5632         Large cumulative patch for pic16 port and libraries.
5633         * device/include/pic16/sdcc-lib.h,
5634         * device/include/pic16/stdarg.h,
5635         * device/include/asm/pic16/features.h,
5636         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
5637         * device/include/pic16/float.h: changes reentrant keyword with
5638         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
5639         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
5640         updated target build-libraries to include objects from gptr,
5641         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
5642         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
5643         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
5644         all function headings,
5645         * src/SDCCmain.c: added global parameter userIncDirsSet,
5646         * (parseCmdLine): when option -I is encountered add directory to
5647         userIncDirsSet too,
5648         * src/version.awk: added space between control and long,
5649         * src/pic16/NOTES: added some notes for the port,
5650         * src/pic16/gen.c: added prototype for mov2fp function,
5651         * (fReturnpic16[]): properly named return value registers,
5652         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
5653         * (aopForSym): added code to handle symbols with onStack flag set,
5654         symbols onStack are allocated PTRSIZE bytes,
5655         * (aopFreeAsmop): handles special case where asmops are stack objects,
5656         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
5657         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
5658         added argument lock to trace flaws in allocating temporary registers
5659         when developing port,
5660         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
5661         * (pic16_popRegFromString): reenabled allocating a direct register
5662         from string,
5663         * (assignResultValue): various beautifications,
5664         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
5665         referenced function argument,
5666         * (genIpush): reenabled to allow stacked arguments, handles only
5667         ic->parmPush iCodes,
5668         * (genCall, genPcall): major changes to allow for variable argument
5669         functions, fixed a bug with falsely restoring stack pointer after
5670         returning from call,
5671         * (genFunction): pending code for critical function,
5672         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
5673         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
5674         * (genNearPointerGet): fixed bug with indirect reading, was always
5675         reading from INDF0
5676         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
5677         pointers,
5678         * (genAddrOf): rewrote code to take address of a stacked function parameter
5679         * (genCast): fixed casting to generic pointer type,
5680         * src/pic16/gen.h: added AOP_STA,
5681         * (struct asmop): added field stk,
5682         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
5683         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
5684         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
5685         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
5686         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
5687         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
5688         generic pointers,
5689         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
5690         and library paths,
5691         * (pic16_port structure): generic pointer size is set to 3,
5692         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
5693         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
5694         compiler warning,
5695         * src/pic16/ralloc.c (allocReg): prevent allocating register when
5696         operand is an iTemp,
5697
5698 2004-09-24 Martin Helmling <mh AT octo-soft.de>
5699
5700         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
5701         * debugger/mcs51/simi.c: addapt new syntax of s51
5702
5703 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
5704
5705         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
5706         * src/pic16/pcode.c: commented out some calls to free() in order to
5707         fix bug #989576,
5708
5709 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5710
5711         * src/SDCCicode.h,
5712         * src/SDCCicode.c (isiCodeInFunctionCall),
5713         * src/avr/ralloc.c (selectSpil),
5714         * src/pic/ralloc.c (selectSpil),
5715         * src/pic16/ralloc.c (selectSpil),
5716         * src/ds390/ralloc.c (selectSpil),
5717         * src/hc08/ralloc.c (selectSpil),
5718         * src/xa51/ralloc.c (selectSpil),
5719         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
5720         stack in the middle of a function call sequence (fixes bug #1020268)
5721         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
5722         costs associated with the minimum switch case.
5723
5724 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5725
5726         * src/SDCC.lex: fixed bug #1030549
5727
5728 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5729
5730         * src/SDCCcse.h (struct cseDef),
5731         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
5732         over a function call if the CSE is derived from a symbol whose
5733         address has been taken (fixes bug #1029883)
5734         * support/regression/tests/bug-1029883: a new regression test for
5735         this bug
5736
5737 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5738
5739         * src/hc08/gen.c (emitinline): fixed bug #1029778
5740         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
5741         to a cast object is no longer a syntax error ("fixes" bug #1030006,
5742         and starts toward RFE #905167)
5743
5744 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
5745
5746         * src/pic16/gen.c (mov2f): New function to move an operand to
5747         another without considering if it is a literal or a register,
5748         * (pic16_sameRegs): don't check if they are both AOP_REG,
5749         * (AccRsh): removed andmask=0 lines,
5750         * (genLeftShift): duplicated to be improved in future versions,
5751         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
5752         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
5753         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
5754         * (pic16initMnemonics): added initialization for POC_INFSNZW,
5755         * (insertBankSwitch): fixed inserting banksel directives algorithm
5756         for instructions that follow a skip instruction, this fixes a report
5757         for broken subtraction code generation,
5758         * src/pic16/ralloc.c (deassignLRs): do not free register if current
5759         iCode is a left op, just in case result and right share the same
5760         registers
5761
5762 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5763
5764         * src/hc08/main.c,
5765         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
5766         preservation of HX
5767         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
5768         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
5769         on 2004-09-12; it was buggy
5770
5771 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
5772
5773         * src/SDCCsymt.h: removed RESULT_CHECK
5774         * src/SDCCast.c,
5775         * src/SDCCglue.c,
5776         * src/SDCCval.c,
5777         * src/pic/glue.c,
5778         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
5779
5780 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
5781
5782         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
5783         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
5784         configuration values no more rejected by compiler, they are assigned
5785         to configuration registers with a warning message instead,
5786         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
5787         the for-loop so last conf register is emitted too,
5788         * (_pic16_initPaths): link library libsdcc.lib by default,
5789         * (_hasNativeMulFor): modified test for multiplication according to
5790         Raphael Neider's remarks. Integer multiplication is also done with
5791         support functions,
5792         * device/include/pic16/pic18fregs.h: corrected type error in while
5793         testing and including 18f6720 header file
5794
5795 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
5796
5797         * src/pic16/device.h (pic16_options): removed field use_crt,
5798         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
5799         until an optimization to handle single bits is added,
5800         * (pic16_loadFSR0): moved before genUnpackBits,
5801         * (genAnd): some white lines removed,
5802         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
5803         leave_reset flags in pic16_options when using crt modules,
5804
5805 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
5806
5807         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
5808           for bugs 898889 & 979599. Also used some safer print instructions.
5809
5810 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
5811
5812         * src/pic16/device.h (pic16_options_t): added field use_crt,
5813         crt_name, no_crt,
5814         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
5815         catch a probable future bug,
5816         * src/pic16/gen.c: aopIdx function commented out,
5817         * (genAssign): commented out old code which used aopIdx,
5818         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
5819         code, added if conditionals to take into account the --use-crt
5820         command line options,
5821         * src/pic16/main.c (pic16_optionsTable): added new command line
5822         options, --use-crt= and --no-crt,
5823         * (_pic16_linkEdit): now the proper crt object is added in the
5824         linker command line except than when --no-crt is specified,
5825         * src/pic16/pcode.c,
5826         * src/pic16/pcode.h: added some structures and functions for a new
5827         optimization scheme to compansate for instruction overhead between
5828         same iCodes, this scheme is currently under development and is not
5829         working in any way,
5830         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
5831         to && operator,
5832         * device/lib/pic16/startup/crt0i.c,
5833         * device/lib/pic16/startup/crt0iz.c: added global char variable
5834         __uflags to force the generation of an idata section
5835
5836 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
5837
5838         * doc/Makefile,
5839         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
5840         * doc/sdccman.lyx: updated sdcc version to 2.4.4
5841
5842 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5843
5844         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
5845         Frieder) and clarified the default code optimization mode
5846
5847 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5848
5849         * src/SDCC.lex (doPragma, process_pragma),
5850         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
5851         "opt_code_size", and "opt_code_balanced"
5852         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
5853         regrouped options by category, added support for category headers
5854         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
5855         and "--opt-code-size"
5856         * doc/sdccman.lyx: documented these new options and pragmas
5857         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
5858         preference into account
5859
5860 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5861
5862         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
5863           geniCodePreDec): Fixed bug 904237 by generating a warning
5864         * src/SDCCerr.h,
5865         * src/SDCCerr.c: added warning W_SIZEOF_VOID
5866
5867 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
5868
5869         * src/pic/device.c : When no max ram set validate full memory range.
5870         * src/pic/pcode.c,
5871         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
5872
5873 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5874
5875         * device/lib/_gptrget.c,
5876         * device/lib/_gptrput.c: updated comment
5877         * device/lib/calloc.c,
5878         * device/lib/free.c,
5879         * device/lib/malloc.c,
5880         * device/lib/realloc.c: added LGPL, made them reentrant-safe
5881         * src/SDCCcse.c (cseBBlock),
5882         * src/SDCCicode.c (printOperand, geniCodeArray),
5883         * src/SDCCicode.h (struct operand): fixed bug 868103
5884         * support/regression/tests/bug-868103.c: added
5885         * src/SDCCast.c (searchLitOp),
5886         * src/SDCCcse.h (struct cseDef),
5887         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
5888         * src/SDCCicode.h (struct operand),
5889         * src/SDCCsymt.h (struct sym_link),
5890         * src/avr/gen.c (hasInc),
5891         * src/ds390/gen.c (hasInc),
5892         * src/hc08/gen.c (genPlusIncr, hasInc),
5893         * src/mcs51/gen.c (hasInc),
5894         * src/pic16/glue.c (pic16_printIvalChar),
5895         * src/pic16/ralloc.c (regWithIdx),
5896         * src/xa51/gen.c (hasInc) : removed warnings
5897         * src/SDCCast.c (createBlock): added comment ???
5898         * src/hc08/ralloc.c: updated comments
5899
5900 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5901
5902         * doc/sdccman.lyx: updated section on switch statements, added
5903         section about semaphore locking
5904         * doc/Makefile: added option -info for latex2html
5905         * device/lib/_gptrget.c,
5906         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
5907
5908 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5909
5910         * src/pic/device.h,
5911         * src/pic/device.c,
5912         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
5913          maxram is less than 0x100.
5914
5915 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5916
5917         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
5918
5919 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5920
5921         * src/port.h,
5922         * src/mcs51/main.c,
5923         * src/ds390/main.c,
5924         * src/z80/main.c,
5925         * src/hc08/main.c,
5926         * src/pic/main.c,
5927         * src/pic16/main.c,
5928         * src/avr/main.c,
5929         * src/xa51/main.c
5930         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
5931         a jump table is the best form for a switch statement, including
5932         automatic insertion of missing cases to make the case range
5933         continuous. Developed in collaboration with Frieder Ferlemann.
5934
5935 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5936
5937         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
5938         accumulator result if it needs sign extension
5939
5940 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5941
5942         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
5943
5944 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5945
5946         * device/lib/gbz80/printf.c,
5947         * device/lib/z80/printf.c: removed define for NULL
5948
5949 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5950
5951         * as/xa51/xa_link.c,
5952         * device/examples/ds390/ow390/ad26.c,
5953         * device/examples/ds390/ow390/cnt1d.c,
5954         * device/examples/ds390/ow390/counter.c,
5955         * device/examples/ds390/ow390/ds2480.h,
5956         * device/examples/ds390/ow390/ds2480ut.c,
5957         * device/examples/ds390/ow390/findtype.c,
5958         * device/examples/ds390/ow390/gethumd.c,
5959         * device/examples/ds390/ow390/owllu.c,
5960         * device/examples/ds390/ow390/ownetu.c,
5961         * device/examples/ds390/ow390/swt12.c,
5962         * device/examples/ds390/ow390/swtloop.c,
5963         * device/examples/ds390/ow390/temp.c,
5964         * device/examples/ds390/ow390/temp10.c,
5965         * device/examples/ds390/ow390/thermo21.c,
5966         * device/examples/ds390/ow390/tinilnk.c,
5967         * device/examples/ds390/ow390/tstfind.c,
5968         * device/examples/serialcomm/windows/serial.cpp,
5969         * device/examples/serialcomm/windows/test_serialcomm.cpp,
5970         * device/include/reg51.h: fixed line endings for cvs
5971
5972 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5973
5974         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
5975         packRegsForAccUse, packRegisters): new accumulator register
5976         packing algorithm
5977         * support/regression/ports/hc08/support.c (_putchar): suppress
5978         warning of unused variable
5979         * src/SDCCicode.c: added SWAP entry to codeTable
5980
5981 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
5982
5983         * device/lib/sprintf.c: forgot to add this file before previous commit
5984
5985 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
5986
5987         * src/pic16/gen.c (genPackBits): added operand right in function
5988         parameters, load result directly if p_type is POINTER (that is
5989         called by genNearPointerSet)
5990         * (genUnPackBits): added operand left in function parameters,
5991         * (genNearPointerGet, genNearPointerSet): prevent the loading of
5992         FSR0 if accessing bitfields,
5993
5994 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
5995
5996         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
5997           _print_format; updated printf, sprintf, vsprintf
5998         * device/include/asm/default/features.h: corrected comment/define
5999         * device/lib/Makefile.in: added sprintf.c
6000         * device/lib/libsdcc.lib: added sprintf module
6001         * device/lib/printf_large.c,
6002         * device/lib/vprintf.c,
6003         * device/lib/sprintf.c: totally refactored printf_large and vprintf
6004           into these 3 files
6005         * support/regression/Makefile: changed ALL_PORTS into a usefull default
6006         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
6007         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
6008           hc08 test
6009         * support/regression/tests/zeropad.c: define idata as data for hc08
6010
6011 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6012
6013         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
6014         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
6015         labels are referenced at least once (even if a reference is not found)
6016         * src/hc08/gen.c (emitcode): set isComment flag for comments
6017         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
6018         loads), rules 6a..6b (optimize jumps to return)
6019
6020 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6021
6022         * device/lib/acosf.c (acosf),
6023         * device/lib/asinf.c (asinf),
6024         * device/lib/atanf.c (atanf),
6025         * device/lib/ceilf.c (ceilf),
6026         * device/lib/cosf.c (cosf),
6027         * device/lib/coshf.c (coshf),
6028         * device/lib/cotf.c (cotf),
6029         * device/lib/fabsf.c (fabsf),
6030         * device/lib/floorf.c (floorf),
6031         * device/lib/log10f.c (log10f),
6032         * device/lib/logf.c (logf),
6033         * device/lib/sinf.c (sinf),
6034         * device/lib/sinhf.c (sinhf),
6035         * device/lib/sqrtf.c (sqrtf),
6036         * device/lib/tanf.c (tanf),
6037         * device/lib/tanhf.c (tanhf),
6038         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
6039         replaced all instances of "reentrant" in the library functions
6040         defined in math.h with this macro.
6041         * support/regression/tests/float_trans.c: reenabled test for hc08
6042
6043 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
6044
6045         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
6046         erroneously deleted
6047
6048 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6049
6050         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
6051         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
6052         multi-byte volatile operands are used
6053         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
6054         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
6055         initialization to area GSINIT0 so that it would always precede
6056         any static initializers in GSINIT
6057         * support/regression/tests/zeropad.c: fixed idata define for hc08
6058         * support/regression/tests/bug-927659.c,
6059         * support/regression/tests/float_trans.c: disabled tests for hc08
6060         pending missing library routines
6061         * .version: increased version number to 2.4.4 - hc08 port now passes
6062         regression tests
6063
6064
6065 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
6066
6067         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
6068         * Makefile.common.in,
6069         * as/Makefile,
6070         * as/hc08/Makefile.in,
6071         * as/mcs51/Makefile.in,
6072         * as/z80/Makefile.in,
6073         * debugger/mcs51/Makefile.in,
6074         * device/include/Makefile.in,
6075         * device/lib/Makefile.in,
6076         * doc/Makefile,
6077         * link/Makefile,
6078         * link/z80/Makefile.in,
6079         * packihx/Makefile.in,
6080         * sim/ucsim/main_in.mk,
6081         * sim/ucsim/avr.src/Makefile.in,
6082         * sim/ucsim/doc/Makefile.in,
6083         * sim/ucsim/gui.src/serio.src/Makefile.in,
6084         * sim/ucsim/hc08.src/Makefile.in,
6085         * sim/ucsim/s51.src/Makefile.in,
6086         * sim/ucsim/xa.src/Makefile.in,
6087         * sim/ucsim/z80.src/Makefile.in,
6088         * src/Makefile.in,
6089         * support/cpp2/Makefile.in,
6090         * support/librarian/Makefile,
6091         * support/makebin/Makefile: added DESTDIR to the install path proposed
6092         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
6093         * doc/sdccman.lyx: added DESTDIR documentation
6094
6095 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
6096
6097         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
6098         instruction for interrupt handlers, use fast returns when returning
6099         from high priority interrupts
6100
6101 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6102
6103         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
6104         code generation
6105         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
6106         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
6107         bugs, ported much of Bernhard's code from mcs51
6108         * src/mcs51/gen.c (genSend),
6109         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
6110         than one when calling a reentrant function
6111         * device/lib/_mullong.c: defined an alternate struct layout for big
6112         endian ports (hc08)
6113
6114 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6115
6116         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
6117         test
6118
6119 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6120
6121         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
6122         are sane and complete before asking the port its prefered parameter
6123         passing method (fixes bug #1017633)
6124         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
6125         and _ret3
6126
6127 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6128
6129         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
6130         problem in bitfields >= 8 bits.
6131
6132 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6133
6134         * src/SDCCsymt.c: undid changes that were not meant to be committed
6135
6136 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6137
6138         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
6139
6140 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6141
6142         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
6143           copied and wrong bit got inverted
6144
6145 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6146
6147         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
6148         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
6149         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
6150         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
6151         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
6152         assignments to bitfields at known addresses
6153         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
6154         reads from bitfields at known addresses
6155         * src/hc08/ralloc.c (packRegisters),
6156         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
6157         genhc08Code): optimize pointer get values used as conditionals
6158         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
6159         and branch
6160
6161 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6162
6163         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
6164         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
6165         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
6166         as conditionals
6167
6168 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6169
6170         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
6171
6172 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6173
6174         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
6175         related problems
6176
6177 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
6178
6179         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
6180
6181 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6182
6183         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
6184         mcs51 port
6185
6186 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6187
6188         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
6189
6190 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6191
6192         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
6193         cases use more compact code.
6194
6195 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
6196
6197         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
6198
6199 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6200
6201         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
6202
6203 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6204
6205         * src/SDCCsymt.h,
6206         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
6207         parameter of changePointer() from symbol* to sym_link*
6208         * src/SDCCast.c (decorateType): call changePointer() for CAST op
6209         * src/SDCCsymt.c (compareType): void* type is castable to other
6210         pointers, but not necesarily an exact match.
6211         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
6212         is no longer blindly treated as an exact match.
6213         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
6214
6215 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
6216
6217         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
6218
6219 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
6220
6221         * src/pic/gen.c,
6222         * src/pic/pcode.c,
6223         * src/pic/ralloc.h,
6224         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
6225
6226 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
6227
6228         * src/pic/device.c,
6229         * src/pic/device.h,
6230         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
6231
6232 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6233
6234         * src/mcs51/gen.c (emitcode): fixed bug #992819
6235
6236 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
6237
6238         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
6239           there's no need to make it worse
6240
6241 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6242
6243         * src/mcs51/ralloc.c (deassignLR),
6244         * src/ds390/ralloc.c (deassignLR),
6245         * src/hc08/ralloc.c (deassignLR),
6246         * src/z80/ralloc.c (deassignLR),
6247         * src/pic/ralloc.c (deassignLR),
6248         * src/pic16/ralloc.c (deassignLR),
6249         * src/avr/ralloc.c (deassignLR),
6250         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
6251         rlivePoint): fixed another part of bug #971834
6252
6253 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6254
6255         * src/z80/main.c: enabled "critical" keyword
6256         * src/z80/mappings.i,
6257         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
6258         functions (fixes bug #979646)
6259         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
6260
6261 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6262
6263         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
6264           such as c:\mydir.
6265
6266 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
6267
6268         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
6269           doesn't disable too much optimizations
6270
6271 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6272
6273         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
6274
6275 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
6276
6277         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
6278
6279 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6280
6281         * src/pic/gen.c tidied up tabs
6282         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
6283         * src/pic/main.c tidied up tabs
6284         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
6285         * src/pic/pcoderegs.c tidied up tabs
6286         * src/pic/ralloc.c tidied up tabs
6287
6288 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
6289
6290         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
6291         to S_FIXED for pic16 port and when symbol is not in level 0,
6292         allocate for S_REGISTER storage class and pic16 port, too,
6293         * src/pic16/device.h: prototype for checkSym,
6294         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
6295         * (pic16_assignConfigWordValue): test the value and the mask to
6296         validate that the value is suitable for the configuration word,
6297         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
6298         collect extern declared symbols, don't emit symbol twice, check
6299         first if symbol is in publics set first,
6300         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
6301         * added command line '--fstack' which enables an experimental
6302         feature for stack access, too buggy to be used yet...
6303         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
6304         * (pic16_allocDirReg): when register has storage class S_REGISTER
6305         allocate in pic16_dynAccessRegs,
6306         * device/include/pic16/pic18f????.h: modified configuration word
6307         naming convention, words started as CONFIG0H but should be CONFIG1H
6308
6309 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6310
6311         * device/include/mcs51reg.h: fixed bug 970993
6312
6313 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
6314
6315         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
6316         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
6317         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
6318         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
6319         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
6320         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
6321           error/warning numbers,
6322           added function setWarningDisabled()
6323         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
6324         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
6325           _memcmp.c _memmove.c calloc.c realloc.c free.c
6326         * support/regression/tests/malloc.c: added tests for new functionality
6327         * support/regression/tests/zeropad.c: added tests for truncated initializers
6328           and initialized char arrays starting with '\x0'
6329         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
6330
6331 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
6332
6333         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
6334
6335 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6336
6337         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
6338         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
6339         peephole 177.e. Thanks to anonymous
6340
6341 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
6342
6343         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
6344         function isn't used in the source but referenced as a
6345         variable initializer then declare it as extern in .asm file
6346
6347 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
6348
6349         * .version: increased version number to 2.4.3
6350
6351         Adding version extension according to ChangeLog CVS revision
6352         * src/Makefile.in (target all): added dependency 'version.h'
6353         * (rule version.h): added rule to create version.h from ChangeLog,
6354         * (rule dep): added dependency version.h,
6355         * src/version.awk: AWK script to create version.h
6356         * src/SDCCdwarf2.c (dwWriteModule),
6357         * src/SDCCglue.c (initialComments),
6358         * src/SDCCmain.c (printVersionInfo): modified to write after
6359         version string the version extension number,
6360         * src/SDCCutil.c: included "version.h"
6361         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
6362         number,
6363         * src/SDCCutil.h: added prototype for getBuildNumber
6364
6365         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
6366         includeDirsSet, too,
6367         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
6368         const char [] is found in function prototype...
6369
6370         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
6371         moving to WREG with source is already in WREG,
6372         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
6373         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
6374         * (aopForSym): stack'ed symbols are partially supported, added
6375         if-clause to support symbols in FARSPACE,
6376         * (sameRegs): added test for AOP_ACC to see if registers are same,
6377         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
6378         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
6379         * (pic16_popRegFromString): will not allocate a new register if it
6380         doesn't find one by name, bug may have introduced...
6381         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
6382         * (genIpush): revived to use pic16 port's stack,
6383         * (genAddrOf): added incomplete case for stack'ed operand,
6384         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
6385         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
6386         can handle multibyte operands,
6387         * src/pic16/glue.c (pic16_printIval*): some debug info added,
6388         * (pic16initialComments): added message for MPLAB compatibility
6389         mode enabled,
6390         * src/pic16/main.h: prototype for pic16_mplab_comp,
6391         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
6392         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
6393         * (_pic16_linkEdit): NEW, handles link stage, transferred here
6394         because of increased complexity of procedure,
6395         * (_process_pragma): stack pragma changed to format 'stack pos len',
6396         emit symbol '_stack_end' to conform with gplink,
6397         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
6398         to search for register,
6399         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
6400         PO_GPR_REGISTER,
6401         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
6402         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
6403         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6404         case for PO_GPR_REGISTER,
6405         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
6406         dies, the new era is ahead !...
6407         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
6408         pic16_dynInternalRegs,
6409         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
6410         * (pic16_allocDirReg): minor optimizations and bug fixes,
6411         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
6412
6413         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
6414         load stack and frame pointer with address of 'stack_end' symbol
6415
6416 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
6417
6418         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
6419         without source code but only variable initializers
6420
6421 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
6422
6423         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
6424         external are not declared as extern to reduce overhead while linking
6425
6426 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
6427
6428         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
6429
6430 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
6431
6432         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
6433           Yee Keat for the patch
6434         * src/SDCCast.c (decorateType): fixed bug #979599
6435         * src/ds390/gen.h: removed local fReturnSizeDS390
6436         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
6437         * src/ds390/gen.c (genAnd, genOr, genXor),
6438         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
6439
6440 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
6441
6442         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
6443         add relFilesSet to $3, manipulate $2 to handle linking of object
6444         files without source files in command line,
6445         * device/include/pic16 (all headers): added ID location macros,
6446         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
6447         entries for ID location bytes,
6448         * (pic16_assignIdByteValue): NEW,
6449         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
6450         added field dumpcalltree to pic16_options_t,
6451         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
6452         is used instead of pic16_Gstack_base_addr, check if (ifx) before
6453         emitting rFalseIfx label after check_carry label,
6454         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
6455         pic16_emitDIRegs), NEW
6456         * (pic16glue): dump .calltree file when option --calltree found,
6457         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
6458         * (_pic16_genAssemblerPreamble): emit ID locations after
6459         configuration registers,
6460         * (pic16_linkCmd): modifications of the link command,
6461         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
6462         * (pic16_pCodeInitRegisters): don't init stack registers,
6463         * (pic16_findPrevInstruction): fixed bug,
6464         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
6465         bug with immediate registers,
6466         * (buildCallTree): traces stack push and pop,
6467         * (pct2): dump also stack usage for each function,
6468         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
6469         * (pic16_allocDirReg): various modifications,
6470         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
6471         fixed to 1,
6472
6473 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
6474
6475         * src/pic16/pcode.c: removed buggy double colon
6476
6477 2004-07-01 Borut Razem <borut.razem AT siol.net>
6478
6479         * support/scripts/sdcc.nsi: added include/pic16 to setup
6480
6481 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
6482
6483         * device/lib/Makefile.in: fixed bug in target objects-pic16,
6484         * device/lib/pic16/Makefile: prefixed with dash (-) command under
6485         target 'clean',
6486         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
6487         specific command line arguments. Also added sample lkr script
6488         for placing a variable at a specific memory bank.
6489         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
6490         at a specific memory bank,
6491         * (pic16_dump_isection): fixed bug which caused string literals to
6492         be omitted when dumping idata section,
6493         * (pic16_groupRegistersInSection): added code to handle registers
6494         in specific memory banks,
6495         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
6496         public, all references are renamed too,
6497         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
6498         AOP_DPTR2,
6499         * (pic16_storeForReturn): added case to handle when dest is WREG,
6500         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
6501         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
6502         pic16_rel_udata, check to see if that register is marked as being
6503         a member of a specific memory bank,
6504         * (pic16_printIvalCharPtr): added code to add string literals either
6505         to code or the idata sections,
6506         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
6507         also accept the 'udata' pragma,
6508         * src/pic16/main.h: new structure types sectName and sectSym
6509         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
6510         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
6511         * (pic16_findPrevInstruction): fixed, it returned nothing,
6512         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
6513         instruction combinations,
6514         * (pic16_FixRegisterBanking): heavily reorganised,
6515         * (pic16_AnalyzeBanking): if generating banksel directives is
6516         disabled, then don't call FixRegisterBanking at all,
6517         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
6518         completely removed,
6519         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
6520
6521 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
6522
6523         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
6524         Phuah Yee Keat <yk.phuah AT nestac.com>
6525
6526 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6527
6528         * src/pic16/glue.c (pic16createInterruptVect): function now emits
6529         correctly the IVT even if it is relocated to some other location
6530
6531 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6532
6533         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
6534         * device/include/pic16/pic18f2220.h: NEW,
6535         * device/lib/pic16/libdev/pic18f2220.c: NEW,
6536         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
6537         * src/pic16/device.c (struct Pics16): added info for 18f2220,
6538         * src/pic16/device.h (struct pic16_options): added ivt_loc and
6539         nodefaultlibs, ivt_loc is the location of the interrupt vector
6540         table, and nodefaultlibs signs that default libraries should not be
6541         linked in link stage,
6542         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
6543         according to --ivt-loc argument,
6544         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
6545         when pragma stack is found,
6546
6547 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6548
6549         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
6550         256 (range check), 257 (do while), 258.a-f (bit banging
6551         f.e. on 3-wire SPI bus)
6552
6553 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6554
6555         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
6556         variables used exclusively within a loop
6557
6558 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
6559
6560         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
6561
6562 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6563
6564         * src/SDCClrange.c (computeClash): fixed bug #971834
6565
6566 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6567
6568         * src/mcs51/gen.c (genCmp): fixed bug #975903
6569         * src/hc08/gen.c (operandsEqu),
6570         * src/ds390/gen.c (operandsEqu),
6571         * src/z80/gen.c (operandsEqu),
6572         * src/pic/gen.c (operandsEqu),
6573         * src/pic16/gen.c (operandsEqu),
6574         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
6575         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
6576
6577 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6578
6579         * src/SDCCcse.c (cseBBlock): fixed bug #966963
6580
6581 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
6582
6583         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
6584         default case in switch statement,
6585         * glue.c (pic16_initPointer): expr is initialised via decoarteType
6586         to eliminate problem with initialisation of pointers, but problem
6587         still exists,
6588         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
6589         * (emitStaticSegment): removed various lines emitting debug info,
6590         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
6591         added processor registers for utilizing EEPROM,
6592         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
6593         configurable and set 8
6594
6595 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
6596
6597         * .version: increased version number to 2.4.2,
6598
6599         Cumulative patch for pic16 port
6600         * src/pic16/device.c: changed scheme to dump initial values for
6601         variables in idata segment, all print_idata* functions were removed,
6602         now the pic16_printIval* will be called,
6603         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
6604         * _pic16_printPointerType, pic16_printPointerType,
6605         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
6606         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
6607         NEW, similar to the respective functions in SDCCglue.c,
6608         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
6609         way, emitting hex bytes,
6610         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
6611
6612 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6613
6614         * src/avr/ralloc.c (serialRegAssign),
6615         * src/xa51/ralloc.c (serialRegAssign),
6616         * src/pic/ralloc.c (serialRegAssign),
6617         * src/pic16/ralloc.c (serialRegAssign),
6618         * src/hc08/ralloc.c (serialRegAssign),
6619         * src/z80/ralloc.c (serialRegAssign),
6620         * src/ds390/ralloc.c (serialRegAssign),
6621         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
6622
6623 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6624
6625         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
6626         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
6627
6628 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
6629
6630         Cumulative patch for pic16 port:
6631         * src/pic16/device.h (typedef PIC16_device) modified fields for
6632         defining microcontrollers,
6633         * src/pic16/device.c: added new info for all devices in Pics16 array,
6634         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
6635         to be optimised out by the pCode optimiser,
6636         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
6637         specially, bug reported by G.M. Gallant,
6638         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
6639         as force'd so that cannot be optimised out by pCode optimiser,
6640         * src/pic16/pcode.c,
6641         * src/pic16/pcodepeeph.c,
6642         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
6643         they are disabled by default, but can be enabled explicit with
6644         command argument --denable-peeps, for testing,
6645         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
6646         --pomit-ivt in COMPILE_FLAGS
6647
6648 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6649
6650         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
6651           compilation on MSVC
6652
6653 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6654
6655         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
6656
6657 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6658
6659         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
6660         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
6661
6662 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
6663
6664         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
6665         would only assign 0x300001 register.
6666
6667 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
6668
6669         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
6670         in COMPILE_FLAGS. Thanks to G. Gallant for report.
6671
6672 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6673
6674         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
6675         for ds80c400
6676         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
6677         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
6678         added peephole 254 (left shift), 255 (jump table)
6679
6680 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
6681
6682         * device/lib/Makefile.in: removed comment line with model-pic16,
6683         * (target port-specific-objects-pic16): the libraries and objects
6684         are copied to the build directory form the device/lib/pic16/bin
6685         directory
6686
6687         Cumulative patch concerning pic16 port:
6688         * library directory has been re-organized,
6689         * added support for PIC18F1220,
6690         * added headers and library sources for chips 18f1220,18f6520,
6691         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
6692
6693         * configuration registers setting has changed, now each supported
6694         device has a complete description of the registers it uses,
6695         * all initialisations are moved to idata sections, these section
6696         can be absolute or relocatable,
6697         * fixed initialisation of codespace variables,
6698         * fixed warning about PCLATU and gpsim,
6699         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
6700         * (genAssign): use table reads when assigning from variables in codespace,
6701         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
6702         char/int variables placed in codespace,
6703         * (pic16_emitConfigRegs): NEW, emits a list with configuration
6704         registers set in .asm file, no need for --pomit-config-words anymore,
6705         * (pic16glue): some 8051 legacy segments are commented out
6706         (to be removed completely),
6707         * added support for alternative assembler and linker with --asm=
6708         and --link= command line arguments,
6709         * peepholes are disabled automatically in the port, no need to
6710         specify on command line,
6711         * port supports natively char/int/long multiplication, but converts
6712         all divisions to support functions,
6713         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
6714         to the file set in variable $2,
6715         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
6716         strings in ASCII format and not in hex,
6717         * ralloc.c (serialRegAssign): added a triplet of conditional calls
6718         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
6719         allocate proper register if iCodes aren't temporary,
6720
6721 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
6722
6723         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
6724
6725 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
6726
6727         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
6728         is commented out
6729
6730 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6731
6732         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
6733         computed address is reused
6734         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
6735         multi-byte bitfields
6736
6737 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6738
6739         * src/z80/gen.c: (genArrayInit): must check for pointers too
6740
6741 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6742
6743         * support/regression/tests/zeropad.c: never meant to commit the
6744           nestedstruct test: removed, added check for GCC version
6745
6746 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
6747
6748         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
6749         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
6750         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
6751           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
6752           bugs 928906 and 954082 half-empty initializers
6753         * src/SDCCsymt.h,
6754         * src/SDCCsymt.c (getAllocSize): added for above fix
6755         * src/z80/gen.c (genArrayInit): fixed bug 741044
6756         * support/regression/tests/zeropad.c: added tests
6757
6758 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
6759
6760         * src/pic16/device.c (pic16_dump_section): corrected bug which
6761         caused some symbols of the libraries to be misplaced
6762
6763 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6764
6765         * src/pic16/glue.c,
6766         * src/pic16/ralloc.h,
6767         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
6768         to fix conflict with pic port
6769
6770 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6771
6772         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
6773         externs configuration variables,
6774         * src/pic16/ralloc.h,
6775         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
6776         prototype in header, commented out some debug messages
6777
6778 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
6779
6780         * src/pic16/glue.c,
6781         * src/pic16/main.c,
6782         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
6783         for gpasm COFF object generation. Thanks to D. Hawkins for
6784         his patch info
6785
6786 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6787
6788         * src/ds390/main.c,
6789         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
6790         Brock for spotting this)
6791         * src/ds390/gen.c (genEndFunction),
6792         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
6793         interrupt handler and critical. Disable push/pop optimizations when
6794         peephole optimizations disabled.
6795
6796 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6797
6798         Updated pic16 library sources and headers.
6799         * device/lib/pic16/pic18f*/ ,
6800         * device/include/pic16/*.h: modified to handle structured SFR
6801         definitions
6802
6803 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6804
6805         * src/port.h (PORT structure): added hook initPaths, now each
6806         port can declare its own default search paths,
6807         which can been seen with the --print-search-dirs option,
6808         see pic16 port for example,
6809         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
6810         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
6811         * (doPrintSearchDirs): NEW, replaces in a central manner the
6812         printing of search dirs which was split in set*Paths functions,
6813         * (main): added call to port->initPaths and doPrintSearchDirs,
6814         * src/avr/main.c,
6815         * src/ds390/main.c,
6816         * src/hc08/main.c,
6817         * src/izt/i186.c,
6818         * src/izt/tlcs900h.c,
6819         * src/mcs51/main.c,
6820         * src/pic/main.c,
6821         * src/pic16/main.c: modified port structures to reflect addition of
6822         initPaths hook,
6823
6824         * src/pic16/device.c (regCompare): registers are finally sorted by name,
6825         * (pic16_dump_section): for registers in same address reserve memory once,
6826         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
6827         to no_banksel,
6828         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
6829         result is greater in size than right or left,
6830         * (pic16_genUMult8X8_8): there are some cases where the result can
6831         be 16 bits size, so handle these,
6832         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
6833         * (pic16_outBitC): modified to emit pcodes,
6834         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
6835         or not,
6836         * (genDivOneByte): implemented algorithm to divide 8-bits,
6837         * (genCmp): uncommented goto, but issues still exist,
6838         * (genAnd): fixed a bug with variables >8bits,
6839         * (genPackBits): optimization added that uses BCF/BSF to change a
6840         single bit,
6841         * (genAssign): fixed bug when assigning floating point literals,
6842         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
6843         __sdcc_gsinit_startup label,
6844         * src/pic16/main.c (_pic16_init): removed search directory
6845         initialisations,
6846         * (_pic16_initPaths): NEW, used to initialise search directories,
6847         * (_hasNativeMulFor): support functions for all except char/int
6848         multiplication, and char division,
6849         * (PIC16_port struct): modified entry for native mul support,
6850         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
6851         no_banksel option,
6852         * (buildCallTree): call to register_usage is ifdef'ed out,
6853
6854 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6855
6856         * device/include/string.h: applied Stas Sergeev's patch to make this
6857         header file compatible with the preprocessor -Wundef option
6858         * src/SDCCmain.c (main): abort compilation if preprocessor reports
6859         failure (fixes bug #941458)
6860
6861 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6862
6863         * src/SDCCopt.c (killDeadCode): fixed bug #907733
6864         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
6865         that the variable, not the function, should be static
6866         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
6867         to be consistent with non-literal case
6868
6869 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6870
6871         * src/SDCCast.c (isConformingBody): fixed bug #949967
6872         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
6873         convilong): fixed bug #952086
6874
6875 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6876
6877         * src/SDCCmem.c (allocVariables): fixed bug #955321
6878
6879 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6880
6881         * src/hc08/main.c (_hc08_genAssemblerEnd),
6882         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
6883         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
6884         completely eliminated the use of a temporary file
6885         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
6886         when more than one file linked
6887         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
6888
6889 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6890
6891         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
6892         which fixes bug #543481
6893         * support/regression/tests/bug-751703.c: fixed comments left from a
6894         cut and paste error
6895         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
6896         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
6897         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
6898         scopes
6899         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
6900         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
6901         are now changed to underscores in moduleName
6902
6903 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6904
6905         * as/mcs51/lkmem.c: better fix for bug #954173
6906
6907 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6908         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6909
6910         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
6911         * device/include/c8051f000.h,
6912         * device/include/c8051f120.h,
6913         * device/include/c8051f300.h,
6914         * device/include/c8051f310.h,
6915         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
6916         PWM16) and detab'ed
6917
6918 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6919
6920         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
6921         and mailing lists, doc'ed --no-peep-comments, removed reference
6922         to knoppix (newest version has no LyX/LaTeX), other minor changes
6923         * src/SDCCglue.c (glue): save 2 bytes stack space with
6924         option --main-return. The ljmp could probably be avoided too
6925
6926 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6927
6928         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
6929
6930 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6931
6932         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
6933         * src/SDCCopt.c (isLocalWithoutDef),
6934         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
6935         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
6936         (credit to Maarten Brock for patch #949363, on which this is based)
6937         * support/regression/tests/bug-751703.c: some test cases of extern used
6938         within inner scopes.
6939
6940 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6941
6942         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
6943         SPEC_STRUCT
6944         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
6945         struct definitions
6946         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
6947         dwWriteLabel): fix to create valid debugger symbols even when
6948         the module name has non-alphanumeric symbols in it
6949         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
6950         when a variable's allocation has been optimized away
6951
6952
6953 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6954
6955         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
6956         * src/hc08/main.c,
6957         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
6958         * src/mcs51/main.c,
6959         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
6960         * src/ds390/main.c,
6961         * src/z80/gen.c (z80_emitDebuggerSymbol),
6962         * src/z80/main.c,
6963         * src/pic/gen.c (pic14_emitDebuggerSymbol),
6964         * src/pic/main.c,
6965         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
6966         * src/pic16/main.c,
6967         * src/avr/gen.c (avr_emitDebuggerSymbol),
6968         * src/avr/main.c,
6969         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
6970         * src/xa51/main.c,
6971         * src/SDCCdebug.c (emitDebuggerSymbol),
6972         * src/SDCCdebug.h,
6973         * src/port.h: added a debugger struct to the port struct. Added a
6974         callback for defining debugger symbols
6975
6976         * src/SDCCast.c (createLabel),
6977         * src/SDCC.y (labeled_statement): mark all compiler generated labels
6978         with isitmp = 1
6979         * src/SDCCicode.h,
6980         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
6981         iCode back to the ast for the function
6982
6983         * src/hc08/ralloc.c (hc08_assignRegisters),
6984         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
6985         unneeded fields from the regs struct.
6986         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
6987         pushReg() & pullReg() functions instead of emitcode()
6988
6989         * src/hc08/gen.c (genLabel, genhc08Code),
6990         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
6991
6992         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
6993         debugger hooks
6994
6995         * src/hc08/gen.c (genEndFunction, genhc08Code),
6996         * src/hc08/gen.h,
6997         * src/mcs51/gen.c (genEndFunction, gen51Code),
6998         * src/mcs51/gen.h,
6999         * src/ds390/gen.c (genEndFunction, gen390Code),
7000         * src/ds390/gen.h,
7001         * src/z80/gen.c (genEndFunction, genZ80Code),
7002         * src/z80/gen.h,
7003         * src/z80/z80.h,
7004         * src/pic/gen.c (genEndFunction, genpic14Code),
7005         * src/pic/gen.h,
7006         * src/pic16/gen.c (genEndFunction, genpic16Code),
7007         * src/pic16/gen.h,
7008         * src/avr/gen.c (genEndFunction, genAVRCode),
7009         * src/avr/gen.h,
7010         * src/xa51/gen.c (genEndFunction, genXA51Code),
7011         * src/xa51/gen.h,
7012         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
7013         specific code to cdbFile.c and out of the backend code generators
7014
7015         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
7016         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
7017         starting address is now 0
7018
7019         * as/hc08/asm.h,
7020         * as/hc08/m08pst.c,
7021         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
7022         assembler directive for DWARF support
7023         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
7024
7025         * src/src.dsp,
7026         * src/Makefile.in,
7027         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
7028
7029 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7030
7031         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
7032         and inappropriate peephole optimization in jump tables
7033
7034 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7035
7036         * as/hc08/m08pst.c,
7037         * src/SDCCglue.c: sdccopt works for the hc08 port now
7038
7039 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
7040
7041         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
7042
7043 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7044
7045         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
7046
7047 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7048
7049         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
7050         rules
7051         * src/SDCCmain.c,
7052         * src/SDCCglobl.h,
7053         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
7054         comments from the peephole optimizer replacement rules
7055         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
7056         symbols
7057         * src/SDCCcse.c (updateSpillLocation),
7058         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
7059         equivalents
7060         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
7061         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
7062         objects far pointers
7063
7064 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7065
7066         * src/SDCCsymt.h: a missing part of my last change
7067         * src/pic/ralloc.c (regTypeNum),
7068         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
7069
7070 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7071
7072         * src/SDCCicode.h,
7073         * src/SDCCicode.c (aggrToPtrDclType),
7074         * src/SDCCptropt.h,
7075         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
7076         ptrPseudoSymConvert),
7077         * src/pic/ralloc.c (regTypeNum),
7078         * src/pic16/ralloc.c (regTypeNum),
7079         * src/hc08/ralloc.c (regTypeNum),
7080         * src/ds390/ralloc.c (regTypeNum),
7081         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
7082         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
7083
7084 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7085
7086         * link/z80/lkmain.c (afile),
7087         * as/hc08/lkmain.c (afile),
7088         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
7089         prevent a pointer problem when a filename has no directory and
7090         no extension specified.
7091
7092 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7093
7094         * link/z80/lkmain.c (afile): allow periods in directory names
7095         * link/z80/lkmain.c (afile),
7096         * as/mcs51/lkmain.c (afile),
7097         * as/hc08/lkmain.c (afile): allow linker script file to have an
7098         extension other than ".lnk"
7099         * link/z80/lklex.c (getfid),
7100         * link/z80/lkmain.c (parse),
7101         * as/mcs51/lklex.c (getfid),
7102         * as/mcs51/lkmain.c (parse),
7103         * as/hc08/lklex.c (getfid),
7104         * as/hc08/lkmain.c (parse): Support comments in the linker script
7105         file on lines by themselves and after filenames
7106
7107 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7108
7109         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
7110
7111 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7112
7113         * src/z80/peeph-z80.def: removed some peephole rules that don't
7114         work with multibyte arithmetic (fixed bug #937126)
7115         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
7116         to registers and not global variables
7117         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
7118         geniCodePreInc, geniCodePostDec, geniCodePreDec,
7119         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
7120         checking for assignments not internally generated (fixed bug #931895)
7121         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
7122         structure member (fixed bug #930072)
7123
7124 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7125
7126         * src/SDCCmain.c (linkEdit),
7127         * src/hc08/main.c (_hc08_parseOptions),
7128         * as/hc08/Makefile.in,
7129         * as/hc08/aslink.h,
7130         * as/hc08/asm.h,
7131         * as/hc08/m08pst.c,
7132         * as/hc08/lkrloc.c (relr, rele),
7133         * as/hc08/lkarea.c (lnkarea)
7134         * as/hc08/lkmain.c (afile, parse),
7135         * as/hc08/lkelf.c: support for ELF output
7136         * as/hc08/lks19.c (s19),
7137         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
7138
7139 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7140
7141         * as/mcs51/lkihx.c: Fixed bug #899105.
7142
7143 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7144
7145         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
7146         .dsp files from Unix to DOS.
7147
7148 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7149
7150         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
7151         function pointers; we have been compliant for several months now.
7152         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
7153         change that was accidently commented out
7154         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
7155         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
7156         bug #922319
7157
7158 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7159
7160         * src/hc08/gen.c: output of all of the internal debugging information
7161         is now controlled by the D() macro; it is disabled by default
7162
7163 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7164
7165         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
7166         harder to keep the same registers during a CAST iCode
7167         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
7168         long via int can be done in a single cast, if the signedness is
7169         correct.
7170         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
7171         putchar() in tinibios.c in ds390's library
7172
7173 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
7174
7175         * src/SDCCast.c (decorateType): fixed bug #898889,
7176         cast result of a literal complement too
7177         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
7178         fixed check for bitfields
7179
7180 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
7181
7182         * src/SDCCicode.c (geniCodeLogic): made it static,
7183         (geniCodeLogicAndOr): added in order to fix bug #905492,
7184         (ast2iCode): fixed bug #905492
7185         * support/regression/tests/bug-905492.c: added
7186         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
7187         (processParms): fixed bug #927659: don't copy parms, this will clear
7188         decorated flag
7189         * support/regression/tests/bug-927659.c: added
7190
7191 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
7192
7193         * src/SDCCast.c (addCast): don't cast float to char
7194         * device/lib/libsdcc.lib: added _memmove
7195
7196 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
7197
7198         * device/lib/large/Makefile: fixed parallel execution by
7199         replacing `make` by `$(MAKE)`
7200
7201 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7202
7203         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
7204         offsets (fixes bug #923936)
7205
7206 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
7207
7208         * device/lib/small/Makefile: fixed parallel execution by
7209         replacing `make` by `$(MAKE)`
7210
7211 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7212
7213         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
7214
7215 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
7216
7217         * src/pic/gen.c (genCpl): multi-byte complements were not working.
7218         * src/regression/Makefile: Regression test was not running.
7219
7220 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7221
7222         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
7223         complement if possible
7224         * src/SDCCval.c (valComplement),
7225         * src/SDCCicode.c (operandOperation): fixed complement of literal
7226         * support/regression/tests/onebyte.c (testComplement): added
7227
7228 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
7229
7230         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
7231         return an optimized tree; actually replace actParm with the new tree
7232         * src/SDCCast.h: added some parantheses to remove side effects
7233         * support/regression/tests/bug-920866.c
7234
7235 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
7236         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
7237         Bit operands were not being handled properly in the pic14 port.
7238         (now src/regression/add.c passes again).
7239
7240 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7241
7242         * src/SDCC.y (labeled_statement): case and default no longer require
7243         a following statement (RFE #893037)
7244
7245 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7246
7247         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
7248         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
7249         disabled (fixes bug #916294)
7250         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
7251         "mov a,acc"; patch provided by Lenny Story
7252         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
7253
7254 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7255
7256         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
7257         functions
7258         * src/ds390/gen.c (genFunction, genEndFunction),
7259         * src/ds390/ralloc.c (ds390_assignRegisters),
7260         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
7261         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
7262         pushed if there are parameters passed on the stack. Also, a cleaner
7263         way to decide if r0/r1 should be pushed/popped. (Together they fix
7264         bug #918693)
7265
7266 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7267
7268         * doc/sdccman.lyx,
7269         * device/lib/mcs51/crtpagesfr.asm,
7270         * device/lib/mcs51/crtxinit.asm,
7271         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
7272         to avoid confusion with Si Lab's SFRPAGE register.
7273
7274 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7275
7276         * src/SDCCglue.c (emitMaps): allow public sfr variables
7277         * src/SDCCglue.c (initialComments): include compiler build date
7278         with compiler version and put the timestamp of the generated
7279         assembly file on a serperate line to be less confusing.
7280         * src/port.h: added genInitStartup hook
7281         * src/avr/main.c,
7282         * src/ds390/main.c,
7283         * src/hc08/main.c,
7284         * src/pic/main.c,
7285         * src/pic16/main.c,
7286         * src/xa51/main.c,
7287         * src/z80/main.c: genInitStartup initialize as NULL (default to
7288         historical behaviour)
7289         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
7290         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
7291         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
7292         library instead of hard coding it into the compiler.
7293         * support/regression/ports/mcs51-stack-auto/spec.mk,
7294         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
7295         * device/lib/mcs51/Makefile,
7296         * device/lib/small/Makefile,
7297         * device/lib/large/Makefile,
7298         * device/lib/mcs51/crtpagesfr.asm,
7299         * device/lib/mcs51/crtstart.asm,
7300         * device/lib/mcs51/crtxclear.asm,
7301         * device/lib/mcs51/crtxinit.asm,
7302         * device/lib/mcs51/crtclear.asm,
7303         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
7304         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
7305         and into user configurable files.
7306         * device/lib/clean.mk: clean mcs51 directory too
7307         * support/regression/tests/longlit.c: added static to T1 declaration
7308         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
7309         accesses in the initialization code
7310
7311 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7312
7313         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
7314         OSCTRIMVAL as noted in bug #916008
7315
7316 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7317
7318         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
7319         in loops with multiple exits (reported as incorrect registers
7320         used by Martin Helmling in Sdcc-user list)
7321
7322 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7323
7324         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
7325         made ds390 register extensions look less like error messages
7326
7327 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7328
7329         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
7330         reported by Adam Wozniak in Sdcc-user list
7331
7332 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
7333
7334         * src/SDCCast.c (decorateType): fixed with bug and promotion in
7335         arithmetic optimizations, added debug output
7336
7337 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
7338
7339         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
7340         * sdcc.spec: updated and split sdcc into 3 rpms
7341         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
7342         needed for literals of LEFT_OP and '+'
7343         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
7344         introduced RESULT_TYPE_NOPROM
7345         (geniCodeMultiply): fixed logic for decision if mul is optimized to
7346         left shift
7347         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
7348         limited promotion to int only for '*'
7349         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
7350
7351 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
7352
7353         * src/pic16/gen.c (genSkip),
7354         (genc16bit2lit), (gencjneshort): commented out
7355         (is_LitOp): new helper function, checks operand type
7356         (genCmpEq): rewritten
7357
7358 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
7359
7360         * support/regression/tests/bug-908454.c: added
7361
7362 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
7363
7364         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
7365         * src/SDCCicode.c (usualBinaryConversions): op needs int type
7366         (geniCodeCast): cosmetic, don't preserve bit storage class
7367         (geniCodeLeftShift): added promotion
7368         (geniCodeLogic): fixed regression
7369         * src/SDCCsymt.c (computeTypeOr): accept bits too
7370         (compareType): 2nd part of fix for bug #908454, needed for bitfields
7371
7372 2004-03-07  Borut Razem <borut.razem AT siol.net>
7373
7374         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
7375
7376 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
7377
7378         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
7379         version of pic16_genPackRegisters which does not check if ic is a
7380         CAST operator,
7381         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
7382         function cause string1.c regression test fails
7383
7384 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
7385
7386         * sim/ucsim/configure.in,
7387         * sim/ucsim/configure,
7388         * sim/ucsim/doc/Makefile.in: use docdir
7389         * src/SDCC.y: fixed sbit atrributes
7390         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
7391         * src/SDCCast.c (decorateType): |^& need special promotion handling
7392         * src/SDCCast.h,
7393         * src/SDCCsymt.h: moved definition of RESULT_TYPE
7394         * src/SDCCsymt.h (computeType),
7395         * src/SDCCicode.c: computeType() needs op
7396         * src/SDCCsymt.c (checkTypeSanity),
7397         * doc/sddman.lyx: "plain" bitfields are unsigned
7398         * src/SDCCsymt.c (computeTypeOr): added
7399         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
7400         |^& ops
7401         * src/SDCCval.c (val*): computeType() needs op
7402         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
7403         * support/regression/tests/onebyte.c: added tests for |^&
7404
7405 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
7406
7407         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
7408         for writing icode into asm output.
7409
7410 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
7411
7412         * src/pic16/device.c: added some debug lines enabled
7413         with macro DEBUG_CHECK,
7414         * src/pic16/genarith.c: more debug in genPlus,
7415         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
7416         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
7417         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
7418         * (aopForSym): onStack symbols are re-placed in data memspace,
7419         and onStack flag is cleared,
7420         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
7421         copy temporary pcodeop,
7422         * (genPcall): added warning for not updating PCLATU,
7423         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
7424         always true for pic16 port,
7425         * (genMultOneWord): NEW, supports integer multiplication,
7426         * (genMult): modified to call genMultOneWord,
7427         * (ifxForOp): added warning when return NULL,
7428         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
7429         flag is set before call to operandFromSymbol for implicit
7430         added structures,
7431         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
7432         options.intlong_rent are set by default,
7433         * (_hasNativeMulFor): modified to allow port generation of integer
7434         multiplication,
7435         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
7436         set regtype to REG_SFR for all registers, restricting seting the
7437         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
7438
7439 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7440
7441         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
7442         more than 500 times in the regression tests
7443
7444 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7445
7446         * support/Util/SDCCerr.h,
7447         * support/Util/SDCCerr.c,
7448         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7449         enumerator_list),
7450         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
7451         for symbol conflicts.
7452         * support/valdiags/tests/enum.c,
7453         * support/valdiags/tests/tentdecl.c,
7454         * support/valdiags/tests/struct.c: expect possible error messages
7455         referring to original symbol definitions.
7456         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
7457         * src/SDCCsymt.h,
7458         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
7459
7460 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
7461
7462         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
7463
7464 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
7465
7466         * src/pic16/ralloc.c (newReg): fixed bug #908929
7467
7468 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7469
7470         * src/ds390/gen.c: added missing #include "main.h"
7471
7472 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
7473
7474         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
7475         checking if symbol is already in set,
7476         * src/pic16/device.h: prototype for checkAddSym,
7477         * src/pic16/gen.c: (_G): added entry interruptvector,
7478         * (assignResultValue): removed some commented out lines,
7479         * (genFunction): check for ISR via sym->type, absolute section for
7480         interrupt code is created via a new pBlock, the goto instruction is
7481         placed now correctly at the interrupt vector position, changed all
7482         references from ivec to _G.interruptvector,
7483         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
7484         is the interrupt is a high priority one, same for return from ISR,
7485         * src/pic16/glue.c: changed all calls of addSetHead for publics and
7486         externs to calls of checkAddSym,
7487         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
7488         pic16_pcode_verbose flag is set,
7489         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
7490         * src/pic16/pcoderegs.c: message about how many registers are saved
7491         will only be emitted if pic16_pcode_verbose flag is set,
7492
7493 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7494
7495         * src/ds390/ralloc.h,
7496         * src/ds390/ralloc.c (ds390_regWithIdx),
7497         * src/ds390/gen.c (emitcode),
7498         * src/ds390/main.h,
7499         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
7500         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7501         ds390operandCompare, getRegsRead, getRegsWritten,
7502         initializeAsmLineNode): customized instruction size calculation for
7503         ds390, started basis for some register optimizations
7504         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
7505         corresponding assembly output
7506         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
7507         missing push/pop of r0/r1. Optimized push/pops
7508
7509 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7510
7511         * src/mcs51/main.c (instructionSize): fixed ACALL size
7512         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
7513
7514 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
7515
7516         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
7517         the sorting of rlist with NULL elements
7518         * (print_idataType, print_idata): NEW to create idata sections
7519         * src/pic16/device.h: idataSymSet new variable
7520         * src/pic16/gen.c (genFunction): fixed some bugs in string
7521         comparing, improved the absolute section creation for ISRs,
7522         added FSR0L/FSR0H in registers that are saved in an ISR,
7523         * (genInline): fixed the processing of inline snippets,
7524         now they undergo no process by the peephole optimizer
7525         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
7526         are placed in idataSymSet,
7527         * (pic16emitStaticSeg): extern symbols are added in externs,
7528         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
7529         switching when aboslute variables are placed in access bank memory
7530         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
7531         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
7532         commented out with #if,
7533         * (pic16_packRegisters): reintroduce the check for CAST because some
7534         symbols are not correctly handled,
7535         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
7536         pCodeInstruction instead of pCode,
7537         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
7538         pCodeAsmDir definition,
7539         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
7540         directive, then the argument directive is emitted without the leading
7541         tab, hack for inline labels which must be in the first column,
7542         * (compareLabel,pic16_findNextInstruction),
7543         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
7544         * (insertBankSwitch): modified for the new pCodeAsmDir,
7545
7546 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7547         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
7548
7549         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
7550         instance,
7551         * (pushSide): commented out with #if,
7552         * (assignResultValue): fixed some typos in saving
7553         registers,
7554         * (genPcall): FIXED and sync'ed with genCall,
7555         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
7556         * (genNearPointerGet): fixed to handle some more cases,
7557         implementation scheme via table reads,
7558         * (genConstPointerGet): modified to access code memory correct,
7559         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
7560         and improved to handle some cases
7561         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
7562         instead of "RETLW" for init data
7563         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
7564         not IN_DIRSPACE, work around to reduce bank switching when aboslute
7565         variables are placed in access bank memory (<0x80 and >=0xf80),
7566         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
7567         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
7568         TBLWT_POSTDEC,TBLWT_PREINC
7569         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
7570         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
7571         directives
7572         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
7573         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
7574         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
7575         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
7576
7577 2004-02-29  Borut Razem <borut.razem AT siol.net>
7578
7579         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
7580         support/Util/findme.h, support/Util/system.h: enhance binary relative
7581         search for lib and include by using findProgramPath()
7582
7583 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7584
7585         * src/SDCCpeeph.h,
7586         * src/SDCCpeeph.c (pcDistance),
7587         * src/port.h,
7588         * src/mcs51/ralloc.h,
7589         * src/mcs51/ralloc.c (mcs51_regWithIdx),
7590         * src/mcs51/main.h,
7591         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
7592         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7593         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
7594         size calculation port specific, started basis for some register
7595         optimizations
7596         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
7597         missing push/pop of r0/r1. Optimized push/pops
7598         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
7599         * device/lib/_modsint.c (_modsint),
7600         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
7601         and stack version so regression tests pass
7602
7603 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
7604
7605         * src/Makefile.in (dep): include SLIBOBJS in dependency check
7606         * src/SDCCast.c (decorateType): catch another small optimization
7607         with '?' operator
7608         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
7609         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
7610         modified to finally use computeType() all over SDCC,
7611         see Feature Request #877103
7612         * src/SDCCval.h: cosmetic
7613         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
7614         valCompare(); regression tested in muldiv.c
7615         * support/regression/tests/muldiv.c (testMod): mod sign follows
7616         dividend only
7617
7618 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
7619
7620         * src/SDCCast.c (decorateType): fixed bug #902362
7621         * doc/INSTALL.txt: fixed install instructions for win32
7622
7623 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
7624
7625         * device/include/Makefile.in (install): fixed by replacing spaces
7626         by tabs
7627         * doc/README.txt,
7628         * doc/INSTALL.txt: updated for release
7629         * doc/sdccman.lyx: added warning for --xstack being buggy
7630
7631 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
7632
7633         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
7634         to eliminate build warnings.
7635         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
7636
7637 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
7638            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7639
7640         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
7641         removed -penable-stack, added comment for stack pragma, added
7642         warning for not initializing the stack/frame registers, removed
7643         comment at interrupts section
7644
7645         Stack is made permanent, there is no ability to disable stack usage.
7646         * src/pic16/device.h,
7647         * src/pic16/device.c: removed all references to USE_STACK macro,
7648         * src/pic16/device.c (pic16_dump_section): when no elements in
7649         rlist, free rlist before return,
7650         * (pic16_dump_int_registers): NEW, internal registers are a new set
7651         of general purpose registers reused by each function,
7652         * (checkAddReg): returns 1 if registers is added to set,
7653         * (pic16_groupRegistersInSection): when a registers is of type
7654         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
7655         * src/pic16/device.h: memRange and Assigned Memory are deleted,
7656         SRCASECMP macro is moved here from device.c
7657         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
7658         PO_PCLATU, PO_PRODL, PO_PRODH,
7659         * (pic16_pCodeOpType, genMinus,
7660         changed compares to "a" register, with AOP_ACC,
7661         * (pic16_genPlus): fixed some bugs and indented properly,
7662         * (pic16_addSign): changed size to size+offset in the MOVWF
7663         instruction,
7664         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
7665         multiply 8-bit operand by literal, result is 8-bit,
7666         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
7667         multiply 2 8-bit operand, result is 8-bit,
7668         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
7669         genUMult8X*_16,
7670         * src/pic16/gen.c: changed accUse to contain WREG only,
7671         * (pic16_emitcomment): renamed to pic16_emitpcomment,
7672         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
7673         true, do not use immediate addressing any more unless sym is a
7674         pointer in codespace,
7675         * (aopForRemat): do not use immediate addressing when symbol not in
7676         codespace and when symbol's address is requested,
7677         * (aopOp): for-loop in if(sym->accUse) is modified for the new
7678         accUse size (= 1),
7679         * (aopGet): added case for AOP_ACC and don't return "accumulator
7680         bug" but WREG instead,
7681         * (popGetTempReg): pushes contents of temporary register in stack,
7682         * (popReleaseTempReg): pops contents of temporary register from
7683         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
7684         * (pic16_popGet): separated case AOP_ACC to return register WREG
7685         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
7686         or PO_IMMEDIATE and initializes their instance/offset appropriately,
7687         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
7688         the use of immediate pointers to certain cases only.
7689
7690         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
7691         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
7692         * (assignResultValue, genCall, genRet): modified to use the new
7693         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
7694         genPcall is still broken,
7695         * (genFunction): added code to create 'A' type pBlocks when
7696         interrupt functions are generated, code not extensively tested yet,
7697         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
7698         * (genEndFunction): modified so ISRs pop stored registers from stack,
7699         * (genMultOneByte): cleanup,
7700         * (AccRsh): added flag andmask, to and result with appropriate mask,
7701         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
7702         * (genDataPointerGet): fixed and reenabled its use,
7703         * (genNearDataPointerGet): bugs fixed,
7704         * (genDataPointerSet): bugs fixed,
7705         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
7706         pic16_DumpSymbol, pic16_DumpOp,
7707         * src/pic16/genutils.h: function prototypes for the above functions,
7708         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
7709         pointers,
7710         * (pic16emitRegularMap): many many many improvements, but needs a
7711         major cleanup,
7712         * src/pic16/main.c: enable_stack in pic16_options is removed,
7713         * (_pic16_parseOptions): removed command line options -penable-stack,
7714         * (_process_pragma): emit stack symbol only when stack pragma is
7715         processed,
7716         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
7717         redirected to FSR0L/FSR0H pair,
7718         * (pic16_get_op, pic16_get_op2): modifications and improvements,
7719         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7720         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
7721         for immediates,
7722         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
7723         * (dumpPicOptype): NEW,
7724         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
7725         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
7726         with movff instruction,
7727         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
7728         added pic16_int_regs, some packRegsFor* functions are commented out,
7729         because produce errors,
7730         * src/pic16/NOTES: minor modifications
7731
7732 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7733
7734         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
7735         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
7736         --pack-iram.
7737         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
7738         * as/mcs51/lkaomf51.c: fixed bug #895763
7739
7740 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
7741
7742         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
7743
7744 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7745
7746         * doc/sdccman.lyx: added details about the HC08 storage classes and
7747         interrupts, fixed the register usage info for z80 & gbz80
7748
7749 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
7750
7751         * doc/sdccman.lyx: added more pic16 port documentation
7752         * device/include/pic16/: added header pic18fregs.h
7753
7754 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
7755
7756         * doc/sdccman.lyx: added Vangelis' contribution
7757
7758 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7759
7760         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
7761         extend to the next CALL or PCALL, not just to the next CALL.
7762
7763 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
7764
7765         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
7766
7767 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7768
7769         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
7770         bug #895752 and a better fix for bug #716790
7771
7772 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7773
7774         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
7775
7776 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7777
7778         * doc/sdccman.lyx: minor changes, minor changed
7779
7780 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
7781
7782         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
7783         which can't handle SDCC_NEWONEBYTEOPS,
7784         (geniCodeMultiply): removed conversion from mult to shift for pic14
7785         and pic16
7786
7787 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7788
7789         * src/hc08/gen.h,
7790         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
7791         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
7792         thus fixing bug #895406
7793
7794 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
7795
7796         * device/lib/_modsint.c,
7797         * device/lib/_modslong.c: sign follows divisor only
7798         * src/hc08/gen.c (genMultOneByte): if result size is 1,
7799         signs or signedness can be ignored
7800         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
7801         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
7802         added optimization for IFX,
7803         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
7804         arguments;
7805         reenabled optimization for IFX, which was removed on 2004-01-11
7806         * src/SDCCast.h: added return type IFX
7807         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
7808         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
7809         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
7810         SDCC_OLDONEBYTEOPS selects the old behaviour
7811         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
7812         changed again and commented promotion rule
7813         * src/SDCCval.c (valDiv): promotion no longer necessary
7814         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
7815         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
7816         rewritten
7817         * support/regression/tests/onebyte.c: added
7818
7819 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
7820
7821         * gen.c (genInline): reverted to old code for assemnling inline
7822         code because of bug reported James Chadd
7823
7824 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
7825
7826         * ralloc.h: missing declarations from previous patch,
7827         seems that patch for ralloc.h was never applied, fixed
7828
7829 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7830            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7831
7832         * pcode.c,
7833         * pcode.h,
7834         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
7835         indirect addressing. Marked FSR0 as deprecated
7836         * gen.c (pointerCode): commented out, not needed now
7837         (pic16_popGet2p): new MOVFF helper function
7838         (genGenPointerGet),
7839         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
7840         (shiftRLong): removed duplicate debugging info
7841
7842 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7843
7844         * src/ds390/gen.c (genNearPointerGet),
7845         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
7846         optimization with bits, but not bitfields.
7847         * src/ds390/ralloc.c (packRegisters),
7848         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
7849
7850 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
7851
7852         * src/SDCCcse.c (algebraicOpts): copy operands before modification
7853
7854 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7855
7856         * src/SDCCsymt.h,
7857         * src/SDCCicode.c (operandFromSymbol),
7858         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
7859         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
7860         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
7861         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
7862         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
7863         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
7864         bug #892038
7865         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
7866         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
7867         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
7868         * src/SDCCsymt.c (newSymbol),
7869         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7870         enumerator_list),
7871         * src/SDCCval.h,
7872         * src/SDCCval.c (newiList): fixed bug #885705
7873
7874 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7875
7876         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
7877         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
7878
7879 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7880
7881         * device/include/c8051f120.h,
7882         * device/include/c8051f300.h,
7883         * device/include/c8051f310.h: added/updated header files for Silicon
7884         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7885         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
7886         in new section Submitting patches
7887
7888 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7889
7890         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
7891         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7892         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7893         genGenPointerSet),
7894         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
7895         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7896         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7897         genGenPointerSet),
7898         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
7899         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7900         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7901         genGenPointerSet),
7902         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
7903         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7904         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7905         genGenPointerSet): fixed bug #892400
7906         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
7907         to eliminate build warnings.
7908         * src/SDCCast.c (processParms),
7909         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
7910         fixed bug 751859
7911         * support/valdiag/valdiag.py: added GCC to the list of defines active
7912         when compiling with gcc
7913
7914 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7915
7916         * support/Util/SDCCerr.h,
7917         * support/Util/SDCCerr.c,
7918         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
7919         with an incomplete type (fixed bug #883734)
7920         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
7921
7922 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7923
7924         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
7925
7926 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7927
7928         * src/SDCCast.c (decorateType),
7929         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
7930         function pointer implementation
7931         * support/regression/tests/funptrs.c: added tests to verify both forms
7932         of function pointers work correctly. Added tests to verify parameters
7933         are passed in the correct order.
7934
7935 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
7936
7937         * device.c (regCompare): registers are sorted by ascending
7938         address and increasing size,
7939         * main.c (_pic16_finaliseOptions): removed the declaration
7940         of compiler macro MCU. Now a macro of the format pic18fxxxx
7941         will be defined from the command line
7942
7943 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7944             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7945
7946         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
7947         PCOP_RLCF was overwritten!
7948         * gen.c (genSkip): commented out calls to pic16_emitcode,
7949         * (genCmpEQ): fixed "long" compares, only high word did get compared,
7950         * (genlshTwo),
7951         * (genRRC): added debugging info,
7952         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
7953         overwritten while shifting,
7954         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
7955         overwritten while shifting,
7956         * (AccLsh),
7957         * (AccRsh),
7958         * (shiftLLeftOrResult),
7959         * (shiftRLeftOrResult),
7960         * (shiftRLong),
7961         * (shiftLLong): Implemented with pic16_emitpcode
7962         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
7963         * (genLeftShift): Fixed bug, operand for shift by variable always
7964         was "and"ed with 0x0f,
7965         * (genLeftShiftLiteral),
7966         * (genrshTwo),
7967         * (genRightShiftLiteral): added debugging info,
7968         * (genrshFour): added comment,
7969         * (genRightShift): determined signedness from operand "left"
7970         instead of "result"
7971
7972 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7973
7974         * src/SDCCicode.c (geniCodeParms),
7975         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
7976         function pointers, fixed function pointer bugs #861242 and #861896
7977
7978 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7979
7980         * device/include/c8051f000.h,
7981         * device/include/c8051f120.h,
7982         * device/include/c8051f300.h: added header files for Silicon
7983         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7984
7985 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
7986
7987         * src/SDCCast.c (processParams): added new type flow and restructured
7988         (gatherAutoInit): added new type flow
7989         (addCast): cosmetic changes
7990         (getLeftResultType): added new type flow for array indices, patch
7991         provided by Stas, see FR #877103
7992         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
7993         array index patch by Stas
7994         * src/SDCCast.h: added prototype getResultTypeFromType()
7995         * src/SDCCval.h,
7996         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
7997         * src/pic/glue.c (pic14emitStaticSeg),
7998         * src/pic16/glue.c (pic16emitStaticSeg),
7999         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
8000         for initialization of symbols
8001         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
8002         * support/Util/SDCCerr.h:
8003         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
8004         * .version: bumped version number to 2.3.8
8005         * device/include/Makefile.in (install),
8006         * doc/Makefile (install): changed to 'rm `find ...`' construct to
8007         avoid warnings
8008
8009 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
8010
8011         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
8012         Slade Rich fixed an optimization bug
8013         * src/pic/pcodepeep.c,
8014         * src/pic/pcoderegs.c
8015         * doc/Makefile (install): added test for directory
8016
8017 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8018
8019         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
8020         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
8021         * src/pic/ralloc.c (getRegPtr, getRegGpr),
8022         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
8023         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
8024         * as/mcs51/asexpr.c (term),
8025         * as/hc08/asexpr.c (term): fixed bug #887146
8026
8027 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8028
8029         * src/z80/gen.c (genMult): handle single byte result product
8030         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
8031         DUMMY_READ_VOLATILE (fixed bug #886367)
8032
8033 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8034
8035         * support/regression/tests/libmullong.c: fixed logic, on little endian
8036         hosts we ended without a mullong_wrapper()
8037
8038 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8039
8040         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
8041         virus/worm forged address usage.
8042
8043 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
8044
8045         Fixed promotion, it should be done on AST level:
8046         * src/SDCCast.c (addCast): added promotion to int
8047         (decorateType): updated call to upCast()
8048         * src/SDCCicode.c (geniCodeLeftShift): removed call to
8049         usualUnaryConversions()
8050
8051 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
8052
8053         * support/regression/tests/literalop.c (mulWrapper): Added a
8054         wrapper to remove integer overflow warnings.
8055
8056         * support/regression/tests/float_trans.c: Made work on host.
8057
8058         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
8059         location of sz80.
8060
8061         * support/regression/generate-cases.py (main): Changed from inline
8062         to a main method.
8063
8064         * doc/Makefile (install): Changed to depth first to get rid of
8065         missing directory install warning.
8066
8067         * as/Makefile (install-doc): Made work on Mac.
8068
8069 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
8070
8071         * src/SDCCast.c: added an additional type flow in decorateType() of
8072         opposite direction, see feature request #860006; it's enabled at runtime
8073         by setting the environment variable SDCC_NEWTYPEFLOW
8074         * src/SDCCast.h: changed prototype of decorateType()
8075         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
8076         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
8077         'char' to 'int' can be omitted, if both operands are 'unsigned char';
8078         see feature request #877103
8079         * src/SDCCval.c: updated call of decorateType()
8080         (valBitwise): fixed bug #882876
8081         (valMinus): added promotion
8082         (valLogicAndOr): result is unsigned
8083         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
8084         * src/SDCCsymt.c (computeType),
8085         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
8086         must not cause an unsigned operation
8087         * src/pic/glue (pic14emitRegularMap),
8088         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
8089
8090 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
8091
8092         * src/pic/pcode.c (PCodeID): commented out left over debug code
8093
8094 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
8095
8096         * support/valdiag/tests/overflow.c: added shift tests
8097         * src/pic/device.c,
8098         * src/pic/gen.c,
8099         * src/pic/gen.h,
8100         * src/pic/glue.c,
8101         * src/pic/main.c,
8102         * src/pic/pcode.c,
8103         * src/pic/pcode.h,
8104         * src/pic/pcodepeep.c,
8105         * src/pic/pcoderegs.c,
8106         * src/pic/ralloc.c,
8107         * src/pic/ralloc.h: applied patch from Slade Rich;
8108         added support for multiple code pages and multiple RAM banks on the
8109         PIC 14 port. The ASM files now no longer simply assume all the
8110         code / RAM are in the same page / bank. This means the linker can
8111         safely allocate code/RAM of separate ASM files to different pages/banks.
8112         * doc/sdccman.lyx: added Slade's tips
8113         * src/mcs51/peeph.def: fixed bug #880768
8114
8115 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8116
8117         * src/hc08/ralloc.c (rematStr): fixed bug #879282
8118         * src/SDCCast.c (decorateType): fixed bug #880197
8119
8120 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
8121
8122         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
8123         getopt.h.
8124
8125         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
8126         strtof is not part of C89 and isn't included with Mac OS X.
8127
8128 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8129
8130         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
8131         shiftL2Left2Result): fixed bug #879326
8132         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
8133         (genMultOneByte): fixed bug in signed vs unsigned multiplication
8134         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
8135         address fetch for clr instruction
8136         * device/lib/hc08/_mulint.c: created optimized assembly version
8137         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
8138
8139 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
8140
8141         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
8142         proposed in FR #877103
8143
8144 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
8145
8146         * src/SDCCval.c (cheapestVal): added missing checks
8147         * src/SDCCicode.c (usualBinaryConversions): fixed condition
8148         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
8149
8150 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
8151
8152         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
8153         equal operands
8154
8155 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
8156
8157         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
8158         loaded with the linker search paths (-L arguments) and the libraries
8159         to be linked with the current source (-l arguments). Changes
8160         currently will affect only the pic16 port.
8161         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
8162         include path the port specific paths and port specific libraries,
8163         * gplink command now contains the $3 argument,
8164         * src/pic16/device.h,
8165         * src/pic16/device.c,: structure PIC_device is made public and
8166         renamed to PIC16_device, the same for variable Pics which is renamed
8167         to Pics16. Updated all references to them.
8168         * src/pic16/glue.c (pic16glue): corrected bug with code
8169         initialization which bypassed the variable initializations block.
8170
8171         * device/lib/pic16/Makefile.rules: removed --penable-stack from
8172         COMPILE_FLAGS and added the --nostdinc option
8173
8174 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8175
8176         * device/include/mc68hc908jb8.h: Register defs for another member
8177         of the hc08 family. Contributed by Bjorn Bringert - thanks!
8178
8179 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
8180
8181         Documenting changes from previous commits.
8182         * configure.in (version 1.56),
8183         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
8184         when generating output files to configure the pic16 library,
8185         but now I've commented it out, since gputils aren't installed in the
8186         SF compile farm, so library won't compile
8187
8188         * device/lib/Makefile.in (version 1.56): initially I've added in
8189         target 'all' the prerequestive 'model-pic16' so it compiled the
8190         pic16 library, but now I've commented it out for the same reasons
8191         above,
8192         * added targets 'model-pic16' and 'objects-pic16' to compile the
8193         library
8194         * added target 'port-specific-objects-pic16' to handle the
8195         generated libraries and copy them into the build/ directory
8196         * added target 'clean-intermediate-pic16' to clean intermediate
8197         files into pic16 directory
8198         * in target 'installdirs' added line to create directory pic16 in
8199         the installation path
8200
8201         * device/include/Makefile.in (version 1.11): in target 'install'
8202         added lines to copy all header files to installation path,
8203         * in target 'installdirs' added line create directory for pic16
8204         headers in the installation path
8205
8206 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
8207
8208         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
8209          a function call
8210
8211 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
8212
8213         * configure,
8214         * device/lib/configure.in,
8215         * device/lib/configure: fixed for autoconf 2.57
8216
8217 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8218
8219         * src/z80/main.c (_parseOptions): fixed the portmode= command line
8220         option so that it actually works. Made it specific to the z80, since
8221         the gbz80 doesn't have these kinds of I/O ports.
8222
8223 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8224
8225         * device/include/z180.h,
8226         * device/lib/_memcpy.c,
8227         * device/lib/_memmove.c,
8228         * device/lib/_mulint.c,
8229         * device/lib/ser_ir.c,
8230         * device/lib/ser_ir_cts_rts.c,
8231         * device/lib/_strcmp.c,
8232         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
8233         * src/z80/main.c (_process_pragma): add support for pragmas bank and
8234         portmode; added deprecation warning for bank= and protmode= forms.
8235         Also, guard against buffer overflow.
8236         * src/z80/gen.c (aopGet): generate better code for sfr banked read
8237
8238 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8239
8240         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
8241         changed interrupt vector table generation to only emit declared vectors.
8242         * device/include/Makefile.in: added missing backslash
8243         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
8244
8245 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8246
8247         Mainly changes to support compilation of the device libraries
8248         * src/pic16/device.c: stack is allocated via symbol and not
8249         via literal number. The symbol is placed in the corresponding
8250         position of the data ram
8251         * (pic16_dump_section): relocatable and absolute uninitialized
8252         data are now emitted in sorted order to reduce section naming,
8253         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
8254         weren't marked as being in the access bank,
8255
8256 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8257
8258         Added portion of GNU PIC Library under the directory
8259         device/include/pic16 and device/lib/pic16. These files
8260         contain the declarations of SFRs for the PIC18Fxx2 devices.
8261         The directory is initialized via configure from toplevel.
8262
8263 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
8264
8265         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
8266         the spilllocations to be compared correctly
8267
8268 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8269
8270         * src/SDCCast.c (decorateType): fixed bug introduced today
8271
8272 2004-01-12  Borut Razem <borut.razem AT siol.net>
8273
8274         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
8275         doc/sdccman.lyx: upper case pragmas are deprecated
8276
8277 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8278
8279         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
8280         in simpler and even better code
8281
8282 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
8283
8284         * src/SDCCicode.c (operandOperation): fixed bug #874819
8285         * src/SDCCast.c (decorateType): fixed
8286         char foo (unsigned long ul) { return ul > 0; }
8287
8288 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8289
8290         * doc/sdccman.lyx: Moved and added some sections, small changes
8291         all over. Telling LaTeX to be less strict with word spacing
8292         to better keep the right margin. Changed some notes about
8293         maintainance of the ports in section 3.2.1 - is it OK like this?
8294
8295 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8296
8297         SDCC source changes:
8298         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
8299         convilong): modified to inform the pic16 port that builtin functions
8300         are external
8301
8302         PIC16 PORT specific changes:
8303         * src/pic16/device.c pic16_dump_equates() added,
8304         processor registers declared internally by the port are emitted in
8305         the translation as equates,
8306         * src/pic16/gen.c: inline code is passed unprocessed to the
8307         translation,
8308         * (pic16_popGetLit2): fnuction modified to take second operand as
8309         pCodeOp pointer and not as literal,
8310         * (popRegFromIdx): prefixed with pic16_,
8311         * (pic16_popCombine2): modified to receive already allocated pCode
8312         operands,
8313         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
8314         * (genFunction): initializes local stack frame and pushes on stack
8315         all the registers used by this function,
8316         * (genEndFunction): restores all registers from stack and restores
8317         stack frame,
8318         * src/pic16/glue.c (pic16emitRegularMap): various changes and
8319         improvements,
8320         * (pic16glue): changed the program startup sequence,
8321         * added new dbName code 'A' for functions placed in absolute section
8322         * src/pic16/main.c: added function attribute _naked,
8323         * added pragma 'code' to place a fnuction at an absolute address,
8324         * added command line arguments --debug-ralloc and --pcode-verbose,
8325         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
8326         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
8327         * (pic16_newpCodeOpLit2): modified to take the second operand as
8328         pCodeOp pointer,
8329         * (pic16_printpBlock): modified to emit each function in a separate
8330         section,
8331         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
8332         UPPER for immediate operands,
8333         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
8334         instruction,
8335         * src/pic16/peeph.def: all peepholes with movff are commented out,
8336         because there is a problem in the pcode peep optimizer,
8337         * src/pic16/ralloc.c: the register allocator can now reuse local
8338         function symbols for another function. This saves register usage.
8339         * src/pic16/ralloc.h: added flag isLocal in structure regs,
8340
8341         Added file src/pic16/NOTES with information about program writing on
8342         the current port version.
8343
8344 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8345
8346         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
8347         and peephole 252 (array access)
8348
8349 2004-01-09  Borut Razem <borut.razem AT siol.net>
8350
8351         * src/SDCCmain.c : fixed #872250: -l command line defined library
8352           files are scanned before standard library files
8353
8354 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8355
8356         * src/SDCCast.c (decorateType): fixed bug #874046
8357
8358 2004-01-09  Borut Razem <borut.razem AT siol.net>
8359
8360         * support/scripts/sdcc.nsi: remove previous installation
8361
8362 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8363
8364         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
8365         bytes for last interrupt vector (mcs51)
8366         * sdcc.spec: fixed typo
8367
8368 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8369
8370         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
8371         gen51Code): more efficient parameter receive for --model-large
8372         ("bug" #845294)
8373
8374 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8375
8376         * src/ds390/main.c,
8377         * src/z80/main.c: added missed needLinkerScript flags (more than
8378         one port structure defined in these file)
8379         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
8380         bug #795325
8381
8382 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
8383
8384         * src/SDCCmain.c: removed various references to DEFAULT_PORT
8385         * src/port.h: added flag needLinkerScript in port->linker
8386         structure to inform whether to create a .lnk file or not,
8387         * src/avr/main.c,
8388         * src/ds390/main.c,
8389         * src/hc08/main.c,
8390         * src/mcs51/main.c,
8391         * src/pic/main.c,
8392         * src/pic16/main.c,
8393         * src/xa51/main.c,
8394         * src/z80/main.c: changed appropriately to configure
8395         needLinkerScript flag
8396         * src/pic/gen.c,
8397         * src/pic16/gen.c (genAddrOf): fixed bug #863624
8398         * src/pic/glue.c: added variable udata_section_name to
8399         override default uninitialized data segment definition for
8400         devices only with SHAREBANK memory (reported from Erik Epetrich)
8401         * (pic14emitOverlay): modified to emit a commented overlay segment
8402         directive when no overlay data exist
8403         * (picglue): modified to emit uninitialized data segment
8404         according to udata_section_name
8405         * src/pic/main.c (_pic14_parseOptions): added command line
8406         options --udata-section-name=[name] to override default
8407         udata definition name
8408         * modified _linkCmd and _asmCmd to include compiler passed
8409         arguments via -W option
8410         * src/pic16/main.c: added $l in _asmCmd, changed extension for
8411         object file from '.rel' to '.o' in port->linker structure,
8412         changed size of fptr from 2 to 3 in port structure
8413
8414 2004-01-07  Borut Razem <borut.razem AT siol.net>
8415
8416         * support/scripts/sdcc.nsi: update PATH
8417         * support/scripts/sdcc.ico: craeted
8418
8419 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
8420
8421         * device/include/Makefile.in: fix install
8422         * doc/Makefile: fix install
8423
8424 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8425
8426         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
8427         in bug #860505
8428         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
8429         how the function variable allocation summary is displayed; also
8430         include information about variables allocated to the overlay
8431         segment
8432
8433 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8434
8435         * as/mcs51/lkmain.c: Help about -Y option
8436         * as/mcs51/lkarea.c: Fixed gcc warnings
8437
8438 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8439
8440         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
8441         fixed warning
8442         * support/valdiag/tests/overflow.c: added
8443         * src/SDCCast.c (decorateType),
8444         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
8445         LEFT_OP (left shift)
8446
8447 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8448
8449         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
8450         (default behaviour).
8451
8452 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8453
8454         A python script to validate compiler diagnostic messages. It can be
8455         used to verify that sdcc complains about bad c source code and
8456         gives a good location of the error.
8457         * support/valdiag/Makefile,
8458         * support/valdiag/valdiag.py,
8459         * support/valdiag/tests/*
8460
8461 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8462
8463         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
8464         * src/SDCCsymt.c (newEnumType),
8465         * src/SDCCsymt.h
8466         * support/Util/SDCCerr.c,
8467         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
8468         enum related bugs.
8469         * support/regression/tests/enum.c: added test for enum values that
8470         require at least 2 bytes of storage.
8471
8472 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8473
8474         * src/common.h: added ifndef/define/endif macros
8475         around the header file.
8476         Bug reported from Jesus Calvino-Fraga
8477
8478 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8479
8480         * sdcc.spec: updated
8481         * device/include/Makefile.in: don't install CVS directories
8482         * device/lib/Makefile.in: added removal of CVS directories after install
8483         * doc/Makefile: fixed install, added local_icons
8484         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
8485         * src/mcs51/gen.c (genRightShift): fixed bug #870788
8486         * src/ds390/gen.c (genRightShift): fixed bug #870788
8487         * src/SDCCast.c (decorateType): fixed bug #870781
8488
8489 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8490
8491         PIC16 port related changes:
8492         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
8493         added variable stackPos,
8494
8495         * gen.c: genCall, assignResultValue: added support for
8496         pushing/retrieving function parameters to/from stack,
8497         genFunction,genEndFunction: setup stack frame for the
8498         generated function,
8499         genAddrOf: will be changed according to bug 863624
8500
8501         * added files genutils.c and genutils.h which contain gen*
8502         debugged and optimised functions extracted from gen.c
8503
8504         * glue.c: added variable 'externs' which holds extern symbols,
8505         pic16emitRegularMap: is modified to properly handle relocatable
8506          symbols under the new scheme,
8507         pic16createInterruptVect: is modified
8508         pic16printPublics: is modified to emit 'global' assembler directives,
8509         added pic16_printExterns to print extern symbols,
8510         pic16glue: initializes stack/frame pointer in the beginning of
8511         the assembly output. Temporary hack, will be corrected later,
8512         because gplink yet does not support stack and SDCC does not
8513         yet support a type of crt0.o object to create the final binary.
8514
8515         * Removed many lines that contain 8051 legacy code.
8516         * The code is finally placed under a 'code' directive.
8517         * Added port specific options.
8518
8519         * _process_pragma: simplified since now we do not need *special*
8520         include file to define SFR registers. But a separate header
8521         will be needed. This will be developed later.
8522         * _pic16_parseOptions: added, parses port specific options:
8523         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
8524         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
8525         --preplace-udata-with=
8526
8527         * _pic16_setDefaultOptions: modified to initialize section names,
8528         but hack is temporarly out of order since it needs improvement.
8529         * _pic16_genAssemblerPreamble: configuration words are emitted by
8530         their address instead of their name. This part is incomplete and
8531         supports only the 18Fxx2 devices. Other devices will emit an error
8532         during assembly since they do not contain the same set of config
8533         registers
8534         * _pic16_genIVT: is modified,
8535
8536         * pcode.c: added definitions for some hardware registers that are needed
8537         for stack support
8538         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
8539         All PCI entries are updated. Now LFSR is supported.
8540         * Removed pic16_pciTRIS is mentioned by mdubuc in source
8541         * added pic16_newpCodeOpLit2 to support instructions with
8542         two literal arguments
8543         * pic16_pCode2str: corrected code that emits assembler instructions
8544         with two literal operands and those that have an access bit modifier
8545         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
8546         this fixes a bug which caused some labels to be lost, when an
8547         assembler directive was added, i.e. banksel,
8548         * pic16_FixRegisterBanking: improved logic that causes the insertion
8549         of bank switching,
8550         * InlineFunction: functions that are called once, are not any more
8551         inlined. This can be a port option in the future,
8552
8553         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
8554
8555         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
8556         hold the corresponding uninitialized symbols,
8557         * pic16_allocProcessorRegister: registers have explicit marked the
8558         accessBank field,
8559         * pic16_allocInternalRegister: registers are explicit marked as
8560         not used,
8561         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
8562         processing list, so bit registers were lost,
8563         *
8564
8565         * ralloc.h: added field 'accessBank' and original symbol operand
8566         in register definition,
8567         * removed the field isMapped from register definition,
8568
8569         ** Several functions have been removed from various sources:
8570         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
8571         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
8572         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
8573         pic16_assignRelocatableRegisters
8574
8575         ** others have been introduced:
8576         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
8577         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
8578
8579 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
8580
8581         * support/scripts/inc2h.pl: changed definition of BIT_AT
8582         to emit 'sbit at' instead of 'bit at'. This was a request.
8583
8584         PIC16 port related preliminary changes:
8585         * gen.c: prefixed function popRegFromString with
8586         pic16_ and all references to it corrected
8587         * pcode.c: all pic16_pc_* hardware registers prefixed
8588         with underscore (_),
8589         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
8590         * ralloc.c: newReg(): when register is REG_SFR then
8591         set address to rIdx,
8592         pic16_allocProcessorRegister(): marks register wasUsed=0
8593         pic16_writeUsedRegs(): added a call to assign processor
8594         registers via pic16_assignFixedRegisters
8595
8596 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8597
8598         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
8599         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
8600         variables in unused register banks.  Also the SSEG is placed
8601         wherever there is enough space for it, and IDATA can be anywhere
8602         in internal RAM.  For now compile using -Wl-Y[stack_size].
8603         The mem file is different for this option as well, since it
8604         makes no sense of talking about DSEG lenght.
8605
8606 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
8607
8608         * src/SDCClrange.c: fixed bug 869095 that caused segfault
8609         in certain cases, e.g. when ROM assignment, patch provided
8610         from Albert den Haan.
8611
8612 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
8613
8614         Many signedness and type propagation fixes:
8615         * src/SDCCicode.c: made geniCodeCast() static
8616         replaced SPEC_ by IS_ (cosmetic)
8617         (operandOperation): fixed div and mod operation
8618         (usualBinaryConversions): added support for promotion of char
8619         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
8620         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
8621         (geniCodeAdd): an array index will stay unsigned, even if promoted
8622         from char to int
8623         (geniCodeArray): ditto
8624         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
8625         * src/SDCCsymt.c (computeType): added more support for char;
8626         promotion of char is selectable by promoteCharToInt, fixed signedness
8627         for all cases
8628         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8629         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8630         * src/SDCCval (val*): replaced signedness calculation by
8631         computeType()
8632         rearranged if-branches (cosmetic)
8633         (valShift): added warning W_SHIFT_CHANGED
8634         (valCompare): fixed problem with different types
8635         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
8636         * support/regression/tests/literalop.c: added many cases
8637         * support/regression/tests/ast_constant_folding.c: changed finally to
8638         'unsigned int'
8639         * .version: new year, new version: 2.3.7
8640         * src/SDCCmain.c (main): applied patch #866468
8641         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
8642         provided by Scott Bronson
8643         * doc/sdccman.lyx: updated documentation for sdcdb
8644         updated and added chapter tips
8645
8646 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8647
8648         * src/SDCCsymt.h: missing from yesterday's commits
8649
8650 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8651
8652         * src/SDCC.y (struct_or_union_specifier),
8653         * support/Util/SDCCerr.c,
8654         * support/Util/SDCCerr.h: verify that struct & union tags are used
8655         as declared.
8656
8657 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8658
8659         * src/SDCCglobl.h: missing from yesterday's commits
8660
8661 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8662
8663         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
8664         sft_attributes, struct_declaration, parameter_declaration,
8665         type_name, start_block, declaration_list),
8666         * src/SDCC.lex (check_type): support redefinition of typedef names
8667
8668 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8669
8670         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
8671         aligned xdata arrays. Erik helped me with the if clause.
8672
8673 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8674
8675         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
8676         warning
8677
8678 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8679
8680         * src/SDCCast.h,
8681         * src/SDCCast.c (newAst_),
8682         * src/SDCCicode.h,
8683         * src/SDCCicode.c (ast2iCode, newiCode),
8684         * src/SDCCglobl.h,
8685         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
8686         expr, statement, expression_statement, selection_statement,
8687         iteration_statement, expr_opt, jump_statement): foundation for tracking
8688         sequence points
8689         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
8690         point code too)
8691
8692 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8693
8694         * support/Util/SDCCerr.c,
8695         * src/SDCCast.h,
8696         * src/SDCCast.c (createCase, createDefault, decorateType),
8697         * src/SDCClabel.c (labelUnreach),
8698         * src/SDCC.y (labeled_statement, jump_statement): More improvements
8699         to error messages.
8700         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
8701         (with thanks to Stas Sergeev)
8702         * device/include/time.h,
8703         * device/lib/time.c (CheckTime): suppress unreachable code warning
8704
8705 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8706
8707         * src/SDCCast.c (createIvalCharPtr),
8708         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
8709         bug #753752)
8710         * support/regression/tests/nullstring.c: tests for these two bugs
8711
8712 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8713
8714         * support/Util/SDCCerr.h,
8715         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
8716         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
8717         about storage class and 'at' used inside struct or union
8718         * src/SDCCBBlock.c (iCodeFromeBBlock),
8719         * src/SDCCcse.c (ifxOptimize),
8720         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
8721         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
8722         printIval, emitStaticSeg, emitOverlay),
8723         * src/SDCClabel.c (deleteIfx),
8724         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
8725         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
8726         gatherAutoInit, processParms),
8727         * support/Util/SDCCerr.h,
8728         * support/Util/SDCCerr.c (werrorfl): Support for better error location
8729         reporting for post-parse errors.
8730
8731 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8732
8733         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
8734         implicit casts via union; they don't work on big endian systems
8735         (possible fix for bug #861138)
8736
8737 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8738
8739         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
8740         * src/mcs51/main.c: fixed the fix for bug #737001
8741
8742 2003-12-15  Borut Razem <borut.razem AT siol.net>
8743
8744         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
8745
8746 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8747
8748         * support/makebin/makebin.c: put output in binary mode
8749
8750 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8751
8752         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
8753         xdata and data memory on startup. Set the environment variable
8754         SDCC_NOGENRAMCLEAR to disable this.
8755         * src/mcs51/peephole.def,
8756         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
8757         (allows non-interrupt and interrupt code to safely compete for a resource
8758         without the non-interrupt code having to disable interrupts)
8759
8760 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8761
8762         * src/SDCCicode.c (geniCodeAdd),
8763         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
8764         with valFromType if type might be a pointer and host is big endian).
8765         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
8766         types, not just integer types.
8767         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
8768         multiply defined with mismatching "at" address.
8769
8770 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8771
8772         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
8773         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
8774         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
8775         with embedded nulls (fixed bug #753752)
8776
8777 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8778
8779         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
8780         Apparently this did not see much testing (endless loop)
8781
8782 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8783
8784         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
8785
8786 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8787
8788         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
8789         gracefully handle NULL memmap pointers
8790
8791 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8792
8793         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
8794         instead of deleting the iCode when an operand is volatile
8795         * src/z80/gen.c (genDummyRead),
8796         * src/mcs51/gen.c (genDummyRead),
8797         * src/ds390/gen.c (genDummyRead),
8798         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
8799         not just IC_RIGHT
8800         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
8801         * src/SDCC.y: fixed bug #850420
8802
8803 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8804
8805         Applied z80 i/o port patch from Peter Townson and fixed some operators
8806         to better handle operands in A register.
8807         * device/include/z180.h
8808         * src/SDCC.y
8809         * src/SDCCglue.c
8810         * src/z80/gen.c
8811         * src/z80/gen.h
8812         * src/z80/main.c
8813         * src/z80/peeph-z80.def
8814         * src/z80/peeph.def
8815         * src/z80/z80.h
8816
8817 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8818
8819         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
8820
8821 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8822
8823         * device/lib/hc08/_mullong.c: Removed extra #endif
8824
8825 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8826
8827         * sim/ucsim/hc08.src/inst.cc,
8828         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
8829         carries from x to h
8830         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
8831         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
8832         * device/include/stdarg.h: fixed varargs for hc08
8833         * device/lib/Makefile.in,
8834         * device/lib/hc08/Makefile,
8835         * device/lib/hc08/_mulint.c,
8836         * device/lib/hc08/_mullong.c: fixed some endian problems
8837
8838 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8839
8840         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
8841         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
8842         * device/lib/_gptrget.c,
8843         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
8844
8845 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8846
8847         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
8848         * src/SDCCast.c (astErrors): fixed bug #846007
8849         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
8850
8851 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8852
8853         * src/SDCCast.c (decorateType): disabled a transformation I added in
8854         revision 1.188 (access to fields of a structure at an absolute address);
8855         it breaks with bitfields, extern declarations, and gcse analysis.
8856         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
8857         could be assigned through a pointer, so don't complain.
8858         * src/SDCCast.c (astErrors),
8859         * src/SDCCast.h,
8860         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
8861
8862 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
8863
8864         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
8865         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
8866         output of __config directives, since gpasm now supports them
8867         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
8868         pre-processor macro, i.e. -DMCU=p18f452
8869         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
8870         and modified to handle 'cast' icode similarly to '=' icode
8871         * src/pic16/device.h (typedef struct PIC_device): added field
8872         'extMIface' to indicate that chip has external memory interface
8873         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
8874         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
8875         18F8720
8876
8877 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8878
8879         * src/SDCC.y (pointer): fixed bug #846006
8880         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
8881         * src/SDCCast.c (decorateType): fixed bug #846009
8882         * src/ds390/peeph.def,
8883         * src/ds390/gen.c (genAnd, genOr),
8884         * src/mcs51/peeph.def,
8885         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
8886
8887 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8888
8889         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
8890         * src/SDCCdflow.c
8891         * src/SDCCcse.c
8892         * src/SDCCcse.h
8893         * src/SDCCBBlock.h
8894         * src/SDCCBBlock.c
8895
8896 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
8897
8898         fixed bug #845089
8899         * src/SDCCbitv.h,
8900         * src/SDCCbitv.c: added function to free a bitvector
8901         * src/SDCClrange.h,
8902         * src/SDCClrange.c: added function to recompute the liveranges
8903         * src/avr/ralloc.c,
8904         * src/ds390/ralloc.c,
8905         * src/hc08/ralloc.c,
8906         * src/mcs51/ralloc.c,
8907         * src/pic/ralloc.c,
8908         * src/pic16/ralloc.c,
8909         * src/xa51/ralloc.c,
8910         * src/z80/ralloc.c: recompute the liveranges after register packing
8911
8912 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
8913
8914         * src/SDCCloop.c (newInduction): fixed bug #845630
8915
8916 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8917
8918         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
8919         inadvertantly left behind from my 2003-11-12 change
8920
8921 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8922
8923         Updated headers I neglected to commit yesterday.
8924         * src/SDCClrange.h,
8925         * src/SDCCicode.h
8926
8927 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8928
8929         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
8930         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
8931         * src/SDCCopt.c (eBBlockFromiCode),
8932         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
8933         the creation of the key hash table from the sequencing so it can be used
8934         earlier (for some GCSE bug fixes still pending)
8935
8936 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8937
8938         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
8939         * support/regression/tests/addsub.c: testing genPlus shortcut
8940
8941 2003-11-15  Borut Razem <borut.razem AT siol.net>
8942
8943         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
8944
8945 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8946
8947         * src/SDCCcse.c (cseBBlock): fixed bug #527779
8948         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
8949         ordering is immaterial.
8950         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
8951
8952 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8953
8954         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
8955         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
8956         (SIGSEV) of bug #840381
8957         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
8958         unlink new file before rename if new and old filenames are the same)
8959
8960 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8961
8962         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
8963         uninitialized variables) for the mcs51. Set environment variable
8964         SDCC_GENRAMCLEAR to test.
8965         xdata initialization slightly shorter
8966
8967 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8968
8969         * src/SDCCsymt.h,
8970         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
8971         #838241 & 780691 (basicly the same bug)
8972         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
8973         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
8974
8975 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
8976
8977         * src/SDCCmain.c (linkEdit): "fix" #834252
8978
8979 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8980
8981         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
8982         * src/SDCCast.h,
8983         * src/SDCC.y: fixed bug #819403
8984
8985 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8986
8987         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
8988         the reentrant attribute.
8989         * src/hc08/gen.c (genPackBits): added missing stack readjustment
8990         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
8991         simulation
8992         * src/SDCCast.c (decorateType): fixed bug with storage class not being
8993         updated during pointer dereference; f.e. ~(((char *)1)*) was being
8994         erroneously reduced to a literal.
8995         * src/hc08/ralloc.c (packRegisters, rematStr),
8996         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
8997         some cases
8998
8999 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9000
9001         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
9002         * doc/sdccman.lyx: changed from 'article' to 'book'
9003         * doc/Makefile: readded test_suite_spec and cdbfileformat
9004
9005 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
9006
9007         * device/include/stdlib.h: include malloc.h to comply with ANSI
9008         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
9009
9010 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9011
9012         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
9013         * doc/clean.mk: also remove *.out files
9014         * doc/sdccman.lyx: some additions, larger top/bottom margins
9015
9016 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9017
9018         * src/SDCC.y: fixed bug #837365
9019         * support/regression/tests/bitopcse.c
9020         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
9021         a symbol (might be valop instead)
9022         * device/lib/Makefile.in: added errno.c to HC08SOURCES
9023         * device/lib/clean.mk: added hc08 to the cleaning list
9024
9025 2003-11-04  Borut Razem <borut.razem AT siol.net>
9026
9027         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
9028           made 2003-11-04
9029         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9030           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
9031           malloc is declared in standard stdlib.h
9032
9033 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9034
9035         * device/lib/hc08/Makefile: need to clean .rel not .o files
9036         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
9037
9038 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9039
9040         * src/port.h,
9041         * src/hc08/main.c,
9042         * src/mcs51/main.c,
9043         * src/ds390/main.c,
9044         * src/z80/main.c,
9045         * src/avr/main.c,
9046         * src/pic/main.c,
9047         * src/pic16/main.c,
9048         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
9049         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
9050         tests (which uses the port's oclsExpense function)
9051         * src/SDCC.y,
9052         * src/SDCCast.c,
9053         * src/SDCCicode.c,
9054         * src/hc08/gen.c,
9055         * src/ds390/gen.c,
9056         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
9057
9058 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9059
9060         * src/SDCCcse.c (ifxOptimize),
9061         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
9062         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
9063         deleting the IFX iCode.
9064         * src/hc08/ralloc.c: reduced unneeded slocs
9065         * src/hc08/gen.c: fixed bug in asmopToBoolean
9066
9067 2003-11-04  Borut Razem <borut.razem AT siol.net>
9068
9069         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
9070           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
9071           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
9072           transferred to configure
9073
9074 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
9075
9076         Use headers defined in the C[++] standards:
9077         * sim/ucsim/gui.src/serio.src/fileio.cc
9078         * sim/ucsim/gui.src/serio.src/frontend.cc
9079         * sim/ucsim/gui.src/serio.src/main.cc
9080         * sim/ucsim/gui.src/serio.src/posix_signal.cc
9081         * support/Util/NewAlloc.c
9082         * as/hc08/lklibr.c
9083         * as/mcs51/lklibr.c
9084         * as/z80/aslist.c
9085         * as/z80/assym.c
9086
9087 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9088
9089         * Added MSVC projects for hc08 assembler and linker:
9090         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
9091         /as/hc08/link_hc08.dsp
9092
9093 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
9094
9095         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
9096
9097 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
9098
9099         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
9100
9101 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9102
9103         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
9104
9105 2003-10-31  Borut Razem <borut.razem AT siol.net>
9106
9107         * support/cpp2/cpplib.h,
9108           support/cpp2/cpplib.c,
9109           support/cpp2/cpplex.c,
9110           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
9111           to switch _asm block preprocessing on / off. Default is
9112           #pragma preproc_asm +
9113
9114 2003-10-31  Borut Razem <borut.razem AT siol.net>
9115
9116         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
9117           when outputting comment blocks (when executed with -C option) and
9118           _asm (SDCPP specific) blocks
9119
9120 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9121
9122         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
9123
9124 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
9125
9126         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
9127
9128 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
9129
9130         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
9131         * src/SDCCast.c (decorateType): fixed bug #832664
9132
9133 2003-10-31  Borut Razem <borut.razem AT siol.net>
9134
9135         * support/cpp2/cpplex.c: fixed for SDCPP:
9136           comments(when executed with -C option) and _asm blocks
9137           were included even if they where in skipped #if block.
9138           Applied solution from GCC cpp 3.3.2
9139
9140 2003-10-31  Borut Razem <borut.razem AT siol.net>
9141
9142         * src/SDCC.lex: sdcc now understands both formats:
9143           '# <line_number> <file_name>' and
9144           '#line <line_number> <file_name>'
9145         * support/cpp2/cppmain.c: sdcpp now generates the standard
9146           '# <line_number> <file_name>' instead of former
9147           '#line <line_number> <file_name>'
9148
9149 2003-10-30  Borut Razem <borut.razem AT siol.net>
9150
9151         * support/cpp2/cpphash.h,
9152         * support/cpp2/cpplib.h
9153         * support/cpp2/cpplex.c,
9154         * support/cpp2/cppmain.c,
9155         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
9156
9157 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9158
9159         Fixed a number of problems revealed by bug #827883.
9160         * src/SDCCloop.c (loopInvariants): Spill location of the
9161         result operand should be recomputed if extracted from
9162         a loop. Also, don't extract assignments of an iTemp
9163         from a literal.
9164         * src/SDCCast.c (isConformingBody): loop reversal should
9165         not occur if the control variable is involved with a
9166         relational operator.
9167
9168 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
9169
9170         * .version: bumped to 2.3.6 to reflect the big improvements
9171         made by Erik and Klaus. Thanks!
9172
9173 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
9174
9175         Replaced the livrange code.
9176         * src/SDCClrange.c: added new LR code
9177         * src/SDCCloop.c,
9178         * src/SDCCBBlock.h: removed remainig parts from old LR code
9179         * src/ds390/ralloc.c,
9180         * src/ds390/gen.c: minor fixes to make it work with new code
9181
9182 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9183
9184         * as/hc08/asm.h,
9185         * as/hc08/lkrloc.c,
9186         * src/hc08/gen.c,
9187         * src/hc08/ralloc.c: Fix various warnings related to the hc08
9188         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
9189         (tweaked fix for bug #818696)
9190
9191 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9192
9193         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
9194
9195 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9196
9197         * src/SDCCmain.c,
9198         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
9199         * src/mcs51/gen.c (gencjneshort),
9200         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
9201         more efficient (per Scott Bronson's suggestion)
9202
9203 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9204
9205         Extended the semantics of the critical keyword to include
9206         individual statements. See RFE #827755 and #799831
9207         * src/SDCC.y
9208         * src/SDCCicode.c
9209         * src/SDCCopt.c
9210         * src/SDCCast.c
9211         * support/Util/SDCCerr.c
9212         * support/Util/SDCCerr.h
9213         * src/mcs51/gen.c
9214         * src/ds390/gen.c
9215         * src/hc08/gen.c
9216
9217 2003-10-19  Borut Razem <borut.razem AT siol.net>
9218
9219         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
9220
9221 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9222
9223         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
9224         Fixed bug #818696
9225         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
9226         and predecrement operand is displayed
9227
9228 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9229
9230         * src/SDCCval.c (valMinus): fixed bug #826041
9231
9232 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9233
9234         Some hc08 related updates that I missed earlier
9235         * sim/ucsim/stypes.h
9236         * support/regression/ports/hc08/spec.mk
9237
9238 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9239
9240         New target "hc08" for the Motorola 68hc08 family of micros
9241
9242         * configure
9243         * configure.in
9244         * Makefile
9245         * src/hc08/*
9246         * src/SDCCmain.c
9247         * src/port.h
9248         * sim/ucsim/hc08.src/*
9249         * sim/ucsim/configure.in
9250         * src/ucsim/configure
9251         * sim/ucsim/packages_in.mk
9252         * as/hc08/*
9253         * as/Makefile
9254         * device/include/mc68hc908qy.h
9255         * device/lib/hc08/*
9256         * device/lib/Makefile.in
9257         * support/regression/ports/hc08/*
9258         * support/regression/Makefile
9259
9260 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9261
9262         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
9263         regression test
9264         * src/ds390/gen.c (genCast): fixed bug #821957
9265
9266 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9267
9268         * device/lib/logf.c: "fixed" overlay bug
9269         * support/regression/ports/host/spec.mk: added m library
9270         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
9271         * support/regression/tests/float_trans: added (for Eric)
9272
9273 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
9274
9275         * src/mcs51/gen.c (genCpl): fixed bug
9276         http://sf.net/mailarchive/message.php?msg_id=6263915
9277
9278 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
9279
9280         * src/SDCCast.c (decorateType): added extended constant folding
9281         * src/SDCCsymt.c (computeType): cleanup
9282         * src/SDCCval.c (valShift): minor optimization
9283         * support/regression/tests/ast_constant_folding.c: added
9284
9285 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9286
9287         * src/SDCCmain.c: removed some unintended changes
9288
9289 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9290
9291         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
9292         * src/z80/gen.c: fixed part of bug #817589
9293         * src/SDCCsymt.c (checkFunction): fixed bug #817895
9294
9295 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
9296
9297         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
9298         * src/SDCCcflow.c
9299         * src/SDCCcse.c
9300         * src/SDCCdflow.c
9301         * src/SDCClabel.c
9302         * src/SDCClrange.c
9303         * src/SDCCmem.c
9304         * src/SDCCopt.c
9305         * src/SDCCpeeph.c
9306         * src/SDCCset.c
9307         * src/avr/ralloc.c
9308         * src/ds390/ralloc.c
9309         * src/izt/ralloc.c
9310         * src/mcs51/ralloc.c
9311         * src/pic/ralloc.c
9312         * src/pic16/ralloc.c
9313         * src/xa51/ralloc.c
9314         * src/z80/ralloc.c
9315         * src/z80/gen.c: removed unused label "release:"
9316
9317 2003-10-06  Borut Razem <borut.razem AT siol.net>
9318
9319         * src/SDCC.lex: removed definition of unused variables
9320           save_optimize and save_options
9321
9322 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
9323
9324         * clean.mk: removed '=' in "-maxdepth=1"
9325         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
9326         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
9327
9328 2003-10-06  Borut Razem <borut.razem AT siol.net>
9329
9330         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
9331           my_unput() replaced by unput()
9332
9333 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
9334
9335         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
9336         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
9337         type-punned pointer will break strict-aliasing rules"
9338         Old LR behaviour is again default; Klaus' LR can be choosen by
9339         defining the environment variable LRKLAUS
9340         * src/SDCCBBlock.h
9341         * src/SDCCloop.c
9342         * src/SDCClrange.c
9343         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
9344         * clean.mk: fixed removal of files in bin/CVS/
9345         * device/lib/clean.mk: fixed removal of directories small and large
9346         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
9347         * src/SDCCicode.c,
9348         * src/SDCCval.c: removed superflous test for pedantic
9349
9350 2003-10-05  Borut Razem <borut.razem AT siol.net>
9351
9352         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
9353           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
9354           message "unmatched #pragma SAVE and #pragma RESTORE"
9355
9356 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9357
9358         * doc/sdccman.lyx: various additions and updates (interrupts, inline
9359           assembly, critical functions, atomic, nojtbound)
9360
9361 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
9362
9363         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
9364         * src/SDCCBBlock.h
9365         * src/SDCCloop.c
9366         * src/SDCCloop.h
9367         * src/SDCClrange.c
9368
9369 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9370
9371         * src/z80/gen.h,
9372         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9373         * src/mcs51/gen.h
9374         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9375         * src/ds390/gen.h
9376         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9377         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
9378         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
9379
9380 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9381
9382         * src/z80/gen.c (genRet): fixed bug #524753
9383         * src/z80/gen.c (genCast): fixed internal error on cast from
9384         pointer to long
9385         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
9386         fix for bug #477835 to the z80
9387         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
9388         for tracking iCodes in the peephole optimizer for z80
9389
9390 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9391
9392         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
9393         the other part of bug #814548
9394         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
9395
9396 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
9397
9398         * src/SDCCcse.c: fixed part of bug #814548
9399
9400 2003-09-28  Borut Razem <borut.razem AT siol.net>
9401
9402         * src/asm.c: rewrite of printILine() to use temporary file instead
9403           a pipe
9404         * src/xa51/main.c: commented out declaration of int rewinds
9405
9406 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9407
9408         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
9409
9410 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9411
9412         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
9413         * src/asm.c (printILine): Fixed bug #811015
9414
9415 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9416
9417         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
9418         freeing.
9419
9420 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9421
9422         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
9423         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
9424         to correctly handle general case of AOP_PAIRPTR
9425         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
9426
9427 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9428
9429         * src/mcs51/ralloc.c (fillGaps),
9430         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
9431         register positioning bug)
9432
9433 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
9434
9435         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
9436
9437 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9438
9439         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
9440         genCodePointerGet, genGenPointerGet, genFarPointerSet,
9441         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
9442         (ralloc doesn't intentionally do this now, but perhaps later)
9443         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
9444         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
9445         register positioning bugs (Fixed bug #762602 and #795325)
9446         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
9447         (Fixed bug #808779)
9448         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
9449         lines that --i-code-in-asm generates
9450
9451 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9452
9453         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
9454         trying to fclose a FILE* that was already closed.
9455
9456 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9457
9458         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
9459         of const struct should be treated as if const themselves)
9460
9461 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
9462
9463         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
9464
9465 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9466
9467         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
9468         Unix (/n) and DOS (/r/n) line terminations.
9469
9470 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9471
9472         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
9473         bug #613775
9474
9475 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9476
9477         * src/mcs51/gen.c (genFunction, genEndFunction),
9478         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
9479         and restore of EA so that stack offsets to parameters are
9480         correct when using both critical and reentrant/stack-auto.
9481         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
9482         size (can be triggered in error if sloc is shared between
9483         different sized objects)
9484         * device/include/float.h: fixed macros to explicitly use
9485         unsigned long where needed
9486
9487 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
9488
9489         Feature req. 799831: added code to allow nesting of critical functions
9490         * src/mcs51/gen.c (genFunction, genEndFunction)
9491         * src/ds390/gen.c (genFunction, genEndFunction)
9492
9493 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9494
9495         * src/SDCCsymt.c (sclsFromPtr),
9496         * src/SDCCsymt.h,
9497         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
9498         support for standard C idiom of memory mapped variables; for
9499         example, *((xdata int*)0x1234) = 1 is now internally equivalent
9500         to xdata int at 0x1234 tempvar = 1.
9501         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
9502         provided by Akiya ISHIDA
9503
9504 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
9505
9506         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
9507         * src/SDCCval.c (constVal): added reduction from int to char
9508         * src/SDCCval.c (valMult, valDiv): fixed sign handling
9509         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
9510         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
9511         to ignore the sign
9512         * support/regression/tests/shifts.c: fixed
9513
9514 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9515
9516         * src/z80/gen.c (genXor): Fixed bug #805445
9517
9518 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9519
9520         Fixed bug #621531 (const & volatile confusion in the type chain).
9521         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
9522         refer to the const or volatile state of the pointer itself.
9523
9524         * src/SDCCast.c
9525         * src/SDCCglue.c
9526         * src/SDCCicode.c
9527         * src/SDCCsymt.c
9528         * src/SDCCval.c
9529         * src/SDCC.y
9530         * src/SDCCsymt.h
9531         * src/pic/gen.c
9532         * src/pic/ralloc.c
9533         * src/pic16/gen.c
9534         * src/pic16/ralloc.c
9535         * support/regression/tests/const.c
9536
9537 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9538
9539         When checking for duplicated modules, use absolute paths
9540         instead of relative paths.  Files changed:
9541
9542         * as/mcs51/lklib.c
9543         * link/z80/lklib.c
9544
9545 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9546
9547         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
9548
9549 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9550
9551         * device/include/string.h: added size_t typedef, changed
9552         prototypes to use size_t, eliminated separate reentrant and
9553         non-reentrant declarations, added _memmove declaration
9554         * device/lib/_memcpy.c: changed to use size_t instead of int,
9555         changed /4 to >>2 to avoid division library call
9556         * device/lib/_memcmp.c,
9557         * device/lib/_memset.c,
9558         * device/lib/_strncat.c,
9559         * device/lib/_strncpy.c,
9560         * device/lib/_strncmp.c: changed to use size_t instead of int
9561         * device/lib/_memmove.c: new file (fixed bug #772294)
9562         * device/lib/Makefile.in: added _memmove.c
9563         * device/lib/z80/asm_strings.s: fixed bug #772290
9564         * support/regression/tests/bitfields.c: attempt to fix host assertion
9565         failure on amd64-unknown-linux2.2
9566
9567 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9568
9569         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
9570         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
9571         * as/z80/asmain.c (main): fixed bug #801766
9572
9573 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
9574
9575         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
9576         compilers
9577
9578 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9579
9580         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
9581         reported in bug #800609
9582
9583 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
9584
9585         * Top header beautifications in src/pic16 directory:
9586           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
9587           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
9588           pcoderegs.h, ralloc.c, ralloc.h
9589         * main.c: added top header and GPL license notice
9590         * pcode.c: fixed the if-conditional warning
9591
9592 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
9593
9594         * device/lib/_mullong.c: replaced int by short for gcc
9595
9596 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9597
9598         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
9599         and JUMPTABLE iCodes properly now (worked by accident before)
9600         * src/mcs51/gen.c (leftRightUseAcc),
9601         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
9602         iCode properly now. Use getSize instead of nRegs since a & b
9603         aren't part of the nRegs tally.
9604
9605 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
9606
9607         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
9608         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
9609           before instructions that use the _STATUS register
9610
9611 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
9612
9613         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
9614         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
9615         fetching of the pointer
9616         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
9617         copied from genNearPointerSet()
9618         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
9619         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
9620         If they pop r0/r1 they must be called in the opposite order than aopOp().
9621         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
9622         (resp. --stack-auto), prepared for --xstack
9623
9624 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9625
9626         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
9627
9628 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9629
9630         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
9631         these ports have their own __sdcc_external_start()
9632
9633 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
9634
9635         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9636         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
9637         type for bits was changed. It resulted in bit variables becoming
9638         global, which is not permitted in PIC 14 assembly output.
9639
9640 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9641
9642         * doc/sdccman.lyx: various additions and updates. Rearranged sections
9643
9644 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9645
9646         Z80 and MCS51 linkers complaint if a public symbol is defined
9647         in more than one library module:
9648
9649         * as/mcs51/lklib.c
9650         * link/z80/lklib.c
9651         * as/mcs51/Makefile.in
9652
9653 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9654
9655         A few small changes that speed up the peephole optimizer.
9656
9657         * src/SDCCpeeph.c
9658
9659 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9660
9661         Try to make the peephole optimizer smarter by maintaining
9662         an association between the assembly source code and the
9663         iCodes that originated them. Put this information to use
9664         with a new peephole rule condition "notVolatile" so that
9665         the rules can be aggressive yet still safe.
9666
9667         * src/SDCCpeeph.c
9668         * src/SDCCpeeph.h
9669         * src/mcs51/gen.c
9670         * src/mcs51/peeph.def
9671
9672 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9673
9674         Fixed bug #741761
9675
9676         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
9677         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
9678         if the left or right operand symbols have the accuse flag set.
9679
9680 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9681
9682         Changed the type of the result of the ! (NOT) operator to char;
9683         previously it returned the same type as the source. This allows
9684         us to eliminate all the genFloatNot functions (all of its target
9685         implementations were very buggy) since !float can use the same
9686         code as !long now.
9687
9688         * src/SDCCicode.c (ast2iCode): ! returns char
9689         * src/mcs51/gen.c (genNot, genNotFloat),
9690         * src/ds390/gen.c (genNot, genNotFloat),
9691         * src/z80/gen.c (genNot, genNotFloat),
9692         * src/pic/gen.c (genNot, genNotFloat),
9693         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
9694
9695 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
9696
9697         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9698         1. Interrupt would not compile properly. Ensure PCLATH register is saved
9699            during interrupts. Ensure WSAVE is located at a shared bank address.
9700         2. Fixed page selection in some places
9701         3. Fixed BTFSS/C to where necessary use registers directly and not simply
9702            the registers name strings.
9703         4. Fixed "signed / unsigned compare" compiler warnings.
9704         5. The PIC port manages its own allocation of the general purpose
9705            registers, but makes no attempt to reuse them. As a result when
9706            compiling it soon runs out of general purpose registers. Some
9707            additional code was added to the files pcode.c and device.c to walk
9708            through the function call tree and rename the registers so that they
9709            get reused.
9710
9711         * src/pic/device.c
9712         * src/pic/gen.c
9713         * src/pic/glue.c
9714         * src/pic/pcode.c
9715         * src/pic/pcode.h
9716         * src/pic/ralloc.c
9717         * src/pic/ralloc.h
9718         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
9719         genPlus() & genMinus() when the result is the same as left or right
9720
9721 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9722
9723         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
9724
9725 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9726
9727         Made bitfield a distinct type from bit so that bitfields
9728         convert as per ANSI C and bits retain their traditional
9729         boolean style behaviour. Implemented bitfield support in
9730         the z80 port.
9731
9732         * src/SDCCsymt.h,
9733         * src/SDCCsymt.c,
9734         * src/SDCCast.c,
9735         * src/cdbFile.c,
9736         * src/mcs51/gen.c,
9737         * src/ds390/gen.c: bit v bitfield split
9738         * src/z80/gen.c: New support for bitfields
9739         * support/regression/tests/bitfields.c: reenabled z80,
9740         added more tests
9741
9742 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9743
9744         Rules 246.x, 247.x relate to bitfields, the others speed up
9745         access to xdata mapped I/O devices.
9746
9747         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
9748
9749 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9750
9751         Cleaned up genPackBits and genUnpackBits and added two helper
9752         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
9753         for literal assignments in genPackBits (thanks to Frieder for
9754         reminding me).
9755
9756         * src/mcs51/gen.c
9757         * src/ds390/gen.c
9758
9759 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9760
9761         Fixed bug #748310 (pointer to function type mishandled when the
9762         function name is omitted). Also fixed a SIGSEGV when a function
9763         attribute (reentrant, etc) is used on a non-function or on a
9764         function but misplaced before the parameter list.
9765
9766         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
9767         bug #748310
9768         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
9769         * support/Util/SDCCerr.h,
9770         * support/Util/SDCCerr.c: Added func attr misuse error msg
9771
9772 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9773
9774         Fixed bug #787649 by anonymous
9775         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
9776         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
9777
9778 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9779
9780         Fixed numerous bitfield problems.
9781
9782         * src/SDCC.y: More bitfield related error checking
9783         * src/SDCCsymt.h,
9784         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
9785         * support/Util/SDCCerr.h,
9786         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
9787         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9788         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9789         * support/regression/tests/bitfields.c: tests added
9790
9791 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9792
9793         Made the constant following the "interrupt" keyword optional. If
9794         omitted, the function will not automatically be given an entry
9795         in the interrupt vector table (similar to #pragma NOIV, but
9796         less syntacticly kludgy). The interrupt number is also now
9797         range checked. Also fixed a bug in the high order bit example
9798         in the manual.
9799
9800         * src/SDCC.y
9801         * src/SDCCmem.c
9802         * src/SDCCglue.c
9803         * src/SDCCsymt.h
9804         * support/Util/SDCCerr.c
9805         * support/Util/SDCCerr.h
9806         * doc/sdccman.lyx
9807
9808 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9809
9810         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
9811         * src/SDCCicode.c (operandOperation): rewritten some ops
9812         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
9813         * src/SDCCsymt.c (computeType): literals are handled the same way as any
9814         other type
9815         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
9816         be re-activated by defining REDUCE_LITERALS)
9817         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
9818         unsigned, but are signed by default
9819         * src/SDCCval.c (constVal): rearranged
9820         * src/SDCCval.c (valMod): preliminary fix
9821         * src/SDCCval.c (valCastLiteral): use TYPE_* types
9822         * support/regression/literalop.c: added, work in progress
9823
9824 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9825
9826         Generate warnings for useless declarations like "char data;"
9827         that don't do what new users expect.
9828
9829         * src/SDCC.y
9830         * support/Util/SDCCerr.h
9831         * support/Util/SDCCerr.c
9832
9833 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
9834
9835         * src/SDCCval.c (valMult): fix overflow detection of negative int
9836
9837 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9838
9839         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
9840
9841         Changes to support big endian targets:
9842
9843         * src/ports.h
9844         * src/SDCCglue.c
9845         * src/avr/main.c
9846         * src/ds390/main.c
9847         * src/izt/i186.c
9848         * src/mcs51/main.c
9849         * src/pic/main.c
9850         * src/pic16/main.c
9851         * src/xa51/main.c
9852         * src/z80/main.c
9853
9854 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
9855
9856         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
9857         * device/lib/time.c: fixed warning "integer overflow in expression"
9858
9859 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
9860
9861         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
9862         * src/SDCCval.c (constVal): changed default to signed; hex and octal
9863         constants are unsigned; added recognition of "u" flag for unsigned
9864         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
9865         * src/SDCCval.c (valDiv, valMod): fixed signdness
9866         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
9867         signedness of modulo, left and right shift
9868         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
9869         * support/Util/SDCCerr.h: added warning W_INT_OVL
9870         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
9871         * src/SDCCast.c (ast_print): improved output of constants
9872
9873 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9874
9875         Fixed some warnings when building with MSVC:
9876
9877         * as/mcs51/asdata.c
9878         * as/z80/asdata.c
9879         * as/mcs51/asm.h
9880         * as/z80/asm.h
9881         * link/z80/aslink.h
9882         * link/z80/lkdata.c
9883         * link/z80/lkeval.c
9884         * link/z80/lkgb.c
9885         * link/z80/lkihx.c
9886         * link/z80/lks19.c
9887         * link/z80/lksym.c
9888         * support/cpp2/cpplib.c
9889         * src/ds390/gen.c
9890         * src/mcs51/gen.c
9891
9892 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
9893
9894         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
9895
9896 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9897
9898         * support/librarian/clean.mk: Do not remove Makefile.
9899         * support/librarian/Makefile: added.
9900
9901 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9902
9903         Added librarian to MSVC build:
9904         * all.dsp
9905         * sdcc.dsw
9906         * support/librarian/librarian.dsp
9907
9908         'configure' not needed for librarian, removed:
9909         * support/librarian/configure
9910         * support/librarian/configure.in
9911         * support/librarian/config_in.h
9912         * support/librarian/Makefile.in
9913
9914         Hopefully these ones built the librarian and the rest of sdcc properly:
9915         * Makefile
9916         * Makefile.common.in
9917
9918         Messed up 'configure', so revert to previous version:
9919         * configure
9920         * configure.in
9921
9922 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
9923
9924         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
9925         there, while the mantissa of a double is "only" 53 bits wide.
9926
9927 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9928
9929         Adding sdcclib to the build.  MSVC project coming soon.
9930         Files added/changed:
9931
9932         * support/librarian/clean.mk
9933         * support/librarian/configure
9934         * support/librarian/configure.in
9935         * support/librarian/config_in.h
9936         * support/librarian/Makefile.bcc
9937         * support/librarian/Makefile.in
9938         * support/librarian/sdcclib.c
9939         * Makefile.bcc
9940         * Makefile
9941         * Makefile.common.in
9942         * configure
9943         * configure.in
9944
9945 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9946
9947         Linker now complaints if linked modules have conflicting options, for
9948         example, one compiled using --model-large and another one compiled with
9949         --model-small.  The following files were modified:
9950
9951         * as/mcs51/asdata.c
9952         * as/mcs51/aslink.h
9953         * as/mcs51/asm.h
9954         * as/mcs51/asmain.c
9955         * as/mcs51/asout.c
9956         * as/mcs51/i51pst.c
9957         * as/mcs51/lkdata.c
9958         * as/mcs51/lklibr.c
9959         * as/mcs51/lkmain.c
9960         * as/z80/asdata.c
9961         * as/z80/asm.h
9962         * as/z80/asmain.c
9963         * as/z80/asout.c
9964         * as/z80/z80pst.c
9965         * link/z80/aslink.h
9966         * link/z80/lkdata.c
9967         * link/z80/lklibr.c
9968         * link/z80/lkmain.c
9969         * src/SDCCglue.c
9970
9971 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9972
9973         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
9974         as/mcs51/lklibr.c: Generate a warning when a library is not found.
9975
9976 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
9977
9978         * src/z80/mappings.i: fix _mul[us][int,long] entries
9979
9980 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9981
9982         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
9983
9984 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
9985
9986         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
9987         * support/regression/tests/bitopcse.c: added
9988         fixed warning:
9989         * src/avr/gen.c:
9990         * src/pic/gen.c:
9991         * src/pic16/gen.c:
9992         * src/z80/gen.c:
9993         * src/xa51/gen.c:
9994
9995 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9996
9997         added support for new library format to z80, gbz80 linkers:
9998         *link/z80/aslink.h
9999         *link/z80/lklex.c
10000         *link/z80/lklib.c
10001         *link/z80/lklist.c
10002
10003 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
10004
10005         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
10006         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
10007
10008 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
10009
10010         added DUMMY_READ_VOLATILE:
10011         * src/SDCC.y:
10012         * src/avr/gen.c:
10013         * src/xa51/gen.c:
10014         * src/z80/gen.c:
10015         * src/pic/gen.c:
10016         * src/pic16/gen.c:
10017         * src/mcs51/gen.c:
10018         * src/ds390/gen.c:
10019         * src/SDCCcse.c (algebraicOpts): many improvements
10020         * src/SDCCcse.h: removed algebraicOpts()
10021         * src/SDCCicode.c (picDummyRead): added
10022
10023 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10024
10025         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
10026         "Insufficient space in data memory".
10027
10028 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10029
10030         * src/mcs51/gen.c: fixed bug #771358
10031         * src/z80/gen.c: fixed bug #759087
10032
10033 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
10034
10035         * src/pic16/glue.c: minor cleanup by Vangelis
10036
10037 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10038
10039         * device/include/regc515c.h: fixed #758477
10040         * device/lib/_gptrget.c: saving some cycles in generic pointer get
10041         * device/lib/_gptrput.c: saved a few bytes
10042         * my tab spacing is 8, yours too?)
10043         * device/lib/_ser.c: process RX bytes earlier than TX bytes
10044         * device/lib/serial.c: process RX bytes earlier than TX bytes
10045         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
10046
10047 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
10048
10049         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
10050
10051 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10052
10053     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
10054
10055 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
10056
10057         * device/lib/Makefile.in: bad fix, reverted to 1.43
10058
10059 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
10060
10061         * device/lib/Makefile.in: added missing z80 object files
10062
10063 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
10064
10065         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
10066         pic16 progress by Vangelis:
10067         * src/SDCCglobl.h:
10068         * src/SDCCmain.c:
10069         * src/pic/Makefile:
10070         * src/pic:
10071         * pic/Makefile:
10072         * pic16/device.c:
10073         * pic16/device.h:
10074         * pic16/gen.c:
10075         * pic16/gen.h:
10076         * pic16/genarith.c:
10077         * pic16/glue.c:
10078         * pic16/main.c:
10079         * pic16/pcode.c:
10080         * pic16/pcode.h:
10081         * pic16/pcodepeep.c:
10082         * pic16/peeph.def:
10083
10084 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10085
10086     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
10087
10088 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10089
10090     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
10091     added gbz80 build to MSVC project.
10092     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
10093     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
10094     from 8051 stuff and setup so it links using a .lnk file.
10095
10096 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10097
10098     * support/librarian/sdcclib.c: sdcc librarian.
10099     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
10100     with sdcclib.
10101
10102 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10103
10104     * as/mcs51/lkmain.c: properly handle extensions in function afile.
10105
10106 2003-07-02  Borut Razem <borut.razem AT siol.net>
10107
10108         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
10109         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
10110         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
10111         src/xa51/main.c, src/z80/main.c:
10112         virtualization of glue() function: each port has it's own glue function,
10113         which is accessed by do_glue function pointer in PORT.general structure
10114
10115 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
10116
10117         * DS800C400 fun, improved ROM interface and tinibios.
10118
10119 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
10120
10121         * More support for DS80C400. Now includes beginning of interface to ROM.
10122
10123 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
10124
10125         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
10126
10127 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10128
10129         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
10130
10131 2003-06-19  Borut Razem <borut.razem AT siol.net>
10132
10133         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
10134
10135 2003-06-19  Borut Razem <borut.razem AT siol.net>
10136
10137         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
10138         fixed Z80 port - crt0.o: cannot open.
10139
10140 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
10141
10142         * support/Util/MySystem.c (merge_command): revert bad fix
10143
10144 2003-06-18  Borut Razem <borut.razem AT siol.net>
10145
10146         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
10147
10148 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10149
10150         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10151         option --use-stdout sends errors to stdout instead of stderr.
10152
10153 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
10154
10155         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
10156
10157 2003-06-15  Borut Razem <borut.razem AT siol.net>
10158
10159         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
10160         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
10161         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
10162         fixed width array of pointers replaced with sets;
10163         multiple include and lib paths ared transferred to preprocessor and linker
10164         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
10165         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
10166         fixed width array of pointers
10167         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
10168         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
10169         fixupPath(), getPathDifference()
10170         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
10171         fixed width array of pointers
10172
10173 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
10174
10175         * src/pic16/ralloc.c: fix warnings
10176         * src/pic16/pcode.c: fix warning
10177
10178 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
10179
10180          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
10181         know all the details, but essentially this set of changes enable
10182         the pic16 port to generate movff instructions and generate assembler
10183         directives,
10184         * src/SDCCmain.c:
10185         * src/pic16/gen.c:
10186         * src/pic16/glue.c:
10187         * src/pic16/pcode.c:
10188         * src/pic16/device.c:
10189         * src/pic16/main.c:
10190         * src/pic16/pcode.h:
10191         * src/pic16/pcoderegs.c:
10192         * src/pic16/ralloc.c:
10193         * src/pic16/ralloc.h:
10194
10195 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10196
10197         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10198         added option --vc, so sdcc errors and warnings are compatible with
10199         Microsoft Visual Studio.
10200
10201 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10202
10203         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
10204           device/lib/libfloat.lib: added atof function.
10205
10206 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
10207
10208         * doc/sdccman.lyx: updated to Lyx 1.3
10209         * doc/cdbfileformat.lyx: updated to Lyx 1.3
10210         * doc/test_suite_spec.lyx: updated to Lyx 1.3
10211         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
10212
10213 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
10214
10215         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
10216
10217 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10218
10219         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
10220           additions to the "related tools/documentation" section
10221
10222 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
10223
10224         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
10225
10226 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
10227
10228         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
10229         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
10230
10231 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
10232
10233         * doc/sdccman.lyx: fix double dash and other minor things
10234         * doc/Makefile: fix double dash
10235
10236 2003-05-28  Karl Bongers(patches from Martin Helmling)
10237         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
10238           condition and ignore commands.
10239
10240 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10241
10242         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
10243           is in parts still quite out of date, I did changes as far as I felt makes sense
10244           for a non-native english speaker.
10245           Please feel free to add to the manual or to correct my changes.
10246         * doc/Makefile: undid touching the date of intermediate tex files.
10247
10248 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10249
10250         * doc/sdccman.lyx: Manual has an index now
10251
10252 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
10253
10254         Finalize muluint/mulsint and mululong/mulslong merging:
10255         * device/lib/_mulint.c
10256         * device/lib/_mullong.c
10257         * device/lib/gbz80/mul.s
10258         * device/lib/gbz80/stubs.s
10259         * device/lib/z80/mul.s
10260         * device/lib/z80/stubs.s
10261         * src/SDCCsymt.c (initCSupport)
10262
10263 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10264
10265         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
10266         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
10267           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
10268           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
10269           instead of /Zm500.
10270
10271 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10272
10273         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
10274           the regression tests I'm not brave enough to enable 245.b, 245.c
10275         * doc/sdccman.lyx: added latex preamble for hyperref package.
10276           Using pdflatex this will give you a hyperlinked pdf file with
10277           bookmarks. (prepend '%' before /usepackage if this breaks something)
10278
10279 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10280
10281          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
10282
10283 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
10284
10285         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
10286
10287 2003-05-21    <johan AT balder>
10288
10289         * src/SDCCglue.c (printIval): fixed bug #739934
10290
10291 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10292
10293         Applied patch from bug 737905 (renamed yylineo to mylineno):
10294         * src/altlex.c
10295         * src/SDCCast.c
10296         * src/SDCglobl.h
10297         * src/SDCC.lex
10298         * src/SDCCsymt.c
10299         * src/SDCCval.c
10300         * src/pic16/pcode.c: Cleaned warnings
10301         * src/pic16/pcodeflow.c: Cleaned warnings
10302         * src/pic16/pcoderegs.c: Cleaned warnings
10303
10304 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
10305
10306         * src/pic16/pcode.c: Cleaned warnings
10307         * src/pic16/pcodepeep.c: Cleaned warnings
10308         * src/pic16/ralloc.c: Cleaned warnings
10309
10310 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10311
10312         * doc/sdccman.lyx: fixed bug 739745
10313         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
10314
10315 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
10316
10317         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
10318         it can be defined with CFLAGS when running configure
10319         * src/SDCCmain.c: fixed compiling + linking with object files
10320
10321 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
10322
10323         * configure.in: configure for pic16 port,
10324             added --disable-pic16-port
10325         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
10326         * src/SDCCmain.c: linkOptions is changed to set *,
10327             added if/endif conditional macros to remove options help
10328             messages from optionsTable when a port is not configured, added
10329             support for the PIc16 port in the ports table, when executing
10330             the compiler with no port specified on command line, a default
10331             port is selected with the new macro DEFAULT_PORT which is
10332             defined in port.h, in setDefaultOptions() linkOptions is removed
10333             from initialization assignment, since now it is a set,
10334             parseCmdLine uses setParseWithComma for linkOptions, in
10335             linkEdit() linkOptions are accessed with new function indexSet()
10336             which returns the i'th item of a set variable. See SDCCset.c, in
10337             linkEdit() when calling buildCmdLine(), added linkOptions as
10338             last argument. Now users can pass arguments to gplink via the
10339             -Wl option, main() uses pic16glue() to glue up pic16 programs
10340         * src/SDCCpeeph.c: various changes to support pic16
10341         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
10342             return the i'th item of the set
10343         * src/SDCCset.h: added function prototype for indexSet()
10344         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
10345         * src/clean.mk: added pic16 in CLEANALLPORTS variable
10346         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
10347             added macro DEFAULT_PORT
10348         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
10349         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
10350             generated
10351         * src/pic16/glue.c: commented out some error producing lines
10352         * src/pic16/main.c: __config directives are commented out to stop
10353             gpasm complaining and test the linkage with gplink, _linkCmd and
10354             _asmCmd changed to be more gplink and gpasm friendly
10355         * src/pic16/peeph.def: peep rule 3 is commented out, since it
10356             produced an error when parsed, peep rule 12 is added to utilize
10357             movff, but it is commented out since the pCode does not support
10358             yet a command with 2 address arguments
10359
10360 2003-05-18    <johan AT balder>
10361
10362         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10363         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10364 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
10365
10366         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
10367   Added feature to script commands from file.
10368
10369 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
10370
10371         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
10372         * src/SDCCutil.c: include ctype.h for win32
10373
10374 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
10375
10376         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
10377
10378 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
10379
10380         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
10381   Fixed so you can set breakpoints prior to run, run does not stop
10382   on entry now.  Add tbreak.  Other enhancements and fixes for use
10383   with ddd.
10384
10385 2003-05-12  Borut Razem <borut.razem AT siol.net>
10386
10387         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
10388
10389 2003-05-11  Borut Razem <borut.razem AT siol.net>
10390
10391         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
10392         the path of bin directory, so that PATH is the only env. variable, which has to be set
10393         in case of standard installation.
10394         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
10395         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
10396         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
10397
10398 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10399
10400         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
10401         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
10402         temp files are in the port dir; clean the gen/test directory when
10403         generating new test.c
10404         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
10405         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
10406         * support/regression/tests/zeropad.c: added
10407
10408 2003-05-09    <johan AT balder>
10409
10410         * src/SDCCglue.c: fixed bug #597940
10411
10412 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
10413
10414         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10415   cache sfr, optimize next,step, fix off by one sourceline,
10416   support ddd list function.
10417         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
10418
10419 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10420
10421         * support/regression/HTMLgen.py: added compare_s2f()
10422         * support/regression/Makefile: redo 1.27
10423         * support/regression/generate-cases.py: redo 1.5
10424
10425 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
10426
10427         * support/regression/tests/float.c: workaround 33 bit hex constant
10428         * support/regression/tests/simplefloat.c: fix division for host
10429
10430 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
10431
10432         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
10433         that tame's the PIC's over-aggressive optimizer.
10434
10435 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10436
10437          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
10438          support for MSVC.
10439
10440 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
10441
10442         Initial support for DS80C400. "Hello world" runs on TINIm400
10443         (with polled I/O).
10444
10445 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
10446
10447          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10448          * Some notes on ddd usage added in debugger/README
10449          Martin Helmling adding more features and fixes for ddd GUI debugger.
10450          Code added for nexti, stepi, up, down, and other adjustments.
10451
10452 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
10453
10454         * src/pic/pCodepeep.c non-wildcard asmops are now handled
10455         * src/pic/peeph.def Added two rules to optimize carry manipulation
10456         * src/pic/* removed debug printfs
10457
10458 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
10459
10460         * debugger/mcs51/cmd.c: added header newalloc.h
10461
10462 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
10463
10464         * as/Makefile: new EXEEXT
10465         * as/z80/Makefile: remove trailing slash of BUILDIR
10466         * as/z80/clean.mk: new EXEEXT
10467         * Makefile.common.in: add to CFLAGS (and others), don't replace it
10468         * support/cpp2/Makefile.in: new EXEEXT
10469         * src/pic/glue.c (pic14emitRegularMap): fixed warning
10470
10471 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
10472
10473         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
10474         EXEEXT was introduced to fix all related problems with targets
10475         "clean", "install" and "uninstall"; a couple of further flaws
10476         especially with "clean" have been fixed too
10477         * as/mcs51/Makefile.in
10478         * as/mcs51/clean.mk
10479         * as/z80/Makefile
10480         * Makefile
10481         * clean.mk
10482         * debugger/mcs51/Makefile.in
10483         * debugger/mcs51/clean.mk
10484         * link/z80/Makefile
10485         * link/z80/Makefile.in
10486         * link/z80/clean.mk
10487         * link/Makefile
10488         * packihx/Makefile.in
10489         * packihx/clean.mk
10490         * sim/ucsim/Makefile
10491         * sim/ucsim/clean.mk
10492         * sim/ucsim/avr.src/Makefile.in
10493         * sim/ucsim/avr.src/clean.mk
10494         * sim/ucsim/s51.src/Makefile.in
10495         * sim/ucsim/s51.src/clean.mk
10496         * sim/ucsim/xa.src/Makefile.in
10497         * sim/ucsim/xa.src/clean.mk
10498         * sim/ucsim/z80.src/Makefile.in
10499         * sim/ucsim/z80.src/clean.mk
10500         * sim/ucsim/main_in.mk
10501         * sim/ucsim/packages_in.mk
10502         * sim/ucsim/gui.src/Makefile.in
10503         * sim/ucsim/gui.src/serio.src/Makefile.in
10504         * sim/ucsim/gui.src/serio.src/clean.mk
10505         * src/Makefile.in
10506         * src/clean.mk
10507         * support/cpp2/Makefile.in
10508         * support/cpp2/clean.mk
10509         * support/makebin/Makefile
10510         * support/makebin/clean.mk
10511         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
10512         * doc/sdccman.lyx: --program-suffix no longer needed
10513
10514 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
10515
10516          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
10517          Martin Helmling added support for ddd GUI debugger.
10518          Code added to display assembly, set variables, and other commands
10519          to interface to ddd.
10520
10521 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
10522
10523         * as/Makefile: fix target clean
10524         * as/clean.mk: fix target clean
10525         * as/z80/clean.mk: fix target clean
10526
10527 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
10528
10529         * Makefile.common.in: added  AT EXEEXT AT
10530         * configure.in: removed all mingw32 stuff
10531         * configure: rebuilt from configure.in
10532         * doc/sdccman.lyx: updated section "installation"
10533         * support/scripts/sdcc_mingw32: adapted to configure
10534         * support/scripts/sdcc_cygwin_mingw32: added
10535
10536 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
10537
10538         * src/pic Added object file support for the PIC port
10539         * src/pic Applied patch from Craig Franklin (this started the object file support)
10540         * src/regression Updated the PIC regression tests for object files
10541
10542 2003-04-20  Borut Razem <borut.razem AT siol.net>
10543
10544         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
10545           lklex.c: In function `getfid':
10546           lklex.c:203: warning: array subscript has type `char'
10547         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
10548           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
10549         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
10550           stack handling macros
10551
10552 2003-04-19  Borut Razem <borut.razem AT siol.net>
10553
10554         * "handling space characters in file path" task:
10555         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
10556         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
10557         * support/Util/MySystem.h: make it self-sufficient
10558         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
10559           src/z80/main.c, sdcc/as/mcs51/lklex.c:
10560           handling space characters in file path
10561         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
10562           (it will be used by assemblers, which have their own includes, e.g. gpasm)
10563         * support/Util/MySystem.c: handling space characters in executable's path
10564
10565 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
10566
10567         * as/z80/Makefile: fix permanent rebuild of z80
10568         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
10569         * support/regression/tests/bitfields.c: added Johan's bitfields.c
10570
10571 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
10572
10573         * src/SDCCopt.c: add special case optimization to replace modulo by
10574           a power of two with a bitwise AND.
10575
10576 2003-04-18    <johan AT balder>
10577
10578         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
10579
10580 2003-04-17    <johan AT balder>
10581
10582         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
10583         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
10584
10585 2003-04-13  Borut Razem <borut.razem AT siol.net>
10586
10587         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
10588         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
10589           fixed mingw problem in adl_NORMALIZE_PATH
10590
10591 2003-04-12  Borut Razem <borut.razem AT siol.net>
10592
10593         * fixed "#pragma SAVE/RESTORE can not be nested":
10594         * src/SDCC.lex: reworked pragma handling functions
10595         * sdcc/src/SDCCglobl.h: reworked stack handling macros
10596         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
10597
10598 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10599
10600         * src/SDCCutil.c (pathEquivalent): defined but not used
10601         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
10602         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
10603         * configure: rebuilt from configure.in
10604         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10605         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10606         * device/include/Makefile.in: replace sdcc_datadir
10607         * device/lib/Makefile.in: replace sdcc_datadir
10608         * Makefile.common.in: add LDFLAGS from configure
10609         * packihx/Makefile.in: use LDFLAGS
10610         * src/Makefile.in: use LDFLAGS
10611         * support/cpp2/Makefile.in: add LDFLAGS from configure
10612         * support/makebin/Makefile: use LDFLAGS
10613         * .version: bumped version number to 2.3.5
10614
10615 2003-04-12  Borut Razem <borut.razem AT siol.net>
10616
10617         * completed "different paths" task:
10618         * src/SDCCmacro.c: fixed bug in handling quotes
10619         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
10620         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
10621
10622 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10623
10624         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
10625
10626 2003-04-11 kevin Vigor <kevin AT vigor.nu>
10627
10628         * ds390/gen.c ds390/peeph.def: fix bug 706781
10629
10630 2003-04-11  Borut Razem <borut.razem AT siol.net>
10631
10632         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
10633
10634 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
10635
10636         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
10637         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
10638          set - this bit used to not be set...).
10639         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
10640           bad code in PIC Port
10641         * src/regression/and2.c added to test bug 609268
10642         * src/regression/Makefile added and2.c to regression test
10643
10644
10645 2003-04-08    <johan AT CP255758-A>
10646
10647         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
10648         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
10649         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
10650
10651 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
10652
10653         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
10654         fix bug #487815
10655         * support/cpp2/Makefile.in: fix bug #487815
10656         * configure: rebuilt from configure.in
10657         * Makefile.common.in: docdir changed, new path suffixes
10658         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10659         * sdcc_vc_in.h: reflect changes from sdccconf.h
10660         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
10661         * src/SDCCutil.h: remove BINDIR hack
10662         * doc/sdccman.lyx: update new path hierarchy
10663
10664 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10665
10666         * src/SDCCpeeph.c: added okToRemoveSLOC test
10667
10668 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10669
10670         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
10671
10672 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10673
10674         * src/SDCCpeeph.c: added labelIsReturnOnly test
10675         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
10676
10677 2003-04-05    <johan AT balder>
10678
10679         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
10680         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
10681         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
10682         * src/SDCCast.c: fixed a warning
10683         * src/SDCCast.h: fixed a warning
10684         * src/SDCCicode.c (operandFromAst): fixed a warning
10685
10686 2003-04-04    <johan AT balder>
10687
10688         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
10689         * src/SDCCast.c (decorateType): fixed bug #715076
10690         * src/SDCC.y: fixed bug #702907
10691
10692 2003-04-03    <johan AT balder>
10693
10694         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
10695         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
10696         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
10697         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
10698         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
10699
10700 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
10701
10702         * _decdptr.c: fix return values
10703         * _gptrget.c: fix return values
10704         * _gptrgetc.c: fix return values
10705         * _gptrput.c: fix return values
10706         * _mulint.c: fix return values
10707         * as/z80/Makefile: fix 'make -j' problem
10708
10709 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
10710
10711         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
10712         * configure.in: big cleanup, updated to autoconf 2.5x
10713         * configure: rebuilt from configure.in
10714         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10715         * sdcc_vc_in.h: reflect changes from sdccconf.h
10716         * doc/Makefile: fixed a flaw in "make install"
10717
10718 2003-04-02    <johan AT balder>
10719
10720         * src/ds390/gen.c (genCmp): no comments
10721         * src/mcs51/gen.c (genCmp): no comments
10722         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
10723         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
10724
10725 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
10726
10727         * support/regression/generate-cases.py: place generated file in given sub directory
10728         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
10729         * support/regression/Makefile: improvements for 'make -j';
10730         side effect: it's simpler and faster now
10731
10732 2003-03-31  Borut Razem <borut.razem AT siol.net>
10733
10734         * src/z80/main.c: link-{port} and as-{port} defined without path
10735         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
10736
10737 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
10738
10739         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
10740
10741 2003-03-30  Borut Razem <borut.razem AT siol.net>
10742
10743         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
10744           changed type of list parameter to set
10745         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
10746         * src/port.h: changed type of do_assemble() parameter to set
10747         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
10748           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
10749           definition of "cppoutfilename" macro with NULL value in preProcess()
10750         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
10751         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
10752         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
10753           replaced with set *binPathSet
10754         * shash_add() deallocates the item, if allready exsists, before adding the new one
10755         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
10756
10757 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
10758
10759         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
10760           a nested for loop bug in the PIC port
10761         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
10762           for loops
10763
10764 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
10765
10766         * support/Util/dbuf.h: remove C++ stuff to make it portable
10767
10768 2003-03-28  Borut Razem <borut.razem AT siol.net>
10769
10770         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
10771           literal strings in stringLiteral()
10772         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
10773         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
10774           to the project
10775
10776 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
10777
10778         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
10779
10780 2003-03-26    <johan AT balder>
10781
10782         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
10783         * src/ds390/gen.c (saveRegisters): catched symbol abuse
10784         * src/SDCCast.c (decorateType): fixed " -v < 3"
10785
10786 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
10787
10788         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
10789         Added Lenny Story's debug infrastructure changes:
10790         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
10791         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
10792         * src/cdbFile.c: added
10793         * src/SDCCdebug.c: added
10794         * src/SDCCdebug.h: added
10795         * src/SDCCast.c (createFunction)
10796         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
10797         * src/SDCCmain.c (parseCmdLine, main)
10798         * src/SDCCmem.c (redoStackOffsets)
10799         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
10800         * src/SDCCsymt.h
10801         * src/common.h
10802         * src/avr/gen.c (genAVRCode)
10803         * src/ds390/gen.c (gen390Code)
10804         * src/mcs51/gen.c (gen51Code)
10805         * src/pic/gen.c (genpic14Code)
10806         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
10807         * src/xa51/gen.c (genXA51Code)
10808         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
10809
10810 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10811
10812         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
10813         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
10814
10815 2003-03-22    <johan AT balder>
10816
10817         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
10818
10819 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
10820
10821         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
10822         * doc/cdbfileformat.lyx: added, written by Lenny Story
10823         * doc/Makefile: added cdbfileformat.lyx
10824         * doc/clean.mk: added cdbfileformat.lyx
10825
10826 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
10827
10828         * src/mcs51/peeph.def: fix bug #705773
10829
10830 2003-03-20    <johan AT balder>
10831
10832         An sfr/sbit can have an "at #" AND an initializer
10833         * src/SDCCsymt.c (checkSClass):
10834         * src/SDCCmem.c (allocGlobal):
10835         * src/SDCCmem.c (allocLocal):
10836         * src/SDCCast.c (createBlock):
10837
10838 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
10839
10840         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
10841
10842 2003-03-16    <johan AT balder>
10843
10844         Undid the hackup of const and volatile, the problem is much bigger
10845         * src/SDCC.y:1.65
10846         * src/SDCCast.c:1.171
10847         * src/SDCCglue.c:1.138
10848         * src/SDCCicode.c:1.146
10849         * src/SDCCsymt.c:1.150
10850         * src/SDCCval.c:1.65
10851
10852 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
10853
10854         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
10855         * src/ds390/gen.c (genAddrOf): fixed bug #704087
10856
10857 2003-03-13    <johan AT balder>
10858
10859         Hackup const and volatile modifiers in type chains a bit:
10860         * src/SDCC.y:1.63
10861         * src/SDCCast.c:1.169
10862         * src/SDCCglue.c:1.136
10863         * src/SDCCicode.c:1.143
10864         * src/SDCCsymt.c1.146
10865         * src/SDCCsymt.h1.59
10866         * src/SDCCval.c:1.63
10867
10868 2003-03-12    <johan AT balder>
10869
10870         * src/SDCCBBlock.h: more LRH debugging junk
10871         * src/SDCCcflow.h: more LRH debugging junk
10872         * src/SDCCloop.c: more LRH debugging junk
10873         * src/SDCC.y (struct_declaration): fixed bug #697590
10874         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
10875         * src/ds390/gen.c (aopForRemat): fixed bug #700031
10876         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
10877
10878 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10879         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
10880         test function names must now match exactly).
10881         * src/SDCCcse.c: added special case in findCheaperOp to allow
10882         extending a short integer. Makes less awful code for bug 700121 test case.
10883
10884 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10885
10886         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
10887         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
10888
10889 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10890
10891         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
10892         actually called (operandsNotEqual() was called for all
10893         operandsNotEqualX tests).
10894
10895 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10896
10897         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
10898         with shorter literals. Fixes bug 700121.
10899
10900 2003-03-11    <johan AT balder>
10901
10902         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
10903
10904 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
10905
10906         * src/SDCCloop.c (mergeRegions): an evil beast is dead
10907         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
10908
10909 2003-03-10  Borut Razem <borut.razem AT siol.net>
10910
10911         * src/SDCCmain.c: pipe preprocessor's output
10912         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10913         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10914         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10915         which closes all pipes in pipeSet set
10916         * src/SDCCset.c: free deleted item in function deleteSetItem()
10917         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10918         moved from z80 to src subproject
10919         * .version: increased version number to 2.3.4
10920
10921 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
10922
10923         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
10924         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
10925         * support/regression/ports/xa51/spec.mk: fix typo
10926
10927 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
10928
10929         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
10930
10931 2003-03-09  Borut Razem <borut.razem AT siol.net>
10932
10933         * src/SDCCmain.c: pipe preprocessor's output
10934         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10935         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10936         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10937         which closes all pipes in pipeSet set
10938         * src/SDCCset.c: free deleted item in function deleteSetItem()
10939         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10940         moved from z80 to src subproject
10941
10942 2003-03-09  Borut Razem <borut.razem AT siol.net>
10943
10944         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
10945         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
10946         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
10947         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
10948         * src/SDCCglobl.h: unification of WIN32 native definitions
10949
10950 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10951
10952         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
10953
10954 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10955
10956         * src/configure.in:   check for endianess (even while cross-compiling)
10957         * src/configure:      check for endianess (even while cross-compiling)
10958         * src/configure_in.h: check for endianess (even while cross-compiling)
10959         * src/avr/gen.c:        remove old endianess stuff
10960         * src/mcs51/gen.c:      remove old endianess stuff
10961         * src/ds390/gen.c:      remove old endianess stuff
10962         * src/pic/gen.c:        remove old endianess stuff
10963         * src/pic/genarith.c:   remove old endianess stuff
10964         * src/pic/glue.c:       fix endianess check
10965         * src/pic16/gen.c:      remove old endianess stuff
10966         * src/pic16/genarith.c: remove old endianess stuff
10967         * src/pic16/glue.c:     fix endianess check
10968         * src/xa51/gen.c:       remove old endianess stuff
10969         * src/z80/gen.c:        fix endianess check
10970         * src/SDCCglue.c:       fix endianess check
10971         * src/ds390/peeph.def: fix bug 700036
10972
10973 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10974
10975         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
10976         * src/configure: find appropriate data-types on host for SDCC's int and long
10977         * src/configure.in: find appropriate data-types on host for SDCC's int and long
10978         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
10979         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
10980
10981 2003-03-07    <johan AT balder>
10982
10983         Just a big NOOP:
10984                 some minor cleanups before the big shot
10985                 OP_DEFS and OP_USES now use Kevin's protection
10986                 new option --nolabelopt
10987
10988         * src/SDCCBBlock.c:
10989         * src/SDCCast.c,:
10990         * src/SDCCcflow.c:
10991         * src/SDCCcse.c:
10992         * src/SDCCicode.c:
10993         * src/SDCCicode.h:
10994         * src/SDCClabel.c:
10995         * src/SDCCloop.c:
10996         * src/SDCCmain.c:
10997         * src/ds390/ralloc.c:
10998         * src/mcs51/ralloc.c:
10999         * src/pic/ralloc.c:
11000         * src/xa51/ralloc.c:
11001         * src/z80/ralloc.c:
11002
11003 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
11004
11005         * src/pic/pcode.c (get_op): fix 64 bit warnings
11006         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
11007         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
11008         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
11009         * support/regression/tests/malloc.c: fix 64 bit warnings
11010
11011 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
11012
11013         * src/mcs51/gen.c (genMinus): fixed bug 696436
11014
11015 2003-03-02  Borut Razem <borut.razem AT siol.net>
11016
11017         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
11018
11019 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
11020
11021         * configure.in: test for mkstemp
11022         * sdccconf_in.h: add HAVE_MKSTEMP
11023
11024 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
11025
11026         * device/include/ctype.h: removed warning while using --stack-auto
11027         * device/include/malloc.h: removed warning while using --stack-auto
11028         * device/include/string.h: removed warning while using --stack-auto
11029
11030 2003-02-23  Borut Razem <borut.razem AT siol.net>
11031
11032         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
11033         because NDEBUG is defined (see man assert)
11034         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
11035
11036 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11037
11038         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
11039         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
11040
11041 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
11042
11043         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
11044         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
11045
11046 2003-02-18    <johan AT balder>
11047
11048         * as/mcs51/asmain.c (asmbl): module can start with a digit
11049         * as/z80/asmain.c (asmbl): module can start with a digit
11050
11051 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
11052
11053         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
11054         * src/asm.c: fix pipe() for Mingw32
11055
11056 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
11057
11058         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
11059         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
11060         make -V work again; --c1mode reads now from stdin
11061         * doc/sdccman.lyx: added --c1mode
11062         * support/Util/SDCCerr.c: new messages for c1 mode
11063         * support/Util/SDCCerr.h: new messages for c1 mode
11064         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
11065
11066 2003-02-15    <johan AT balder>
11067
11068         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
11069
11070 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
11071
11072         * doc/sdccman.lyx: Environment variables, -o and other minor things
11073
11074 2003-02-14    <johan AT balder>
11075
11076         * src/xa51/main.c: before anyone really tries to use it :)
11077
11078         * Install doc's in share/sdcc/doc
11079         * removed some obsolete files
11080         * Do a proper make distclean and uninstall
11081         M Makefile.common.in
11082         R sdccbuild.sh
11083         M as/Makefile
11084         M device/include/Makefile.in
11085         M device/lib/Makefile.in
11086         M doc/sdccman.lyx
11087         M link/Makefile
11088         M sim/ucsim/doc/Makefile.in
11089         M src/clean.mk
11090         R src/avr/peeph.rul
11091         R src/xa51/peeph.rul
11092         M support/cpp2/Makefile.in
11093         M support/makebin/Makefile
11094
11095
11096 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
11097
11098         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
11099
11100 2003-02-10  Borut Razem <borut.razem AT siol.net>
11101
11102         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
11103         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
11104         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
11105         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
11106         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
11107         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
11108         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
11109         src/z80/Makefile.bcc: Borland Makefile cleanup
11110         * as/z80/Makefile.bcc: Added Borland Makefile
11111         * support/cpp2/borland.h: Removed
11112
11113 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
11114
11115         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
11116         * src/SDCC.lex: new pragma NOIV
11117         * src/SDCCglobl.h: new pragma NOIV
11118         * src/SDCCmem.c: new pragma NOIV
11119
11120 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11121
11122         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
11123
11124 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11125
11126         * src/SDCCmain.c: signal handling is switched off by --debug
11127         * doc/Makefile: small fix for install; use clean.mk again
11128         * doc/clean.mk: clean *.pdf and *.html too
11129
11130 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
11131
11132         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
11133         * device/lib/printfl.c: fix a ds390 bug by making it portable
11134         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
11135         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
11136         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
11137         * debugger/mcs51/cmd.c: converted multi-line string literals
11138         * sim/ucsim/globals.cc: converted multi-line string literals
11139         * src/SDCCmain.c: introduced signal handler to remove temp files
11140         * doc/Makefile: small tweaks, implement clean
11141         * doc: removed generated files
11142
11143 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11144
11145         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
11146         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
11147         Address Record is not correctly generated for DS390."
11148
11149 2003-02-02  Borut Razem <borut.razem AT siol.net>
11150
11151         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
11152         * as/mcs51/asm.h: fixed compilation with Borland C
11153         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
11154         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
11155         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
11156         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
11157         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
11158         src/z80/Makefile.bcc: delete $(LIB) only if exist
11159         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
11160
11161 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
11162
11163         * device/include/malloc.h: introduced NULL
11164         * device/include/string.h: introduced NULL
11165         * device/include/stdlib.h: introduced NULL
11166         * device/lib/_memcpy.c: removed NULL
11167         * device/lib/_strcat.c: removed NULL
11168         * device/lib/_strchr.c: removed NULL
11169         * device/lib/_strcmp.c: removed NULL
11170         * device/lib/_strcpy.c: removed NULL
11171         * device/lib/_strcspn.c: removed NULL
11172         * device/lib/_strlen.c: removed NULL
11173         * device/lib/_strncat.c: removed NULL
11174         * device/lib/_strncmp.c: removed NULL
11175         * device/lib/_strncpy.c: removed NULL
11176         * device/lib/_strpbrk.c: removed NULL
11177         * device/lib/_strrchr.c: removed NULL
11178         * device/lib/_strspn.c: removed NULL
11179         * device/lib/_strstr.c: removed NULL
11180         * device/lib/_strtok.c: removed NULL
11181         * device/lib/malloc.c: removed NULL, include own header
11182
11183 2003-02-02    <johan AT balder>
11184
11185         * 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
11186         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
11187         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
11188         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
11189         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
11190         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
11191
11192 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11193
11194         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
11195         area 'DATA'"
11196
11197 2003-02-01    <johan AT balder>
11198
11199         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
11200
11201 2003-01-31    <johan AT CP255758-A>
11202
11203         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
11204
11205 2003-01-30    <johan AT balder>
11206
11207         * src/SDCCBBlock.c: automatic bug detection
11208         * src/SDCCicode.c: automatic bug detection
11209
11210 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11211
11212         * src/SDCCglobl.h:   now --xram-size 0 works
11213         * src/SDCCmain.c:    now --xram-size 0 works
11214
11215 2003-01-29    <johan AT balder>
11216
11217         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
11218
11219 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11220
11221         * as/mcs51/aslink.h: Added options --xram-size and --code-size
11222         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
11223         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
11224         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
11225         * src/SDCCglobl.h:   Added options --xram-size and --code-size
11226         * src/SDCCmain.c:    Added options --xram-size and --code-size
11227
11228 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
11229
11230         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
11231         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
11232
11233 2003-01-27    <johan AT balder>
11234
11235         * src/SDCC.y: fixed bug #613764
11236
11237 2003-01-26    <johan AT balder>
11238
11239         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
11240         * src/SDCCsymt.h: fixed bug #673374
11241         * src/SDCCglue.c: fixed bug #661910
11242         * src/SDCCast.c: fixed bug #458099 and 673374
11243
11244 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
11245
11246         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
11247         * as/mcs51/strcmpi.h: added
11248         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
11249         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
11250         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
11251         * as/mcs51/assym.c: strcmpi -> as_strcmpi
11252         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
11253         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
11254         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
11255         * as/mcs51/Makefile.aslink: new module strcmpi
11256         * as/mcs51/Makefile.asx8051: new module strcmpi
11257         * as/mcs51/Makefil.bcc: new module strcmpi
11258         * as/mcs51/Makefile.in: new module strcmpi
11259         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
11260
11261 2003-01-26    <johan AT balder>
11262
11263         * src/SDCCglue.c: reverted back to 1.124
11264         * src/SDCCast.c: reverted back to 1.156
11265         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
11266
11267 2003-01-25    <johan AT balder>
11268
11269         * src/SDCCglue.c: A better fix for bug #661910
11270         * src/SDCCast.c: A better fix for bug #661910
11271         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
11272
11273 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11274
11275         * src/Makefile.in: remove spawn.o
11276         * src/SDCCmain.c: remove spawn.h
11277         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
11278         * src/spawn.c: removed
11279         * src/spawn.h: removed
11280         * support/regression/ports/ds390/spec.mk: link with -r
11281
11282 2003-01-24    <johan AT CP255758-A>
11283
11284         * src/ds390/gen.c (aopOp): fixed bug #667458
11285         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
11286         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
11287         (createIvalCharPtr): an ival doesn't always have a storage class anymore
11288
11289 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11290
11291         * src/mcs51/peeph.def: better assembler identation by Frieder
11292         * src/mcs51/gen.c: better assembler identation by Frieder
11293
11294 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
11295
11296         * as/z80/string.h: removed for gcc 3.2
11297         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
11298         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
11299
11300 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11301
11302         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
11303         * src/SDCCpeeph.c (replaceRule): fix bug #663503
11304         * support/regression/Makefile: separate temp files for ports
11305         * support/regression/generate-cases.py: separate temp files for ports
11306         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11307         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11308
11309 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11310
11311         * moved tinitalk to device/examples/ds390
11312
11313 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
11314
11315         * as/mcs51/lkmem.c: rflag is for DS390
11316         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
11317         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
11318                          (linkEdit): move mem- and map-files the same way as ihx-files
11319         * src/z80/main.c (_setDefaultOptions): removed --generic
11320         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
11321         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
11322         * src/pic/glue.c (picglue): --c1mode works again
11323         * src/pic16/glue.c (pic16glue): --c1mode works again
11324         * src/asm.c (printCLine): fix #660034
11325
11326 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
11327
11328         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
11329         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
11330         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
11331         * as/mcs51/lkmem (summary): better fix for sp problem
11332         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
11333         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
11334         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
11335                                               remove --stack-after-data
11336
11337 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
11338
11339         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
11340         * src/SDCCutil.c (join): ugly bug: missing '\0'
11341         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
11342
11343 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11344
11345         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
11346         * src/port.h: typo
11347         * src/pic/main.c (_asmCmd): gpasm supports -o
11348         * src/z80/main.c: more general macros
11349         * device/lib/Makefile.in: remove intermediate files
11350
11351 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11352
11353         * .version: Bumped version number to 2.3.3
11354         * src/SDCCBBlock.c: new option -o
11355         * src/SDCCglobl.h: new option -o
11356         * src/SDCCglue.c: new option -o
11357         * src/SDCCmain.c: new option -o
11358         * src/asm.c: new option -o
11359         * src/ds390/main.c: new option -o
11360         * src/pic/glue.c: new option -o
11361         * src/pic/pcode.c: new option -o
11362         * src/pic/ralloc.c: new option -o
11363         * src/pic16/glue.c: new option -o
11364         * src/pic16/pcode.c: new option -o
11365         * src/pic16/ralloc.c: new option -o
11366         * src/z80/main.c: new option -o
11367         * device/lib/Makefile.in: use -o
11368         * support/regression/ports/ds390/spec.mk: use -o
11369         * support/regression/ports/gbz80/spec.mk: use -o
11370         * support/regression/ports/mcs51/spec.mk: use -o
11371         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
11372         * support/regression/ports/z80/spec.mk: use -o
11373         * support/regression/ports/ucz80/spec.mk: use -o
11374         * support/regression/ports/xa51/spec.mk: use -o
11375         * support/regression/fwk/lib/timeout.c: fix usage string
11376
11377 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
11378         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
11379
11380 2003-01-07    <johan AT balder>
11381
11382         * src/SDCCast.c (decorateType): fixed bug #600035
11383
11384 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
11385         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
11386         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
11387         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
11388         * src/pic/pcode.c: outcommented unused variable to remove warnings
11389         * src/pic/ralloc.c: outcommented unused variable to remove warnings
11390
11391 2003-01-06    <karl AT turbobit.com>
11392         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
11393    regression tests.
11394
11395 2003-01-06    <johan AT balder>
11396
11397         * src/SDCCicode.c: fixed array add
11398
11399 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
11400         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
11401         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
11402
11403 2003-01-04    <johan AT balder>
11404
11405         * src/SDCCval.c (getNelements): fixed the initialized array of structures
11406
11407 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11408         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
11409
11410 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11411         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
11412         * support/regression/tests/bug-524697.c: fit mem usage into 8032
11413
11414 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11415         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
11416
11417 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
11418         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
11419
11420 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
11421         * src/mcs51/main.c: removed {bindir}{sep} from aslink
11422
11423 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11424
11425     * in /sdcc/as/mcs51/ changed these files in order to create an
11426     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
11427     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
11428     following files to include the previous two files: aslink.dsp,
11429     Makefile.aslink, Makefile.bcc, and Makefile.in.
11430
11431     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
11432     .adb instead of .cdb
11433
11434 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11435
11436         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
11437         value from option --iram-size.
11438
11439 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11440
11441         * /sdcc/as/mcs51/lklist.c: added boundary check before using
11442         dram[] array.
11443
11444 2002-09-18    <wiml AT hhhh.org>
11445
11446         * SDCClrange.h: exposed setFromRange() and setToRange()
11447         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
11448           packRegsForAccUse() (bug 542397)
11449         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
11450           multiple times and emitting the fetch operations more than once
11451           added aopGetUsesAcc() function to allow binary operators to
11452           fetch their operands in the correct order; made genMinus() emit
11453           compact code for X = LITERAL - Y
11454
11455 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11456         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
11457         sprintf() in line 1267.
11458
11459 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11460         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
11461         like ports.
11462
11463 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11464         Changes to aslink (All the changes are marked with 'JCF'):
11465
11466         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
11467         summary().
11468
11469         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
11470         area BSEG.  Also moves, if possible, the DATA area down into the internal
11471         ram so more space is available.
11472
11473         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
11474         sflag.
11475
11476         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
11477         not bytes.  Function summary() which creates a memory usage summary
11478         file with extension .mem.  Reports of overlaping stack and small stack
11479         size.  If the space for the stack is less than 16 bytes aslink trows a
11480         warning.
11481
11482         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
11483         the 8051.  Option 'y' for memory summary output file.
11484
11485         Changes to sdcc (All the changes are marked with 'JCF'):
11486
11487         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
11488
11489         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
11490         overlaying area for it (uses RegBankUsed[4]).
11491
11492         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
11493         bank zero as used by default.  By default aslink locates the stack
11494         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
11495         the creation of the .mem file.  Delegates the allocation of data area
11496         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
11497         the begining of the stack area to aslink.
11498
11499         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
11500         glue() in SDCCglue.c creates an area for it.
11501
11502 2002-09-03  Borut Razem <borut.razem AT siol.net>
11503         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
11504         sdcc/src/pic/glue.c:
11505         introduced atexit() handler for teporay files removal in case of
11506         errors, assertions, ...
11507
11508 2002-08-29  Borut Razem <borut.razem AT siol.net>
11509         * sdcc/support/cpp2/auto-host_vc_in.h:
11510         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
11511         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
11512         Maybe there is a similar problem with BORLANDC? It should be checked!
11513
11514         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
11515         corrected improper use of assert: the assignment to clr variable was done inside the assert.
11516         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
11517         was not executed, and the compiler (cl) launched a warning:
11518         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
11519
11520 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11521         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
11522
11523 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
11524         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
11525
11526         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11527           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
11528           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
11529           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11530           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
11531           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
11532           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
11533         - added Release configuration in VS projects
11534         - review of compiler an linker options
11535         - VC .exe files are generated in bin_vc directory, not to interfere
11536           with binaries generated from other projects (cygwin, mingw, bcc ...)
11537
11538         * sdcc/src/yacc.dsp: added
11539
11540         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
11541         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
11542         and insert the version number definitions from .version
11543
11544         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
11545
11546         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
11547         added - genarate auto-host.h using auto-host_vc_in.h as template
11548
11549         * sdcc/sdcc_vc.h,
11550         removed from CVS, generated automatically
11551
11552 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
11553         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
11554
11555 2002-08-11  Borut Razem <borut.razem AT siol.net>
11556         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
11557
11558 2002-08-10  Borut Razem <borut.razem AT siol.net>
11559         * src/SDCCmain.c (main):
11560         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
11561         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
11562         The consequence was that some temporary files were not removed.
11563
11564         * src/SDCCglue.c:
11565         unification of code in functions tempfilename() and tempfile():
11566         function tempnam() is defined in Visual Studio 6.0 and .NET
11567
11568         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
11569
11570         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11571           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
11572         - removed compiler command line option /WX: Treats all warnings as errors
11573         - update a list of source files, included into the project
11574
11575         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11576           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
11577         changed project type to Generic Project so that can be correcly converted to VS.NET project
11578
11579         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
11580
11581         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
11582
11583         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
11584
11585         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
11586         added return 0 statements after assert() to make compiler happy
11587
11588         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
11589         added newline in the def file to keep MSC compiler satisfied
11590
11591         * sdcc/src/z80/gen.c:
11592         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
11593           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
11594         - solved MSC error in function aopDump()
11595
11596         * sdcc_vc.h: define PREFIX as "\\sdcc"
11597
11598 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
11599         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
11600
11601 2002-06-22  Scott Dattalo <scott AT dattalo.com>
11602         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
11603         - Rewrote the register banking algorithm.
11604         - Added pCode live-range analysis to registers (for now, only non-used and
11605         singly-used registers optimized away)
11606
11607         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
11608
11609         * 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.
11610
11611 2002-05-10  Scott Dattalo <scott AT dattalo.com>
11612         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
11613
11614 2002-04-22  Michael Hope  <michaelh AT vroom>
11615
11616         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
11617
11618         * configure.in (DD_COPT): Added include support required for gbdk.
11619
11620         * .version: Bumped version number just to increase it.
11621
11622         * src/SDCCmain.c: Added -nostdinc to the default options.
11623
11624 2002-04-15  Michael Hope  <michaelh AT vroom>
11625
11626         * device/lib/z80/printf.c (sprintf): Added.
11627
11628         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
11629
11630         * src/z80/peeph.def: Added transpose redundent load rule.
11631
11632         * src/z80/main.c: Added force callee saves for jaune.
11633
11634         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
11635
11636         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
11637
11638 2002-03-28  Johan Knol  <johan AT balder>
11639
11640         * src/SDCCval.c: fixed bug #532436
11641
11642 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11643         * /src/port.h:
11644         Added "char *Processor" field to the port structure.
11645
11646         * /src/SDCCmain.c:
11647         Added -p option. Allows port dependent processor to be specified.
11648
11649         * all ports:
11650         Initialized the new field char *Processor field to NULL in all ports
11651
11652         * /src/pic/*:
11653         Compiler generated registers for interrupt context saving
11654         were not getting allocated.
11655
11656 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
11657
11658         * /src/SDCCast.c:
11659         Fixed left shift. Will promote the left side of a left shift
11660         if a) left shifting more than size of operand or b) when assigned
11661         to something size > size of left side
11662
11663 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11664         * src/pic/*
11665         tons of changes. Register allocation has been
11666         rewritten. Added customization for the various PICs. Flow
11667         analysis is restructured. ...
11668
11669         * src/pic/device.h:
11670         Added
11671
11672         * src/pic/device.c:
11673         Added. device.c is a PIC port hack to accomodate variations
11674         in PIC devices.
11675
11676 2002-03-13  Michael Hope  <michaelh AT vroom>
11677
11678         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
11679
11680 2002-03-04  johanknol  <johanknol AT manik>
11681
11682         * /src/SDCCval.c: fixed
11683
11684         const unsigned char arr[][2] = { { 0, 1 } };
11685         t18.c:1: error: Initializer element is not constant
11686
11687 2002-03-04  bela  <bela AT manik>
11688
11689         * /device/include/mcs51reg.h:
11690         ds89c420 register definition update
11691
11692 2002-03-03    <johan AT FRIJA>
11693
11694         * support/Util/SDCCerr.c: did something, but don't no why anymore
11695
11696         * support/regression/tests/bug-524691.c: made it a little less shy
11697
11698         * src/SDCCast.c (decorateType): fixed bug #524697
11699
11700         * src/SDCCast.c: made some lineno improvements
11701
11702         * src/SDCCval.c (getNelements): changed warning to error
11703
11704         * src/SDCCglue.c (printIvalArray): changed warning to error
11705
11706         * src/SDCCicode.c: fixed a warning for mingw
11707
11708         * src/SDCCast.c (decorateType): fixed the << promotion for ops
11709
11710         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
11711
11712 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
11713
11714         * src/ds390/peeph.def:
11715         Added some more peephole rules
11716
11717         * src/ds390/gen.c: Various fixes & enhancements
11718
11719         * src/SDCClrange.c, src/SDCClrange.h:
11720         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
11721
11722         * src/ds390/ralloc.c:
11723         various fixes & enhancements (ds390) specific
11724
11725         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
11726         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
11727         from rallocs.
11728
11729         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
11730
11731 2002-03-02    <johan AT FRIJA>
11732
11733         * src/SDCCast.c (decorateType): fixed bug #524708
11734
11735         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
11736
11737         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
11738
11739 2002-03-01  Michael Hope  <michaelh AT vroom>
11740
11741         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
11742
11743         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
11744
11745 2002-03-01    <johan AT FRIJA>
11746
11747         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
11748
11749         * src/SDCCast.c (decorateType): fixed bug #524209
11750
11751         * src/SDCCval.c (valNot): fixed bug #524195
11752
11753 2002-02-26    <johan AT balder>
11754
11755         * src/xa51/gen.c: fixed a warning
11756
11757         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
11758
11759         * src/SDCCast.c (decorateType): fixed bug #522534
11760
11761 2002-02-23    <johan AT balder>
11762
11763         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
11764
11765 2002-02-22    <johan AT balder>
11766
11767         * src/SDCCast.c: fixed bug #514865
11768
11769         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
11770
11771 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
11772
11773         * sdcc/src/SDCCloop.c:
11774         Previous fix was not good. basic blocks that have "break" or "return" are
11775         not really partof a loop , but live ranges used in these blocks should
11776         be live thru the entire loop, so set partOfLoop but don't add them to
11777         loop region
11778
11779 2002-02-21    <johan AT FRIJA>
11780
11781         * src/SDCCcse.c: fixed bug #514308
11782
11783 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
11784
11785         * src/SDCCloop.c:
11786         Fixed BUG #519583. If a conditional block ended in a return/break
11787         statement inside a loop, it was not being considered part of the loop.
11788
11789         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
11790
11791 2002-02-10  Karl Bongers <karl AT turbobit.com>
11792
11793         * debugger/*:
11794         Fixed up SDCDB debugger somewhat.  Updated debugger/README
11795         with lots of comments and notes.
11796
11797         * device/examples/test2.c:
11798         Fix bug, "red" variable not being initialized(compiler complained).
11799
11800         * device/examples/Makefile, examples/test3.c:
11801         Add Makefile in device/examples folder, compiles test3.c
11802         for use as a multiple module SDCDB test case.
11803
11804         * sim/ucsim/cmd.src/cmdset.cc:
11805         Took out debug printfs in ucsim "next" command.
11806
11807         * sim/ucsim/xa.src:
11808         Karl and Johan start ucsim XA support.  Most dissassembly working,
11809         about 75% emulation done(plenty of work remaining).
11810
11811         * sim/ucsim/z80.src:
11812         Add Z80 support to ucsim, add test-ucz80 regression test,
11813         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
11814         Notice z80 compiler fails on examples/test3.c/crc code.
11815
11816 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
11817
11818         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
11819         Added support for --parms-in-bank1
11820
11821         * src/ds390/peeph.def:
11822         added a few more peephole optimzations
11823
11824         * src/ds390/main.c:
11825         1) added __builtin_inp & __builtin_outp used to read in data of given length
11826            from a memory mapped port
11827         2) added __builtin_memcmp
11828         3) added __builtin_swapw swap bytes of a short
11829
11830         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
11831         1) handle multiple send & receives from register bank1
11832         2) ralloc can now allocate DPTR1 to some liveRanges
11833
11834         * src/SDCCsymt.c, src/SDCCsymt.h:
11835         changes to handle multiple sends & receives
11836
11837         * src/SDCCptropt.h:
11838         added some pointer arithmetic optimization
11839
11840         * src/SDCCptropt.c:
11841         added some pointer arithmetic optimizations but not stable yet so not
11842         called from anywhere (will get this working shortly)
11843
11844         * src/SDCCopt.c: fixed for multiple sends & receives
11845
11846         * src/SDCCmain.c:
11847         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
11848         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
11849            set preprocessor defines (depending on options)
11850
11851         * src/SDCCicode.c, src/SDCCicode.h:
11852         changes made to handle multiple sends & receives
11853
11854         * src/SDCCglobl.h:
11855         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
11856
11857         * src/SDCCcse.c, src/SDCCcse.h:
11858         added function findbackward def (to be used in upcoming optimization)
11859
11860         * src/SDCCcflow.c, src/SDCCcflow.h:
11861         added function returnAtEnd - to determine if a basic block terminates with
11862         a RETURN iCode
11863
11864         * src/SDCCast.c, src/SDCCast.h:
11865         added option parms-in-bank1
11866
11867         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
11868         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
11869         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
11870         adjusted for --parms-in-bank1 option
11871
11872         * device/include/string.h:
11873         donot redefine "reentrant" keyword
11874
11875         * device/include/ds80c390.h: Added some more SFRs
11876
11877 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
11878
11879         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
11880
11881 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
11882
11883         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
11884
11885 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
11886
11887         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
11888
11889 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
11890
11891         * Added --xram-movc option
11892
11893 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
11894
11895         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
11896
11897 2002-01-11  Johan Knol
11898
11899         * Added math lib of Jesus Calvino-Fraga
11900
11901 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
11902
11903         * src/SDCCmain.c (processFile): fix processing of ../../src.c
11904         * support/regression/Makefile: new target test-mcs51-stack-auto
11905         * support/regression/ports/mcs51-stack-auto/spec.mk: added
11906
11907 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11908
11909         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
11910
11911 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11912
11913         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
11914
11915 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
11916
11917         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
11918
11919         * src/SDCCglue.h: add definition for printIvalChar()
11920
11921 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11922
11923         * src/SDCCast.c: fix #498138 by Johan
11924
11925         * src/SDCCglue.c: fix #498138 by Johan
11926
11927 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11928
11929         * support/regression/Makefile: fix clean
11930
11931         * support/regression/ports/ds390/support.c: fix transmission of last character
11932
11933 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
11934
11935         * /sdcc/src/ds390/gen.c:
11936         a) improved computing address of stack variable
11937         b) took out some #if 0 code
11938         c) improved parmBytes adjustment
11939         d) improved genPlusIncr & genMinusIncr
11940         e) genCmp could generate bad code (when left assigned to DPTR)
11941         f) Fixed bug in hasInc
11942
11943         * /sdcc/src/ds390/ralloc.c:
11944         a) packRegsForSupport could mess up live information (Fixed)
11945         b) packRegsDPTRuse could be incorrect for left & right shift
11946
11947         * /sdcc/src/mcs51/ralloc.c:
11948         packRegsForSupport could mess up the live information (Fixed)
11949
11950         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
11951
11952         * /sdcc/src/SDCCast.c:
11953         can reverse a loop even if function call is present as long
11954         as the loop control variable is local & is not passed as parameter
11955
11956 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11957
11958         * /sdcc/ChangeLog: *** empty log message ***
11959
11960         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
11961         More builtin function additions for TININative
11962
11963         * /sdcc/src/ds390/ralloc.c:
11964         Had broken the regression testsuite
11965
11966         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
11967
11968         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
11969         Added funcattr hasStackParms will be set for reentrant functions when there
11970         are paramteres on the stack, this helps in minimizing frame pointer generation
11971         typeFromStr can handle function pointers now
11972
11973         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
11974         *** empty log message ***
11975
11976 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11977
11978         * /src/ds390/gen.c, /src/ds390/main.c:
11979         More builtin function additions for TININative
11980
11981         * /src/ds390/ralloc.c:
11982         Had broken the regression testsuite
11983
11984         * /src/SDCCast.c: Fixed a bug in dumptree
11985
11986         * /src/SDCCsymt.c, /src/SDCCsymt.h:
11987         Added funcattr hasStackParms will be set for reentrant functions when there
11988         are paramteres on the stack, this helps in minimizing frame pointer generation
11989         typeFromStr can handle function pointers now
11990
11991         * /doc/builtins.txt, /doc/TININative.txt:
11992         *** empty log message ***
11993
11994
11995 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11996
11997         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
11998         ALPHA version for -mTININative
11999
12000         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
12001         updated to reflect changes in the port structure
12002
12003         * /src/port.h:
12004         added function do_assemble (similar to do_link) if non-null this function
12005         will be called to do assembly (-mTININative) requires a multi command
12006         assembly
12007         added function genAssemblerEnd will be called to generate assembler Epilogue
12008
12009         * /src/SDCCsymt.c:
12010         added _JavaNative to debug info printing
12011
12012         * /src/SDCCmain.c: added option --tini-libid
12013         added port->do_assemble function (-mTININative) has a multi command assemble
12014
12015         * /src/SDCCglue.c: Disabled "constExpr" check
12016         added port->genAssemblerEnd function
12017
12018         * /src/SDCCglobl.h: Added option --tini-libid value
12019
12020         * /src/SDCCast.h:
12021         tookout optimizeCompare from the header (has no external references)
12022
12023         * /src/SDCCast.c: made one more function "static"
12024
12025 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
12026
12027         * src/z80/mappings.i: Added z80asm support.
12028
12029         * src/z80/main.c: Added z80asm support on --asm=z80asm
12030
12031         * src/z80/gen.c: Fixed asm portability issues.
12032
12033         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
12034
12035         * src/SDCCglue.c (printExterns): Added global/extern split.
12036
12037 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
12038
12039         * support/regression/Makefile: added test for mcs51 model large
12040
12041         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
12042
12043         * support/regression/ports/gbz80/spec.mk: added -mgbz80
12044
12045 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
12046
12047         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
12048
12049 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
12050
12051         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
12052
12053         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
12054
12055 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
12056
12057         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
12058
12059         * support/regression/tests/simplefloat.c: Port to mcs51.
12060
12061 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
12062         * support/regression/tests/bug-485362.c: Added.
12063
12064         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
12065
12066         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
12067
12068         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
12069
12070         * src/z80/gen.c (aopDump): Added a dump function.
12071
12072 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
12073         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
12074
12075         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
12076
12077         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
12078
12079         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
12080
12081         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
12082
12083         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
12084
12085         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
12086
12087         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
12088
12089         * support/regression/ports/ds390/support.c: Use tinibios.
12090
12091         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
12092
12093 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
12094
12095         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
12096         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
12097
12098         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
12099
12100         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
12101
12102 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
12103
12104         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
12105
12106         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
12107         (packRegsForIYUse): Created and optimised.
12108
12109 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12110
12111         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
12112 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
12113
12114         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
12115
12116         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
12117
12118         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
12119
12120 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12121
12122         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
12123
12124         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
12125
12126 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12127
12128         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
12129
12130         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
12131
12132         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
12133
12134 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12135
12136         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
12137         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
12138         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
12139
12140         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
12141
12142         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
12143         (genNotFloat): Added.
12144         (genUminusFloat): Added.
12145
12146         * device/lib/z80/Makefile: Added floating pt stubs.
12147
12148         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
12149
12150         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
12151
12152         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
12153
12154 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12155
12156         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
12157
12158         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
12159
12160         * sdcc/support/regression/Makefile: Add port ds390.
12161
12162         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
12163
12164         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
12165
12166         * sdcc/support/regression/ports/ds390/spec.mk: Added.
12167
12168         * sdcc/support/regression/ports/ds390/support.c: Added.
12169
12170         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
12171
12172         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
12173
12174         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
12175
12176 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12177
12178         * device/include/malloc.h: Added z80 and gbz80 support.
12179
12180         * device/lib/gbz80/heap.s: Added.
12181
12182         * device/lib/z80/heap.s: Added.
12183
12184         * device/lib/malloc.c: Added z80 and gbz80 support.
12185
12186         * support/regression/tests/malloc.c (testMalloc): Added.
12187
12188         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
12189
12190         * support/regression/tests/bug-478094.c: Added.
12191
12192         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
12193
12194 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
12195
12196         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
12197
12198         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
12199
12200         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
12201
12202         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
12203
12204         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
12205
12206 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12207
12208         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
12209
12210 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
12211
12212         * support/regression/tests/bug-477927.c: Added.
12213
12214         * src/z80/peeph.def: Added minor rules.
12215
12216         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
12217
12218         * src/z80/peeph.def: Added jump optimisation modification.
12219
12220 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
12221
12222         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
12223
12224 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
12225
12226         * support/regression/tests/funptrs.c: Added.
12227
12228 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
12229
12230         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
12231
12232 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
12233
12234         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
12235
12236         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
12237
12238         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
12239         (movLeft2ResultLong): Created.
12240
12241         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
12242         (joinPushes): Added.  Joins two char pushes into a word push.
12243
12244 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
12245
12246         * support/cpp2/Makefile.in (install): Added creation of dest dir.
12247
12248         * support/makebin/Makefile (install): Added creation of dest dir.
12249
12250 2001-10-24 Karl Bongers <karl AT turbobit.com>
12251
12252         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
12253
12254 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
12255
12256         * src/z80/ralloc.c: Turned off faulty pack for one use.
12257
12258         * src/z80/peeph-gbz80.def: Removed redundent restart options.
12259
12260         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
12261
12262 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
12263
12264         * support/regression/Makefile: Improved clean
12265
12266         * support/regression/ports/gbz80/spec.mk: Added clean
12267
12268         * support/regression/ports/host/spec.mk: Added clean
12269
12270         * support/regression/ports/z80/spec.mk: Added clean
12271
12272         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
12273
12274         * support/regression/ports/mcs51/timeout.c: little improvements
12275
12276 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
12277
12278         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
12279
12280         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
12281
12282         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
12283
12284 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
12285
12286         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
12287
12288         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
12289
12290 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
12291         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
12292
12293         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
12294
12295         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
12296
12297         * src/mcs51/main.c (_linkCmd): Added bin path to command.
12298
12299         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
12300
12301         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
12302
12303         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
12304
12305         * support/regression/tests/longor.c: Added.
12306
12307 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
12308
12309         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
12310
12311         * as/mcs51/aslink.h: define PATH_MAX
12312
12313         * as/mcs51/asm.h: define PATH_MAX
12314
12315         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
12316
12317         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
12318
12319         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
12320
12321         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
12322
12323         * src/SDCCglobl.h: define PATH_MAX
12324
12325         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
12326
12327         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
12328
12329 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
12330
12331         * src/z80/gen.c (gencjneshort): Fixed
12332
12333         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
12334
12335 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
12336
12337         * support/regression/tests/bug-469671.c: Added.
12338
12339         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
12340
12341 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
12342
12343         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
12344
12345         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
12346
12347 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
12348
12349         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
12350
12351         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
12352
12353         * src/device/lib/_mullong.c : removed hint: nooverlay bug
12354
12355         * src/device/lib/_divuint.c : removed hint: nooverlay bug
12356
12357         * src/device/lib/_divulong.c: removed hint: nooverlay bug
12358
12359         * src/device/lib/_moduint.c : removed hint: nooverlay bug
12360
12361         * src/device/lib/_modulong.c: removed hint: nooverlay bug
12362
12363 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
12364
12365         * 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.
12366
12367         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
12368
12369         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
12370
12371 2001-10-07    <johan AT FRIJA>
12372
12373         * device/lib/gets.c (gets): fixed the return value.
12374
12375 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
12376         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
12377
12378         * 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.
12379
12380         * 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.
12381
12382         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
12383
12384         * src/pic/gen.c: Removed Safe_strdup.
12385
12386         * configure.in: Added option to enable libgc support.
12387
12388         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
12389         (bitVectUnion): Optimised.
12390         (bitVectIntersect): Optimised.
12391         (bitVectBitsInCommon): Optimised.
12392         (bitVectCplAnd): Optimised.
12393
12394         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
12395
12396 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12397
12398         * src/SDCCmain.c: distinguish between assembler debug and plain options
12399
12400         * src/avr/main.c:   remove standard assembler options
12401
12402         * src/ds390/main.c: remove standard assembler options
12403
12404         * src/mcs51/main.c: remove standard assembler options
12405
12406         * src/port.h: removed "PENDING" comment
12407
12408 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12409
12410         * src/device/lib/_mulint.c  : new, with assember functions
12411
12412         * src/device/lib/_mullong.c : new, with assember functions
12413
12414         * src/device/lib/_divuint.c : with assember functions
12415
12416         * src/device/lib/_divsint.c : with assember functions
12417
12418         * src/device/lib/_divulong.c: with assember functions
12419
12420         * src/device/lib/_divslong.c: with assember functions
12421
12422         * src/device/lib/_moduint.c : with assember functions
12423
12424         * src/device/lib/_modsint.c : with assember functions
12425
12426         * src/device/lib/_modulong.c: with assember functions
12427
12428         * src/device/lib/_modslong.c: with assember functions
12429
12430         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
12431
12432         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
12433
12434         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
12435                                       replaced _mululong.c and _mulslong.c by _mullong.c
12436
12437 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12438
12439         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
12440
12441 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12442
12443         * src/SDCCglue.c: test, if win32api is available for MINGW
12444
12445 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12446
12447         * src/SDCCsymt.c: no more _modifier in printTypeChain()
12448         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
12449         * support/regression/ports/gbz80/spec.mk: removed GENERIC
12450         * support/regression/ports/host/spec.mk: removed GENERIC
12451         * support/regression/ports/mcs51/spec.mk: removed GENERIC
12452         * support/regression/ports/z80/spec.mk: removed GENERIC
12453
12454 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
12455
12456         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
12457
12458         * support/regression/tests/bug-467035.c: Created.
12459
12460 2001-10-01    <johan AT FRIJA>
12461
12462         * src/SDCC.y: fixed bug #466586 part 1
12463
12464 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
12465
12466         * SDCCicode.c: z80 has no generic pointers
12467         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
12468
12469 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
12470
12471         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
12472
12473 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
12474
12475         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
12476
12477         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
12478
12479 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
12480
12481         * configure.in: Fixed up so that ucsim is only configured once.
12482
12483         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
12484
12485         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
12486         (getPathDifference): As above.
12487
12488         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
12489
12490         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
12491
12492 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
12493         * .version: Updated to 2.3.1
12494
12495         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
12496         Added copyright header.
12497
12498         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
12499         (assemble): Added support for macro based assembler commands.
12500         (linkEdit): Added support for macro based linker commands.
12501         (preProcess): Changed the pre-processor to use macros.
12502         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
12503         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
12504
12505         * device/lib/z80/crt0.s: Added module name for debugging.
12506
12507 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
12508
12509         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12510
12511         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
12512
12513         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
12514
12515         * src/Makefile.in: Added SDCCmacro and SDCCutil
12516
12517 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
12518
12519         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12520
12521 2001-09-16    <johan AT FRIJA>
12522
12523         * 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.
12524
12525 2001-09-15    <johan AT FRIJA>
12526
12527         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
12528         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
12529
12530 2001-09-11    <johan AT FRIJA>
12531
12532         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
12533
12534 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
12535
12536         * support/regression/tests/bug-460444.c: Added test case.
12537
12538         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
12539         (genCast): Added justification for all of the asserts.
12540
12541 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
12542
12543         * support/regression/support.c: _xdata replaced by xdata
12544
12545         * support/regression/spec.mk: removed _generic
12546
12547 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
12548
12549         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
12550
12551         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
12552         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
12553
12554         * src/z80/peeph.def: Added a rule to optimise shift then compare.
12555
12556         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
12557
12558         * support/regression/tests/bug-460010.c: Added test case.
12559
12560         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
12561
12562 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
12563
12564         * support/regression/Makefile: inter-port-clean adjusted for mcs51
12565
12566         * support/regression/testfwk.c: removed workaround for bug #436344
12567
12568         * support/regression/tests/bp.c: use less memory with mcs51
12569
12570         * support/regression/tests/bug-441448.c: use less memory
12571
12572         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
12573
12574         * support/regression/collate-results.py: typo
12575
12576 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
12577
12578         * support/regression/tests/fetchoverlap.c: Added new test case.
12579
12580         * support/regression/tests/bp.c: Added new test case.
12581
12582         * support/regression/tests/bug-448984.c: Added new test case.
12583
12584         * support/regression/tests/pow2shifts.c: Added new test case.
12585
12586         * src/z80/gen.c: Turned off the noise it normally generates for the release.
12587         (genlshTwo): Fixed right shift for count > 8.
12588
12589         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
12590
12591 2001-09-08    <johan AT FRIJA>
12592
12593         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
12594
12595 2001-09-07    <johan AT FRIJA>
12596
12597         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
12598
12599         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
12600
12601 2001-09-06    <johan AT FRIJA>
12602
12603         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
12604         * bernhard noted me at this: "() equals to (void)" (1.38)
12605
12606 2001-09-05    <johan AT FRIJA>
12607
12608         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
12609
12610 2001-09-04    <johan AT FRIJA>
12611
12612         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
12613
12614
12615 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
12616
12617         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
12618
12619 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
12620
12621         * link/z80/aslink.h: Fixed path for PATH_MAX
12622
12623 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
12624
12625         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
12626
12627         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
12628
12629         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
12630
12631         * 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.
12632
12633 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
12634
12635         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
12636         (genCmp): Fixed up genCmp for the GB with longs.
12637
12638         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
12639
12640         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
12641
12642         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
12643
12644         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
12645
12646 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
12647
12648         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
12649
12650 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
12651
12652         * 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.
12653
12654         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
12655
12656 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
12657
12658         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
12659
12660         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
12661
12662 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
12663
12664   * sim/ucsim/configure:    little improvement of Cygwin-detection
12665   * sim/ucsim/configure.in: little improvement of Cygwin-detection
12666   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
12667   * support/regression/tests/bug-221100.c: small changes for mcs51
12668   * support/regression/tests/bug-221168.c: small changes for mcs51
12669   * support/regression/tests/bug-227710.c: small changes for mcs51
12670   * support/regression/tests/staticinit.c: small changes for mcs51
12671   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
12672   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12673   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12674
12675 $Revision$