* debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
[fw/sdcc] / ChangeLog
1 2006-10-10 Borut Razem <borut.razem AT siol.net>
2
3         * debugger/mcs51/break.[ch], debugger/mcs51/cmd.c,
4           debugger/mcs51/sdcdb.[ch], debugger/mcs51/simi.c:
5           [ 1185668 ] add gnu readline support to sdcdb -
6           prepared for READLINE, not enabled yet
7
8 2006-10-10 Raphael Neider <rneider AT web.de>
9
10         * src/pic16/pcode.c (pic16_pCode2str): use isACCESS_BANK macro
11         * src/pic16/devices.inc,
12         * device/include/pic16 (pic18f[24]620.h),
13         * device/include/pic18fregs.h,
14         * device/lib/pic16/pics.all,
15         * device/lib/pic16/libdev/pic18f[24]{620,525}.c): added support for
16           18f2620, 18f4620, 18f2525, and 18f4525 devices, thanks to
17           Gary Plumbridge and Anton Strobl
18
19 2006-10-10 Raphael Neider <rneider AT web.de>
20
21         * src/pic/main.c (_pic14_parseOptions): added --stack-loc=NUM and
22           --stack-siz=NUM options to configure the argument passing stack
23         * src/pic/main.h: added stackLocation and stackSize to pic14_options_t
24         * src/pic/device.c (mapRegister): catch out-of-memory SIGSEGVs,
25           (pic14_getSharebankSize): obey --stack-siz=NUM,
26           (pic14_getSharebankAddress): obey --stack-loc=NUM
27
28 2006-10-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
29
30         * doc/sdccman.lyx: added to the manual
31         * doc/figures/ddd_example.png: added (neither pdflatex nor
32         most browsers seem to like the .eps file)
33
34 2006-10-06 Bernhard Held <bernhard AT bernhardheld.de>
35
36         * src/SDCCglue.c (tempfileandname): changed un*x tmp search paths
37         to /tmp and /var/tmp acc. LSB
38         * src/SDCCast.c (addCast): Fixed bug 1571231: promote in case of
39         RESULT_TYPE_IFX
40         * support/regression/tests/onebyte.c: added test
41
42 2006-10-05 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
43
44         * src/mcs51/gen.c: emitcode for "add a,0x%02x" requires only 8 bits.
45
46 2006-10-05 Borut Razem <borut.razem AT siol.net>
47
48         * partially fixed [ 1570701 ] peephole - not replacing code from multiline macros,
49           thanks to dfulab:
50           - sdcc.dsw: changed property eol-style to CRLF
51           - support/scripts/resource.rc: replaced references to "afxres.h" with "winres.h"
52
53 2006-10-04 Raphael Neider <rneider AT web.de>
54
55         * device/include/pic/{pic16f84.h,pic16f84a.h},
56         * device/lib/pic/libdev/{pic16f84.c,pic16f84a.c}: added PORT[AB]_bits
57           from patch #1522504, thanks to Robas Teodor
58
59 2006-10-02 Maarten Brock <sourceforge.brock AT dse.nl>
60
61         * as/link/z80/lkarea.c: essentially reverted lnksect() to #4380 which
62           fixes bug 1566015
63
64 2006-10-01 Maarten Brock <sourceforge.brock AT dse.nl>
65
66         * src/pic16/glue.c (pic16emitMaps),
67         * src/pic/glue.c (pic14emitMaps): hopefully fixed bug 1568779
68         * device/lib/gets.c: fixed bug 1568829,thanks Philipp Krause
69         * device/lib/pic16/libc/string/memcpypgm2ram.c,
70         * device/lib/pic16/libc/string/memcpyram2ram.c: fixed bug 1568836, thanks
71           Philipp Krause
72         * as/mcs51/asmain.c (asmbl, newdot): fixed problems with absolute areas
73         * as/link/mcs51/lkmem.c (summary2): reverted, do do count abs segments
74
75 2006-09-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
76
77         * support/librarian/sdcclib.c: Added option -l.
78         * as/link/mcs51/lkmem.c: don't use absolute segments to compute memory
79           usage totals.
80         * device/lib/make51lib.bat: added.  Allows building mcs51 libraries easily
81           using Windows command prompt.
82
83 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
84
85         * device/lib/libsdcc.lib: added module rand
86         * src/ds390/ralloc.c (rematStr),
87         * src/hc08/ralloc.c (rematStr),
88         * src/mcs51/ralloc.c (rematStr),
89         * src/z80/ralloc.c (rematStr): made output more consistent
90         * src/mcs51/gen.c: cosmetic changes
91
92 2006-09-30 Maarten Brock <sourceforge.brock AT dse.nl>
93
94         * src/port.h: added mem.cabs_name to PORT
95         * src/ds390/main.c,
96         * src/hc08/main.c,
97         * src/mcs51/main.c,
98         * src/pic16/main.c,
99         * src/pic/main.c,
100         * src/xa51/main.c,
101         * src/z80/main.c: added cabs_name initializers
102         * src/SDCCglue.c (emitStaticSeg): allocate and initialize absolute
103           constants
104           (emitMaps): emit absolutes in code memory into cabs_name
105         * src/SDCCmem.c,
106         * src/SDCCmem.h: added memory map c_abs and defined CABS_NAME
107         * src/ds390/gen.c (genCodePointerGet): fixed bug if left is a literal
108         * support/regression/fwk/include/testfwk.h: added define for at
109         * support/regression/tests/absolute.c: added, new
110
111 2006-09-29 Maarten Brock <sourceforge.brock AT dse.nl>
112
113         * src/mcs51/gen.c (genPlusIncr, genMinusDec, genAddrOf): small
114           optimizations, see also patch 887161 by Stas Sergeev
115         * src/mcs51/peeph.def(104, 207, 209, 212): disabled as they do not seem
116           to be necessary anymore,
117           (102, 103, 104, 127): renamed all occurances of bp to _bp
118
119 2006-09-27 Maarten Brock <sourceforge.brock AT dse.nl>
120
121         * device/include/mcs51/at89c51snd1c.h: fixed MSK_SREQ definition
122           thanks Weston T. Schmidt for patch 1555221
123         * src/mcs51/peeph.def: renamed rule 257 to 257.a, added 257.b
124         * src/SDCCicode.c(geniCodeMultiply): small optimization
125
126 2006-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
127
128         * device/include/stdlib.h: added rand prototypes
129         * device/lib/rand.c: new, added
130         * device/lib/Makefile.in: added rand.c
131         * src/z80/peeph.def,
132         * src/z80/peeph-gbz80.def,
133         * src/z80/peeph-z80.def: updated conditonals, fixed bug 1565908
134
135 2006-09-20 Raphael Neider <rneider AT web.de>
136
137         * device/lib/pic16/libio/i2c/i2cnack.c (i2c_nack): fixed ACKDT bit
138
139 2006-09-19 Maarten Brock <sourceforge.brock AT dse.nl>
140
141         * as/link/aslink.h: cosmetic changes
142         * as/link/mcs51/Makefile.in,
143         * as/link/z80/Makefile.in: fixed build on CF where VPATH is used
144
145 2006-09-17 Maarten Brock <sourceforge.brock AT dse.nl>
146
147         * as/link/aslink.h,
148         * as/link/mcs51/aslink.h,
149         * as/link/z80/aslink.h: merged and moved to as/link/
150         * as/link/lkstore.c,
151         * as/link/mcs51/lkstore.c: moved to as/link/
152         * as/link/clean.mk: remove *.o
153         * as/link/mcs51/alloc.h: deleted
154         * as/link/mcs51/lkarea.c: added lnksect prototype
155         * as/link/mcs51/lkdata.c,
156         * as/link/mcs51/lklex.c,
157         * as/link/mcs51/lkmain.c: renamed as_getline to lk_getline
158         * as/link/mcs51/lkmem.c,
159         * as/link/mcs51/lknoice.c: removed include strcmpi.h
160         * as/link/mcs51/lksym.c: include stdlib.h instead of malloc.h or alloc.h
161         * as/link/mcs51/aslink.dsp,
162         * as/link/mcs51/Makefile.aslink,
163         * as/link/mcs51/Makefile.bcc,
164         * as/link/mcs51/Makefile.in: updated for moved files
165         * as/link/z80/lkarea.c,
166         * as/link/z80/lkhead.c,
167         * as/link/z80/lklex.c,
168         * as/link/z80/lklibr.c,
169         * as/link/z80/lklist.c,
170         * as/link/z80/lkmain.c,
171         * as/link/z80/lkrloc.c,
172         * as/link/z80/lksym.c: synced with mcs51
173         * as/link/z80/lkdata.c,
174         * as/link/z80/lkeval.c,
175         * as/link/z80/lkihx.c,
176         * as/link/z80/lks19.c: cosmetic changes
177         * as/link/z80/Makefile.in,
178         * as/link/z80/linkgbz80.dsp,
179         * as/link/z80/linkz80.dsp: updated for moved files
180
181 2006-09-16 Borut Razem <borut.razem AT siol.net>
182
183         * debugger/mcs51/sdcdb.c: partially fixed
184           [ 1203664 ] sdcdb fails to open files w. two "." periods
185         * debugger/mcs51/simi.c, debugger/mcs51/symtab.c,
186           debugger/mcs51/symtab.h: fixed indenting
187         * configure.in, configure: up to date with latest Maarten's changes
188
189 2006-09-15 Maarten Brock <sourceforge.brock AT dse.nl>
190
191         as/link/mcs51
192         as/aslink.dsp,                  as/link/mcs51/aslink.dsp,
193         as/link/mcs51/aslink.h,         as/mcs51/aslink.h,
194         as/link/mcs51/aslink.mak,       as/mcs51/aslink.mak,
195         as/link/mcs51/lkaomf51.c,       as/mcs51/lkaomf51.c,
196         as/link/mcs51/lkarea.c,         as/mcs51/lkarea.c,
197         as/link/mcs51/lkdata.c,         as/mcs51/lkdata.c,
198         as/link/mcs51/lkeval.c,         as/mcs51/lkeval.c,
199         as/link/mcs51/lkhead.c,         as/mcs51/lkhead.c,
200         as/link/mcs51/lkihx.c,          as/mcs51/lkihx.c,
201         as/link/mcs51/lklex.c,          as/mcs51/lklex.c,
202         as/link/mcs51/lklibr.c,         as/mcs51/lklibr.c,
203         as/link/mcs51/lklist.c,         as/mcs51/lklist.c,
204         as/link/mcs51/lkmain.c,         as/mcs51/lkmain.c,
205         as/link/mcs51/lkmem.c,          as/mcs51/lkmem.c,
206         as/link/mcs51/lknoice.c,        as/mcs51/lknoice.c,
207         as/link/mcs51/lkrloc.c,         as/mcs51/lkrloc.c,
208         as/link/mcs51/lks19.c,          as/mcs51/lks19.c,
209         as/link/mcs51/lkstore.c,        as/mcs51/lkstore.c,
210         as/link/mcs51/lksym.c,          as/mcs51/lksym.c,
211         as/link/mcs51/Makefile.aslink,  as/mcs51/Makefile.aslink,
212         as/link/mcs51/alloc.h,
213         as/link/mcs51/clean.mk,
214         as/link/mcs51/conf.mk,
215         as/link/mcs51/Makefile.bcc,
216         as/link/mcs51/Makefile.in,
217         as/link/mcs51/readme.390,
218         as/link/mcs51/strcmpi.c,
219         as/link/mcs51/strcmpi.h,
220         as/mcs51/clean.mk,
221         as/mcs51/Makefile.bcc,
222         as/mcs51/Makefile.in,
223         configure,
224         Makefile.in,
225         sdcc.dsw: moved mcs51 linker to as/link/mcs51
226
227 2006-09-14 Maarten Brock <sourceforge.brock AT dse.nl>
228
229         * as/link,
230         * as/link/Makefile.in,
231         * as/link/z80/linkgbz80.dsp,
232         * as/link/z80/linkz80.dsp,
233         * configure,
234         * link,
235         * link/clean.mk,
236         * link/Makefile.in,
237         * link/README,
238         * link/z80,
239         * link/z80/aslink.h,
240         * link/z80/clean.mk,
241         * link/z80/conf.mk,
242         * link/z80/linkgbz80.dsp,
243         * link/z80/linkz80.dsp,
244         * link/z80/lkarea.c,
245         * link/z80/lkdata.c,
246         * link/z80/lkeval.c,
247         * link/z80/lkgb.c,
248         * link/z80/lkgg.c,
249         * link/z80/lkhead.c,
250         * link/z80/lkihx.c,
251         * link/z80/lklex.c,
252         * link/z80/lklibr.c,
253         * link/z80/lklist.c,
254         * link/z80/lkmain.c,
255         * link/z80/lkrloc.c,
256         * link/z80/lks19.c,
257         * link/z80/lksym.c,
258         * link/z80/Makefile.in,
259         * Makefile.in,
260         * sdcc.dsw: moved link/ to as/link/
261
262 2006-09-11 Maarten Brock <sourceforge.brock AT dse.nl>
263
264         * as/mcs51/i51mch.c (machine): fixed warning
265
266 2006-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
267
268         * as/mcs51/i51mch.c (machine): S_DJNZ fixed bug 1554318
269
270 2006-09-09 Borut Razem <borut.razem AT siol.net>
271
272         * debugger/mcs51/sdcdb.c, debugger/mcs51/simi.c:
273           sdcdb WIN32 native port
274         * src/clean.mk: fixed
275
276 2006-09-08 Borut Razem <borut.razem AT siol.net>
277
278         * doc/sdccman.lyx: SDCDB and ucSim are available on Win32 platforms.
279
280 2006-09-08 Raphael Neider <rneider AT web.de>
281
282         * src/pic16/main.c (_pic16_linkEdit,pic16_linkCmd),
283         * src/pic/main.c(_pic14_do_link, linkCmd): pass "-w" and "-r"
284             to gplink to disable processor mismatch warning and to allow
285             the use of devices with only aliased (shared) memory banks,
286           (_pic16_genAssemblerPreamble): include pXXX.inc on --mplab-comp
287
288 2006-09-07 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
289
290         * doc/sdccman.lyx: Some re-formating plus example on using
291           #pragma preproc_asm +/-
292
293 2006-09-07 Borut Razem <borut.razem AT siol.net>
294
295         * support/scripts/sdcc.nsi: added SDCDB executables in a separate
296           section
297
298 2006-09-06 Borut Razem <borut.razem AT siol.net>
299
300         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
301           line at sdcc.nsi:153
302         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
303
304 2006-09-05 Borut Razem <borut.razem AT siol.net>
305
306         * configure.in, configure: support for winsock2
307         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
308           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
309           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
310           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
311           debugger/mcs51/symtab.h: sdcdb WIN32 native port
312
313 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
314
315         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
316           and OP_DEFS
317         * support/regression/tests/bug1551947.c: new, added
318         * src/SDCCsymt.h: strings are char* not byte*
319
320 2006-09-05 Raphael Neider <rneider AT web.de>
321
322         * device/lib/pic16/libdev/pic18f4550.c,
323           device/include/pic16/pic18f4550.h: added PORTD/TRISD
324             declarations/definitions from patch #1520949
325
326 2006-09-05 Raphael Neider <rneider AT web.de>
327
328         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
329           byte-aligned bitfields, fixes #1539278
330
331 2006-09-05 Raphael Neider <rneider AT web.de>
332
333         * src/pic/gen.c (genReceive): skip unreferenced arguments,
334           fixes #1544120
335
336 2006-09-04 Borut Razem <borut.razem AT siol.net>
337
338         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
339         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
340           -mno-cygwin is a part of the compiler name
341         * support/scripts/sdcc_mingw32: don't disable ucsim
342
343 2006-09-03 Borut Razem <borut.razem AT siol.net>
344
345         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
346         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
347
348 2006-09-03 Raphael Neider <rneider AT web.de>
349
350         * src/pic/ralloc.c,
351         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
352           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
353           fixes #1550049
354
355 2006-09-01 Borut Razem <borut.razem AT siol.net>
356
357         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
358           to make ppc-osx happy
359
360 2006-08-31 Borut Razem <borut.razem AT siol.net>
361
362         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
363         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
364         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
365         * support/regression/ports/ds390/spec.mk,
366           support/regression/ports/mcs51/spec.mk,
367           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
368           To run regression tests in mingw environment:
369           make DEV_NULL=NUL CC=gcc
370
371 2006-08-30 Borut Razem <borut.razem AT siol.net>
372
373         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
374           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
375           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
376           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
377           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
378           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
379           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
380           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
381           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
382           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
383           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
384           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
385           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
386           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
387           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
388           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
389           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
390           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
391           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
392           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
393           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
394           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
395           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
396           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
397           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
398           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
399           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
400           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
401           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
402           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
403           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
404           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
405           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
406           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
407           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
408           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
409           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
410           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
411           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
412           ucsim WIN32 native port
413
414 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
415
416         * doc/sdccman.lyx: added note on dynamic memory heap initialization
417
418 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
419
420         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
421         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
422
423 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
424
425         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
426         * support/regression/tests/bug1546986.c: new, added
427         * as/mcs51/.cvsignore,
428         * debugger/mcs51/.cvsignore,
429         * src/.cvsignore: deleted
430
431 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
432
433         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
434           definitions)
435
436 2006-08-20 Borut Razem <borut.razem AT siol.net>
437
438         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
439           removed cl_listen_console::match(), cl_console::match(),
440           restructured cl_commander::proc_input()
441
442 2006-08-16 Borut Razem <borut.razem AT siol.net>
443
444         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
445           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
446           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
447
448 2006-08-14 Borut Razem <borut.razem AT siol.net>
449
450         * support/regression/Makefile.in,
451           support/regression/ports/pic14/gpsim.cmd,
452           support/regression/ports/pic14/spec.mk,
453           support/regression/ports/pic14/support.c:
454           added pic14 regression test
455
456 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
457
458         * as/doc/asxhtm.html: documented changed ABS behaviour
459         * as/doc/README: fixed some typos
460
461 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
462
463         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
464           not defined on host
465
466 2006-08-12 Borut Razem <borut.razem AT siol.net>
467
468         * support/regression/fwk/include/testfwk.h,
469           support/regression/fwk/lib/testfwk.c,
470           support/regression/generate-cases.py,
471           support/regression/Makefile.in:
472           regression test framework does not depend on function pointers and
473           variable arguments
474
475 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
476
477         * device/include/stddef.h: c temporary hack to fix bug 1518273
478
479 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
480
481         * device/include/mcs51/cc2510fx.h: added
482         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
483           to projects.
484
485 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
486
487         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
488         * as/z80/Makefile.in: added strcmpi.c
489         * as/z80/z80adr.c: added upper case registers and lower case conditionals
490         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
491
492 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
493
494         * device/lib/gbz80/asm_strings.s,
495         * device/lib/gbz80/crt0_rle.s,
496         * device/lib/gbz80/div.s,
497         * device/lib/gbz80/mul.s,
498         * device/lib/gbz80/shift.s,
499         * device/lib/z80/asm_strings.s,
500         * device/lib/z80/crt0_rle.s,
501         * device/lib/z80/div.s,
502         * device/lib/z80/mul.s,
503         * device/lib/z80/shift.s: changed to all lower case menmonics except the
504           flags which are all upper case
505
506 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
507
508         * as/z80/asm.h: made CASE_SENSITIVE 1
509         * link/z80/aslink.h: made CASE_SENSITIVE 1
510         * src/z80/gen.c (throughout): made all conditionals upper case
511         * support/regression/tests/bug1503067.c: new
512
513 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
514
515         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
516           (shiftIntoPair): added case 2 for PAIR_IY,
517           (setupToPreserveCarry): replaced parameters with iCode and check if
518            PAIR_DE is in use to fix bug 1399290,
519           (genPlus, genMinus): updated call to setupToPreserveCarry
520         * support/regression/tests/bug1399290.c: new
521
522 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
523
524         * device/lib/Makefile.in (Z80SOURCES): enabled float support
525         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
526         * src/ds390/gen.c (shiftRLong),
527         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
528         * src/mcs51/gen.c (sameReg): changed to sameByte,
529           (xch_a_aopGet): new,
530           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
531            shiftRLong): fixed bug 1533966
532         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
533           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
534         * support/regression/Makefile.in: disabled z80, enabled ucz80
535         * support/regression/tests/float_trans.c: enabled test for z80 and host
536         * support/regression/tests/shifts2.c: new, for testing bug 1533966
537
538 2006-08-01 Borut Razem <borut.razem AT siol.net>
539
540         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
541           comparison is always false due to limited range of data type
542           on PPC64 machine (openpower-linux1) where "char = unsigned char"
543
544 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
545
546         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
547         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
548         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
549         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
550
551 2006-07-31 Borut Razem <borut.razem AT siol.net>
552
553         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
554           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
555           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
556           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
557           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
558           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
559           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
560           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
561           enable ucsim mingw compilation. Serial port is disabled,
562           since it uses termios.h API, which is not available on native
563           WIN32
564
565 2006-07-31 Borut Razem <borut.razem AT siol.net>
566
567         * Small Device C Compiler 2.6.0 released
568         * support/scripts/sdcc.nsi: added FULL_DOC option
569         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
570
571 2006-07-28 Borut Razem <borut.razem AT siol.net>
572
573         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
574         * doc/INSTALL.txt: updated
575
576 2006-07-27 Borut Razem <borut.razem AT siol.net>
577
578         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
579           device/lib/pic/libdev/Makefile.in: fixed bug
580           [ 1438354 ] pic libsdcc: distclean doesn't work
581         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
582           device/lib/pic16/libio/Makefile.in: fixed bug
583           [ 1438344 ] pic16 lib: clean doesn't work properly
584         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
585
586 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
587
588         * device/lib/pic/libsdcc/fsdiv.c,
589         * device/lib/pic/libsdcc/fsmul.c,
590         * device/lib/pic16/libsdcc/float/fsdiv.c,
591         * device/lib/pic16/libsdcc/float/fsmul.c,
592         * device/lib/_fsdiv.c,
593         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
594         * support/regression/tests/bug1520966.c: added
595         * doc/knownbugs.html: removed [ 1520966 ] from the list
596
597 2006-07-25 Borut Razem <borut.razem AT siol.net>
598
599         * configure.in, configure, sdccconf_in.h: fixed bug
600           [ 1519095 ] regression test onebyte.c fails on ppc64 host
601         * doc/knownbugs.html: removed [ 1519095 ] from the list
602
603 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
604
605         * doc/knownbugs.html: added, contains list of known bugs at release
606         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
607
608 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
609
610         * device/include/mcs51/compiler.h: added SFRX for xdata based special
611           function registers and corrected defaults with additional warning
612         * device/lib/malloc.c: cosmetic changes
613         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
614         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
615           (fillGaps): and used it
616
617 2006-07-20 Raphael Neider <rneider AT web.de>
618
619         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
620           output unless SDCCPICDEBUG is set
621         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
622           output if SILENT is set
623
624 2006-07-11 Borut Razem <borut.razem AT siol.net>
625
626         * doc/README.txt: updated
627
628 2006-07-10 Borut Razem <borut.razem AT siol.net>
629
630         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
631           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
632           in WIN32 installation
633         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
634           release candidate 1
635
636 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
637
638         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
639         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
640
641 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
642
643         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
644
645 2006-07-06 Borut Razem <borut.razem AT siol.net>
646
647         * support/regression/tests/bitfields.c:
648           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
649         * support/regression/tests/constantRange.c:
650           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
651
652 2006-07-04 Borut Razem <borut.razem AT siol.net>
653
654         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
655           src/port.mk,
656           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
657           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
658           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
659           reverted changes from 2006-07-03
660         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
661         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
662           added CPPFLAGS, used by the host port
663
664 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
665
666         * support/regression/valdiag/tests/switch.c,
667         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
668         * support/regression/tests/libmullong.c: fixed for host
669         * support/regression/ports/host/spec.mk: disable all warnings for host,
670         SDCC runs with --less-pedantic too
671
672 2006-07-03 Borut Razem <borut.razem AT siol.net>
673
674         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
675           defined CPPFLAGS
676         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
677         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
678           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
679           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
680           include ../port.mk
681         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
682           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
683           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
684           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
685
686 2006-07-02 Raphael Neider <rneider AT web.de>
687
688         * src/pic16/devices.inc,
689         * device/include/pic16/pic18fregs.h,
690         * device/include/pic16/pic18f4550.h,
691         * device/lib/pic16/pics.all,
692         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
693
694 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
695
696         * as/hc08/lkaomf51.c (OutputName),
697         * as/mcs51/lkaomf51.c (OutputName),
698         * as/z80/asmain.c (asmbl),
699         * src/ds390/main.c (asmLineNodeFromLineNode),
700         * src/hc08/ralloc.c (hc08_assignRegisters),
701         * src/mcs51/main.c (asmLineNodeFromLineNode),
702         * src/xa51/ralloc.c (checkRegMask),
703         * src/xa51/gen.c (emitcode),
704         * src/z80/gen.c (_emit2),
705         * src/SDCCast.c (searchLitOp),
706         * src/SDCCglobl.h,
707         * support/packihx/packihx.c,
708         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
709         * src/ds390/gen.c (aopPutUsesAcc),
710         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
711         * support/regression/tests/libmullong.c (mullong_wrapper),
712         * src/SDCCsymt.c (powof2),
713         * src/SDCCast.c,
714         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
715         * src/SDCCsymt.h: added TYPE_TARGET_*
716         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
717         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
718         SDCCast because 1) header problems 2) this is the right place
719         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
720         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
721         prototype
722
723 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
724
725         * src/SDCCicode.h: removed buggy semicolon in unused macro
726         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
727         search for previous definiton of auto symbols too,
728         (findPrevUse): fixed logic of emitWarnings
729
730 2006-06-26 Raphael Neider <rneider AT web.de>
731
732         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
733           PCLATH and PCLATU on interrupts, potentially fixes #1505141
734
735 2006-06-25 Raphael Neider <rneider AT web.de>
736
737         * device/lib/pic/libm: NEW, added math library functions
738         * device/lib/pic/libsdcc: NEW; added float support functions
739         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
740         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
741           NEW, added math related headers
742         * device/include/asm/pic/features.h: NEW
743         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
744           (popGet): allow larger offsets for AOP_PCODE,
745           (genDataPointerSet): handle literals explicitly, more debug output,
746           (genAssign): fixed for float using aopLiteral ;-)
747         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
748           GOTO initialisation routine
749         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
750           flag on registers, fixes #1469043 (local variables do not work)
751         * src/pic/main.c (_pic14_do_link),
752         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
753           available
754
755 2006-06-25 Borut Razem <borut.razem AT siol.net>
756
757         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
758           characters printed (not including the trailing '\0' used to end
759           output to strings). Problem detected in regression test bug-927659.c.
760           NOTE: printf() family functions should return int instead
761           unsigned int!
762         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
763           specifier are printed as themselves
764         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
765           support flags, width and precision specifiers
766
767 2006-06-24 Borut Razem <borut.razem AT siol.net>
768
769         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
770           to the list of sdcc tagrets not supporting bit type
771         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
772           testfor pic16 due to bug:
773           [ 1511794 ] pic16: regression test bug-895992.c fails
774
775 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
776
777         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
778         * src/SDCCglue.c (initPointer), fixed bug 1496419
779         * support/regression/tests/bug1496419.c: new, added
780
781 2006-06-22 Borut Razem <borut.razem AT siol.net>
782
783         * support/regression/ports/pic16/support.c: use gpsim usart module from
784           libgpsim_modules library
785
786 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
787
788         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
789         IP0H to IPH0.
790
791 2006-06-19 Raphael Neider <rneider AT web.de>
792
793         * src/pic/glue.h,src/pic16/glue.h: added prototypes
794         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
795           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
796           (pic14printExterns,pic14printPublics,pic16printPublics,
797           pic16_printExterns): use new functions to emit symbols
798           (picglue,pic16glue): emit publics before emitting externs
799         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
800           locally defined functions to avoid bug #1443651
801         * support/regression/tests/bug-716242.c: removed pic16 workaround
802         * support/regression/ports/pic16/spec.mk: ignore errors during build
803
804 2006-06-19 Raphael Neider <rneider AT web.de>
805
806         * src/pic/glue.h: added pic14aopLiteral prototype
807         * src/pic/glue.c (pic14aopLiteral): return unsigned int
808         * src/pic/gen.c: removed stdint.h dependency
809           (aopGet): use Safe_strdup()
810           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
811           (genDataPointerSet): use pic14aopLiteral()
812         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
813           for pic16; thanks to Bernhard and Maarten
814
815 2006-06-18 Borut Razem <borut.razem AT siol.net>
816
817         * support/regression/tests/structflexarray.c: flexible array members
818           not supported by gcc < 3
819         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
820           GUI tool by default
821         * src/pic/gen.c: don't include [p]strdin.h on solaris
822         * support/Util/pstdint.h: addad svn attributes
823         * support/regression/tests/constantRange.c,
824           support/regression/tests/rotate.c: include inttypes.h instead
825           stdint.h on solaris, addad svn attributes
826
827 2006-06-18 Raphael Neider <rneider AT web.de>
828
829         * src/SDCCsymt.c (initCSupport): change return type of divschar to
830           int for PIC16
831         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
832           (pic16_genMinusBits): simplified sign-extension
833           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
834             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
835             adjusted to correctly handle mixed-signed operands, disabled
836             now unused multiplciation routines
837         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
838           (assignResultValue): added argument denoting the size of the result
839             as returned by the function (fixes upcasts in assigning from
840             function calls: char foo(); int i = foo();)
841           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
842             function result to assignResultValue
843           (genMult): disabled inlined multiplication code
844           (genDiv): augmented to also handle the modulus operator, fixed to
845             handle mixed-signed operands correctly
846           (genMod): simply call genDiv, disabled unused code
847           (genAssign): fixed missing (sign-)extension on result
848         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
849             valid char operands, allow signed operands for native code, added
850             division and modulo operator handling
851         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
852
853         As a consequence, onebyte.c (if split into two files) and muldiv.c
854         pass regression tests.
855
856 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
857
858         * doc/Makefile.in: two runs of makeindex seem needed to get
859         correct page references in the index of sdccman.pdf
860         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
861
862 2006-06-17 Borut Razem <borut.razem AT siol.net>
863
864         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
865
866 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
867
868         * doc/sdccman.lyx: updated, added (porting source code, debugging),
869         mentioned ec2drv and paulmon
870
871 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
872
873         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
874           consecutive abs areas
875           (find_empty_space, allocate_space): added map to handle codemap or
876            xdatamap,
877           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
878            absolute idata and xdata
879         * as/mcs51/lkmem.c (summary2): updated legend
880
881 2006-06-16 Raphael Neider <rneider AT web.de>
882
883         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
884
885 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
886
887         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
888           1208515
889         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
890
891 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
892
893         * src/port.h (struct PORT): added field gp_tags, to hold the tag
894         value of generic pointers,
895         * src/avr/main.c,
896           src/ds390/main.c,
897           src/hc08/main.c,
898           src/izt/i186.c,
899           src/izt/tlcs900h.c,
900           src/mcs51/main.c,
901           src/pic/main.c,
902           src/pic16/main.c,
903           src/xa51/main.c,
904           src/z80/main.c: PORT structure, added elements for gp_tags field,
905         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
906         fields in the PORT structure of each port,
907         * src/SDCCast.c (decorateType): allow processing of generic pointers
908         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
909         S_FIXED symbols
910
911 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
912
913         * link/z80/lkgb.c,
914         * link/z80/lkgg.c,
915         * src/pic16/gen.c,
916         * src/pic16/main.c,
917         * src/pic16/pcode.c,
918         * src/pic/main.c,
919         * src/pic/pcoderegs.c,
920         * src/SDCCicode.c,
921         * src/SDCCmain.c,
922         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
923           bug 1504689 on minGW
924
925 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
926
927         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
928
929 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
930
931         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
932
933 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
934
935         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
936           for optimization
937
938 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
939
940         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
941         to a char variable. Fixed bug #1504211
942         * device/include/pic16/adc.h,
943         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
944         and fixed bug #1364390
945
946 2006-06-10 Borut Razem <borut.razem AT siol.net>
947
948         * CVSROOT: removed the CVS left-over
949
950 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
951
952         * as/hc08/asmain.c (asexit),
953         * as/hc08/lkmain.c (lkexit),
954         * as/mcs51/asmain.c (asexit),
955         * as/mcs51/lkmain.c (lkexit),
956         * src/SDCCglue.c (DEFSETFUNC),
957         * src/SDCCmain.c (linkEdit, assemble),
958         * support/librarian/sdcclib.c (AddRel),
959           replaced unlink() by standard C remove()
960         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
961         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
962           gatherImplicitVariables): new, added to fix bug 608752,
963           (createFunction): added gatherImplicitVariables()
964         * src/SDCCast.h: added createRMW prototype
965         * src/SDCCsymt.h (struct symbol): added infertype
966         * support/regression/tests/bug608752.c: new, added
967
968 2006-06-10 Raphael Neider <rneider AT web.de>
969
970         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
971           multibyte dummy reads (fixes #1503234)
972
973 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
974
975         * device/include/mcs51/compiler.h: new, added header file to enable
976           creating common sfr definition header files for different compilers
977
978 2006-06-05 Raphael Neider <rneider AT web.de>
979
980         * src/pic16/{pcode.h,genarith.c}:
981           introduced pCodeOp combining any two pCodeOps (previously only
982           two register operands could be combined), removed pcop2 from
983           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
984         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
985         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
986           rewritten to use new PO_TWO_OPS
987         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
988         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
989           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
990           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
991           (pic16_get_op): embraced return arg to allow #define return(x),
992             added new case for combined opcodes
993           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
994           (pic16_pCode2str,pic16_getRegFrompCodeOp,
995            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
996
997 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
998
999         * src/SDCCval.c (checkConstantRange): added
1000         * src/SDCCval.h: added checkConstantRange
1001         * support/Util/SDCCerr.c,
1002         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
1003         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
1004         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
1005         * src/SDCCast.c (decorateType): added checkConstantRange,
1006         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
1007         can be emitted with the correct always true/false warning,
1008         added optimization for double '!';
1009         result of decorateType() must be assigned back to the tree, because
1010         decorateType() can change the tree
1011         * src/SDCCicode.c (geniCodeLogic),
1012         (geniCodeAssign): replaced new checkConstantRange, added warnings,
1013         (checkConstantRange): removed, it was only a fragment which never
1014         emitted a warning
1015         * src/SDCCsymt.c (computeType): fixed promotion for
1016         "-1 < (unsigned bit) b"
1017         * src/pic/ralloc.c (packRegsForAssign),
1018         * src/pic16/ralloc.c (packRegsForAssign),
1019         * src/hc08/ralloc.c (packRegsForAssign),
1020         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
1021         from mcs51
1022         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
1023         * support/regression/tests/constantRange.c: added
1024         * support/valdiag/tests/constantRange.c: added
1025         * support/valdiag/valdiag.py: added -DPORT_HOST=1
1026
1027 2006-06-02 Borut Razem <borut.razem AT siol.net>
1028
1029         * support/regression/ports/pic16/support.c: increase stack size
1030           to 255 bytes
1031         * support/regression/Makefile.in: sort tests by name so that the
1032           resutlts can be compared on different machines / platforms
1033
1034 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1035
1036         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
1037         * src/ds390/gen.c (emitLabel): new, added,
1038           (genDjnz): fixed stack overflow bug,
1039           (throughout): cosmetic changes to sync with mcs51/gen.c,
1040           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
1041         * src/mcs51/gen.c (genEndFunction): small optimization,
1042           (throughout): cosmetic changes to sync with ds390/gen.c
1043
1044 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
1045
1046         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
1047           (_print_format): fixed printing pointers
1048         * src/mcs51/gen.c (emitLabel, movb): new, added,
1049           (genAssign): small optimization,
1050           (genDjnz): fixed stack overflow bug,
1051           (throughout): replaced sprintf with SNPRINTF,
1052           replaced mcs51_regWithIdx with REG_WITH_INDEX,
1053           replaced emitcode("mov", "b,...") with MOVB(...),
1054           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
1055           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1056         * src/mcs51/peeph.def: added rules 140 and 264
1057         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
1058           so they may get optimized into registers
1059
1060 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
1061
1062         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
1063           immediately when encountered,
1064           (printUsage): always use stderr even on windows
1065
1066 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
1067
1068         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
1069         (processParms): fixed bug #1247551
1070         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
1071         parseCmdLine, main): print '--version' to stdout,
1072         print 'help' to stdout if --help is given,
1073         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
1074         arguments are given; fixed --help
1075
1076 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
1077
1078         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
1079         * support/regression/tests/bug-1493710.c: added
1080
1081 2006-05-27 Borut Razem <borut.razem AT siol.net>
1082
1083         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
1084           static instead auto
1085         * support/regression/ports/pic16/support.c: increase stack size
1086           from default 64 bytes to 128 bytes
1087         * support/regression/tests/staticinit.c,
1088           support/regression/tests/float.c: regression tests fully enabled
1089           for pic16 port by putting the initialized data arrays into the code
1090           section
1091         * support/regression/ports/pic16/spec.mk: don't link default libraries.
1092           This was changed by mistake in the previous version.
1093
1094 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
1095
1096         * src/pic16/gen.c (genFunction, genEndFunction): some
1097         beautifications, fixed bug with falsely restoring FSR2 in large
1098         stack model, thanks to Beau E. Cox for reporting the bug
1099
1100 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
1101
1102         * debugger/mcs51/break.c,
1103         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
1104           use %p to print pointers, made address variables unsigned
1105         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
1106         * debugger/mcs51/symtab.c (parseSymbol): must return something
1107         * src/mcs51/gen.c (aopForSym): small optimization,
1108            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
1109           (freeAsmop): added missing break,
1110           (aopPut): removed parameter bvolatile, determine it inside the function,
1111           (saveRegisters, unsaveRegisters): small optimization,
1112           (genIpush): removed pointless check,
1113           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
1114           replaced sprintf with SNPRINTF,
1115           replaced strcpy with strncpyz,
1116           updated aopPut calls,
1117           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
1118         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
1119
1120 2006-05-24 Borut Razem <borut.razem AT siol.net>
1121
1122         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
1123           modification of test for the pic16 port, put the array to the code
1124           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
1125
1126 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
1127
1128         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
1129         * support/Util/pstdint.h: added
1130
1131 2006-05-22 Borut Razem <borut.razem AT siol.net>
1132
1133         * src/regression/Makefile: removed bool2.c test, added -q linker option
1134         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
1135           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
1136           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
1137           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
1138           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
1139           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
1140           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
1141           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
1142           define SUPPORT_BIT_TYPES 0, removed unused bit variables
1143
1144 2006-05-22 Raphael Neider <rneider AT web.de>
1145
1146         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
1147           bug #1492360 (problematic due to generic pointers, see code)
1148
1149 2006-05-22 Borut Razem <borut.razem AT siol.net>
1150
1151         * support/regression/ports/pic16/specs.mk: removed stack size linker
1152           directive
1153         * support/regression/tests/array.c,
1154           support/regression/tests/bitopcse.c,
1155           support/regression/tests/bug-908454.c,
1156           support/regression/tests/malloc.c: modified for pic16 regression test
1157         * support/regression/tests/bitfields.c:
1158           pic16 - excluded bitfileds of size > 8
1159         * support/regression/tests/bp.c: pic16 - reduced data size
1160         * support/regression/tests/bug-221100.c: pic16 - reduced data size
1161         * support/regression/tests/bug-460010.c:
1162           pic16 - used the absolute address the fits in memory
1163         * support/regression/tests/bug-716242.c:
1164           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
1165         * support/regression/tests/float.c:
1166           pic16 - excluded - data size too big
1167         * support/regression/tests/onebyte.c:
1168           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
1169         * support/regression/tests/shifts.c:
1170           pic16 - function names probably have to differ in first X characters
1171           (gpasm limitation?)
1172         * support/regression/tests/staticinit.c:
1173           pic16 - excluded some tests due error: no target memory available for
1174           section ".idata"
1175
1176 2006-05-22 Borut Razem <borut.razem AT siol.net>
1177
1178         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1179           second try. Thanks Stas Sergeev once more.
1180
1181 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
1182
1183         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
1184           (genLeftShift, genRightShift): fixed bug 1491627
1185         * src/hc08/peeph.def (rules 7, 8.x): added
1186         * support/regression/tests/shifts.c (ShiftLeftByParam,
1187           ShiftRightByParam, testShiftByParam): added to test variable shifting
1188
1189 2006-05-20 Raphael Neider <rneider AT web.de>
1190
1191         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
1192         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
1193           (allocReg): add only new registers to dynAllocRegs,
1194           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
1195             #1489055, #1445850, and probably #1483693
1196
1197 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
1198
1199         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
1200         bug in for-loop that didn't emit the last of CONFIG and ID registers
1201
1202 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
1203
1204         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
1205           with offset
1206         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
1207           1489016, 1434401 and 1490124
1208         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
1209           1489016, 1434401 and 1490124
1210
1211 2006-05-17 Borut Razem <borut.razem AT siol.net>
1212
1213         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
1214           thanks Stas Sergeev
1215
1216 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
1217
1218         * device/include/mcs51/P89c51RD2.h,
1219         * device/include/mcs51/P89LPC901.h,
1220         * device/include/mcs51/P89LPC922.h,
1221         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
1222
1223 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1224
1225         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
1226         to fix missing stack pragma in compiled binary object file,
1227
1228 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
1229
1230         * support/packihx/configure.in,
1231         * support/packihx/configure: removed warning, autoconf >= 2.5x can
1232         determine sizeof basic types even while cross compiling
1233
1234 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
1235
1236         * src/avr/gen.c (aopop),
1237         * src/ds390/gen.c (aopOp),
1238         * src/hc08/gen.c (aopOp),
1239         * src/mcs51/gen.c (aopop),
1240         * src/pic16/gen.c (pic16_aopOp),
1241         * src/pic/gen.c (aopOp),
1242         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
1243         if size of operand is smaller than spill location
1244
1245 2006-05-12 Borut Razem <borut.razem AT siol.net>
1246
1247         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
1248           have to have CR/LF line endings even if they are checked out on *nix
1249           or on WIN32 in cygwin binmode
1250
1251 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
1252
1253         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
1254         * device/include/ds80c390.h: added sfr16 definitions
1255         * src/ds390/gen.c,
1256         * src/ds390/gen.h,
1257         * src/ds390/main.c,
1258         * src/ds390/ralloc.c,
1259         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
1260           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
1261           bit returning functions
1262         * support/regression/tests/sfr16.c: enabled test on ds390
1263
1264 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1265
1266         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
1267         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
1268
1269 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
1270
1271         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
1272         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
1273           (cl_address_space constructor): removed expensive initialization,
1274           (cl_address_space::get_cell): extended for late initialization,
1275           (cl_address_space::*): use late initialization,
1276           (cl_address_decoder::activate): removed expensive initialization,
1277           This reduced regression test running time by 25%
1278
1279 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
1280
1281         * packihx/,
1282         * configure.in,
1283         * configure,
1284         * sdcc.dsw,
1285         * Makefile.bcc,
1286         * Makefile.in,
1287         * support/packihx/Makefile.in,
1288         * support/packihx/clean.mk,
1289         * support/packihx/Makefile.bcc,
1290         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
1291
1292 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1293
1294         * src/SDCCval.c (valNot): fix for regression test failure
1295           of not.c on big endian hosts
1296
1297 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1298
1299         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
1300
1301 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1302
1303         * device/lib/mcs51/Makefile.in: changed string comparison operator
1304           to = for POSIX compliance; == is bash extension
1305
1306 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1307
1308         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
1309           kosmonaut_pirx
1310
1311 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
1312
1313         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
1314         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
1315         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
1316         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
1317         bug report #1478657,
1318
1319 2006-05-05 Borut Razem <borut.razem AT siol.net>
1320
1321         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
1322           making the html
1323
1324 2006-05-02 Borut Razem <borut.razem AT siol.net>
1325
1326         * doc/Makefile.in: removed *.ind dependency since there is no rule to
1327           create *.ind, which made make to fail if invoked with -j 2
1328
1329 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
1330
1331         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
1332           Hubert Sack for patch 1479782
1333
1334 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
1335
1336         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
1337
1338 2006-05-01 Raphael Neider <rneider AT web.de>
1339
1340         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
1341           (create_pic): store only prefix-free device name,
1342           (init_pic): check for device names with "16" prefix,
1343           (list_valid_pics),
1344         * src/pic/device.h (struct PIC_device),
1345         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
1346             stored device name,
1347         * device/include/pic/pic12f{635,675,629,683}.h,
1348         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
1349         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
1350         * device/include/pic/pic16f505.h,
1351         * device/lib/pic/libdev/pic16f505.c: removed
1352         * device/include/pic/pic14devices.txt: added support for pic12f
1353             devices, removed unsupported non 16-bit devices
1354             [above changes provided by patch from Zik Saleeba]
1355         * src/pic/*, src/pic16/*, device/include/pic16/*,
1356           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
1357
1358 2006-05-01 Borut Razem <borut.razem AT siol.net>
1359
1360         * configure.in, configure, doc/Makefile.in:
1361           sync with nightly build makefile - latex, dvipdf and dvips
1362           not needed any more
1363
1364 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
1365
1366         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
1367         in the library source
1368
1369 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
1370
1371         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
1372
1373 2006-04-28 Raphael Neider <rneider AT web.de>
1374
1375         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
1376         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
1377           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
1378         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
1379
1380 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
1381
1382         * device/lib/pic/libdev/Makefile.in,
1383         * device/lib/hc08/Makefile.in,
1384         * device/lib/gbz80/Makefile.in,
1385         * device/lib/z80/Makefile.in,
1386         * device/lib/ds390/Makefile.in,
1387         * device/lib/ds400/Makefile.in: added srcdir to include search path,
1388         thanks to Borut for the bug report
1389         * configure.in,
1390         * configure: always create doc/Makefile independent from --enable-doc
1391         * Makefile.in: always install from directory doc independent from
1392         --enable-doc
1393         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
1394         removed
1395         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
1396         * doc/Makefile.in: install *.txt if present
1397         * device/include/Makefile.in (install): added installation of pic/*.inc
1398         and pic/*.txt files again, they were erroneously removed
1399
1400 2006-04-28 Raphael Neider <rneider AT web.de>
1401
1402         * src/pic/{gen.c,main.h,pcode.c},
1403         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
1404             concerning signedness with casts
1405
1406 2006-04-28 Raphael Neider <rneider AT web.de>
1407
1408         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
1409             definition of an interrupt handler,
1410         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
1411             interrupt handler stuff from picglue() to separate routine,
1412           (picglue): enabled definition of intr handlers in files w/o main()
1413
1414 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1415
1416         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
1417           compilation with MSVC 2005 Express Edition (VC8)
1418
1419 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
1420
1421         * device/lib/Makefile: fixed build of gbz80 lib
1422
1423 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1424
1425         * support/regression/tests/bug-460010.c,
1426         * support/regression/tests/bug-524691.c,
1427         * support/regression/tests/bug-716242.c: removed conditional defines
1428           that are already in testfwk.h
1429
1430 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1431
1432         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
1433           (AccAXRsh1): added, shift right by 1,
1434           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
1435            AccAXLrl1
1436         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
1437
1438 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
1439
1440         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
1441         remove cast to same type
1442         * src/SDCCast.c (decorateType): fix for RFE 1475742,
1443         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
1444         * as/z80/Makefile,
1445         * link/z80/Makefile: removed, they have moved to
1446         Makefile.in files
1447         * configure,
1448         * configure.in: replaced duplicate message about ucsim by missing sdcpp
1449         * install-sh: fix bug #1204398 by setting umask 0022
1450         * device/lib/Makefile: separate build of z80 and gbz80 lib
1451
1452 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
1453
1454         Enabled VPATH feature: changed nearly all Makefiles (149 files).
1455         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
1456
1457         One basic decision: e.g. src/clean.mk includes further files. In order
1458         to make this work there are two solutions:
1459         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
1460           run configure on them. This way they can use
1461           'include $(srcdir)/port-clean.mk'
1462         - always include clean.mk by the Makefile at the same level. To avoid
1463           that `make clean` tries to include and build Makefile.dep the
1464           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
1465           implemented, because now even `make uninstall` doesn't create
1466           Makefile.in. clean.mk could be eliminated by pasting it in
1467           Makefile.in.
1468
1469         * debugger/mcs51/Makefile.in: build own objects from library sources
1470         (SLIB, SDCC) in current directory
1471
1472         * configure, configure.in: renamed --disable-device-lib-build in
1473         --disable-device-lib; added --enable-doc, the required tools are
1474         searched by configure; added result message; the toolchain for the
1475         belonging ports are now only built, if the port is enabled.
1476
1477         * support/regression/*: all output is written in directory gen, because
1478         the fwk and ports directories don't livet in the build tree using vpath
1479
1480         * doc/sdccman.lyx: renamed --disable-device-lib-build to
1481         --disable-device-lib, added --enable-doc, added section VPATH
1482
1483         * sim/ucsim/configure.in,
1484         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
1485         z80 are enabled by default
1486
1487 2006-04-24 Raphael Neider <rneider AT web.de>
1488
1489         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
1490             to config word, "pic14_"-prefixed some extern functions
1491           (pic14_emitConfigWord): emit __config directive(s) if assignment to
1492             config word has been found
1493         * src/pic/device.h: added prototypes
1494         * src/pic/pcode.c: added "pic14_"-prefix where needed
1495         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
1496             fixup
1497         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
1498             words,
1499           (pic14emitRegularMap): ignore config words,
1500           (pic14createInterruptVect): moved generating __config directives away
1501           (picglue): have __config directives emitted
1502
1503 2006-04-24 Borut Razem <borut.razem AT siol.net>
1504
1505         * doc/Makefile: sync with nightly build makefile
1506
1507 2006-04-24 Raphael Neider <rneider AT web.de>
1508
1509         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
1510             registers that have not been assigned proper liveranges,
1511             fixes #1469504 and #1474602,
1512           (pCodeRegOptimizeRegUsage): fixed typo in comment
1513
1514 2006-04-24 Borut Razem <borut.razem AT siol.net>
1515
1516         * device/examples/main8051.c: deleted - it was removed from CVS
1517           24.mar.2000 and after that modified 18.feb.2001, so it reappered
1518           after the transition to Subversion
1519         * src/SDCCalloc.h: deleted - it was removed  from CVS
1520           3.feb.2001 and after that modified 18.feb.2001, so it reappered
1521           after the transition to Subversion
1522         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
1523           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
1524           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
1525           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
1526
1527 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
1528
1529         * as/asx8051.dsp: added mcs51/strcmpi.h
1530         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
1531         * as/hc08/aslink.h: updated lnksect prototype
1532         * as/hc08/asm.h,
1533         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
1534         * as/hc08/asmain.c,
1535         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
1536           (newdot): handle A_ABS
1537         * as/hc08/asout.c,
1538         * as/mcs51/asout.c (outarea): output address
1539         * as/hc08/lkaomf51.c,
1540         * as/mcs51/lkaomf51.c: disabled unused array UsageType
1541         * as/hc08/m08pst.c,
1542         * as/mcs51/i51pst.c,
1543         * as/z80/z80pst.c: "ABS" is not A_OVR
1544         * as/hc08/lkarea.c (newarea): read a_addr,
1545           (lnkarea): added codemap array, sort absolute areas to the front,
1546            combine all GSINITx/GSFINAL,
1547           (find_empty_space, allocate_space): new functions,
1548           (lnksect): return next address, handle absolute sections
1549         * as/mcs51/lkarea.c (newarea): read a_addr,
1550           lnksect2 prototype changed,
1551           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
1552           (find_empty_space, allocate_space): new, factored out of lnksect2,
1553           (lnksect2): return next address, handle absolute sections
1554         * as/hc08/lkhead.c,
1555         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
1556         * as/hc08/lklibr.c (addfile, fndsym),
1557         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
1558           index out of range and detect both '\' and '/'
1559         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
1560         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
1561           regression tests (ds390 cannot return bool yet)
1562         * doc/sdccman.lyx: changed version number, document changed --no-peep,
1563           document critical interrupts on z80, document changed SDCC define
1564         * src/asm.c (_asxxxx_mapping): fixed .org directive,
1565           (_a390_mapping): added .org directive
1566         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
1567           (genMultOneByte): fixed warnings
1568         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
1569           ones
1570         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
1571         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
1572           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
1573         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
1574         * src/pic16/main.c: removed newReg prototype
1575         * src/pic16/pcode.c,
1576         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
1577           warnings
1578         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
1579           ones
1580         * src/pic16/ralloc.c
1581         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
1582           to fix warnings
1583         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
1584           from short to PIC_OPTYPE
1585         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
1586         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
1587           optype from short to PIC_OPTYPE
1588         * src/port.h: made int_size unsigned to fix warnings
1589         * src/SDCC.y: fixed warning on MSVC
1590         * src/SDCCicode.c (getArraySizePtr): return unsigned int
1591         * src/SDCCopt.c (convertToFcall): fixed warnings
1592         * src/SDCCsymt.h: removed double prototype for genSymName
1593         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
1594           offset int to fix warnings
1595
1596 2006-04-22 Borut Razem <borut.razem AT siol.net>
1597
1598         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1599           references to CVS replaced with Subversion
1600
1601 2006-04-21 Borut Razem <borut.razem AT siol.net>
1602
1603         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1604           references to CVS replaced with Subversion
1605
1606 2006-04-19 Borut Razem <borut.razem AT siol.net>
1607
1608         * src/version.awk: adapted for svn
1609         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
1610           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
1611           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
1612           /binutils-avr/etc/*.vi, *.jin: removed all properties
1613           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
1614
1615 2006-04-19 Borut Razem <borut.razem AT siol.net>
1616
1617         * CVS to Subversion migration completed
1618
1619 2006-04-18 Borut Razem <borut.razem AT siol.net>
1620
1621         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
1622           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
1623
1624 2006-04-17 Borut Razem <borut.razem AT siol.net>
1625
1626         * device/include/Makefile.in: added pic/*.inc to the installation
1627
1628 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
1629
1630         * support/regression/collate-results.py: fixed output in case of
1631         a valdiag error
1632         * support/regression/generate-cases.py: fixed splitting of pathnames
1633         with dots
1634         * as/hc08/lklibr.c (addfile),
1635         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
1636
1637 2006-04-11 Raphael Neider <rneider AT web.de>
1638
1639         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
1640         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
1641         * src/pic16/pcode.c (assignValnums): fixed #1460578
1642
1643 2006-04-11 Raphael Neider <rneider AT web.de>
1644
1645         * device/lib/pic/libdev/*.c,
1646         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
1647           fixes #1468739, enables compilation in --std-c99 mode
1648         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
1649
1650 2006-04-11 Raphael Neider <rneider AT web.de>
1651
1652         * src/pic/device.c (find_device): removed debug output
1653           (list_valid_pics): enabled verbose listing of supported devices
1654         * device/include/stdbool.h: define bool as char for pic14/16 as well
1655
1656 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1657
1658         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
1659
1660 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1661
1662         * .version: bumped version to 2.5.6
1663         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
1664
1665 2006-04-06 Raphael Neider <rneider AT web.de>
1666
1667         * .version: bumped version to 2.5.6 (pic14 ABI changed)
1668         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
1669         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
1670           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
1671             pic14_constructAbsMap
1672           (pic14printPublics): declare absolute global symbols as global
1673           (pic14createInterruptVect),
1674         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
1675           (newReg): assume new registers unused, use correct name in
1676             hashtable (reg->name instead of name), more debugLog output
1677         * src/pic/device.h (PIC_device): added fields for verbose output
1678         * src/pic/device.c: moved device definition to pic14devices.txt,
1679             added routines for runtime parsing of pic14devices.txt,
1680             added support for second config word
1681         * src/pic/main.c (_process_pragma): removed #pragma maxram,
1682           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
1683           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
1684           (_pic14_parseOptions): moved pCodeInitRegisters here
1685           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
1686         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
1687           (pCodeInitRegisters): rewrapped comments, perpared new approach to
1688             handling the pseudo stack
1689         * device/lib/Makefile.in: ignore failures in objects-pic16,
1690         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
1691         * device/lib/pic/NEWS: document new dependency on picXXX.lib
1692         * device/lib/pic/Makefile.subdir,
1693         * device/lib/pic16/Makefile.subdir: improved clean rules
1694         * device/lib/pic/libdev/: NEW, pic14 device libraries
1695         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
1696         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
1697         * device/include/Makefile.in: create subdir and install pic14 headers
1698         * device/include/pic/p16f_common.inc: removed unused declarations
1699         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
1700             PICs from inc2h.pl v1.6,
1701             replaced BIT_AT macros with struct declarations
1702         * device/include/pic/pic14devices.txt: definition of supported devices,
1703             all above improvements contributed by Zik Saleeba, thanks
1704         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
1705         * support/scripts/sdcc.nsi: also install pic14 device libraries and
1706             headers
1707
1708 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1709
1710         * device/include/mcs51/c8051f410.h: added interrupt numbers,
1711         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
1712           thanks to Charles Olds
1713
1714 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1715
1716         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
1717
1718 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1719
1720         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
1721         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
1722         * support/regression/bug1464657.c: added, new test
1723
1724 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1725
1726         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
1727           version number
1728
1729 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1730
1731         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
1732           --no-peep and --peep-file <file> are used don't use default rules but
1733           do use the <file>
1734
1735 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1736
1737         * src/mcs51/gen.c (genCall): fixed bug 1457608
1738
1739 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1740
1741         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
1742         changes seem to cause (trigger?) problems with the build system.
1743
1744 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
1745
1746         * src/SDCCpeeph.c (operandsLiteral): new, added,
1747           (callFuncByName): inserted operandsLiteral
1748         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
1749
1750 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1751
1752         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
1753         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
1754
1755 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1756
1757         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
1758           implemented patch 1120823 Thanks to Willy De la Court (normal
1759           interrupts need an interrupt number now if they are made critical),
1760           and enabled nesting of critical functions though not for gbz80
1761           (genCritical, genEndCritical): added functions
1762           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
1763         * src/z80/mappings.i: added "ei" to all mappings
1764
1765 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1766
1767         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
1768         submitted by the Debian SDCC maintainer Aurelien Jarno:
1769         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
1770         archive with gcc 4.1 on mips and wrote the patch"
1771
1772 2006-03-16 Raphael Neider <rneider AT web.de>
1773
1774         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
1775           the left operand is shorter than the result (c* = lit-c* + int),
1776           fixes bug #1450796
1777         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
1778           OP_SYMBOL
1779
1780 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1781
1782         * src/.version: increased version number to 2.5.5
1783         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
1784         linking is done manually in pic16 port's _linkEdit,
1785         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
1786         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
1787         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
1788         allocate asmop as AOP_ACC,
1789         (aopForRemat): added parameter 'bool result' in function declaration,
1790         (pic16_aopGet): return AOP_ACC when accessing WREG,
1791         (pic16_popGetTempReg): minor modification,
1792         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
1793         'pic16_allocWithIdx',
1794         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
1795         calling function in absolute addresses,
1796         (genAssign): take into account AOP_ACC asmop,
1797         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
1798         * src/pic16/pcoderegs.c: some debug functions and lines added,
1799         * src/pic16/ralloc.c (decodeRegType): added but commented out,
1800         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
1801         register too,
1802         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
1803         call to allocReg, not by manually allocating a new one,
1804         (pic16_assignRegisters): now before going through the register
1805         allocating functions mark all registers as free. This eliminates some
1806         side effects resulting from peephole parser done earlier in the backbone
1807
1808 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
1809
1810         * src/SDCCicode.c (geniCodeLogic),
1811         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
1812
1813 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
1814
1815         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
1816           (genSend): bugfix, do not allocate and free twice,
1817           (shiftRLong): handle partially overlapping aops
1818         * support/regression/tests/bitopcse.c: fixed warning redefined idata
1819
1820 2006-03-08 Borut Razem <borut.razem AT siol.net>
1821
1822         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
1823           for pic16
1824
1825 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
1826
1827         * support/regression/tests/bug1409955.c: new, added
1828         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
1829         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
1830           (aopForSym, aopOp): increment asmop.allocated if reused,
1831           (freeAsmop): decrement asmop.allocated and check for zero instead of
1832           using asmop.freed,
1833           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
1834           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
1835            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
1836            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
1837            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
1838            genSignedRightShift, genRightShift, genDataPointerGet,
1839            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
1840            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
1841             in reverse order from allocation,
1842           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
1843             added swappedLR to keep track
1844         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
1845           pdata & code for GCC, z80, gbz80 & hc08
1846         * support/regression/tests/zeropad.c: moved defines to testfwk.h
1847
1848 2006-03-08 Raphael Neider <rneider AT web.de>
1849
1850         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
1851
1852 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
1853
1854         * device/include/mcs51/c8051f410.h: new SiLabs mcu
1855         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
1856         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
1857
1858 2006-03-06 Borut Razem <borut.razem AT siol.net>
1859
1860         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
1861           made the linker quiet
1862
1863 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
1864
1865         * src/pic16/gen.c (genPcall): fixed bug #1443644
1866         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
1867         which dumps before the function entry point a data byte which represents
1868         the number of the local variables used by the specified function, added
1869         'xinst' for initial support for Extended Instruction Support,
1870         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
1871         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
1872         port->fun_prefix anymore (may change later),
1873         (genFunction, genEndFunction): do not store/restore local registers for
1874         _main (this should take care the --main-return command line option in
1875         the future),
1876         (genOr): removed some legacy pic-port instructions,
1877         * src/pic16/genarith.c (genAddLit): re-enabled old code because
1878         performing operations with SFR's causes data to be written more than
1879         once to each SFR. Perhaps SFRs should be handled in special cases...
1880         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
1881         pcode.h
1882         * src/pic16/main.c (_process_pragma): stack bound checking did not take
1883         into account for stack starting position,
1884         (struct OPTIONS pic16_optionsTable): added command line argument
1885         --extended or -y for Extended Instruction Support,
1886         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
1887         (deassignLRs): *** perhaps the most important change, old 'for' code
1888         (commented out for reference), didn't account for some registers which
1889         were left marked 'not free' after a pointer operation. The change
1890         reduces register usage a lot in some cases
1891
1892 2006-03-04 Borut Razem <borut.razem AT siol.net>
1893
1894         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
1895           _clean
1896         * support/regression/tests/bug-524697.c: decreased array size for
1897           mcs51 to fit into the internal RAM
1898         * support/regression/Makefile.in: a little bit more verbose
1899
1900 2006-03-03 Borut Razem <borut.razem AT siol.net>
1901
1902         * support/regression/fwk/lib/testfwk.c,
1903           support/regression/fwk/include/testfwk.h: introduced function
1904           _prints(), nonrecursive _printn(), call _initEmu() from main()
1905         * support/regression/ports/gbz80/support.asm,
1906           support/regression/ports/ucz80/support.asm,
1907           support/regression/ports/z80/support.asm,
1908           support/regression/ports/ds390/support.c,
1909           support/regression/ports/hc08/support.c,
1910           support/regression/ports/host/support.c,
1911           support/regression/ports/mcs51/support.c,
1912           support/regression/ports/xa51/support.c: added empty _initEmu()
1913           function
1914         * support/regression/ports/pic16/gpsim.cmd,
1915           support/regression/ports/pic16/spec.mk,
1916           support/regression/ports/pic16/support.c,
1917           support/regression/Makefile.in: added pic16 regression test
1918
1919 2006-03-01 Raphael Neider <rneider AT web.de>
1920
1921         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
1922           genConstPointerGet): use safe way of generating MOVFF to cover
1923             literals as well as registers, fixes bug #1440527
1924         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
1925             dereference
1926           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
1927             more correctly, fixes bug #1232186
1928           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
1929         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
1930             gplink guess the correct processor in more cases, applied patch
1931             from Till Riedel attached to and fixing bug #1436552
1932
1933 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1934
1935         * support/regression/tests/array.c: added, contains check for #1434401
1936         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
1937
1938 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
1939
1940         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
1941         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
1942         * device/include/mcs51/c8051f326.h,
1943         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
1944         * device/include/mcs51/c8051f000.h,
1945         * device/include/mcs51/c8051f018.h,
1946         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
1947           PCON_IDLE,PCON_STOP and added sfr16 definitions
1948
1949 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1950
1951         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
1952           genGetWord): fixed bug 1409955
1953
1954 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1955
1956         * device/include/hc08/mc68hc908gp32.h,
1957         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
1958
1959 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
1960
1961         * src/SDCCast.c (constExprValue): return NULL if not a value
1962         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
1963         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
1964         * support/regression/tests/bitfields.c: enabled signed bitfield for all
1965
1966 2006-02-13 Borut Razem <borut.razem AT siol.net>
1967
1968         * src/regression/ptrarg.c: added, fails due to bug #1430967
1969         * src/regression/Makefile: ptrarg.c added, ...
1970
1971 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1972
1973         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
1974         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
1975
1976 2006-02-11 Borut Razem <borut.razem AT siol.net>
1977
1978         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
1979           print "Processor: xxx" message to stdout only if --verbose
1980
1981 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1982
1983         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
1984         * support/regression/tests/bug1426356.c: added
1985         * support/regression/tests/bitfields.c: removed 2 tests
1986
1987 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
1988
1989         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
1990         * device/include/mcs51/c8051f330.h,
1991         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
1992           PCON_IDLE,PCON_STOP and added sfr16 definitions
1993         * device/lib/_divsint.c,
1994         * device/lib/_divuint.c,
1995         * device/lib/_divulong.c,
1996         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
1997           register bank bug for small stackauto
1998
1999 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
2000
2001         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
2002
2003 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
2004
2005         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
2006         * all.dsp: corrected several bin paths
2007         * device/include/mcs51/c8051f120.h,
2008         * device/include/mcs51/c8051f300.h,
2009         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
2010           to PCON_IDLE,PCON_STOP
2011         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
2012         * device/lib/printf_large.c (output_float): fixed bug 1388703
2013         * support/regression/tests/bug1057979.c: added test for bug 1388703
2014
2015 2006-02-08 Raphael Neider <rneider AT web.de>
2016
2017         * src/pic/pcode.c (pciTRIS): fixed typo,
2018           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
2019           (LinkFlow): fixed handling of flows that end in a call,
2020           (ReuseReg): perform safety check earlier
2021         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
2022             to work with flows at the beginning of a pBlock,
2023             fixes #1426557 (Symbol not previously defined),
2024           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
2025             usage information
2026           (RemoveUnusedRegisters): update register usage info
2027         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
2028             created, reuse existing ones instead
2029         * src/pic/gen.c (genPcall): fixed #1424719
2030
2031 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
2032
2033         * link/z80/lkmain.c,
2034         * link/z80/lklex.c,
2035         * link/z80/lkdata.c,
2036         * link/z80/aslink.h: fixed build on current cygwin:
2037         replaced getline() by lk_getline()
2038
2039 2006-02-01 Borut Razem <borut.razem AT siol.net>
2040
2041         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
2042           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
2043           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
2044           src/regression/bool1.c, src/regression/bool2.c,
2045           src/regression/bool3.c, src/regression/call1.c,
2046           src/regression/compare.c, src/regression/compare10.c,
2047           src/regression/compare2.c, src/regression/compare3.c,
2048           src/regression/compare4.c, src/regression/compare5.c,
2049           src/regression/compare6.c, src/regression/compare7.c,
2050           src/regression/compare8.c, src/regression/compare9.c,
2051           src/regression/configword.c, src/regression/for.c,
2052           src/regression/inline.c, src/regression/mult1.c,
2053           src/regression/nestfor.c, src/regression/or1.c,
2054           src/regression/pointer1.c, src/regression/ptrfunc.c,
2055           src/regression/rotate1.c, src/regression/rotate2.c,
2056           src/regression/rotate3.c, src/regression/rotate4.c,
2057           src/regression/rotate5.c, src/regression/rotate6.c,
2058           src/regression/rotate7.c, src/regression/string1.c,
2059           src/regression/struct1.c, src/regression/sub.c,
2060           src/regression/sub2.c, src/regression/switch1.c,
2061           src/regression/while.c, src/regression/xor.c,
2062           src/regression/create_stc, src/regression/simulate,
2063           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
2064           regression tests
2065         * src/regression/gpsim_assert.h: added
2066
2067 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
2068
2069         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
2070         ((void (code *) (void)) 0) ();
2071         * as/hc08/aslex.c,
2072         * as/hc08/aslink.h,
2073         * as/hc08/asm.h,
2074         * as/hc08/asmain.c,
2075         * as/hc08/lkdata.c,
2076         * as/hc08/lklex.c,
2077         * as/hc08/lkmain.c,
2078         * as/mcs51/aslex.c,
2079         * as/mcs51/aslink.h,
2080         * as/mcs51/asm.h,
2081         * as/mcs51/asmain.c,
2082         * as/mcs51/lkdata.c,
2083         * as/mcs51/lklex.c,
2084         * as/mcs51/lkmain.c,
2085         * as/z80/aslex.c,
2086         * as/z80/asm.h,
2087         * as/z80/asmain.c: fixed build on current cygwin:
2088         replaced getline() by as_getline()
2089
2090 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
2091
2092         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
2093         declarator in the symbol chain
2094         * src/SDCCsymt.h,
2095         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
2096         parameter list for function pointers
2097         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
2098         * support/regression/tests/bug-716242.c: added
2099
2100 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
2101
2102         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
2103         offset if possible
2104         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
2105
2106 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
2107
2108         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
2109         inifinitely recurseable, added static
2110         * support/regression/tests/bug-1408066.c: added
2111
2112 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
2113
2114         * src/SDCCicode.h,
2115         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
2116         renamed, added possibility to create "postLoopLbl"-labels
2117         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
2118         newiTempLoopHeaderLabel
2119         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
2120         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
2121         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
2122         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
2123         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
2124         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
2125         (basicInduction): fixed bug #136564, made static,
2126         (loopInduction): changed parameter of basicInduction, made static,
2127         (addPostLoopBlock): added
2128         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
2129         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
2130         findLoopEndSeq
2131         * support/regression/tests/bug-136564.c: added
2132         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
2133         --std-sdcc99 to LIBSDCCFLAGS
2134
2135 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
2136
2137         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
2138         while loop
2139         * support/regression/tests/bug-1406131.c: added
2140
2141 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
2142
2143         * src/SDCCast.c (decorateType): fix promotion of unary minus
2144         * src/SDCCsymt.c (computeType): beautified
2145         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
2146         (valUnaryPM, valComplement): fix sign and promotion,
2147         (valNot): ANSI: result type is int (SDCC: unsigned char)
2148         * support/regression/tests/uminus.c: speedup by removing superflous
2149         test case 'int'
2150         * support/regression/tests/onebyte.c: added promotion and signedness
2151         tests for unary minus
2152         * support/regressions/tests/bug-477927.c: disable warning about
2153         uninitialized variables
2154         * support/regression/tests/not.c: added
2155
2156 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
2157
2158         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
2159         * src/mcs51/gen.c (gen51Code): show final register usage after
2160         fillGaps in asm with --i-code-in-asm
2161         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
2162         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
2163         incUsed, rliveClear, adjustIChain): made static,
2164         (setFromRange): excluded because it's unused,
2165         (findPrevUseSym, markWholeLoop): added,
2166         (findPrevUse): rewritten; fixes bug 895992; now a complete search
2167         through all branches of predecessors enables sdcc to emit the warning
2168         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
2169         (rlivePoint): made static, added parameter emitWarnings which is only
2170         true during the first run out of two,
2171         (findRecursiveSucc, findRecursivePred): removed,
2172         (computeLiveRanges): made static, added parameter emitWarnings,
2173         (dumpIcRlive): added for debugging only
2174         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
2175         removed prototype of setFromRange()
2176         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
2177         in call of computeLiveRanges()
2178         * support/regression/tests/bug-895992.c: added
2179         * support/regression/tests/bug-971834.c: added
2180         * support/valdiag/tests/bug-895992.c: added
2181         * support/valdiag/tests/bug-971834.c: added
2182
2183 2005-12-18 Raphael Neider <rneider AT web.de>
2184
2185         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
2186           (genUnpackBits): improved code for direct operands,
2187           (genPackBits): improved code for literal assignment to bitfields
2188             and for direct destination operands (no FSR indirection),
2189             prevented redundant AND, fixes #1362800,
2190           (AccLsh): added parameter to disable masking of the result
2191         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
2192           skip instructions with side-effects (like incfsz),
2193           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
2194         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
2195         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
2196           fixes #1375263
2197
2198 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
2199
2200         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
2201         volatile variables as spill location
2202
2203 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
2204
2205         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
2206         replacing literals
2207         * support/regression/tests/bug-1376320.c: added
2208
2209 2005-12-08 Raphael Neider <rneider AT web.de>
2210
2211         * src/pic/device.c: renamed is_shared to pic14_is_shared
2212         * src/pic/gen.c (genIfx): re-enabled handling of sbits
2213         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
2214           (is_valid_identifier): added for above workaround
2215
2216 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
2217
2218         * device/lib/Makefile.in: fixed to enable port-specific-objects
2219         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
2220           char, thanks Hubert Sack
2221         * doc/sdccman.lyx: documented --xstack-loc,
2222           elaborated a bit more on interrupts and pitfalls,
2223           removed "setjmp/longjmp unsupported",
2224           documented some unsupported C99 features
2225         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
2226         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
2227           if, thanks Hubert Sack
2228         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
2229         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
2230           make make_library
2231         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
2232           regression tests can report resource usage (rfe 700441)
2233         * support/regression/collate-results.py: report resource usage
2234         * support/regression/ports/ds390/spec.mk,
2235         * support/regression/ports/hc08/spec.mk,
2236         * support/regression/ports/mcs51/spec.mk,
2237         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
2238         * support/regression/ports/ds390/uCsim.cmd,
2239         * support/regression/ports/hc08/uCsim.cmd,
2240         * support/regression/ports/mcs51/uCsim.cmd,
2241         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
2242         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
2243           library, use the default one
2244         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
2245           building the library
2246
2247 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
2248
2249         * config.dsp: added dependency on .version and configure_vc.awk
2250         * device/include/setjmp.h: updated for --stack-auto and --xstack
2251         * device/include/mcs51/at89c51snd1c.h: corrected line endings
2252         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
2253         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
2254         * device/lib/libsdcc.lib: added _setjmp
2255         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
2256           (decorateType): fixed bug 1372851,
2257           (optimizeGetHbit): fixed warning
2258         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
2259           array initialisation
2260         * support/regression/tests/bug1057979.c: added test for bug 1358192
2261         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
2262
2263 2005-12-03 Borut Razem <borut.razem AT siol.net>
2264
2265         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
2266           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
2267
2268 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2269
2270         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
2271         createIval): implement symbol independant "flexible array member",
2272         (createIvalCharPtr): implemented flexible array initialisation with a
2273         string
2274         * src/SDCCsymt.c (copyStruct): removed,
2275         (getSize): fixed misleading comment,
2276         (getAllocSize): removed, the additional allocation size is now in
2277         sym->flexArrayLength,
2278         (checkStructFlexArray): new, syntax checks for flexible array members,
2279         (compStructSize): added syntax checks for "flexible array members"
2280         (copyStruct): removed,
2281         (copyLinkChain): removed inefficient fix for bug 770487
2282         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
2283         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
2284         symbol->flexArrayLength
2285         * src/SDCCerr.c,
2286         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
2287         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
2288         * support/regression/tests/structflexarray.c: added
2289         * support/valdiag/tests/structflexiblearray.c: added
2290
2291 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
2292
2293         * src/SDCCast.c (decorateType): fixed bug 1368489
2294         * support/Util/SDCCerr.c,
2295         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
2296
2297 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2298
2299         * device/include/mcs51/at89c51snd1c.h: added file submitted by
2300           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
2301
2302 2005-11-27 Borut Razem <borut.razem AT siol.net>
2303
2304         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
2305           support/cpp2/mkdeps.h: added command line option
2306           -obj-ext=<extension> to SDCPP to define object file externion, used
2307           for generation of make dependencies (-M)
2308         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
2309
2310 2005-11-26 Borut Razem <borut.razem AT siol.net>
2311
2312         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
2313           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
2314           added pic and pic16 libraries
2315
2316 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2317
2318         * device/include/float.h: Corrected typo in prototype of __fsgt
2319
2320 2005-11-25 Borut Razem <borut.razem AT siol.net>
2321
2322         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
2323           added creation of model-mcs51-stack-auto libraries
2324
2325 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
2326
2327         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
2328         and fields-list too
2329         * src/SDCCast.c (createIvalArray): removed obsolete comment
2330
2331 2005-11-24 Borut Razem <borut.razem AT siol.net>
2332
2333         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
2334           added missing device/lib/mcs51/crt*.asm sources
2335
2336 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
2337
2338         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
2339
2340 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
2341
2342         * device/lib/_fs2schar.c,
2343         * device/lib/_fs2sint.c,
2344         * device/lib/_fs2slong.c: optimized inline asm
2345
2346 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2347
2348         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2349           Better handling of floats between -1.0 and 0.0.
2350
2351 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2352
2353         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
2354           (the missing "if"s prohibited removal of redundant labels)
2355
2356 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2357
2358         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2359           Properly convert floats between -1.0 and 0.0 to long, int, and char
2360           types (max integer value of negative floats tends to zero).
2361         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2362           Removed changes made so to work properly with floats between
2363           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
2364           and _fs2char.c
2365
2366 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2367
2368         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
2369         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
2370         (genCast) cosmetic change
2371         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
2372         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
2373         from mcs51
2374         * support/regression/tests/bitfields (testSignedBitfields): added
2375
2376 2005-11-18 Borut Razem <borut.razem AT siol.net>
2377
2378         * sdcc/device/lib/Makefile.in: remove all unnecessary files
2379         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
2380           introduced SILENT option to make building of pic16 libraries less
2381
2382 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2383
2384         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2385           Now they work properly with floats between -1.0 and 0.0
2386         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
2387
2388 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2389
2390         * src/SDCCicode.c (printOperand): added missing else
2391
2392 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2393
2394         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
2395         reformatted for better readability
2396         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
2397         signed bitfields
2398
2399 2005-11-17 Borut Razem <borut.razem AT siol.net>
2400
2401         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
2402           introduced SILENT option to make building of pic16 libraries less
2403           verbose - used for nightly snapshot build
2404         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
2405           available on Win32 platforms.
2406         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
2407           medium, large, pic and pic16
2408
2409 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2410
2411         * device/lib/printf_large.c: Temporary patch for bug 1358192:
2412           printf("%f"...) sets fraction to zero.
2413
2414 2005-11-16 Raphael Neider <rneider AT web.de>
2415
2416         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
2417           fixes #1357221
2418         * src/pic/gen.c (genIfx): implemented for CARRY bit
2419         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
2420           to generic pointers, fixes #1357332,
2421           (pic16_movLit2f): NEW,
2422           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
2423
2424 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2425
2426         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
2427
2428 2005-11-11 Raphael Neider <rneider AT web.de>
2429
2430         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
2431         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
2432           compute pointer's type from operand,
2433           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
2434           improved single bit reads, fixes bug #1353379
2435
2436 2005-11-09 Borut Razem <borut.razem AT siol.net>
2437
2438         * support/scripts/sdcc.nsi: added lib/pic to the package
2439
2440 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
2441
2442         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
2443
2444 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2445
2446         * support/regression/tests/bug1348008.c: added
2447         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
2448         * support/regression/tests/bug1337835.c: updated comment
2449
2450 2005-11-06 Borut Razem <borut.razem AT siol.net>
2451
2452         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2453           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2454           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2455           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2456           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
2457           dynamic construction of cl_error_class and derivates - 2.nd try
2458
2459 2005-11-05 Borut Razem <borut.razem AT siol.net>
2460
2461         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
2462           bug, which caused Bus Errors on sparc solaris
2463
2464 2005-11-04 Borut Razem <borut.razem AT siol.net>
2465
2466         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2467           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2468           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2469           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2470           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
2471           and derivates to resolve the initialization problem on OSX
2472
2473 2005-11-02 Borut Razem <borut.razem AT siol.net>
2474
2475         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2476           corrected typo - #include <winsock2.h>
2477
2478 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
2479
2480         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
2481           (_asxxxx_mapping): added org directive for future enhancements
2482
2483 2005-11-01 Borut Razem <borut.razem AT siol.net>
2484
2485         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2486           enabled sockets on WIN32
2487         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
2488
2489 2005-10-31 Borut Razem <borut.razem AT siol.net>
2490
2491         * support/regression/generate-cases.py: escape backslashes in {testcase}:
2492           WIN32 backslash path delimiters should be escaped when used in C strings
2493         * support/regression/tests/bitfields.c: exclude failing assertions for
2494           __CYGWIN32__ and __MINGW32__ hosts
2495
2496 2005-10-30 Borut Razem <borut.razem AT siol.net>
2497
2498         * src/SDCCutil.c: corrected double comparison typo
2499
2500 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
2501
2502         * device/lib/medium/Makefile: added for new memory model medium
2503         * device/include/asm/mcs51/features.h: updated for medium/pdata
2504         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
2505           added Multiply & Accumulate sbit's and MAC0_PAGE define
2506         * device/include/mcs51/c8051f300.h: added sfr16 definitions
2507         * device/include/mcs51/c8051f310.h: added sfr16 definitions
2508         * device/lib/_mullong.c: update for medium model
2509         * device/lib/incl.mk: added medium model
2510         * doc/sdccman.lyx: documented medium model
2511         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
2512         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
2513         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
2514         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
2515           (allocParms): set SCLS and OCLS to pdata for medium model
2516         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
2517           for pdata,
2518           (powof2): return <0 if not power of 2
2519         * src/avr/gen.c (genBitWise): use updated powof2
2520         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
2521           (shiftR2Left2Result): small optimization in setup, save acc when storing,
2522           (shiftLLeftOrResult): use B if necessary
2523         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
2524         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
2525         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
2526         * support/regression/Makefile.in: added test-mcs51-medium
2527         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
2528
2529 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
2530
2531         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
2532         specifier unsigned
2533         * device/lib/time.c (mktime): fixed bug 1334315
2534
2535 2005-10-28 Raphael Neider <rneider AT web.de>
2536
2537         * device/include/pic/p16f_common.inc: added common declarations
2538         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
2539
2540 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2541
2542         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
2543           (aopPutUsesAcc): added to predict accumulator use,
2544           (assignResultValue): save acc if necessary,
2545           (genMinusDec): store result if indirectly addressed,
2546           (genDivOneByte):  save acc if necessary,
2547           (movLeft2Result): bugfix if left already in acc,
2548           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
2549             attention to accumulator use (esp. pdata),
2550           (genReceive): receive pdata correctly
2551         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
2552         * src/SDCCicode.h: added isOperandInPagedSpace prototype
2553
2554 2005-10-27 Raphael Neider <rneider AT web.de>
2555
2556         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
2557
2558 2005-10-27 Raphael Neider <rneider AT web.de>
2559
2560         * .version: changed version to 2.5.4
2561         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
2562         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
2563           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
2564             arithmetics support routines
2565         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
2566         * device/lib/Makefile.in: also create installdir for pic
2567
2568         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
2569           pic14 port as well
2570         * src/pic/device.c (dump_sfr): rewritten to delegate register
2571           placement to the linker (use `extern sym' rather than sym EQU addr),
2572           (validAddress): fixed to check last specified address
2573         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
2574           (popGetLit): truncate literal value to 8 bit,
2575           (popGet): moved assert to more appropriate place
2576           (popGetExternal): create pCode operand from and mark the according
2577             symbol as being `extern'
2578           (popGetAddr): added sanity check on immediate's offset, provide
2579             GPOINTER tag on demand
2580           (aopPut): fixed for immediates,
2581           (mov2w_op): move operand's address or contents to WREG (depending on
2582             operand type), safer variant of mov2w,
2583           (movwf,call_libraryfunc): NEW, handy abbreviations,
2584           (get_argument_pcop,get_return_val_pcop,pass_argument,
2585           get_returnvalue): interface for accessing function parameters and
2586             return values,
2587           (assignResultValuei,genRet): use new parameter/return value interface
2588           (pic14_getDataSize): back to old version handling generic pointers,
2589           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
2590             provided implementation and/or fixed old one,
2591           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
2592             calls, removed legacy 8051 reference code
2593           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
2594           (loadSignToC): NEW, move the operands sign bit to CARRY,
2595           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
2596             genRightShiftSigned, accepts negative shift counts,
2597           (setup_fsr): load FSR and adjust IRP (indirect memory access),
2598           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
2599             generic pointers, __data pointers and __code pointers,
2600           (genUnpackBits,genPackBits): rewritten to work with generic pointers
2601             and signed bitfields, limit bitfields to 8 bit,
2602           (genDataPointerGet): fixed number of bytes read,
2603           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
2604           (genPointerGet,genPointerSet): fixed handling of __code pointers,
2605             pointers to constant data are no longer assumed to point to __code
2606             space, removed invalid pointer types,
2607           (bitpatternFromVal): retrieve the PICs representation of an integer
2608             or float literal,
2609           (genDataPointerSet): fixed assigning to po_immediate operands,
2610           (genGenPointerSet): implemented as library call,
2611           (genIfx): fixed incorrect condition,
2612           (genAddrOf): limit generic pointers' addresses to 2 bytes,
2613             provide GPOINTER tag according to destination's storage class,
2614           (genCast): added code to handle casting to generic pointers, added
2615             sign-/zero extension of the result
2616           (aop_isLitLike,op_isLitLike): fixed handling of immediates
2617         * src/pic/gen.h: added macros to access IRP bit in STATUS register
2618         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
2619           extend the result
2620         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
2621           address/register resides in the shared banks
2622           (emitSymbolToFile): improved to handle global and `pinned' symbols,
2623             put all variables into separate sections (have the linker arrange
2624             them)
2625           (picglue): put init code and interrupt handlers in separate sections
2626         * src/pic/main.c: added port specific options table, modified to PORT
2627           structure to make GPOINTERs 3 byte, added pic14_options
2628           (_pic14_do_link): private linking routine (update paths to libraries,
2629             add libsdcc.lib by default)
2630         * src/pic/main.h: declare pic14_options
2631         * src/pic/pcode.c: fixed instructions i/o relations,
2632           (RegCond): reverted to correct version,
2633           (newpCodeOpLit): truncate literals to 8 bit,
2634           (genericPrint): added debug output,
2635           (getRegFromInstruction): fixed for various operand types, simplified
2636           (BuildFlow): fixed broken handling of isntructions with labels
2637           (LinkFlow): start at last instruction in flow (skip trailing comments),
2638             pass the flow on to the next instruction after CALL
2639           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
2640           (insertPCodeInstruction): fixed inserting after a skip instruction,
2641           (DoBankSelect): fixed for labeled instructions
2642           (OptimizepBlock): honor --nopeep switch
2643           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
2644         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
2645         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
2646           (pCodeOptime2pCodes): allow disabling this optimization via
2647             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
2648             but is still buggy), started implementation of a dataflow based
2649             pCode optimization (CSE + dead code elimination)
2650           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
2651         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
2652           names are independant of the stack location and therefore portable across
2653           devices
2654
2655 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2656
2657         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
2658           (selectSpil): fixed bug 1337835 by not spilling bit variables
2659         * support/regression/tests/bug1337835.c: added test for this bug
2660         * src/mcs51/peeph.def: restart after rule 3.c,
2661           addded rules 263.x to optimize loading constants
2662
2663 2005-10-26 Raphael Neider <rneider AT web.de>
2664
2665         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
2666         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
2667           (genAssign): emit warning when casting literals to generic pointer
2668             type, also applies when taking the address of a fixed variable,
2669           (genCast): improved casting to generic pointers
2670         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
2671           extern variables, added verbose error message
2672         * device/include/pic16/{string.h,errno.h}: added #pragma library c
2673
2674 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
2675
2676         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
2677         carry must be complemented too
2678         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
2679         could be emitted by genMinus
2680         * src/SDCCval.c (constVal): fixed bug 1305065
2681
2682 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
2683
2684         * src/SDCCast.c (addCast): added promotion for bit variables
2685         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
2686         promotion casts + optimisation
2687         (optimizeGetWord): fix warning 'i' might be used uninitialized
2688         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
2689         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
2690
2691 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
2692
2693         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
2694         all chars are promoted to int; promotion should be handled in SDCCast.c
2695
2696 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2697
2698         * device/lib/_strcmp.c: Fixed bug 1326457
2699
2700 2005-10-11 Raphael Neider <rneider AT web.de>
2701
2702         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
2703         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
2704
2705 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
2706
2707         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
2708         * support/regression/tests/sfr16.c: added test for the sfr32 bug
2709
2710 2005-10-04 Raphael Neider <rneider AT web.de>
2711
2712         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
2713           device/lib/pic16/pics.all: added pic18f1320
2714         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
2715
2716 2005-09-30 Raphael Neider <rneider AT web.de>
2717
2718         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
2719         * src/pic16/devices.inc: NEW, provides device descriptions
2720         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
2721
2722 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2723
2724         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
2725           GETHBIT
2726
2727 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
2728
2729         * doc/sdccman.lyx: updated Highest Order Bit documentation,
2730           documented Any Order Bit, Higher Order Byte and Higher Order Word
2731         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
2732         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
2733           (optimizeGetAbit): new, to get any bit, not only the high bit,
2734           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
2735           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
2736           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
2737           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
2738             RIGHT_OP: also try GETBYTE, GETWORD optimization,
2739             GETABIT, GETBYTE, GETWORD: decorate them,
2740           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
2741           (ast_print): added GETABIT, GETBYTE, GETWORD
2742         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
2743         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
2744           (geniCodeBinary): new generic binary icode,
2745           (ast2iCode): added GETABIT, GETBYTE, GETWORD
2746         * src/port.h: updated comment for PORT.hasExtBitOp
2747         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
2748           (genGetByte): new, to get a single byte,
2749           (genGetWord): new, to get a word from a long,
2750           (gen51Code): added GETABIT, GETBYTE, GETWORD
2751         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
2752
2753 2005-09-23 Raphael Neider <rneider AT web.de>
2754
2755         * configure.in, configure: have device/lib/pic configured
2756         * device/lib/Makefile.in: added model-pic14
2757         * device/lib/clean.mk: added pic/ to clean rule
2758         * device/lib/pic: added rudimentary pic14 library providing support
2759           functions for multiplication/division/generic pointer access
2760         * src/SDCCopt.c (convilong): mark support functions as extern
2761           for pic14 port as well
2762         * src/pic/gen.c (genMult): added assertions,
2763           (genpic14Code): emit warning on unhandled iCodes
2764         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
2765         * src/pic/pcode.c (pCodeOpCopy),
2766         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
2767           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
2768           SFR_REGISTER}), made safe for future extensions
2769         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
2770           instructions even if preceeded by SKIP instructions (also remove
2771           them); removed unused code
2772         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
2773           prevents leaving parts of the structure uninitialized after copying
2774
2775 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
2776
2777         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
2778           ago by me
2779         * support/regression/tests/addsub.c: added test for the bug
2780
2781 2005-09-21 Raphael Neider <rneider AT web.de>
2782
2783         * device/include/pic16/pic18f1220.h,
2784           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
2785         * device/lib/pic16/Makefile.rules: added missing opening paren
2786         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
2787           are provided in genutils.c,
2788           (genUminusFloat,genUminus,genCmpEq): added asserts on different
2789           operand/result sizes,
2790           (genCmp): assert on NULL pointers first, then check deref'ed values
2791         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
2792           result size
2793
2794 2005-09-18 Raphael Neider <rneider AT web.de>
2795
2796         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
2797           as these are now unused,
2798           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
2799         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
2800           local, avoids uninitialized pointer dereference on r->name
2801         * src/pic16/ralloc.c (newReg): fixed indentation
2802
2803 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
2804
2805         * src/SDCCval.c (constVal): fixed bug 730366
2806         * support/Util/SDCCerr.c,
2807         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
2808
2809 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2810
2811         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
2812
2813 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
2814
2815         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
2816
2817 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
2818
2819         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
2820           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2821         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
2822           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2823         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
2824         * packihx/packihx.c (hexDigit): made c unsigned char
2825         * as/mcs51/lklibr.c (fndsym),
2826         * link/z80/lkgb.c (gb),
2827         * link/z80/lklibr.c (fndsym),
2828         * link/z80/lkrloc.c (relr),
2829         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
2830         * src/SDCC.lex (checkCurrFile, process_pragma),
2831         * src/SDCCglue.c (spacesToUnderscores),
2832         * src/SDCCmain.c (setParseWithComma, processFile),
2833         * src/asm.c (tvsprintf, printCLine),
2834         * src/avr/gen.c (emitcode, aopPut),
2835         * src/ds390/gen.c (emitcode),
2836         * src/hc08/gen.c (emitcode, emitinline),
2837         * src/mcs51/gen.c (emitcode, genInline),
2838         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2839           tokenizeLineNode),
2840         * src/pic/ralloc.c (debugLog),
2841         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2842           tokenizeLineNode),
2843         * src/pic16/ralloc.c (debugLog),
2844         * src/z80/main.c (_process_pragma):
2845            made all ctype.h function calls safe
2846         * src/SDCCopt.c: include math.h for fabs
2847         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
2848           and used them throughout the code to make ctype.h function calls safe
2849         * src/ds390/main.c (asmLineNodeFromLineNode),
2850         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
2851         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
2852            unsigned char*
2853         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
2854           (newpCodeAsmDir): made ctype.h function calls safe
2855         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
2856           pic16_emitcode):  made lbp unsigned char*
2857         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
2858           (pic16_newpCodeAsmDir): made ctype.h function calls safe
2859         * src/xa51/gen.c (emitcode),
2860         * src/z80/gen.c (_emit2): made lbp unsigned char*
2861         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
2862            char*
2863
2864 2005-09-05 Raphael Neider <rneider AT web.de>
2865
2866         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
2867           access bank splitpoint
2868
2869 2005-09-05 Raphael Neider <rneider AT web.de>
2870
2871         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
2872
2873 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
2874
2875         * .version: changed to version 2.5.3
2876         * doc/sdccman.lyx: changed version to 2.5.3,
2877           documented --codeseg and --constseg and pragma codeseg and constseg,
2878           documented bit parameters (reentrant) and bit returning
2879         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
2880            currFunc->recvSize, but is this ok for all ports?
2881           (ast2iCode): result of ~ on unsigned char must be cast to int for
2882            bool to work
2883         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
2884           function pointers in bit space
2885         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
2886           (processFuncArgs): call port.reg_parm() with reentrancy info
2887         * src/port.h,
2888         * src/avr/main.c,
2889         * src/ds390/main.c,
2890         * src/hc08/main.c,
2891         * src/pic/main.c,
2892         * src/pic16/main.c,
2893         * src/xa51/main.c,
2894         * src/z80/main.c: port.reg_parm prototype extended with
2895           "bool reentrant" parameter
2896         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
2897           options.stackAuto for allocating bit register parameters
2898         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
2899           (genSend): set BitBankUsed if it is,
2900           (selectRegBank): factored out of genCall for use in genPcall,
2901           (genCall): removed redundant dtype assignmen, use selectRegBank,
2902           (genPcall): handle returning in Carry properly, save in F0 if needed,
2903           (genReceive): handle bit register parameters
2904         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
2905           (mcs51_assignRegisters): enable bit registers for all reentrant
2906            functions and don't set BitBankUsed unconditionally
2907         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
2908         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
2909         * support/regression/tests/funptrs.c: added tests for BOOL and for return
2910
2911 2005-08-27 Borut Razem <borut.razem AT siol.net>
2912
2913         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
2914         ppc-osx (Darwin) does not support -u option. It seems that it is
2915         supported only on Linux - GNU cp
2916
2917 2005-08-25 Borut Razem <borut.razem AT siol.net>
2918
2919         * sim/ucsim/gui.src/serio.src/Makefile.in,
2920           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
2921           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2922           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
2923           install and strip, since the strip at /usr/ccs/bin should be used
2924           on solaris
2925
2926 2005-08-24 Borut Razem <borut.razem AT siol.net>
2927
2928         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
2929
2930 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
2931
2932         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
2933         ffffffffu
2934
2935 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
2936
2937         * as/mcs51/aslink.h: completed lkrloc.c prototypes
2938         * as/mcs51/lkmain.c (link_main): fixed warning
2939         * device/include/stdbool.h: ds390 has no advanced bit support yet
2940         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
2941         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
2942         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
2943           and updated their macros
2944         * src/SDCCval.c (constVal): updated comment for renamed b_long
2945
2946 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
2947
2948         * as/mcs51/asdata.c: changed ctype['['] to BINOP
2949         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
2950           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
2951           (oprio): set priority for '['
2952         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
2953            and adb_24_bit
2954         * as/mcs51/asm.h: added defines R_BIT and S_BIT
2955         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
2956         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
2957         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
2958           added overlayable BIT_BANK area
2959         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
2960           (summary2): explain 'T' in legenda
2961         * as/mcs51/lkrloc.c: replaced old K&R style,
2962           (relr): added R_BIT processing,
2963           (errmsg): added "Bit-addressable relocation error",
2964           (adb_bit): added for converting from byte- to bit-addressable space,
2965           (adb_24_bit): added for converting from byte- to bit-addressable space
2966         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
2967            used in reentrant functions now even as return value
2968         * device/lib/_gptrput.c (_gptrput): removed obsolete code
2969         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
2970           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
2971         * src/SDCCglobl.h: added indicator BitBankUsed
2972         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
2973            the bit registers b0-b7
2974         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
2975           (geniCodeCast): fixed bug 1263853,
2976           (geniCodeLogicAndOr): put result in bool or char,
2977           (geniCodeReceive): added parameter func for accessing the return type,
2978           (geniCodeFunctionBody): pass func to geniCodeReceive
2979         * src/SDCCmain.c: added indicator BitBankUsed
2980         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
2981         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
2982           (checkSClass): don't put automatic bool/bit on stack,
2983           (checkFunction): removed check on function cannot return bit
2984         * src/SDCCsymt.h: added newBoolLink prototype
2985         * src/mcs51/gen.c (rb1regs): added bit registers,
2986           (movc): created for assigning to carry,
2987           (pushReg, popReg): created for pushing registers,
2988           (sameRegs): check both AOP_REG and AOP_CRY types,
2989           (aopOp): handle bit registers,
2990           (aopPut): optimization no self-assign,
2991           (saveRegisters): push reg->base (bits) only once for bit registers,
2992            and use pushReg,
2993           (unsaveRegisters): pop reg->base only once and use popReg,
2994           (assignResultValue): added parameter func and return in carry for bits,
2995           (genIpush): optimization no reload in A if not changed,
2996           (genSend): bit parameters in reentrant functions are passed in bit
2997            registers by first assigning to bits in B, then save registers and
2998            copy B to bits,
2999           (genCall): handle returning in Carry properly, save it in F0 if needed,
3000           (genPcall): updated assignResultValue call, this is not safe yet for bit
3001            returning function !!!
3002           (genFunction): don't generate equ's for bit registers and use pushReg,
3003           (genEndFunction): take care of bit returning functions and use popReg,
3004           (genRet): return bit in Carry,
3005           (genIfx): optimize bit registers and other directly addressable bits,
3006           (genReceive): updated assignResultValue call
3007         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
3008           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
3009            registers when using stack-auto
3010         * src/mcs51/ralloc.c (_G): added allBitregs,
3011           (regs8051): added the bit registers,
3012           (createStackSpil): use macro IS_BIT,
3013           (getRegBit): added to allocate a bit register, else spill,
3014           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
3015           (updateRegUsage): factored out to ease stepping while debugging,
3016           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
3017            also allocate bit registers,
3018           (fillGaps): handle bit registers,
3019           (findAllBitregs): added to create bit vector with all bit registers,
3020           (mcs51_allBitregs): returns this bit vector,
3021           (mcs51_assignRegisters): when using stack-auto use bit registers for
3022            passing parameters and creating local variables
3023         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
3024
3025 2005-08-22 Borut Razem <borut.razem AT siol.net>
3026
3027         * device/lib/Makefile.in: replaced find option -or with -o
3028           to make it run on solaris
3029
3030 2005-08-22 Raphael Neider <rneider AT web.de>
3031
3032         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
3033           fixes #1265442 (crash on Solaris)
3034
3035 2005-08-20 Borut Razem <borut.razem AT siol.net>
3036
3037         * configure, configure.in: added tests for libsocket and libnsl libraries,
3038           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
3039           from support/regression/Makefile.in
3040         * support/regression/Makefile.in: added
3041         * device/lib/pic16/Makefile.common.in: force make to use bash shell
3042         * sim/ucsim/libtool: regenerated on sparc-solaris
3043         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
3044           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
3045           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
3046           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
3047           sparc-solaris, which doesn't use GNU ld linker
3048         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
3049         * as/Makefile: find on sparc-solaris does not support -maxdepth option
3050
3051 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
3052
3053         * src/mcs51/peeph.def: updated comments
3054
3055 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3056
3057         * device/lib/_gptrget.c,
3058         * device/lib/_gptrput.c: slightly shorter
3059         * doc/sdccman.lyx: incremented version
3060         * src/mcs51/peeph.def: moved peephole comments to the line of first
3061           change to better keep line correlation, reanimated 186.e
3062         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
3063
3064 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
3065
3066         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
3067           David Saxton with quotes around file name.
3068
3069 2005-08-15 Borut Razem <borut.razem AT siol.net>
3070
3071         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
3072           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
3073           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
3074           make tests run on x86_64 platform
3075
3076 2005-08-13 Raphael Neider <rneider AT web.de>
3077
3078         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
3079           as it might be executed DURING a build (parallel make is wonderful)
3080
3081 2005-08-13 Raphael Neider <rneider AT web.de>
3082
3083         * device/lib/Makefile.in (port-specific-objects-pic16):
3084           revert to cp $(PORT)/bin/*.* $(PORTDIR)
3085         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
3086           dependency
3087         * device/lib/pic16/Makefile.rules: build subdirs before creating
3088           the library, removed builddir rule, create $(builddir) early in
3089           recurse rule, use empty recurse rule for leaf directories
3090         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
3091           mkdir errors (race condition), removed duplicate suffix "hex"
3092           from clean rules
3093         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
3094         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
3095           prevents mkdir -p from aborting on Alpha
3096
3097 2005-08-12 Raphael Neider <rneider AT web.de>
3098
3099         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
3100           db-statements in order to allow for arrays of pointers in code
3101           sections to be placed without interspersed 0-padding, fixes
3102           bug #1256215
3103         * (emitStatistics): fixed division by zero for pic18f1220
3104         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
3105           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
3106         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
3107         * (pic16_pCodeConstString): keep track of already emitted string
3108           literals to prevent "duplicate definitions of symbol _str_NR"
3109         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
3110           debug message
3111         * device/lib/Makefile.in: ignore failing PIC16 library builds
3112         * device/lib/pic16/Makefile: do not build if gputils are missing
3113         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
3114
3115 2005-08-10 Raphael Neider <rneider AT web.de>
3116
3117         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
3118           my last commit)
3119
3120 2005-08-10 Raphael Neider <rneider AT web.de>
3121
3122         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
3123           Rokas' patch to add the new fixed point type "__fixed16x16"
3124         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
3125           functions for __fixed16x16 arithmetics
3126         * device/lib/pic16: reimplemented the build system to support
3127           a separate build directory, better handling of libio (create
3128           the library in a separate subdir for each architecture) and
3129           easier configuration (centralized in Makefile.common)
3130
3131 2005-08-07 Raphael Neider <rneider AT web.de>
3132
3133         * src/pic16/gen.c (genrshTwo): fixed sign extension
3134         * src/pic16/device.c: added pic18f2320, 4220 and 4320
3135         * device/include/pic16/pic18f2220.h: changed some bit definitions,
3136           added T0CONbits
3137         * device/include/pic16/pic18f4220.h: NEW, header for
3138           pic18f4220 and pic18f4320
3139         * device/include/pic16/pic18fregs.h: added new devices,
3140           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
3141         * device/include/pic16/signal.h: resolved name clashes
3142           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
3143           to also allow testing for interrupt enable bits, added
3144           comments on how to use the macros
3145         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
3146         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
3147           register definitions for the devices
3148         * device/lib/pic16/pics.all: added new devices
3149         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
3150           allocated memory
3151         * device/lib/pic16/libc/stdlib/memfree: do not count
3152           the block header as free memory
3153         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
3154           simplified and added missing end-of-blocklist-marker
3155           (reported by Peter Onion, fixes #1252814)
3156         * (_mergeHeapBlock): fixed loop condition
3157         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
3158           len==0, restructured code
3159         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
3160           up a bit, reduced bitfield accesses, prevent endless loops
3161           in case of heap corruption
3162         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
3163           "unreferenced arguments/must return a value" warnings
3164         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
3165           replaced BAUDREG with SPBRG
3166         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
3167           device/lib/pic16/debug/gstack/gstack.c: replaced
3168           _naked, _asm, _endasm with __naked, __asm, __endasm
3169
3170 2005-08-05 Raphael Neider <rneider AT web.de>
3171
3172         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
3173           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
3174
3175 2005-08-05 Borut Razem <borut.razem AT siol.net>
3176
3177         * device/lib/Makefile.in: added missing ';'
3178         * configure: removed ^M characters
3179
3180 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3181
3182         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
3183           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
3184           License
3185
3186 2005-08-04 Borut Razem <borut.razem AT siol.net>
3187
3188         * configure.in: pic16 libraries build 2nd try - enable running
3189           configure in device/lib/pic16
3190         * configure: regenerated from configure.in
3191         * device/lib/Makefile.in: create $(PORT)/bin directory
3192
3193 2005-08-03 Raphael Neider <rneider AT web.de>
3194
3195         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
3196           to get/set values via pointers
3197         * (genUnpackBits,genPackBits): changed detection of
3198           ptr->bitfield vs. sym.bitfield, fixed access via generic
3199           pointers, removed dead (wrong) code for multibyte bitfields
3200         * (genNearPointerGet, genGenPointerGet): removed useless code,
3201           fixed bitfield detection, fixes #1250594
3202         * (genNearPointerSet): removed useless code
3203         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
3204           and introduced macro pic16_emitpcode that conditionally emits
3205           the origin of the following pCode (useful for debugging SDCC)
3206         * src/pic16/pcode.c: changed (and disabled) some debug outputs
3207         * (createDefmap): fixed handling of LFSR for --optimize-df
3208
3209 2005-08-02 Borut Razem <borut.razem AT siol.net>
3210
3211         * device/lib/Makefile.in: pic16 libraries build enabled since
3212           gputils-0.13.2 are now localy installed at sourceforge's compile farm
3213
3214 2005-08-02 Raphael Neider <rneider AT web.de>
3215
3216         * src/pic16/gen.c (genPackBits): removed deprecated warning
3217         * (genGenPointerSet): fixed bitfield detection
3218
3219 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3220
3221         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
3222
3223 2005-07-31 Raphael Neider <rneider AT web.de>
3224
3225         * device/lib/pic16/libdev/pic18f458.c,
3226           device/include/pic16/pic18f458.h: added missing T0CONbits
3227
3228 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
3229
3230         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
3231
3232 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
3233
3234         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
3235
3236 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3237
3238         * device/include/mcs51/at89c51ed2.h: added.
3239
3240 2005-07-23 Raphael Neider <rneider AT web.de>
3241
3242         * src/pic/gen.h: added emitpcode macro for debugging
3243         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
3244           and replace by macro adding debug information on demand
3245         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
3246         * (gencjne): tried to fix; replaced with correct (slower) code
3247         * (gen{Unp,P}ackBits): fixed single bit access
3248         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
3249         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
3250           previous instruction
3251         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
3252           register has to be handled with care (forbidding movement
3253           of assignments/uses, removing assignments completely, ...)
3254         * (pCodeOptime2pCodes): make use of regIsSpecial
3255         * added lots of debugging output (commented out)
3256         * src/pic/rallloc.c (deassignLRs): prevent operand registers
3257           from being reused as result UNLESS it is known to work
3258
3259 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
3260
3261         * support/Util/dbuf.h: include <stddef.h> for size_t
3262         * .version: changed to version 2.5.2
3263
3264 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3265
3266         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
3267
3268 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3269
3270         * src/hc08/gen.c (genMinus): fixed bug #1241835,
3271           (genModOneByte): removed needless psha/pula
3272
3273 2005-07-22 Raphael Neider <rneider AT web.de>
3274
3275         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
3276           have PIC14 handled like PIC16, fixes broken pic14 linker calls
3277         * src/pic/gen.c (resolveIfx): do not "invent" labels
3278         * (genSkipc): changed to positive logic
3279         * (genSkipCond): removed as no longer needed
3280         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
3281           backport from PIC16
3282         * (genLeftShift): check operands are in different registers
3283         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
3284           INCF does not update CARRY...
3285         * src/pic/main.c: fixed _linkCmd
3286         * src/pic/pcode.c (unlinkpCode): added inactive code
3287         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
3288           alive (do not assign result and operand overlapping registers)
3289
3290 2005-07-22 Raphael Neider <rneider AT web.de>
3291
3292         * src/pic/device.c (dump_sfr): replaced register declaration with
3293           call to emitSymbolToFile() to avoid duplicate symbols
3294         * (assignRelocatableRegisters): do not declare external symbols
3295         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
3296           right (take size of type, not etype)
3297         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
3298         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
3299         * (packRegsForAccUse): disabled assignment of WREG as
3300           the result reg to prevent occurence of just fixed #1235003,
3301           fixes #1242954
3302         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
3303           symbols (avoids duplicate symbols in .asm file)
3304         * (pic14emitRegularMap): use emitSymbolToFile()
3305         * src/pic/gen.c (aopOp): fixed spillLocation handling
3306         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
3307         * (genDataPointerSet): removed unneccessary variables/output
3308
3309 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
3310
3311         * as/mcs51/lkarea.c: enlarged codemap for banked memory
3312         * device/lib/mcs51/crtbank.asm: added # to 0x0F
3313
3314 2005-07-21 Raphael Neider <rneider AT web.de>
3315
3316         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
3317           architecture cannot handle them efficiently, fixes bug #1235003
3318         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
3319           check for empty sets before using them (fixes bug #1232190)
3320
3321 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
3322
3323         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
3324           (lnksect2): generate warnings for memory overlap
3325         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
3326           constseg to set the name of these segments so you can instruct the linker
3327           to place them in banks
3328         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
3329         * src/SDCCglobl.h: added MODEL_HUGE to enum,
3330           added code_seg and const_seg to options
3331         * src/SDCCglue.c (emitMaps): use options.const_seg,
3332           (createInterruptVect): put interrupt vectors in segment HOME,
3333           (glue): put HOME before static segment and put the main glue in HOME,
3334           (glue): use options.code_seg
3335         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
3336         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
3337           these segments so you can instruct the linker to place them in banks
3338           (linkEdit): use code_loc for HOME segment which should be the first
3339           segment in code memory now
3340         * src/SDCCmem.c: fixed more stuff like bug 1238386
3341         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
3342           (changePointer): don't change function pointers to code pointers for
3343           banked functions,
3344           (compareType): added exceptional check for banked function pointers
3345         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
3346         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
3347           after static in code memory
3348         * src/mcs51/gen.c: added aopLiteralLong prototype,
3349           (aopForSym): use getSize for functions,
3350           (genCall): generate banked calls over one trampoline __sdcc_banked_call
3351           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
3352           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
3353           the segment,
3354           (genPcall): use call for literal function pointers and generate banked
3355           calls over the one trampoline so there's only one place for the user to
3356           modify according to his/hers hardware,
3357           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
3358           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
3359         * src/mcs51/main.c: added keyword banked,
3360           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
3361         * support/Util/SDCCerr.c,
3362         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
3363           needed for passing the bank and address to the trampoline
3364         * device/lib/mcs51/crtbank.asm: added for bankswitching
3365         * device/lib/mcs51/Makefile: added crtbank
3366
3367 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3368
3369         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
3370           for fields at offset 0 of a struct or union as reported
3371           on 2005-07-07 in the developer mailing list.
3372
3373 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
3374
3375         * src/SDCCmem.c: fixed bug 1238386
3376
3377 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3378
3379         * src/mcs51/peeph.def: added labelrefcounting for peepholes
3380           (patch #1144962), added peephole 300, enabled 259.x
3381         * doc/sdccman.lyx: removed screenshot and provided link instead
3382
3383 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3384
3385         * doc/sdccman.lyx: added section about debugging with ddd
3386         * doc/figures/ddd_example.eps: screenshot of debugging session
3387
3388 2005-07-04 Raphael Neider <rneider AT web.de>
3389
3390         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
3391           like CODE pointers, fixes #1115683
3392         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
3393           call, fixes bugs #1232211, #1228110,
3394           fixed wrong casts to pCodeFlow from pCodeInstructions
3395
3396 2005-07-04 Raphael Neider <rneider AT web.de>
3397
3398         * src/pic/gen.c (popGet): changed assert to allow for
3399           bit operands
3400         * (popGetAddr): changed signature to provide
3401           an additional index, patched all call sites
3402         * (genCmpEq): handle literal-like operands correctly
3403         * (genAddrOf): added sanity checks on __code/__data pointers
3404         * (genAssign): added handling of symbols from __code section
3405         * (gencjne): do not generate code for comparisons whose result
3406           is neither stored nor used, fixes bug #1171114
3407         * (AccLsh, AccRsh): operate on operand instead of WREG
3408         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
3409           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
3410           by known count
3411         * rewrote complete shift-by-literal logic, commented unused
3412           functions out
3413         * (genConstPointerGet): get multiple bytes (if result size > 1),
3414           fixed handling of non-immediate addresses
3415         * (genPointerGet): handle CODE pointers like CONST pointers
3416         * (genpic14Code): insert C-SRC lines as Cource-pCodes
3417         * ({aop,op}_isLitLike): NEW, single place to decide whether an
3418           operand is to be treated as a literal or not
3419         * (mov2w,genPcall,genCmpEq),
3420           src/pic/genarith.c: use aop_isLitLike() to decide between
3421           literal/register contents
3422         * (addSign): added missing offset
3423         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
3424           only emit comment in debug-mode,
3425           use {aop,op}_isLitLike throughout the file
3426         * src/pic/glue.c: fix initializers for pointers (work in progress)
3427         * src/pic/pcode.c (get_op): honor index on _const symbols
3428         * ({reset,dump}pCodeStatistics): NEW, estimate code size
3429         * (dumppBlock): added pCode size estimation
3430         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
3431           check for IS_SYMOP before OP_SYMBOL'ing
3432         * fixed indentation, compacted switch-statements
3433         * (allocReg): find free register and allocate it instead of
3434           allocating new registers all the time
3435         * (deassignLRs): prevent POINTER_GET's from being assigned the same
3436           registers as its operands (necessary only for multibyte GETs)
3437
3438 2005-07-01 Raphael Neider <rneider AT web.de>
3439
3440         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
3441           debugging .asm-output macros FENTRY + FEXIT
3442         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
3443           way... I wonder...
3444         * (emitpComment): NEW, printf to pCode
3445         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
3446           offset handling
3447         * (popGetAddr): NEW, variant of popGet to access an immediates
3448           high(er) bytes instead of the n'th byte of memory they reference,
3449           replaced popGet with popGetAddr where neccessary
3450         * (genDataPointerGet): reactivated and fixed implementation
3451         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
3452           accesses
3453         * (genDataPointerSet): fixed multibyte assignments
3454         * (genpic14Code): fixed --i-code-in-asm handling
3455         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
3456         * (genPlus): fixed index-out-of-bounds error
3457         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
3458         * src/pic/ralloc.c: added debugging output macro FENTRY2
3459         * (spillThis): fixed indentation, enbraced for-body for clarity
3460         * (rematStr): commented out as now unused
3461         * (regTypeNum): commented out special spill case (overwrites
3462           arbitrary values)
3463         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
3464
3465 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
3466
3467         * doc/sdccman.lyx: documented sfr16/sfr32,
3468           added example for using storage class with function pointers
3469         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
3470
3471 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
3472
3473         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
3474         * device/lib/_itoa.c,
3475         * device/lib/_ltoa.c: optimized codesize
3476         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
3477           but don't know how to suppress the double warning.
3478         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
3479         * support/Util/SDCCerr.c,
3480         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
3481
3482 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
3483
3484         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
3485           fixed old K&R prototypes
3486         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
3487         * device/lib/_gptrget.c,
3488         * device/lib/_gptrgetc.c,
3489         * device/lib/_gptrput.c: changed versions for new memory indicator values,
3490           also new versions for small generic pointers and banked generic pointers
3491         * src/port.h: added const_name
3492         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
3493         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
3494         * src/SDCCcse.c (findPrevIc): check all associative operators
3495         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
3496         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
3497         * src/SDCCmem.c: updated comments,
3498           set far-space to 0 for pdata, results in optimized code
3499         * src/SDCCmem.h: added macro CONST_NAME
3500         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
3501           moving the info into the highest bits, see also gptrget/gptrput
3502         * src/src.dsp: added sdcc.ico to project files
3503         * src/avr/gen.c (genCast): fixed bug 0x%d
3504         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
3505         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
3506           relation between ptr_type and DCL_TYPE,
3507           (genCast): fixed bug 0x%d
3508         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
3509           (CODE)" for const_name
3510         * src/hc08/gen.c (genCast): fixed bug 0x%d
3511         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
3512           (hc08_port): added "CONST (CODE)" for const_name
3513         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
3514           (aopForRemat, adjustArithmeticResult): disconnected direct relation
3515           between ptr_type and DCL_TYPE,
3516           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
3517           operand* and took AOP() inside function so sfr-ness can be checked,
3518           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
3519           new prototype,
3520           (genFunction, genEndFunction): optimized stack setup,
3521           (genMinus): optimized for literals with ending zeroes (in bytes),
3522           (genCast): fixed bug 0x%d
3523         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
3524           (mcs51_port): added "CONST (CODE)" for const_name
3525         * src/mcs51/peeph.def: made rule 226 more generic
3526         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
3527         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
3528         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
3529         * src/z80/main.c (z80_port): added NULL for const_name,
3530           (gbz80_port): added NULL for const_name
3531         * support/regression/tests/bug663539.c,
3532         * support/regression/tests/sfr16.c: new tests
3533
3534 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3535
3536         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
3537
3538 2005-06-24 Raphael Neider <rneider AT web.de>
3539
3540         * device/lib/pic16/libdev/pic18f[68][567]20.c:
3541           corrected typos...
3542         * device/include/pic16/signal.h: added USBIF
3543           and SIG_USB
3544
3545 2005-06-24 Raphael Neider <rneider AT web.de>
3546
3547         * device/lib/pic16/libdev/pic18f2455.c,
3548           device/include/pic16/pic18f2455.h: NEW
3549         * device/include/pic16/pic18fregs.h,
3550           device/lib/pic16/pics.all,
3551           src/pic16/device.c: added 18f2455
3552         * device/lib/pic16/libdev/pic18f[68][567]20.c,
3553           device/include/pic16/{pic18f[68][567].h,usart.h}:
3554           replaced MULTIPLE_USARTS define with more relaible
3555           compatibility sfrs (for USART access)
3556
3557 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
3558
3559         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
3560           and the output asm file line is printed on two lines.
3561
3562 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3563
3564         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
3565           BGT, BLE, BHI, and BLS instructions
3566         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
3567           genCmpEq): removed
3568         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
3569           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
3570           fixes bug #1216342
3571         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
3572
3573 2005-06-15 Raphael Neider <rneider AT web.de>
3574
3575         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
3576         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
3577         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
3578           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
3579           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
3580
3581 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3582
3583         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
3584           Marcel Telka in bug #1215704
3585
3586 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
3587
3588         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
3589           located in shared memory bank.
3590
3591 2005-05-31 Raphael Neider <rneider AT web.de>
3592
3593         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
3594           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
3595           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
3596
3597 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
3598
3599         * device/lib/_strncpy.c: fixed the fix
3600
3601 2005-05-26 Raphael Neider <rneider AT web.de>
3602
3603         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
3604           initializers with \0, bug #1208187
3605         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
3606           intializers with \0, bug #1208187
3607
3608 2005-05-26 Raphael Neider <rneider AT web.de>
3609
3610         * src/pic16/glue.c (pic16_printIvalChar): fixed string
3611           initializers with \0, bug #1208187
3612         * src/pic16/main.c (_process_pragma): added sanity checks
3613           for stack position and size, emit warnings when appropriate
3614
3615 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3616
3617         * device/lib/_strncpy.c: fixed not filling with \0
3618
3619 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3620
3621         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
3622           createFunction),
3623         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
3624           compound_statement),
3625         * src/SDCCsymt.h,
3626         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
3627
3628 2005-05-24 Raphael Neider <rneider AT web.de>
3629
3630         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
3631
3632 2005-05-24 Raphael Neider <rneider AT web.de>
3633
3634         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
3635           TRISE definitions, closes bug #1162453
3636
3637 2005-05-22 Raphael Neider <rneider AT web.de>
3638
3639         * src/pic16/main.c (_process_pragma): check for missing
3640           arguments to pragmas code and udata
3641         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
3642           consistency fixes to match other headers (thanks to Jim Paris)
3643         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
3644
3645 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3646
3647         * src/SDCCicode.c (isOperandEqual): fixed missing ;
3648
3649 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
3650
3651         * support/regression/tests/bug1198642.c: new test
3652         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
3653         * src/SDCCcse.c (findPrevIc): added comment, please have a look
3654         * support/scripts/resource.h,
3655         * support/scripts/resource.rc,
3656         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
3657         * support/scripts/sdcc.ico: added 32x32 icon
3658
3659 2005-05-18 Raphael Neider <rneider AT web.de>
3660
3661         * device/lib/pic16/libdev/pic18f*.c,
3662         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
3663           keywords to "__sfr" and "__at (X)"
3664         * device/include/pic16/pic18fregs.h: added pic18f4520
3665         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
3666           #1203088 (MPLAB compatibility)
3667
3668 2005-05-17 Raphael Neider <rneider AT web.de>
3669
3670         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
3671         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
3672         * device/lib/pic16/pics.all: added new devices
3673         * src/pic16/device.c: added support for pic18f4520
3674
3675 2005-05-16 Raphael Neider <rneider AT web.de>
3676         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
3677         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
3678         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
3679           convenience function for bit access
3680
3681 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3682
3683         * device/lib/printf_large.c: fixed bug 1193299
3684         * support/regression/tests/bug1057979.c: added test %3.3s
3685
3686 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3687
3688         * device/include/mcs51/8051.h,
3689         * device/include/mcs51/8052.h: made parseable with lint
3690         * device/include/mcs51/lint.h: added include file for (sp)lint
3691         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
3692         * doc/cdbfileformat.lyx,
3693         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
3694
3695 2005-05-14 Raphael Neider <rneider AT web.de>
3696
3697         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
3698         * device/lib/pic16/libc/stdlib/itoa.c (new)
3699         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
3700         * device/lib/pic16/libio/Makefile: exclude subdir according to
3701           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
3702         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
3703         * src/pic16/gen.c (genFunction): prevent annoying warning
3704         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
3705           nameclashes on BeOS
3706         * support/cpp2/cppmain.c (cpp_output_string): new
3707         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
3708           fixes bug 1116802
3709
3710 2005-05-13 Borut Razem <borut.razem AT siol.net>
3711
3712         * src/SDCCmain.c (linkEdit): fixed bug 1195202
3713
3714 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3715
3716         * .version: changed to version 2.5.1; back to bleeding edge development
3717
3718 2005-05-11 Borut Razem <borut.razem AT siol.net>
3719
3720         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
3721           generate PDF version 1.3 documents
3722
3723 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3724
3725         * .version: changed to version 2.5.0
3726
3727 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3728
3729         * doc/sdccman.lyx: updated weblinks, index and smaller updates
3730
3731 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3732
3733         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
3734         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
3735         well as many smaller updates.
3736         * .version: changed to version 2.5.0-pre1
3737
3738 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3739
3740         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
3741
3742 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3743
3744         * support/regression/tests/bug1185672.c: added
3745         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
3746           bug 1185672
3747         * src/mcs51/gen.c (genCall): added comments, made it look safer
3748         * src/mcs51/gen.c (genEndFunction): simplified
3749
3750 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3751
3752         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
3753
3754 2005-04-14 Borut Razem <borut.razem AT siol.net>
3755
3756         * fixed bug 1045046 - SIGSEGV with really simple code?:
3757           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
3758           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
3759
3760 2005-04-14 Borut Razem <borut.razem AT siol.net>
3761
3762         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
3763           src/pic16/device.h: temporarily disabled experimental #inline pragma
3764           for 2.5.0 release
3765
3766 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
3767
3768         * device/include/z80/stdio.h,
3769         * device/include/z80/string.h: removed these highly incomplete files so
3770           SDCC can use the default ones in device/include/
3771
3772 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3773
3774         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
3775         gcc warning.
3776         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
3777         fix sdcpp warnings.
3778
3779 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3780
3781         * device/include/malloc.h: removed redundant __reentrant prototypes
3782         * device/lib/_mullong.c: added working xstack variant in asm (C version
3783           doesn't pass regression tests)
3784         * device/lib/bpx.c: used __data and made bpx char for mcs51
3785         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
3786           (createFunction): fixed bug with xstackPtr
3787         * src/SDCCcse.c: corrected comments
3788         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
3789           (killDeadCode, eBBlockFromiCode): removed unused code
3790         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
3791           corrected comments
3792         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
3793           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
3794           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
3795           (genModOneByte): fixed warning in MSVC
3796         * src/mcs51/main.c (): added comments
3797         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
3798
3799 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3800
3801         * src/SDCCmain.c (linkEdit): oops, changed one line too many
3802
3803 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
3804
3805         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
3806
3807 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
3808
3809         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
3810         characters arrays of larger size than the declared one.
3811
3812 2005-04-10 Borut Razem <borut.razem AT siol.net>
3813
3814         * src/pic/gen.c (genInline),
3815           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
3816           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
3817           (findNextInstruction), (findPrevInstruction),
3818           (findInstructionUsingLabel),
3819           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
3820         * src/pic/pcode.c (findLabel): added missing '\n'
3821         * src/src.dsp: added SDCCdwarf2.c to the project
3822
3823 2005-04-09 Borut Razem <borut.razem AT siol.net>
3824
3825         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
3826
3827 2005-04-08 Raphael Neider <rneider AT web.de>
3828
3829         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
3830           into the chain after a given one) and mergeDefmapSymbols (combine
3831           defmap entries for each symbol per pcode)
3832         * (createDefmap): have defmap entries merged in the end
3833         * (defmapReplaceSymRef): split defmap entries covering two accesses to
3834           a symbol before replacing one access type's symbol, merge symbols in
3835           the end (replacement symbol might already have an entry)
3836         * (assignValnums): keep reference to written WREG intact
3837
3838 2005-04-08 Raphael Neider <rneider AT web.de>
3839
3840         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
3841           Alpha)
3842
3843 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
3844
3845         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
3846         bytes
3847
3848 2005-04-07 Raphael Neider <rneider AT web.de>
3849
3850         * device/include/pic16/usart.h: added compatibility defines for
3851           devices with more than one USART
3852         * device/include/pic16/pic18f[68][567]20.h: activated above defines
3853
3854 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3855
3856         * device/lib/Makefile.in: updated for port specific include
3857
3858 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3859
3860         * support/regression/ports/mcs51/spec.mk: added mcs51 include
3861
3862 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3863
3864         * device/include/8051.h,
3865         * device/include/8052.h,
3866         * device/include/at89S8252.h,
3867         * device/include/at89c55.h,
3868         * device/include/at89x051.h,
3869         * device/include/at89x51.h,
3870         * device/include/at89x52.h,
3871         * device/include/mcs51reg.h,
3872         * device/include/reg51.h,
3873         * device/include/reg764.h,
3874         * device/include/regc515c.h,
3875         * device/include/sab80515.h: (re)moved these 12 files
3876         * device/include/mcs51/8051.h,
3877         * device/include/mcs51/8052.h,
3878         * device/include/mcs51/at89S8252.h,
3879         * device/include/mcs51/at89c55.h,
3880         * device/include/mcs51/at89x051.h,
3881         * device/include/mcs51/at89x51.h,
3882         * device/include/mcs51/at89x52.h,
3883         * device/include/mcs51/mcs51reg.h,
3884         * device/include/mcs51/reg51.h,
3885         * device/include/mcs51/reg764.h,
3886         * device/include/mcs51/regc515c.h,
3887         * device/include/mcs51/sab80515.h: and added them here
3888
3889 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3890
3891         * device/include/stdarg.h: changed SDCC specific keywords to double
3892           underlined form.
3893         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
3894           mcs51 and ds390.
3895         * device/include/hc08/mc68hc908gp32.h,
3896         * device/include/hc08/mc68hc908jb8.h,
3897         * device/include/hc08/mc68hc908jkjl.h,
3898         * device/include/hc08/mc68hc908qy.h: fixed comments
3899         * device/include/mcs51/README: updated
3900         * device/include/mcs51/c8051f120.h: added PINRSF
3901         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
3902         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
3903           amidst code. Also inline is not supported.
3904
3905 2005-04-06 Raphael Neider <rneider AT web.de>
3906
3907         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
3908         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
3909           callers stack/frame pointers
3910
3911 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3912
3913         * device/include/pic16/usart.h: added, missing in previous commit,
3914         * device/include/pic16/adc.h: fixed typo,
3915         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
3916         commit,
3917         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
3918         <p18fxxx.inc>
3919         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
3920         uninitialized because a bug appears with gplink
3921         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
3922         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
3923         complains for unrecognised option
3924
3925 2005-04-05 Raphael Neider <rneider AT web.de>
3926
3927         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
3928           structs as well (using memcpy)
3929         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
3930           on ISRs (GOTO has no label)
3931         * src/pic16/device.h: added OF_OPTIMIZE_DF
3932         * src/pic16/main.c: added compiler switch --optimize-df to enable the
3933           new data flow analysis/optimization
3934         * src/pic16/pcode.c: added (prototypes for and implementation of)
3935           dataflow analysis functions, fixed pCodeInstructions' inCond and
3936           outCond values, made RCALL a branch instruction
3937         * (pic16_unlinkpCode): keep C line if possible
3938         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
3939           C line moved if possible
3940         * (pic16_getRegFrompCodeOp): NEW, improved version of...
3941         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
3942           to use new pic16_getRegFrompCodeOp (works for more SFRs)
3943         * (pic16_BuildFlow): fixed skip instructions with label (did not start
3944           new flow)
3945         * (pic16_getJumptabpCode): NEW, needed in...
3946         * (LinkFlow): fixed handling of jumptables, calls and conditional
3947           branches
3948         * (pic16_InsertCommentAfter): NEW
3949         * (pic16_pCodeReplace): made verbose and flow preserving
3950         * (AnalyzeFlow): added call to data flow analysis
3951         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
3952         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
3953         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
3954
3955 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3956
3957         * src/SDCCast.c (decorateType): fixed bug #1105626
3958
3959 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
3960
3961         * device/include/asm/pic16/features.h,
3962         * pic18f*.h headers,
3963         * device/include/pic16/adc.h,
3964         * device/include/pic16/delay.h,
3965         * device/include/pic16/i2c.h,
3966         * device/include/pic16/malloc.h,
3967         * device/include/pic16/stdio.h,
3968         * device/include/pic16/stdlib.h,
3969         * device/include/pic16/string.h,
3970         * device/lib/pic16/libc/stdio/printf_tiny.c,
3971         * device/lib/pic16/libc/stdio/printf_small.c,
3972         * device/lib/pic16/libc/stdio/strmgpsim.c,
3973         * device/lib/pic16/libc/stdio/strmmssp.c,
3974         * device/lib/pic16/libc/stdio/strmusart.c,
3975         * device/lib/pic16/libc/stdio/vfprintf.c,
3976         * device/lib/pic16/libc/stdlib/ltoa.c,
3977         * device/lib/pic16/libc/stdlib/putchar.c,
3978         * device/lib/pic16/libc/stdlib/x_ftoa.c,
3979         * device/lib/pic16/libc/stdlib/memchrpgm.c,
3980         * device/lib/pic16/libc/stdlib/memchrram.c,
3981         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
3982         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
3983         * device/lib/pic16/libio/adc/adcbusy.c,
3984         * device/lib/pic16/libio/adc/adcread.c,
3985         * device/lib/pic16/libio/adc/adcsetch.c,
3986         * device/lib/pic16/libio/usart/ubaud.c,
3987         * device/lib/pic16/libio/usart/ubusy.c,
3988         * device/lib/pic16/libio/usart/udrdy.c,
3989         * device/lib/pic16/libio/usart/uopen.c,
3990         * device/lib/pic16/libio/usart/uputc.c,
3991         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
3992         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
3993         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
3994         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
3995         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
3996         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
3997         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
3998         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
3999         specific keywords to double underlined form,
4000         * device/lib/pic16/libc/Makefile.rules,
4001         * device/lib/pic16/libsdcc/Makefile.rules,
4002         * device/lib/pic16/libm/Makefile,
4003         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
4004         to compile with C standard set in Makefile.common
4005         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
4006         rand.c and crc.c in compilation process,
4007         * device/lib/pic16/libsdcc/int/divuint.c,
4008         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
4009         `c' from signed to unsigned,
4010         * device/lib/pic16/startup/crt0.c,
4011         * device/lib/pic16/startup/crt0i.c,
4012         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
4013         keywords to double underlined form, bug fixes in _do_cinit function
4014         which prevented the correct initialization of the .idata segment,
4015         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
4016         core to enter a infinite loop
4017         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
4018
4019 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4020
4021         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
4022
4023 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4024
4025         * device/include/Makefile.in: add support for hc08 subdirectory
4026         * device/include/hc08/: new subdirectory
4027         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
4028         Lucas Loizaga, thanks!
4029         * device/include/hc08/mc68hc908qy.h,
4030         * device/include/hc08/mc68hc908gp32.h,
4031         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
4032         their own directory. Changed internal macro names to use the compiler
4033         reserved namespace. Changed SDCC specific keywords to double
4034         underlined form.
4035         * device/include/math.h,
4036         * device/include/malloc.h,
4037         * device/include/stdarg.h,
4038         * device/include/stdbool.h
4039         * device/include/string.h,
4040         * device/include/tinibios.h,
4041         * device/include/ds400rom.h,
4042         * device/include/8051.h,
4043         * device/include/8052.h,
4044         * device/include/80c51xa.h,
4045         * device/include/at89c55.h,
4046         * device/include/at89S8252.h,
4047         * device/include/at89x51.h,
4048         * device/include/at89x52.h,
4049         * device/include/ds80c390.h,
4050         * device/include/reg764.h,
4051         * device/include/regc515c.h,
4052         * device/include/sab80515.h,
4053         * device/include/mcs51/c8051f000.h,
4054         * device/include/mcs51/c8051f018.h,
4055         * device/include/mcs51/c8051f020.h,
4056         * device/include/mcs51/c8051f040.h,
4057         * device/include/mcs51/c8051f060.h,
4058         * device/include/mcs51/c8051f120.h,
4059         * device/include/mcs51/c8051f300.h,
4060         * device/include/mcs51/c8051f310.h,
4061         * device/include/mcs51/c8051f320.h,
4062         * device/include/mcs51/c8051f330.h,
4063         * device/include/mcs51/c8051f350.h,
4064         * device/include/z180.h: Changed SDCC specific keywords to double
4065         underlined form.
4066
4067 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
4068
4069         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
4070         18F4455,
4071         * (pic16_assignConfigWordValue): disable testing of configuration
4072         register value with config mask,
4073         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
4074         function with port->fun_prefix,
4075         * (genFunction): when generating a naked interrupt function never
4076         create an absolute segment placed in interrupt vector address, place
4077         the actual interrupt function at IVA instead, when an interrupt
4078         function is generated with unspecified interrupt then do not create
4079         the absolute section,
4080         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
4081         code for generating a call to generic pointer get/put function with
4082         a call to function pic16_callGenericPointer(),
4083         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
4084         the call to the generic pointer get/put functions with prefixing the
4085         function name with port->fun_prefix,
4086         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
4087         * src/pic16/main.c (_process_pragma): prefix function with
4088         port->fun_prefix,
4089         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
4090         calling assembler, old 18Fxxxx macro is deprecated,
4091         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
4092         PC_ASMDIR in while condition,
4093         * (findInstruction): add PC_ASMDIR in while condition,
4094         * (buildCallTree): prefix main with port->fun_prefix,
4095         * (pic16_pCode2str): fixed bug that didn't emit the memory access
4096         identifier for variable with banked access in instructions BTFSS,
4097         BTFSC, BCF, BSF, BTG
4098         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
4099         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
4100         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
4101         perform optimization when enviroment variable NO_REG_OPT is set,
4102         * (insideLRBlock): NEW, return 1 if register is inside an
4103         INF_LOCALREGS block,
4104         * (RemoveRegFromLRBlock): remove a register that is completely
4105         eliminated by register optimization, but it is still left in local
4106         register store/restore in/from stack block,
4107         * (Remove2pcodes): after removing register, check to see if it
4108         should be removed from local register store/restore in/from stack
4109         block,
4110         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
4111         DUMMY_READ_VOLATILE,
4112
4113         * device/include/pic16/adc.h: minor prototype modifications and
4114         update,
4115         * device/include/pic16/malloc.h: added GPL notice various
4116         modifications,
4117         * device/include/pic16/stdint.h: NEW, standard header for ints
4118         * device/include/pic16/delay.h: NEW, header for delay functions,
4119         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
4120         delay1mtcy,
4121         * device/include/pic16/signal.h: NEW, header providing helper macros
4122         for implementing signal handlers,
4123         * device/include/pic16/stdio.h: added prototypes for functions,
4124         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
4125         prototypes for stdin and stdout, added macro PUTCHAR to
4126         automatically implement putchar function prototype,
4127         * device/include/pic16/usart.h: modified and updated USART library,
4128         * device/lib/pic16/libio/adc/,
4129         * device/lib/pic16/libio/i2c: some modifications to improve library
4130         performance,
4131         * device/lib/pic16/libc/stdio/: modifications for the new printf*
4132         family of functions,
4133         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
4134         family of functions and other sources,
4135         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
4136         of the PIC18Fxx[28] devices,
4137         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
4138         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
4139         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
4140         _do_cinit function, because the previous failed when local variables
4141         where not placed in the same memory bank,
4142         * device/lib/pic16/libsdcc/char/: various modifications to improve
4143         library performance,
4144         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
4145         information on the new functions of the c library and more...
4146
4147 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4148
4149         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
4150
4151 2005-03-26 Raphael Neider <rneider AT web.de>
4152
4153         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
4154           if condition == CARRY)
4155         * (genCmp): adapted to new genSkipc semantics
4156         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
4157           on rIfx (genCmp was broken)
4158
4159 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4160
4161         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
4162         * src/z80/main.c (_keywords[]),
4163         * src/SDCCglobal.h (struct options),
4164         * src/SDCC.y,
4165         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
4166         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
4167         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
4168         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
4169         always available in leading double underscore form. The C99 support is
4170         mostly missing, but it's a start.
4171         * support/regression/tests/bug-227710.c: fixed nonconforming use of
4172         reserved identifier "__data".
4173
4174 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
4175
4176         * src/mcs51/peeph.def: fixed bug 1170013
4177
4178 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
4179
4180         * device/include/mcs51reg.h: fixed bug 842007
4181
4182 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4183
4184         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
4185         last time.
4186
4187 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4188
4189         * src/port.h (struct PORT),
4190         * src/avr/ralloc.c (avr_assignRegisters),
4191         * src/avr/main.c,
4192         * src/ds390/ralloc.c (ds390_assignRegisters),
4193         * src/ds390/main.c,
4194         * src/hc08/ralloc.c (hc08_assignRegisters),
4195         * src/hc08/main.c,
4196         * src/mcs51/ralloc.c (mcs51_assignRegisters),
4197         * src/mcs51/main.c,
4198         * src/pic/ralloc.c (pic14_assignRegisters),
4199         * src/pic/main.c,
4200         * src/pic16/ralloc.c (pic16_assignRegisters),
4201         * src/pic16/main.c,
4202         * src/xa51/ralloc.c (xa51_assignRegisters),
4203         * src/xa51/main.c,
4204         * src/z80/ralloc.c (z80_assignRegisters),
4205         * src/z80/ralloc.h,
4206         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
4207         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
4208         * src/SDCCcse.h,
4209         * src/SDCCdflow.c (computeDataFlow),
4210         * src/SDCCdflow.h,
4211         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
4212         * src/SDCCloop.h,
4213         * src/SDCCcflow.c (*),
4214         * src/SDCCcflow.h,
4215         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
4216         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
4217         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
4218         immedDom() returning wrong block; probably fixes bug #1160833)
4219
4220 2005-03-20 Borut Razem <borut.razem AT siol.net>
4221
4222         * support/scripts/inc2h.pl: WIN32 port
4223
4224 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
4225
4226         * device/lib/makefile.in: added abs.c and labs.c
4227
4228 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
4229
4230         * device/include/stdint.h: added
4231         * device/lib/abs.c: added
4232         * device/lib/labs.c: added
4233         * device/include/stdlib.h: added abs() and labs() prototypes
4234         * device/lib/libsdcc.lib: added abs and labs
4235         * device/include/float.h,
4236         * device/lib/_fsmul.c,
4237         * device/lib/printf_fast.c,
4238         * device/lib/printf_tiny.c: updated comments
4239
4240 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4241
4242         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
4243         bug #1164313
4244
4245 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4246
4247         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
4248         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
4249
4250 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
4251
4252         * device/lib/printf_large.c: removed inline assembly for portability and
4253           readability. Use printf_fast if speed or size are more important.
4254         * src/pic16/gen.c: removed conditions around use of DEBUGpc
4255         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
4256
4257 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
4258
4259         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
4260         prevent compiler warning
4261
4262 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
4263
4264         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
4265         moved to level 0 and declared as static. Also they are explicit
4266         placed in access bank. This was necessery because some times they
4267         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
4268         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
4269         optimizations. Currently only compare to unsigned char is implemented,
4270         * src/pic16/gen.c: added fReturnIdx array,
4271         * (struct resolvedIfx) is moved to gen.h and made public,
4272         * (struct _G): added sregsAlloc and sregsAllocSet fields,
4273         * (aopForSym): added an optimization to directly store in stack of
4274         the operand of a SEND iCode,
4275         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
4276         but as registers instead (AOP_REG) using the fReturnIdx array,
4277         * (pic16_freeAsmop): remove the freed register from the
4278         _G.sregsAlloc field,
4279         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
4280         a compare of 'WREG',
4281         * (pic16_popGetTempRegCond): changed function prototype, now
4282         function takes also a bitVector argument v which holds the current
4283         set of registers that are allocated for stack access by aopForSym,
4284         registers allocated in aopForSym for accessing stack symbols are not
4285         any more part of the functions usedRegs field,
4286         * (genCall): some times aopOp is called for a stack variable to be
4287         send, aopForSym might perform the push, if this is true make sure
4288         that genCall doesn't push the variable twice by testing _G.resDirect,
4289         * (genFunction): changed testing for unspecified interrupt number
4290         from 256 to INTNO_UNSPEC,
4291         * modified selection scheme of frame pointer generation. Previously
4292         if function did use local registers a frame pointer was generated,
4293         now a frame pointer is generated only if function has arguments
4294         (that need PLUSW2 register access), or has stack arguments, or the
4295         compiler is not instructed to omit the frame pointer,
4296         * (genEndFunction): before restoring local registers that were saved
4297         in the function preamble, also restore the registers that *might*
4298         have been allocated for stack access,
4299         * (genRet): removed some old comments,
4300         * (genCmp, the active (RN's) version): added a call to the
4301         pic16_genCmp_special function to perform the compare with a more
4302         robust and optimized way,
4303         * (genInline): a feature has been added in inline code generation,
4304         which allows a wildcard variable substitution when writing inline
4305         assembly. Code is incomplete and experimental therefore undocumented,
4306         * (genCast): changed order of aopOp for result and right to allow
4307         aopForSym to directly load the result if possible,
4308         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
4309         perform an optimized compare on some selected special occasions,
4310         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
4311         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
4312         generate an IVT any more,
4313         * src/pic16/main.c (pic16_optionsTable): added command line option
4314         --optimize-cmp,
4315         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
4316         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
4317         macros,
4318         * src/pic16/NOTES: Raphael Neider added in list of active developers
4319         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
4320         jumptable_end to prevent bug #,
4321         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
4322         inCond and outCond fields,
4323         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
4324         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
4325         turn off register spilling,
4326         * (packRegsForOneUse): synced with other ports' versions although it
4327         is not used currently,
4328         * (pic16_packRegisters): added an optimization while reading
4329         structure bitfields, some registers may be saved (malloc code is
4330         decreased by 80 bytes)
4331
4332 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
4333
4334         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
4335         left is a bitfield, if yes, then don't optimize assignment. Perhaps
4336         this can be optimized more?
4337
4338 2005-03-10 Raphael Neider <rneider AT web.de>
4339
4340         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4341           genNearPointerGet): (hopefully) fixed access to bitfields via
4342           pointers (p->bitN = x; and x = p->bitN; failed)
4343
4344 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
4345
4346         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
4347
4348 2005-03-09 Raphael Neider <rneider AT web.de>
4349
4350         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
4351
4352 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
4353
4354         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
4355         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
4356           (regTypeNum): set REG_BIT type if necessary
4357         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
4358         * support/regression/tests/critical.c: check bug 1144613
4359
4360 2005-03-02 Raphael Neider <rneider AT web.de>
4361
4362         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
4363
4364 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4365
4366         * src/avr/ralloc.c (serialRegAssign),
4367         * src/ds390/ralloc.c (serialRegAssign),
4368         * src/hc08/ralloc.c (serialRegAssign),
4369         * src/mcs51/ralloc.c (serialRegAssign),
4370         * src/pic/ralloc.c (serialRegAssign),
4371         * src/pic16/ralloc.c (serialRegAssign),
4372         * src/xa51/ralloc.c (serialRegAssign),
4373         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
4374
4375 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
4376
4377         * src/SDCCast.c (decorateType): fixed bug 1124787
4378
4379 2005-02-20 Hubert Sack <sack AT digiplan.de>
4380         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4381
4382         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
4383         patch #1121755
4384
4385 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4386
4387         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
4388         to keep the correct label reference count when adding/removing references
4389         to labels. A peephole file using this is appended to patch #1144962.
4390
4391 2005-02-14 Raphael Neider <rneider AT web.de>
4392
4393         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
4394         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
4395         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
4396           retrievals of result operand's value on assignment
4397
4398 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
4399
4400         * device/include/pic16/string.h: modified prototype for memccpy()
4401         to memccpy(void *, void *, char, size_t)
4402         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
4403         check whether to omit frame pointer or not,
4404         * (genInline): convert all occurences of "\n" to LF in inline
4405         assembler blocks, this helps formatting the inline text,
4406         * (pic16_loadFSR0): modified prototype,
4407         * (genNearPointerGet, genNearPointerSet): reorganization of code,
4408         removed some 8051 legacy code,
4409         * (genPackBits): enabled handling bitfields exceeding one byte in size,
4410         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
4411         before allocating temporary registers in functions,
4412
4413 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4414
4415         * support/regression/tests/bitvars.c: corrected the "fix"
4416
4417 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4418
4419         * support/regression/tests/bitvars.c,
4420         * support/regression/tests/bitwise.c,
4421         * support/regression/tests/rotate.c: "fixed" problems on Alpha
4422
4423 2005-02-10 Raphael Neider <rneider AT web.de>
4424
4425         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
4426           different size for Alpha
4427         * src/pic16/gen.c (genCmpEq) : improved compare with 0
4428
4429 2005-02-09 Raphael Neider <rneider AT web.de>
4430
4431         * src/SDCC.lex(doPragma) : save and restore warning options as well
4432           (also added new stack plus clone- and copyAndFreeSDCCERRG())
4433         * have #pragma less_pedantic set the errorlevel to WARNING
4434           (fixes #1117001)
4435         * (cloneOptimize) : fixed wrong malloc's size
4436         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
4437           facilitate correct handling of #pragma (save|restore)
4438
4439 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4440
4441         * src/mcs51/gen.c: removed non-standard C nameless struct/union
4442
4443 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
4444
4445         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
4446
4447 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
4448
4449         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
4450
4451 2005-02-02 Raphael Neider <rneider AT web.de>
4452
4453         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
4454         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
4455         * (pic16_storeForReturn): fixed to allow returning function pointers
4456         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
4457         * device/include/pic16/{stddef.h,stdbool.h}: added
4458
4459 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
4460
4461         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
4462
4463 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
4464
4465         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
4466         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
4467          appeared to be required
4468
4469 2005-01-31 Borut Razem <borut.razem AT siol.net>
4470
4471         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
4472           include/mcs51 and include/z80 directories to the package
4473
4474 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4475
4476         * src/hc08/gen.c (genFunction): fixed bug #1112752
4477
4478 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4479
4480         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
4481
4482 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4483
4484         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
4485
4486 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
4487
4488         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
4489
4490 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
4491
4492         * device/include/c8051fxxx.h: removed these 6 files
4493         * device/include/mcs51/c8051fxxx.h: added these 11 new files
4494
4495 2005-01-26 Raphael Neider <rneider AT web.de>
4496
4497         * src/pic16/gen.c (genAssign): fixed assignment from longs
4498           in codespace (were cut to three bytes)
4499         * (genDummyRead): implemented (except for CODESPACE...),
4500           fixed bug #1108575
4501         * src/pic16/glue.c (emitStatistics): beautified
4502         * device/lib/pic16/libm/Makefile: added include path
4503
4504 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4505
4506         * src/z80/gen.c (aopPut): fixed bug #1103902
4507
4508 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4509
4510         * device/lib/expf.c: fixed bug #1095792
4511
4512 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
4513
4514         * device/lib/pic16/libm: added Math library sources
4515
4516 2005-01-24 Raphael Neider <rneider AT web.de>
4517
4518         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
4519           to enable upcast to pCodeOpReg2 (there is no type tag to
4520           differenciate the two and pic16_popGet2p cast into PCOR2)
4521         * src/pic16/main.c (_process_pragma): fixed another malloc bug
4522           (sizeof(sectNames) changed to sizeof(sectName))
4523           Both patches fix segfaults under MinGW.
4524
4525 2005-01-23 Raphael Neider <rneider AT web.de>
4526
4527         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
4528           Safe_[mc]?alloc()'ed variables
4529         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
4530           of (byte sized) temporaries (assign them to WREG for now)
4531         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
4532           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
4533           this might fix SIGSEGVs on MinGW...
4534         * src/SDCCopt.c (killDeadCode): restored original behaviour
4535           (volatile operands might get thrown away though)
4536
4537 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
4538
4539         * src/pic16/gen.c: fixed bug #1106975,
4540         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
4541         pointer update, INTCON is saved, global interrupts are disabled and
4542         restored after updateing TOS.
4543         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
4544         * added function attribute 'shadowregs' to take advantage of shadow
4545         registers,
4546         * added function attribute 'wparam' as an alternative to the wparam
4547         pragma,
4548         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
4549         user declares a non-ISR function as 'shadowregs',
4550         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
4551
4552 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
4553
4554         * .version: bumped version number to 2.4.8
4555         * device/lib/pic16/pics.all: list of PIC18F devices supported by
4556         pic16 port,
4557         * device/lib/pic16/libio/i2c/: I2C module support library,
4558         * device/include/pic16/i2c.h: I2C support library header,
4559         * device/lib/pic16/libc/stdio/: standard IO support sources,
4560         * (printf_small.c): printf_small() source, supports float print,
4561         * (printf_tiny.c): printf_tiny() source, does not support floats,
4562         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
4563         enable global optimizations for entire library source, other
4564         Makefiles in the source tree are also modified to reflect this,
4565         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
4566         function,
4567         * doc/sdccman.lyx: updated to reflect new changes,
4568         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
4569         sym->onStack if-case,
4570         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
4571         sbit, idata, _idata, xdata, _xdata,
4572         * added pragma library, to link an external library, (see doc),
4573         * removed command line options, --pomit-config-words, --pomit-ivt,
4574         --pleave-reset-vector,
4575         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
4576         when calling assembler to reflect memory model used, also define
4577         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
4578         reflect stack model used,
4579         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
4580         on stack return NULL,
4581
4582 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4583
4584         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
4585           of the operands is volatile. Fixes #1020220
4586
4587 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4588
4589         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
4590         * (OptimizeRegUsage): make sure that there is really no other flow where
4591           the first pCode is used
4592
4593 2005-01-22 Raphael Neider <rneider AT web.de>
4594
4595         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
4596           to fix #1106967 (pCode->seq are not set up correctly)
4597
4598 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4599
4600         * src/SDCCglue.c (glue): make sure code area is declared before the
4601         static initialization area.
4602
4603 2005-01-21 Raphael Neider <rneider AT web.de>
4604
4605         * device/lib/Makefile.in: fixed test for pic16 install dir
4606         * device/lib/pic16/*/Makefile*: modified compile flags to enable
4607           optimizations
4608         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
4609           added --optimize-goto compiler switch and pragma wparam documentation
4610         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
4611         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
4612           and PRODH closing bug #1071770 (peephole optimizer)
4613
4614 2005-01-19 Raphael Neider <rneider AT web.de>
4615
4616         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
4617           cmdLine buffers (used when calling sdcpp...) are large enough
4618           (MAX_PATH=256 truncates arguments leading to system halts when
4619           used in MinGW...)
4620         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
4621         * (genUminus): rewritten to for efficiency
4622         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
4623           used uninitialized in some cases)
4624         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
4625           copy the third byte from the int -- now assumes 0x80 (data memory)
4626         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
4627           operands (genAddLit expects the iCode's operands to swapped as
4628           well), fixed leftover bytes (crashed for short left operands)
4629         * (pic16_genMinusDec): performance improvements, removed false
4630           PIC14 emitSKPNCs
4631         * (pic16_genMinus): fixed to cope with differently sized operands
4632         * src/pic16/glue.c (pic16_glue): added new banksel optimization
4633           for --obanksel > 1
4634         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
4635         * src/pic16/graph.[ch]: implementation of directed graphs, used by
4636           new banksel optimization
4637         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
4638           analysis for temporary registers (segfaults...)
4639         * src/pic16/peeph.def: added rule
4640
4641 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
4642
4643         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
4644         which converts a float number to its ASCII representation
4645         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
4646         functions to convert the fractional and integer part of a float to ASCII,
4647         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
4648         realloc.c): added _MALLOC_SPEC to explicit place variables in data
4649         ram
4650         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
4651         _STATMEM macros,
4652         * device/include/pic16/adc.h: added GPL info,
4653         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
4654         a pCodeOp as tested operand,
4655         * (genNearPointerGet): optimized bit testing, does not use
4656         intermediate register for bit value, test directly instead with
4657         BTFSS, BTFSC, works only for single bits,
4658         * (genpic16Code): dump the name of the iCode in the asm,
4659         * src/pic16/ralloc.c (decodeOp): removed static declaration and
4660         renamed to pic16_decodeOp,
4661         * (serialRegAssign): do not allocate a temporary register for iCode
4662         sequences that test a single bit for 1/0
4663
4664 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
4665
4666         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
4667         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
4668         access stack and frame pointers. They are initially assigned to
4669         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
4670         accessing SFRs. Updated all occurences of modification of stack or
4671         frame pointer in gen.c and pcode.c,
4672         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
4673         assigning of a literal value to pointers,
4674         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
4675         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
4676         selected
4677
4678 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
4679
4680         * doc/sdccman.lyx: update documentation about stack pragma, added
4681         some info for stack memory models
4682
4683 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4684
4685         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
4686
4687 2005-01-08 Raphael Neider <rneider AT web.de>
4688
4689         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
4690           udata sections to fix bug #1097823
4691
4692 2005-01-05 Raphael Neider <rneider AT web.de>
4693
4694         * src/pic16/gen.c (genGenericShift): added handling of differently
4695           sized left operand and result
4696
4697 2005-01-04 Raphael Neider <rneider AT web.de>
4698
4699         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
4700         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
4701           to hold the condition bit)
4702         * added new version of genCmp (old code available via #define)
4703         * added new version of genShiftLeft/genShiftRight in a generic
4704           way, now supports shifting by negative values
4705         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
4706           shiftCount (expected by genGenericShift)
4707         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
4708         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
4709           dump
4710         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
4711           is an invalid literal too...)
4712
4713 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
4714
4715         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
4716         from Raphael Neider,
4717         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
4718         for 8-bit literals. This fixes some literal operands which are sign
4719         extended to 16-bits ints when instruction needs only 8-bits.
4720
4721 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
4722
4723         * device/lib/logf.c: added mcs51 assembly version
4724         * device/lib/expf.c: added mcs51 assembly version
4725         * device/lib/_logexpf.c: new shared asm code for expf and logf
4726         * device/include/math.h: add defines for assembly math library
4727         * device/lib/Makefile.in: build new _logexpf.c
4728         * device/lib/libfloat.lib: use new _logexpf.c
4729
4730 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4731
4732         * src/pic/device.c
4733         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
4734           device types which have less than 0x7f registers.
4735
4736 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4737
4738         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
4739
4740 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4741
4742         * device/lib/printf_fast.c: only build on supported arch.
4743         * device/lib/printf_tiny.c: only build on supported arch.
4744         * device/lib/printf_fast_f.c: only build if asm float lib
4745         * device/lib/_fsget1arg.c: only build if asm float lib
4746         * device/lib/_fsget2args.c: only build if asm float lib
4747         * device/lib/_fsnormalize.c: only build if asm float lib
4748         * device/lib/_fsreturnval.c: only build if asm float lib
4749         * device/lib/_fsrshift.c: only build if asm float lib
4750         * device/lib/_fsswapargs.c: only build if asm float lib
4751         * device/include/stdio.h: don't provide print_fast,
4752           print_fast_f, print_tiny prototypes if --xstack used
4753
4754 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
4755
4756         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
4757         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
4758           to the SOURCES
4759
4760 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4761
4762         * device/lib/printf_fast_f.c: same as printf_fast, but
4763           with floating point enabled
4764         * device/lib/printf_fast.c: minor tweaks
4765         * device/include/stdio.h: add printf_fast_f
4766
4767 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4768
4769         * src/SDCCmain.c: make --float-reent default for mcs51
4770         * device/lib/_fsadd.c: added mcs51 assembly version
4771         * device/lib/_fssub.c: added mcs51 assembly version
4772         * device/lib/_fsmul.c: added mcs51 assembly version
4773         * device/lib/_fsdiv.c: added mcs51 assembly version
4774         * device/lib/_fseq.c: added mcs51 assembly version
4775         * device/lib/_fsneq.c: added mcs51 assembly version
4776         * device/lib/_fsgt.c: added mcs51 assembly version
4777         * device/lib/_fslt.c: added mcs51 assembly version
4778         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
4779         * device/lib/Makefile.in: add _fscmp to build
4780         * device/lib/libfloat.lib: add _fscmp to build
4781
4782 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4783
4784         * device/lib/_fs2slong.c: added mcs51 assembly version
4785         * device/lib/_fs2sint.c: added mcs51 assembly version
4786         * device/lib/_fs2schar.c: added mcs51 assembly version
4787         * device/lib/_fs2ulong.c: added mcs51 assembly version
4788         * device/lib/_fs2uint.c: added mcs51 assembly version
4789         * device/lib/_fs2uchar.c: added mcs51 assembly version
4790         * device/lib/_slong2fs.c: added mcs51 assembly version
4791         * device/lib/_sint2fs.c: added mcs51 assembly version
4792         * device/lib/_schar2fs.c: added mcs51 assembly version
4793         * device/lib/_ulong2fs.c: added mcs51 assembly version
4794         * device/lib/_uint2fs.c: added mcs51 assembly version
4795         * device/lib/_uchar2fs.c: added mcs51 assembly version
4796         * device/include/float.h: added #define to select asm vs c
4797
4798 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
4799
4800         * device/lib/printf_fast.c: improvements to float output
4801         * device/include/float.h: add defines for assembly float library
4802         * device/lib/_fsget1arg.c: receive 1 float arg
4803         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
4804         * device/lib/_fsnormalize.c: normalize a float
4805         * device/lib/_fsreturnval.c: return float, various helper routines
4806         * device/lib/_fsrshift.c: right shift a float's mantissa
4807         * device/lib/_fsswapargs.c: swap 2 floats
4808         * device/lib/Makefile.in: build these 6 new files for mcs51
4809         * device/lib/libfloat.lib: add these 6 files to the library
4810
4811 2004-12-26 Borut Razem <borut.razem AT siol.net>
4812
4813         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
4814           built by gcc 3.4.2
4815
4816 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
4817
4818         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
4819           and fully reentrant and register bank neutral.
4820         * device/lib/printf_fast.c: added float (not enabled by default),
4821           added compact/slower integer (also not enabled by default),
4822           improved size/speed of fast integer code, other minor changes
4823         * device/include/stdio.h, device/lib/Makefile.in,
4824           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
4825
4826 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
4827
4828         * src/pic16/pcode.c: declaring variables other than at the start of a
4829           block is not supported in C by VC6.
4830
4831 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
4832
4833         * applied a previous patch from Raphael Neider that wasn't included
4834         in the previous commits, which fixes infinite loops within jumptable
4835         improvements,
4836         * made some fixes that previous patches introduced
4837
4838 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
4839
4840         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
4841         that fixes an issue with AOP_PCODE asmop's offset,
4842         * (pic16_popCopyReg): update instance field too,
4843         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
4844         function of pic port,
4845         * (genCmp, genAnd, genAssign),
4846         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
4847
4848 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
4849
4850         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
4851         variables initial values to idata section,
4852         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
4853         variables in some functions. This utilizes parmBytes field of iCode
4854         structure to hold the offset of the variable in stack. (might be
4855         able to use the stack field too?)
4856         * applied patch from Raphael Neider # ### , # ###
4857         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
4858         variable initial values in idata section,
4859         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
4860         for static variables with initial value
4861         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
4862         applied fix in while loop from Raphael Neider.
4863
4864 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
4865
4866         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
4867         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
4868         * src/ds390/ralloc.c (serialRegAssign): spill bits
4869         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
4870         * support/Util/SDCCerr.c,
4871         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
4872         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
4873         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
4874
4875 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
4876
4877         * device/include/sdcc-lib.h: inserted LGPL, added includes
4878           asm/ds390/features.h and asm/mcs51/features.h
4879         * device/include/asm/default/features.h,
4880         * device/include/asm/gbz80/features.h,
4881         * device/include/asm/z80/features.h: added empty _AUTOMEM
4882           and _STATMEM
4883         * device/include/asm/ds390/features.h,
4884         * device/include/asm/mcs51/features.h: added files with defines for
4885           _AUTOMEM and _STATMEM indicating automatic and static storage class
4886         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
4887         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
4888         * src/SDCCicode.c (geniCodeCast),
4889         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
4890         * src/SDCCloop.c (loopInduction): removed unused variable lr
4891         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
4892           to convertToFcall to include char modulo (RFE 1065037), added check
4893           if left operand is unsigned and use abs of literal value
4894         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
4895           as it doesn't work after conversion from peephole.def to peephole.rul
4896         * src/mcs51/gen.c (toBoolean): added check for size,
4897           (genModOneByte): optimized code for signed char modulo a literal
4898           power of 2 (thanks to Hubert Sack),
4899           (genRRC): removed unnecessary "clr c",
4900           (genRLC): replaced "add a,acc" with cheaper "rlc a"
4901         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
4902           jump optimization,
4903           swapped rules 256.c and 256.d,
4904           extended 256.d by using new multiple checks (thanks Erik),
4905           added rules 256.e and 256.f,
4906           updated rule 261.a and 261.b to new generated code
4907         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
4908
4909 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4910
4911         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
4912           induction related bugs, including first part of bug #1074377
4913
4914 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
4915
4916         * applied patch from bug-report #1076292,
4917         * applied patches for genAnd and Goto-optimizations for Raphael
4918         Neider,
4919         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
4920         dump a less iCode information,
4921         * src/pic16/device.h (pic16_options_t): added field debgen,
4922         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
4923         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
4924         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
4925         puclic,
4926         * (various functions): added macros FENTRY and FENTRY2 to functions,
4927         to emit function prologue,
4928         * (various functions): fixed indentation,
4929         * (genNearPointerGet): fixed loading of FSR0,
4930         * (genPackBits): applied patch from Raphael Neider to fix updating
4931         of FSR0 and touching only the modified bits,
4932         * src/pic16/genarith.c (various functions): added macros FENTRY to
4933         emit function prologue in comments,
4934         * src/pic16/pcode.h: added functions debugf2, debugf3,
4935         * src/pic16/ralloc.c: partial fix for packForPush caused
4936         segmentation fault,
4937
4938 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4939
4940         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
4941           <stsp AT users.sourceforge.net> with reversed byte order
4942         * support/regression/tests/rotate.c: added (ds390 skips some tests)
4943
4944 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4945
4946         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
4947           bug #1074377
4948         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
4949         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
4950
4951 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
4952
4953         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
4954
4955 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4956
4957         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
4958           conditions,
4959           (setFromConditionArgs): friendly operand parser for peephole rules,
4960           (operandBaseName, operandsNotRelated): new peephole condition
4961           "operandsNotRelated" -- similar to "operandsNotSame", but takes
4962           architecture specific register naming into account, handles n-way
4963           comparisons, and supports quoted literals
4964         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
4965
4966 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4967
4968         * src/mcs51/peeph.def: fixed bug #1076940
4969
4970 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
4971
4972         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
4973
4974 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4975
4976         Adding support for replacing ljmps with sjmps in jumptables
4977         generated for switch statements. For now you need to set the
4978         environment variable SDCC_SJMP_JUMPTABLE to enable this.
4979         Now 4 algorithms for mcs51 jumptable generation are used:
4980         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
4981         addresses loaded pc-relative for up to 112 cases and stack-pushing
4982         target addresses loaded with offset from dptr for up to 256 cases.
4983
4984         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
4985         * src/mcs51/main.c: adapted constants for switch table generation
4986         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
4987
4988 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
4989
4990         * device/lib/printf_large.c (_print_format): fixed bug 1073386
4991         * support/regression/tests/bug1057979.c: added test for bug 1073386
4992
4993 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
4994
4995         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
4996         compilers
4997
4998 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
4999
5000         * src/pic16/device.h,
5001         * src/pic16/genarith.c,
5002         * src/pic16/glue.c,
5003         * src/pic16/main.c,
5004         * src/pic16/pcode.c: applied patches #1068154 and #1070213
5005
5006 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
5007
5008         Large cummulative patch for pic16 port.
5009         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
5010         to call when a stack overflow occurs,
5011         * (malloc.h): added CVS Id tag,
5012         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
5013         variable,
5014         * added libc directory. The current version of LibC contains string
5015         functions, ctype functions and macros and some functions of the
5016         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
5017         be extensively tested in the future. Standard disclaimer here.
5018         Library is not automatically build yet. But one can build it by
5019         invoking 'make' inside the libc directory.
5020         * added ADC library under libio. Preliminary version yet.
5021
5022         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
5023         * src/pic16/gen.c (aopForRemat): asmop size is filled by
5024         aopForRemat() now and not by pic16_aopOp(),
5025         * (pic16_popGetTempReg): removed warning messgae when allocating
5026         temporary registers, its a buggy feature and will be removed,
5027         * (pic16_popGet): set register instance field in AOP_CRY,
5028         * (pic16_outBitC): fixed for results in size greater than 1,
5029         * (genUminusFloat): fixed for pic16, ported code from mcs51,
5030         * (pic16_storeForReturn): optimized return of 0,
5031         * (genCmp): experimental code for new genCmp which uses PIC18's
5032         special compare&skip instructions. Initial tests fail some times
5033         with variables grater than 1 byte in size, so new code is disabled,
5034         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
5035         a single bit,
5036         * (genCast): began a fix to optimize the casting of a bit to another
5037         bit, now assigning a bitfield to another bitfield will fail, sorry,
5038         * src/pic16/main.c: disabled the use of lr-support feature,
5039         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
5040         * added some function prototypes, added function _debugf prototype,
5041         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
5042         bits with offset (case PO_GPR_BIT),
5043         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
5044         command line,
5045         * (isBankInstruction): modified to return 0 for no banking instruction,
5046         and 1 for banking instruction,
5047         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
5048         caused stop processing pCodes after a inline assembly block,
5049         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
5050         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
5051         registers when it shouldn't,
5052         * src/pic16/ralloc.c (allocReg): add preliminary support for
5053         supporting a limited set of temporary registers,
5054
5055 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5056
5057         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
5058           genDataPointerSet): ensure assignments always copy in MSB to LSB
5059           order,
5060           (loadRegFromAop): recognize CLRH optimization,
5061           (genFunction): optimize RECEIVE iCodes in reentrant functions
5062
5063 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5064
5065         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
5066           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
5067           selected.
5068         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
5069         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
5070           contiguous with data
5071
5072 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5073
5074         * device/lib/_gptrget.c (_gptrget),
5075         * device/lib/_gptrgetc.c (_gptrgetc),
5076         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
5077           instead of sjmp to ret
5078         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
5079           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
5080
5081 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
5082
5083         * .version: bumped version to 2.4.7
5084         * device/lib/_gptrget.c (_gptrget): is now _naked
5085         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
5086         * device/lib/_gptrput.c (_gptrput): is now _naked
5087         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
5088           (createFunction): fixed xstack
5089         * src/SDCCglue.c (emitMaps): set allocation required for bit area
5090         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
5091           or bit either,
5092           (geniCodeCritical): store original interrupt state in an iTemp bit
5093           var unless stack-auto
5094         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
5095         * src/SDCCmain.c (setIncludePath): added include/target to search path
5096         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
5097         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
5098           prototype,
5099           (processFuncArgs): put bit vars in bit area
5100         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
5101           unsaveRBank): fixed xstack,
5102           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
5103           (genFunction, genEndFunction): fixed xstack,
5104           (genAssign): optimization don't walk backwards through mem
5105         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
5106         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
5107         * support/regression/Makefile: also make library (for stack-auto) when
5108           making "all" and added "test-mcs51-xstack-auto"
5109         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
5110         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
5111         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
5112         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
5113         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
5114           make-library by MAKE_LIBRARY
5115         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
5116           regression tests for xstack
5117         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
5118         * support/regression/tests/critical.c: test for critical on mcs51
5119
5120 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5121
5122         * support/regression/ports/ucz80/spec.mk: use include and lib files from
5123           built version of sdcc instead of installed version
5124
5125 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
5126
5127         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
5128         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
5129           vprintf.c now
5130         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
5131         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
5132           WARNING: remove device/lib/build/z80/printf.o by hand when
5133           updating from previous build!
5134         * device/lib/z80/printf.c: updated comment
5135         * support/regression/tests/bug1057979.c: test all ports now
5136         * support/regression/tests/bug1065458.c: file added
5137
5138 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5139
5140         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
5141           *_start and *_end symbols for static functions
5142
5143 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
5144
5145         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
5146           and search crt0.o in all library paths,
5147           (setIncludePath): proper handling of --nostdinc,
5148           (setLibPath): proper handling of --nostdlib
5149         * support/regression/Makefile,
5150         * support/regression/ports/ds390/spec.mk,
5151         * support/regression/ports/gbz80/spec.mk,
5152         * support/regression/ports/hc08/spec.mk,
5153         * support/regression/ports/mcs51/spec.mk,
5154         * support/regression/ports/mcs51-large/spec.mk,
5155         * support/regression/ports/mcs51-stack-auto/spec.mk,
5156         * support/regression/ports/z80/spec.mk: use include and lib files from
5157           built version of sdcc instead of installed version
5158         * doc/sdccman.lyx: fixed typo in --nostdinc
5159
5160 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
5161
5162         * src/pic/pcode.c,
5163         * src/pic/device.c,
5164         * src/pic/ralloc.c,
5165         * src/pic/gen.c : added support to generate code for struct bit fields.
5166
5167 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
5168
5169         * as/xa51/xa_version.h,
5170         * device/include/errno.h,
5171         * device/include/regc515c.h,
5172         * device/lib/_itoa.c,
5173         * device/lib/_ltoa.c,
5174         * device/lib/ser_ir_cts_rts.c,
5175         * sim/ucsim/xa.src/glob.cc,
5176         * sim/ucsim/xa.src/inst_gen.cc,
5177         * sim/ucsim/xa.src/xa_bit.cc,
5178         * sim/ucsim/xa.src/xa_sfr.cc,
5179         * sim/ucsim/z80.src/inst_dd.cc,
5180         * sim/ucsim/z80.src/inst_fdcb.cc,
5181         * support/scripts/keil2sdcc.pl,
5182         * src/pic16/pic16.dsp,
5183         * src/pic16/pic16a.dsp: corrected cvs line endings
5184         * device/lib/printf_large.c: fixed bug 1057979
5185         * src/pic16/gen.c: fixed non-C standard code
5186         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
5187         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
5188         * support/regression/ports/mcs51/support.c: reload T1 asap
5189         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
5190           pdata use and clear idata startup behaviour
5191         * support/regression/tests/bug1057979.c: added
5192
5193 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
5194
5195         * device/examples/ds390/ow390/ad26.h,
5196         * device/examples/ds390/ow390/cnt1d.h,
5197         * device/examples/ds390/ow390/crcutil.c,
5198         * device/examples/ds390/ow390/ownet.h,
5199         * device/examples/ds390/ow390/owsesu.c,
5200         * device/examples/ds390/ow390/swt12.h,
5201         * device/examples/ds390/ow390/swtoper.c,
5202         * device/examples/ds390/ow390/temp10.h,
5203         * device/examples/ds390/ow390/thermodl.c,
5204         * device/examples/ds390/tinitalk/tinitalk.dsp,
5205         * device/examples/ds390/tinitalk/tinitalk.dsw,
5206         * device/examples/mcs51/clock/hw.h,
5207         * device/examples/mcs51/simple2/go.bat,
5208         * device/examples/serialcomm/windows/serial.h,
5209         * device/examples/xa51/dummy.c,
5210         * device/examples/xa51/hello.c,
5211         * device/include/80c51xa.h,
5212         * device/include/at89x051.h: corrected cvs line endings
5213
5214 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
5215
5216         * src/pic16/main.c (options): added command line --gstack, to trace
5217         stack over/under flows,
5218         * added pragma 'wparam' to allow passing first byte of function
5219         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
5220         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
5221         call to __gstack_test function and sets up the symbol as extern,
5222         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
5223         * popaop): added call to pic16_testStackOverflow,
5224         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
5225         wparamList list,
5226         * (genCall, genPcall): now all parameters are passed via stack
5227         except in functions that are pass to wparam pragma in which WREG is
5228         used too,
5229         * (genPcall): REENTRANT flag is checked to see if variable prototype
5230         contains reentrant keyword, don't call a non-reentrant function, via
5231         a reentrant function pointer or vice versa, functions are never
5232         passed via WREG,
5233         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
5234         D.Winkler,
5235         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
5236         SIGSEGV when accessing a NULL register stucture,
5237         * (pic16_printGPointerType): modified to handle UPPER modifier for
5238         function initializers, changed prototype of function to simpler one,
5239         * (pic16_printIvalFuncPtr): check to see if function is already
5240         added in externs list,
5241         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
5242         optimized a move from W to SFR with a move to the same register
5243         later after a CALL,
5244         * device/lib/pic16/debug: NEW directory, contains debug features
5245         which are enabled when linking with libdebug.lib, currently command
5246         line option --gstack enables stack pointer tracing for over/under
5247         flow, corresponding sources are in debug/gstack
5248
5249 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
5250
5251         * doc/sdccman.lyx: updated SDCC version,
5252         * (PIC16 port): update list of command line options,
5253         * src/pic16/device.h (structure pic16_options_t): added field gstack
5254         to enable stack overflow tracing on push/pops,
5255         * src/pic16/device.c (statistics structure): added statistics
5256         structure,
5257         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
5258         pic16_dump_int_registers): increase statistics counters for each
5259         * variable which is encountered
5260         * (pic16_dump_usection): emit each .udata variable to its own udata
5261         section,
5262         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
5263         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
5264         parameters via stack, otherwise use old scheme,
5265         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
5266         assembler output file,
5267         * src/pic16/main.c: added command line options --gstack to enable
5268         push/pop tracing for stack overflow,
5269         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
5270         instructions): added size of each instruction,
5271         * (pic16_countInstruction): estimate size of instructions in
5272         the_pFile list, inline assembly blocks are not counted,
5273         * (pic16_FixRegisterBanking): trace previous register usage, when
5274         banksel optimizations is greater than 0, don't emit a redudant
5275         banksel directive,
5276
5277 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
5278
5279         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
5280         * src/pic16/ralloc.c : applied same fix for pic16.
5281         * src/pic/gen.c : tidied it up a little.
5282
5283 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5284
5285         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
5286         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
5287
5288 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5289
5290         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
5291
5292 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5293
5294         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
5295         non-reentrant function __modsint in the interrupt function (thus
5296         corrupting math operations during serial I/O)
5297         * device/lib/ser_ir.c: as above, changed buffersize
5298         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
5299         256.c,d for zeroing
5300         * doc/Makefile: added option -t for rsync
5301
5302 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5303
5304         * src/SDCCast.h (struct ast),
5305         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
5306
5307 2004-10-20 Borut Razem <borut.razem AT siol.net>
5308
5309         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
5310         package
5311
5312 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
5313
5314         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
5315         makefile targets,
5316         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
5317         support functions to replace long sequences of MOVFF's from access
5318         bank registers to stack and vice versa,
5319         * src/pic16/device.h: added new field opt_flags, where optimization
5320         flags can be set to enable certain features,
5321         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
5322         * pBlock, (genFunction, genEndFunction): surroung loop for
5323         saving/loading used registers in stack with PC_INFO pCodes,
5324         INF_LREGS. Code in between can then be optimized by pCode optimizer
5325         to support function calls,
5326         * (genDataPointerSet): fixed bug which loaded float fields in
5327         structures with corrupt data,
5328         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
5329         in a standard way debug info on stderr. Feature used for developing
5330         and debugging only,
5331         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
5332         obsolete chunks of code,
5333         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
5334         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
5335         * pic16/src/pcode.c (pic16_newpCodeInfo,
5336         * (pic16_newpCodeOpLocalRegs),
5337         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
5338         feature,
5339         * (pic16_pCodeConstString): printing of the initial value of a
5340         symbol as a comment is inhibited since parsing was already done by
5341         copyStr and output is corrupt,
5342         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
5343
5344 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5345
5346         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
5347
5348 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
5349
5350         * as/mcs51/lkarea.c: removed old K&R style,
5351           (lnksect): changed check on boundary error,
5352           (lnksect2): changed check on boundary error,
5353           (lnksect2): extend XSTK to end of page if size = 1
5354         * as/mcs51/lkmain.c: removed old K&R style,
5355           (Areas51): create l_IRAM symbol
5356         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
5357         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
5358           model-mcs51-stack-auto, added model-mcs51-xstack-auto
5359         * device/lib/_mullong.c: added version to be compiled with xstack
5360         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
5361         * device/lib/mcs51/crtxclear.asm: clear pdata as well
5362         * device/lib/mcs51/crtxstack.asm: fixed comment
5363         * src/SDCCglue.c: maxInterrupts defaults to 0,
5364           (emitMaps): added pdata,
5365           (createInterruptVect): (re)moved default,
5366           (glue): added pdata,
5367           (glue): moved __start__xstack to XSTK with default size 1
5368         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
5369           and options.float_rent when options.stackAuto is set,
5370           (linkEdit): only write XDATA_NAME if provided on command line
5371         * src/SDCCmem.h,
5372         * src/SDCCmem.c: added pdata
5373         * src/port.h: added pdata_name to PORT
5374         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
5375           (saveRegisters, unsaveRegisters): removed usage of B,
5376           (genMinus): fixed accumulator clash,
5377           (genJumpTab): added comment, this needs another look
5378         * src/mcs51/gen.c: added check for "B in use" paranoia,
5379           added pushB() and popB()
5380         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
5381           chance
5382         * src/avr/main.c,
5383         * src/ds390/main.c,
5384         * src/hc08/main.c,
5385         * src/mcs51/main.c,
5386         * src/pic/main.c,
5387         * src/pic16/main.c,
5388         * src/xa51/main.c,
5389         * src/z80/main.c: (reset_regparms) made void parameter explicit and
5390           added PSEG (PAG,XDATA) or NULL to port specifier
5391         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
5392         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
5393           (_mcs51_genInitStartup): removed __start__xstack equ,
5394           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
5395         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
5396         * src/z80/gen.c (_rleAppend): fixed warnings
5397         * support/regression/tests/zeropad.c: added pdata test
5398         * .version: bumped to 2.4.6
5399
5400 2004-10-17 Borut Razem <borut.razem AT siol.net>
5401
5402         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
5403         as a part of nightly build
5404
5405 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
5406
5407         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
5408         WREG holds the first byte function parameters,
5409         * (aopForSym): take special case for symbols which are in FARSPACE
5410         but in CODESPACE too,
5411         * (assignResultValue): modified to take into account _G.useWreg,
5412         * (genCall): don't use wreg for parameter passing when function is
5413         declared as reentrant, too, added optimization INCF to stack
5414         pointer when stack parameter count is 1,
5415         * (genFunction, genEndFunction): refurnished and fixed to not using
5416         wreg for passing parameters when function has varargs or is
5417         reentrant, fixed bug with symbol name compare for generating
5418         functions in absolute address,
5419         * (pic16_storeForReturn): refurnished,
5420         * (genCmp): began writing a new version of the function, not ready
5421         yet, therefore it is disabled,
5422         * (genAssign): do not read code memory when assigning a function to
5423         a pointer function,
5424         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
5425         array of characters, not pointer,
5426         * (pic16initialComments): in debug mode emit an .ident directive for
5427         the assembler,
5428         * (_process_pragma): emit a new warning type (internal to pic16)
5429         when setting stack to default length, emit a similar warning when
5430         placing a function at absolute address and address is not word aligned
5431         * (_pic16_parseOptions): added 'return TRUE' statement,
5432         * (_pic16_linkEdit): if compiling a source, then add the source's
5433         file object, first in the list of objects to link,
5434
5435 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
5436
5437         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
5438         * src/pic/main.c : removed VC warning.
5439         * src/pic/gen.c : changed comment.
5440
5441 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
5442
5443         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
5444         reference to a deprecated symbol _GPTRREG was causing failure to
5445         link. Thanks G. M. Gallant for the info.
5446
5447 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
5448
5449         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
5450         comments for Bugs item #954788.
5451
5452 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
5453
5454         * src/pic16/device.c (pic16_dump_gsection,
5455         * pic16_groupRegistersInSection): handle symbols declared to be in
5456         access bank differently,
5457         * src/pic16/gen.c (struct _G): added field resDirect,
5458         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
5459         send values read from stack directly to result and don't allocate
5460         temporary values,
5461         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
5462         same registers,
5463         * (pic16_sameRegsOfs): NEW,
5464         * (freeAsmop): if _G.resDirect is set then do not mark registers as
5465         free because they were not allocated from temporary pool,
5466         * pic16_popRegFromString): workaround to fix a problem with
5467         allocating variables twice or never,
5468         * (genGenPointerGet): using PRODL instead of FSR0H,
5469         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
5470         instead of FSR0H,
5471         * (genAssign): take advantage of the _G.resDirect flag,
5472         * (genCast): around line 11844, use mov2f instead of directly
5473         MOVFF'ing between operands to account for literal values,
5474         * src/pic16/genutils.c: some new debug functions for gpsim have been
5475         added,
5476         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
5477         float with integer part only,
5478         * src/pic16/main.c (_process_pragma): handle pragma udata access to
5479         place variables in access bank
5480         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
5481         updated sources to reflect recent changes in gen.c
5482
5483 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
5484
5485         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
5486         sources that searched for headers in installation path, now the
5487         device/include/pic16 is used,
5488         * src/pic16/glue.c (pic16glue),
5489         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
5490         .line directives if not in debug mode, this suppresses assembler's
5491         warnings for ignored directives
5492
5493 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5494
5495         * src/port.h: made reset_regparms prototype void parameter explicit.
5496         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
5497         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
5498         * doc/sdccman.lyx: documented warning disabling and how to use
5499           printf_large to make it print floats.
5500         * device/include/stdbool.h: NEW
5501         * device/lib/_atof.c,
5502         * device/lib/_divuint.c,
5503         * device/lib/_divulong.c,
5504         * device/lib/expf.c,
5505         * device/lib/printf_large.c,
5506         * device/lib/sincosf.c,
5507         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
5508         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
5509           a completely reentrant lib.
5510
5511 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
5512
5513         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
5514         * device/include/pic16/stdio.h: fixed bug with colon
5515
5516 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
5517
5518         * device/include/pic16/stdio.h,
5519         * device/include/pic16/stdlib.h,
5520         * device/include/pic16/math.h: NEW
5521         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
5522         declared as _naked to reduce overhead
5523         * device/lib/Makefile.in (target port-specific-objects-pic16):
5524         changed * to *.* so to ignore the CVS directory,
5525         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
5526         stacked variables back in stack,
5527         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
5528         corruption
5529
5530 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
5531
5532         * .version: bumped version number to 2.4.5
5533         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
5534         * support/Util/SDCCerr.c (messages structure): added entry for
5535         W_POSSBUG2
5536
5537         Large cumulative patch for pic16 port and libraries.
5538         * device/include/pic16/sdcc-lib.h,
5539         * device/include/pic16/stdarg.h,
5540         * device/include/asm/pic16/features.h,
5541         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
5542         * device/include/pic16/float.h: changes reentrant keyword with
5543         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
5544         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
5545         updated target build-libraries to include objects from gptr,
5546         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
5547         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
5548         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
5549         all function headings,
5550         * src/SDCCmain.c: added global parameter userIncDirsSet,
5551         * (parseCmdLine): when option -I is encountered add directory to
5552         userIncDirsSet too,
5553         * src/version.awk: added space between control and long,
5554         * src/pic16/NOTES: added some notes for the port,
5555         * src/pic16/gen.c: added prototype for mov2fp function,
5556         * (fReturnpic16[]): properly named return value registers,
5557         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
5558         * (aopForSym): added code to handle symbols with onStack flag set,
5559         symbols onStack are allocated PTRSIZE bytes,
5560         * (aopFreeAsmop): handles special case where asmops are stack objects,
5561         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
5562         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
5563         added argument lock to trace flaws in allocating temporary registers
5564         when developing port,
5565         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
5566         * (pic16_popRegFromString): reenabled allocating a direct register
5567         from string,
5568         * (assignResultValue): various beautifications,
5569         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
5570         referenced function argument,
5571         * (genIpush): reenabled to allow stacked arguments, handles only
5572         ic->parmPush iCodes,
5573         * (genCall, genPcall): major changes to allow for variable argument
5574         functions, fixed a bug with falsely restoring stack pointer after
5575         returning from call,
5576         * (genFunction): pending code for critical function,
5577         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
5578         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
5579         * (genNearPointerGet): fixed bug with indirect reading, was always
5580         reading from INDF0
5581         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
5582         pointers,
5583         * (genAddrOf): rewrote code to take address of a stacked function parameter
5584         * (genCast): fixed casting to generic pointer type,
5585         * src/pic16/gen.h: added AOP_STA,
5586         * (struct asmop): added field stk,
5587         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
5588         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
5589         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
5590         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
5591         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
5592         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
5593         generic pointers,
5594         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
5595         and library paths,
5596         * (pic16_port structure): generic pointer size is set to 3,
5597         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
5598         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
5599         compiler warning,
5600         * src/pic16/ralloc.c (allocReg): prevent allocating register when
5601         operand is an iTemp,
5602
5603 2004-09-24 Martin Helmling <mh AT octo-soft.de>
5604
5605         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
5606         * debugger/mcs51/simi.c: addapt new syntax of s51
5607
5608 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
5609
5610         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
5611         * src/pic16/pcode.c: commented out some calls to free() in order to
5612         fix bug #989576,
5613
5614 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5615
5616         * src/SDCCicode.h,
5617         * src/SDCCicode.c (isiCodeInFunctionCall),
5618         * src/avr/ralloc.c (selectSpil),
5619         * src/pic/ralloc.c (selectSpil),
5620         * src/pic16/ralloc.c (selectSpil),
5621         * src/ds390/ralloc.c (selectSpil),
5622         * src/hc08/ralloc.c (selectSpil),
5623         * src/xa51/ralloc.c (selectSpil),
5624         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
5625         stack in the middle of a function call sequence (fixes bug #1020268)
5626         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
5627         costs associated with the minimum switch case.
5628
5629 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5630
5631         * src/SDCC.lex: fixed bug #1030549
5632
5633 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5634
5635         * src/SDCCcse.h (struct cseDef),
5636         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
5637         over a function call if the CSE is derived from a symbol whose
5638         address has been taken (fixes bug #1029883)
5639         * support/regression/tests/bug-1029883: a new regression test for
5640         this bug
5641
5642 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5643
5644         * src/hc08/gen.c (emitinline): fixed bug #1029778
5645         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
5646         to a cast object is no longer a syntax error ("fixes" bug #1030006,
5647         and starts toward RFE #905167)
5648
5649 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
5650
5651         * src/pic16/gen.c (mov2f): New function to move an operand to
5652         another without considering if it is a literal or a register,
5653         * (pic16_sameRegs): don't check if they are both AOP_REG,
5654         * (AccRsh): removed andmask=0 lines,
5655         * (genLeftShift): duplicated to be improved in future versions,
5656         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
5657         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
5658         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
5659         * (pic16initMnemonics): added initialization for POC_INFSNZW,
5660         * (insertBankSwitch): fixed inserting banksel directives algorithm
5661         for instructions that follow a skip instruction, this fixes a report
5662         for broken subtraction code generation,
5663         * src/pic16/ralloc.c (deassignLRs): do not free register if current
5664         iCode is a left op, just in case result and right share the same
5665         registers
5666
5667 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5668
5669         * src/hc08/main.c,
5670         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
5671         preservation of HX
5672         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
5673         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
5674         on 2004-09-12; it was buggy
5675
5676 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
5677
5678         * src/SDCCsymt.h: removed RESULT_CHECK
5679         * src/SDCCast.c,
5680         * src/SDCCglue.c,
5681         * src/SDCCval.c,
5682         * src/pic/glue.c,
5683         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
5684
5685 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
5686
5687         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
5688         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
5689         configuration values no more rejected by compiler, they are assigned
5690         to configuration registers with a warning message instead,
5691         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
5692         the for-loop so last conf register is emitted too,
5693         * (_pic16_initPaths): link library libsdcc.lib by default,
5694         * (_hasNativeMulFor): modified test for multiplication according to
5695         Raphael Neider's remarks. Integer multiplication is also done with
5696         support functions,
5697         * device/include/pic16/pic18fregs.h: corrected type error in while
5698         testing and including 18f6720 header file
5699
5700 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
5701
5702         * src/pic16/device.h (pic16_options): removed field use_crt,
5703         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
5704         until an optimization to handle single bits is added,
5705         * (pic16_loadFSR0): moved before genUnpackBits,
5706         * (genAnd): some white lines removed,
5707         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
5708         leave_reset flags in pic16_options when using crt modules,
5709
5710 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
5711
5712         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
5713           for bugs 898889 & 979599. Also used some safer print instructions.
5714
5715 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
5716
5717         * src/pic16/device.h (pic16_options_t): added field use_crt,
5718         crt_name, no_crt,
5719         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
5720         catch a probable future bug,
5721         * src/pic16/gen.c: aopIdx function commented out,
5722         * (genAssign): commented out old code which used aopIdx,
5723         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
5724         code, added if conditionals to take into account the --use-crt
5725         command line options,
5726         * src/pic16/main.c (pic16_optionsTable): added new command line
5727         options, --use-crt= and --no-crt,
5728         * (_pic16_linkEdit): now the proper crt object is added in the
5729         linker command line except than when --no-crt is specified,
5730         * src/pic16/pcode.c,
5731         * src/pic16/pcode.h: added some structures and functions for a new
5732         optimization scheme to compansate for instruction overhead between
5733         same iCodes, this scheme is currently under development and is not
5734         working in any way,
5735         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
5736         to && operator,
5737         * device/lib/pic16/startup/crt0i.c,
5738         * device/lib/pic16/startup/crt0iz.c: added global char variable
5739         __uflags to force the generation of an idata section
5740
5741 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
5742
5743         * doc/Makefile,
5744         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
5745         * doc/sdccman.lyx: updated sdcc version to 2.4.4
5746
5747 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5748
5749         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
5750         Frieder) and clarified the default code optimization mode
5751
5752 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5753
5754         * src/SDCC.lex (doPragma, process_pragma),
5755         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
5756         "opt_code_size", and "opt_code_balanced"
5757         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
5758         regrouped options by category, added support for category headers
5759         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
5760         and "--opt-code-size"
5761         * doc/sdccman.lyx: documented these new options and pragmas
5762         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
5763         preference into account
5764
5765 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5766
5767         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
5768           geniCodePreDec): Fixed bug 904237 by generating a warning
5769         * src/SDCCerr.h,
5770         * src/SDCCerr.c: added warning W_SIZEOF_VOID
5771
5772 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
5773
5774         * src/pic/device.c : When no max ram set validate full memory range.
5775         * src/pic/pcode.c,
5776         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
5777
5778 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5779
5780         * device/lib/_gptrget.c,
5781         * device/lib/_gptrput.c: updated comment
5782         * device/lib/calloc.c,
5783         * device/lib/free.c,
5784         * device/lib/malloc.c,
5785         * device/lib/realloc.c: added LGPL, made them reentrant-safe
5786         * src/SDCCcse.c (cseBBlock),
5787         * src/SDCCicode.c (printOperand, geniCodeArray),
5788         * src/SDCCicode.h (struct operand): fixed bug 868103
5789         * support/regression/tests/bug-868103.c: added
5790         * src/SDCCast.c (searchLitOp),
5791         * src/SDCCcse.h (struct cseDef),
5792         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
5793         * src/SDCCicode.h (struct operand),
5794         * src/SDCCsymt.h (struct sym_link),
5795         * src/avr/gen.c (hasInc),
5796         * src/ds390/gen.c (hasInc),
5797         * src/hc08/gen.c (genPlusIncr, hasInc),
5798         * src/mcs51/gen.c (hasInc),
5799         * src/pic16/glue.c (pic16_printIvalChar),
5800         * src/pic16/ralloc.c (regWithIdx),
5801         * src/xa51/gen.c (hasInc) : removed warnings
5802         * src/SDCCast.c (createBlock): added comment ???
5803         * src/hc08/ralloc.c: updated comments
5804
5805 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5806
5807         * doc/sdccman.lyx: updated section on switch statements, added
5808         section about semaphore locking
5809         * doc/Makefile: added option -info for latex2html
5810         * device/lib/_gptrget.c,
5811         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
5812
5813 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5814
5815         * src/pic/device.h,
5816         * src/pic/device.c,
5817         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
5818          maxram is less than 0x100.
5819
5820 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5821
5822         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
5823
5824 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5825
5826         * src/port.h,
5827         * src/mcs51/main.c,
5828         * src/ds390/main.c,
5829         * src/z80/main.c,
5830         * src/hc08/main.c,
5831         * src/pic/main.c,
5832         * src/pic16/main.c,
5833         * src/avr/main.c,
5834         * src/xa51/main.c
5835         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
5836         a jump table is the best form for a switch statement, including
5837         automatic insertion of missing cases to make the case range
5838         continuous. Developed in collaboration with Frieder Ferlemann.
5839
5840 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5841
5842         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
5843         accumulator result if it needs sign extension
5844
5845 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5846
5847         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
5848
5849 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5850
5851         * device/lib/gbz80/printf.c,
5852         * device/lib/z80/printf.c: removed define for NULL
5853
5854 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5855
5856         * as/xa51/xa_link.c,
5857         * device/examples/ds390/ow390/ad26.c,
5858         * device/examples/ds390/ow390/cnt1d.c,
5859         * device/examples/ds390/ow390/counter.c,
5860         * device/examples/ds390/ow390/ds2480.h,
5861         * device/examples/ds390/ow390/ds2480ut.c,
5862         * device/examples/ds390/ow390/findtype.c,
5863         * device/examples/ds390/ow390/gethumd.c,
5864         * device/examples/ds390/ow390/owllu.c,
5865         * device/examples/ds390/ow390/ownetu.c,
5866         * device/examples/ds390/ow390/swt12.c,
5867         * device/examples/ds390/ow390/swtloop.c,
5868         * device/examples/ds390/ow390/temp.c,
5869         * device/examples/ds390/ow390/temp10.c,
5870         * device/examples/ds390/ow390/thermo21.c,
5871         * device/examples/ds390/ow390/tinilnk.c,
5872         * device/examples/ds390/ow390/tstfind.c,
5873         * device/examples/serialcomm/windows/serial.cpp,
5874         * device/examples/serialcomm/windows/test_serialcomm.cpp,
5875         * device/include/reg51.h: fixed line endings for cvs
5876
5877 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5878
5879         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
5880         packRegsForAccUse, packRegisters): new accumulator register
5881         packing algorithm
5882         * support/regression/ports/hc08/support.c (_putchar): suppress
5883         warning of unused variable
5884         * src/SDCCicode.c: added SWAP entry to codeTable
5885
5886 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
5887
5888         * device/lib/sprintf.c: forgot to add this file before previous commit
5889
5890 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
5891
5892         * src/pic16/gen.c (genPackBits): added operand right in function
5893         parameters, load result directly if p_type is POINTER (that is
5894         called by genNearPointerSet)
5895         * (genUnPackBits): added operand left in function parameters,
5896         * (genNearPointerGet, genNearPointerSet): prevent the loading of
5897         FSR0 if accessing bitfields,
5898
5899 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
5900
5901         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
5902           _print_format; updated printf, sprintf, vsprintf
5903         * device/include/asm/default/features.h: corrected comment/define
5904         * device/lib/Makefile.in: added sprintf.c
5905         * device/lib/libsdcc.lib: added sprintf module
5906         * device/lib/printf_large.c,
5907         * device/lib/vprintf.c,
5908         * device/lib/sprintf.c: totally refactored printf_large and vprintf
5909           into these 3 files
5910         * support/regression/Makefile: changed ALL_PORTS into a usefull default
5911         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
5912         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
5913           hc08 test
5914         * support/regression/tests/zeropad.c: define idata as data for hc08
5915
5916 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5917
5918         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
5919         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
5920         labels are referenced at least once (even if a reference is not found)
5921         * src/hc08/gen.c (emitcode): set isComment flag for comments
5922         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
5923         loads), rules 6a..6b (optimize jumps to return)
5924
5925 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5926
5927         * device/lib/acosf.c (acosf),
5928         * device/lib/asinf.c (asinf),
5929         * device/lib/atanf.c (atanf),
5930         * device/lib/ceilf.c (ceilf),
5931         * device/lib/cosf.c (cosf),
5932         * device/lib/coshf.c (coshf),
5933         * device/lib/cotf.c (cotf),
5934         * device/lib/fabsf.c (fabsf),
5935         * device/lib/floorf.c (floorf),
5936         * device/lib/log10f.c (log10f),
5937         * device/lib/logf.c (logf),
5938         * device/lib/sinf.c (sinf),
5939         * device/lib/sinhf.c (sinhf),
5940         * device/lib/sqrtf.c (sqrtf),
5941         * device/lib/tanf.c (tanf),
5942         * device/lib/tanhf.c (tanhf),
5943         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
5944         replaced all instances of "reentrant" in the library functions
5945         defined in math.h with this macro.
5946         * support/regression/tests/float_trans.c: reenabled test for hc08
5947
5948 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
5949
5950         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
5951         erroneously deleted
5952
5953 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5954
5955         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
5956         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
5957         multi-byte volatile operands are used
5958         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
5959         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
5960         initialization to area GSINIT0 so that it would always precede
5961         any static initializers in GSINIT
5962         * support/regression/tests/zeropad.c: fixed idata define for hc08
5963         * support/regression/tests/bug-927659.c,
5964         * support/regression/tests/float_trans.c: disabled tests for hc08
5965         pending missing library routines
5966         * .version: increased version number to 2.4.4 - hc08 port now passes
5967         regression tests
5968
5969
5970 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
5971
5972         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
5973         * Makefile.common.in,
5974         * as/Makefile,
5975         * as/hc08/Makefile.in,
5976         * as/mcs51/Makefile.in,
5977         * as/z80/Makefile.in,
5978         * debugger/mcs51/Makefile.in,
5979         * device/include/Makefile.in,
5980         * device/lib/Makefile.in,
5981         * doc/Makefile,
5982         * link/Makefile,
5983         * link/z80/Makefile.in,
5984         * packihx/Makefile.in,
5985         * sim/ucsim/main_in.mk,
5986         * sim/ucsim/avr.src/Makefile.in,
5987         * sim/ucsim/doc/Makefile.in,
5988         * sim/ucsim/gui.src/serio.src/Makefile.in,
5989         * sim/ucsim/hc08.src/Makefile.in,
5990         * sim/ucsim/s51.src/Makefile.in,
5991         * sim/ucsim/xa.src/Makefile.in,
5992         * sim/ucsim/z80.src/Makefile.in,
5993         * src/Makefile.in,
5994         * support/cpp2/Makefile.in,
5995         * support/librarian/Makefile,
5996         * support/makebin/Makefile: added DESTDIR to the install path proposed
5997         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
5998         * doc/sdccman.lyx: added DESTDIR documentation
5999
6000 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
6001
6002         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
6003         instruction for interrupt handlers, use fast returns when returning
6004         from high priority interrupts
6005
6006 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6007
6008         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
6009         code generation
6010         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
6011         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
6012         bugs, ported much of Bernhard's code from mcs51
6013         * src/mcs51/gen.c (genSend),
6014         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
6015         than one when calling a reentrant function
6016         * device/lib/_mullong.c: defined an alternate struct layout for big
6017         endian ports (hc08)
6018
6019 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6020
6021         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
6022         test
6023
6024 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6025
6026         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
6027         are sane and complete before asking the port its prefered parameter
6028         passing method (fixes bug #1017633)
6029         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
6030         and _ret3
6031
6032 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6033
6034         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
6035         problem in bitfields >= 8 bits.
6036
6037 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6038
6039         * src/SDCCsymt.c: undid changes that were not meant to be committed
6040
6041 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6042
6043         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
6044
6045 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
6046
6047         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
6048           copied and wrong bit got inverted
6049
6050 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6051
6052         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
6053         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
6054         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
6055         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
6056         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
6057         assignments to bitfields at known addresses
6058         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
6059         reads from bitfields at known addresses
6060         * src/hc08/ralloc.c (packRegisters),
6061         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
6062         genhc08Code): optimize pointer get values used as conditionals
6063         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
6064         and branch
6065
6066 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6067
6068         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
6069         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
6070         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
6071         as conditionals
6072
6073 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6074
6075         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
6076
6077 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6078
6079         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
6080         related problems
6081
6082 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
6083
6084         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
6085
6086 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6087
6088         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
6089         mcs51 port
6090
6091 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
6092
6093         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
6094
6095 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6096
6097         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
6098         cases use more compact code.
6099
6100 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
6101
6102         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
6103
6104 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6105
6106         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
6107
6108 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6109
6110         * src/SDCCsymt.h,
6111         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
6112         parameter of changePointer() from symbol* to sym_link*
6113         * src/SDCCast.c (decorateType): call changePointer() for CAST op
6114         * src/SDCCsymt.c (compareType): void* type is castable to other
6115         pointers, but not necesarily an exact match.
6116         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
6117         is no longer blindly treated as an exact match.
6118         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
6119
6120 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
6121
6122         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
6123
6124 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
6125
6126         * src/pic/gen.c,
6127         * src/pic/pcode.c,
6128         * src/pic/ralloc.h,
6129         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
6130
6131 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
6132
6133         * src/pic/device.c,
6134         * src/pic/device.h,
6135         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
6136
6137 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6138
6139         * src/mcs51/gen.c (emitcode): fixed bug #992819
6140
6141 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
6142
6143         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
6144           there's no need to make it worse
6145
6146 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6147
6148         * src/mcs51/ralloc.c (deassignLR),
6149         * src/ds390/ralloc.c (deassignLR),
6150         * src/hc08/ralloc.c (deassignLR),
6151         * src/z80/ralloc.c (deassignLR),
6152         * src/pic/ralloc.c (deassignLR),
6153         * src/pic16/ralloc.c (deassignLR),
6154         * src/avr/ralloc.c (deassignLR),
6155         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
6156         rlivePoint): fixed another part of bug #971834
6157
6158 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6159
6160         * src/z80/main.c: enabled "critical" keyword
6161         * src/z80/mappings.i,
6162         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
6163         functions (fixes bug #979646)
6164         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
6165
6166 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6167
6168         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
6169           such as c:\mydir.
6170
6171 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
6172
6173         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
6174           doesn't disable too much optimizations
6175
6176 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6177
6178         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
6179
6180 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
6181
6182         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
6183
6184 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
6185
6186         * src/pic/gen.c tidied up tabs
6187         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
6188         * src/pic/main.c tidied up tabs
6189         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
6190         * src/pic/pcoderegs.c tidied up tabs
6191         * src/pic/ralloc.c tidied up tabs
6192
6193 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
6194
6195         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
6196         to S_FIXED for pic16 port and when symbol is not in level 0,
6197         allocate for S_REGISTER storage class and pic16 port, too,
6198         * src/pic16/device.h: prototype for checkSym,
6199         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
6200         * (pic16_assignConfigWordValue): test the value and the mask to
6201         validate that the value is suitable for the configuration word,
6202         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
6203         collect extern declared symbols, don't emit symbol twice, check
6204         first if symbol is in publics set first,
6205         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
6206         * added command line '--fstack' which enables an experimental
6207         feature for stack access, too buggy to be used yet...
6208         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
6209         * (pic16_allocDirReg): when register has storage class S_REGISTER
6210         allocate in pic16_dynAccessRegs,
6211         * device/include/pic16/pic18f????.h: modified configuration word
6212         naming convention, words started as CONFIG0H but should be CONFIG1H
6213
6214 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
6215
6216         * device/include/mcs51reg.h: fixed bug 970993
6217
6218 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
6219
6220         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
6221         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
6222         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
6223         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
6224         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
6225         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
6226           error/warning numbers,
6227           added function setWarningDisabled()
6228         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
6229         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
6230           _memcmp.c _memmove.c calloc.c realloc.c free.c
6231         * support/regression/tests/malloc.c: added tests for new functionality
6232         * support/regression/tests/zeropad.c: added tests for truncated initializers
6233           and initialized char arrays starting with '\x0'
6234         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
6235
6236 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
6237
6238         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
6239
6240 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6241
6242         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
6243         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
6244         peephole 177.e. Thanks to anonymous
6245
6246 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
6247
6248         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
6249         function isn't used in the source but referenced as a
6250         variable initializer then declare it as extern in .asm file
6251
6252 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
6253
6254         * .version: increased version number to 2.4.3
6255
6256         Adding version extension according to ChangeLog CVS revision
6257         * src/Makefile.in (target all): added dependency 'version.h'
6258         * (rule version.h): added rule to create version.h from ChangeLog,
6259         * (rule dep): added dependency version.h,
6260         * src/version.awk: AWK script to create version.h
6261         * src/SDCCdwarf2.c (dwWriteModule),
6262         * src/SDCCglue.c (initialComments),
6263         * src/SDCCmain.c (printVersionInfo): modified to write after
6264         version string the version extension number,
6265         * src/SDCCutil.c: included "version.h"
6266         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
6267         number,
6268         * src/SDCCutil.h: added prototype for getBuildNumber
6269
6270         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
6271         includeDirsSet, too,
6272         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
6273         const char [] is found in function prototype...
6274
6275         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
6276         moving to WREG with source is already in WREG,
6277         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
6278         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
6279         * (aopForSym): stack'ed symbols are partially supported, added
6280         if-clause to support symbols in FARSPACE,
6281         * (sameRegs): added test for AOP_ACC to see if registers are same,
6282         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
6283         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
6284         * (pic16_popRegFromString): will not allocate a new register if it
6285         doesn't find one by name, bug may have introduced...
6286         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
6287         * (genIpush): revived to use pic16 port's stack,
6288         * (genAddrOf): added incomplete case for stack'ed operand,
6289         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
6290         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
6291         can handle multibyte operands,
6292         * src/pic16/glue.c (pic16_printIval*): some debug info added,
6293         * (pic16initialComments): added message for MPLAB compatibility
6294         mode enabled,
6295         * src/pic16/main.h: prototype for pic16_mplab_comp,
6296         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
6297         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
6298         * (_pic16_linkEdit): NEW, handles link stage, transferred here
6299         because of increased complexity of procedure,
6300         * (_process_pragma): stack pragma changed to format 'stack pos len',
6301         emit symbol '_stack_end' to conform with gplink,
6302         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
6303         to search for register,
6304         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
6305         PO_GPR_REGISTER,
6306         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
6307         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
6308         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6309         case for PO_GPR_REGISTER,
6310         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
6311         dies, the new era is ahead !...
6312         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
6313         pic16_dynInternalRegs,
6314         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
6315         * (pic16_allocDirReg): minor optimizations and bug fixes,
6316         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
6317
6318         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
6319         load stack and frame pointer with address of 'stack_end' symbol
6320
6321 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
6322
6323         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
6324         without source code but only variable initializers
6325
6326 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
6327
6328         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
6329         external are not declared as extern to reduce overhead while linking
6330
6331 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
6332
6333         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
6334
6335 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
6336
6337         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
6338           Yee Keat for the patch
6339         * src/SDCCast.c (decorateType): fixed bug #979599
6340         * src/ds390/gen.h: removed local fReturnSizeDS390
6341         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
6342         * src/ds390/gen.c (genAnd, genOr, genXor),
6343         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
6344
6345 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
6346
6347         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
6348         add relFilesSet to $3, manipulate $2 to handle linking of object
6349         files without source files in command line,
6350         * device/include/pic16 (all headers): added ID location macros,
6351         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
6352         entries for ID location bytes,
6353         * (pic16_assignIdByteValue): NEW,
6354         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
6355         added field dumpcalltree to pic16_options_t,
6356         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
6357         is used instead of pic16_Gstack_base_addr, check if (ifx) before
6358         emitting rFalseIfx label after check_carry label,
6359         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
6360         pic16_emitDIRegs), NEW
6361         * (pic16glue): dump .calltree file when option --calltree found,
6362         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
6363         * (_pic16_genAssemblerPreamble): emit ID locations after
6364         configuration registers,
6365         * (pic16_linkCmd): modifications of the link command,
6366         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
6367         * (pic16_pCodeInitRegisters): don't init stack registers,
6368         * (pic16_findPrevInstruction): fixed bug,
6369         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
6370         bug with immediate registers,
6371         * (buildCallTree): traces stack push and pop,
6372         * (pct2): dump also stack usage for each function,
6373         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
6374         * (pic16_allocDirReg): various modifications,
6375         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
6376         fixed to 1,
6377
6378 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
6379
6380         * src/pic16/pcode.c: removed buggy double colon
6381
6382 2004-07-01 Borut Razem <borut.razem AT siol.net>
6383
6384         * support/scripts/sdcc.nsi: added include/pic16 to setup
6385
6386 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
6387
6388         * device/lib/Makefile.in: fixed bug in target objects-pic16,
6389         * device/lib/pic16/Makefile: prefixed with dash (-) command under
6390         target 'clean',
6391         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
6392         specific command line arguments. Also added sample lkr script
6393         for placing a variable at a specific memory bank.
6394         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
6395         at a specific memory bank,
6396         * (pic16_dump_isection): fixed bug which caused string literals to
6397         be omitted when dumping idata section,
6398         * (pic16_groupRegistersInSection): added code to handle registers
6399         in specific memory banks,
6400         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
6401         public, all references are renamed too,
6402         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
6403         AOP_DPTR2,
6404         * (pic16_storeForReturn): added case to handle when dest is WREG,
6405         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
6406         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
6407         pic16_rel_udata, check to see if that register is marked as being
6408         a member of a specific memory bank,
6409         * (pic16_printIvalCharPtr): added code to add string literals either
6410         to code or the idata sections,
6411         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
6412         also accept the 'udata' pragma,
6413         * src/pic16/main.h: new structure types sectName and sectSym
6414         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
6415         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
6416         * (pic16_findPrevInstruction): fixed, it returned nothing,
6417         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
6418         instruction combinations,
6419         * (pic16_FixRegisterBanking): heavily reorganised,
6420         * (pic16_AnalyzeBanking): if generating banksel directives is
6421         disabled, then don't call FixRegisterBanking at all,
6422         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
6423         completely removed,
6424         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
6425
6426 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
6427
6428         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
6429         Phuah Yee Keat <yk.phuah AT nestac.com>
6430
6431 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6432
6433         * src/pic16/glue.c (pic16createInterruptVect): function now emits
6434         correctly the IVT even if it is relocated to some other location
6435
6436 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6437
6438         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
6439         * device/include/pic16/pic18f2220.h: NEW,
6440         * device/lib/pic16/libdev/pic18f2220.c: NEW,
6441         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
6442         * src/pic16/device.c (struct Pics16): added info for 18f2220,
6443         * src/pic16/device.h (struct pic16_options): added ivt_loc and
6444         nodefaultlibs, ivt_loc is the location of the interrupt vector
6445         table, and nodefaultlibs signs that default libraries should not be
6446         linked in link stage,
6447         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
6448         according to --ivt-loc argument,
6449         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
6450         when pragma stack is found,
6451
6452 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6453
6454         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
6455         256 (range check), 257 (do while), 258.a-f (bit banging
6456         f.e. on 3-wire SPI bus)
6457
6458 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6459
6460         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
6461         variables used exclusively within a loop
6462
6463 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
6464
6465         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
6466
6467 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6468
6469         * src/SDCClrange.c (computeClash): fixed bug #971834
6470
6471 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6472
6473         * src/mcs51/gen.c (genCmp): fixed bug #975903
6474         * src/hc08/gen.c (operandsEqu),
6475         * src/ds390/gen.c (operandsEqu),
6476         * src/z80/gen.c (operandsEqu),
6477         * src/pic/gen.c (operandsEqu),
6478         * src/pic16/gen.c (operandsEqu),
6479         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
6480         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
6481
6482 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6483
6484         * src/SDCCcse.c (cseBBlock): fixed bug #966963
6485
6486 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
6487
6488         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
6489         default case in switch statement,
6490         * glue.c (pic16_initPointer): expr is initialised via decoarteType
6491         to eliminate problem with initialisation of pointers, but problem
6492         still exists,
6493         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
6494         * (emitStaticSegment): removed various lines emitting debug info,
6495         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
6496         added processor registers for utilizing EEPROM,
6497         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
6498         configurable and set 8
6499
6500 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
6501
6502         * .version: increased version number to 2.4.2,
6503
6504         Cumulative patch for pic16 port
6505         * src/pic16/device.c: changed scheme to dump initial values for
6506         variables in idata segment, all print_idata* functions were removed,
6507         now the pic16_printIval* will be called,
6508         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
6509         * _pic16_printPointerType, pic16_printPointerType,
6510         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
6511         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
6512         NEW, similar to the respective functions in SDCCglue.c,
6513         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
6514         way, emitting hex bytes,
6515         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
6516
6517 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6518
6519         * src/avr/ralloc.c (serialRegAssign),
6520         * src/xa51/ralloc.c (serialRegAssign),
6521         * src/pic/ralloc.c (serialRegAssign),
6522         * src/pic16/ralloc.c (serialRegAssign),
6523         * src/hc08/ralloc.c (serialRegAssign),
6524         * src/z80/ralloc.c (serialRegAssign),
6525         * src/ds390/ralloc.c (serialRegAssign),
6526         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
6527
6528 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6529
6530         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
6531         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
6532
6533 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
6534
6535         Cumulative patch for pic16 port:
6536         * src/pic16/device.h (typedef PIC16_device) modified fields for
6537         defining microcontrollers,
6538         * src/pic16/device.c: added new info for all devices in Pics16 array,
6539         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
6540         to be optimised out by the pCode optimiser,
6541         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
6542         specially, bug reported by G.M. Gallant,
6543         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
6544         as force'd so that cannot be optimised out by pCode optimiser,
6545         * src/pic16/pcode.c,
6546         * src/pic16/pcodepeeph.c,
6547         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
6548         they are disabled by default, but can be enabled explicit with
6549         command argument --denable-peeps, for testing,
6550         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
6551         --pomit-ivt in COMPILE_FLAGS
6552
6553 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6554
6555         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
6556           compilation on MSVC
6557
6558 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6559
6560         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
6561
6562 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6563
6564         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
6565         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
6566
6567 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
6568
6569         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
6570         would only assign 0x300001 register.
6571
6572 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
6573
6574         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
6575         in COMPILE_FLAGS. Thanks to G. Gallant for report.
6576
6577 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6578
6579         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
6580         for ds80c400
6581         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
6582         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
6583         added peephole 254 (left shift), 255 (jump table)
6584
6585 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
6586
6587         * device/lib/Makefile.in: removed comment line with model-pic16,
6588         * (target port-specific-objects-pic16): the libraries and objects
6589         are copied to the build directory form the device/lib/pic16/bin
6590         directory
6591
6592         Cumulative patch concerning pic16 port:
6593         * library directory has been re-organized,
6594         * added support for PIC18F1220,
6595         * added headers and library sources for chips 18f1220,18f6520,
6596         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
6597
6598         * configuration registers setting has changed, now each supported
6599         device has a complete description of the registers it uses,
6600         * all initialisations are moved to idata sections, these section
6601         can be absolute or relocatable,
6602         * fixed initialisation of codespace variables,
6603         * fixed warning about PCLATU and gpsim,
6604         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
6605         * (genAssign): use table reads when assigning from variables in codespace,
6606         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
6607         char/int variables placed in codespace,
6608         * (pic16_emitConfigRegs): NEW, emits a list with configuration
6609         registers set in .asm file, no need for --pomit-config-words anymore,
6610         * (pic16glue): some 8051 legacy segments are commented out
6611         (to be removed completely),
6612         * added support for alternative assembler and linker with --asm=
6613         and --link= command line arguments,
6614         * peepholes are disabled automatically in the port, no need to
6615         specify on command line,
6616         * port supports natively char/int/long multiplication, but converts
6617         all divisions to support functions,
6618         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
6619         to the file set in variable $2,
6620         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
6621         strings in ASCII format and not in hex,
6622         * ralloc.c (serialRegAssign): added a triplet of conditional calls
6623         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
6624         allocate proper register if iCodes aren't temporary,
6625
6626 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
6627
6628         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
6629
6630 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
6631
6632         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
6633         is commented out
6634
6635 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6636
6637         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
6638         computed address is reused
6639         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
6640         multi-byte bitfields
6641
6642 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6643
6644         * src/z80/gen.c: (genArrayInit): must check for pointers too
6645
6646 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6647
6648         * support/regression/tests/zeropad.c: never meant to commit the
6649           nestedstruct test: removed, added check for GCC version
6650
6651 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
6652
6653         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
6654         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
6655         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
6656           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
6657           bugs 928906 and 954082 half-empty initializers
6658         * src/SDCCsymt.h,
6659         * src/SDCCsymt.c (getAllocSize): added for above fix
6660         * src/z80/gen.c (genArrayInit): fixed bug 741044
6661         * support/regression/tests/zeropad.c: added tests
6662
6663 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
6664
6665         * src/pic16/device.c (pic16_dump_section): corrected bug which
6666         caused some symbols of the libraries to be misplaced
6667
6668 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6669
6670         * src/pic16/glue.c,
6671         * src/pic16/ralloc.h,
6672         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
6673         to fix conflict with pic port
6674
6675 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6676
6677         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
6678         externs configuration variables,
6679         * src/pic16/ralloc.h,
6680         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
6681         prototype in header, commented out some debug messages
6682
6683 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
6684
6685         * src/pic16/glue.c,
6686         * src/pic16/main.c,
6687         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
6688         for gpasm COFF object generation. Thanks to D. Hawkins for
6689         his patch info
6690
6691 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6692
6693         * src/ds390/main.c,
6694         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
6695         Brock for spotting this)
6696         * src/ds390/gen.c (genEndFunction),
6697         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
6698         interrupt handler and critical. Disable push/pop optimizations when
6699         peephole optimizations disabled.
6700
6701 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6702
6703         Updated pic16 library sources and headers.
6704         * device/lib/pic16/pic18f*/ ,
6705         * device/include/pic16/*.h: modified to handle structured SFR
6706         definitions
6707
6708 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6709
6710         * src/port.h (PORT structure): added hook initPaths, now each
6711         port can declare its own default search paths,
6712         which can been seen with the --print-search-dirs option,
6713         see pic16 port for example,
6714         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
6715         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
6716         * (doPrintSearchDirs): NEW, replaces in a central manner the
6717         printing of search dirs which was split in set*Paths functions,
6718         * (main): added call to port->initPaths and doPrintSearchDirs,
6719         * src/avr/main.c,
6720         * src/ds390/main.c,
6721         * src/hc08/main.c,
6722         * src/izt/i186.c,
6723         * src/izt/tlcs900h.c,
6724         * src/mcs51/main.c,
6725         * src/pic/main.c,
6726         * src/pic16/main.c: modified port structures to reflect addition of
6727         initPaths hook,
6728
6729         * src/pic16/device.c (regCompare): registers are finally sorted by name,
6730         * (pic16_dump_section): for registers in same address reserve memory once,
6731         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
6732         to no_banksel,
6733         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
6734         result is greater in size than right or left,
6735         * (pic16_genUMult8X8_8): there are some cases where the result can
6736         be 16 bits size, so handle these,
6737         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
6738         * (pic16_outBitC): modified to emit pcodes,
6739         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
6740         or not,
6741         * (genDivOneByte): implemented algorithm to divide 8-bits,
6742         * (genCmp): uncommented goto, but issues still exist,
6743         * (genAnd): fixed a bug with variables >8bits,
6744         * (genPackBits): optimization added that uses BCF/BSF to change a
6745         single bit,
6746         * (genAssign): fixed bug when assigning floating point literals,
6747         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
6748         __sdcc_gsinit_startup label,
6749         * src/pic16/main.c (_pic16_init): removed search directory
6750         initialisations,
6751         * (_pic16_initPaths): NEW, used to initialise search directories,
6752         * (_hasNativeMulFor): support functions for all except char/int
6753         multiplication, and char division,
6754         * (PIC16_port struct): modified entry for native mul support,
6755         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
6756         no_banksel option,
6757         * (buildCallTree): call to register_usage is ifdef'ed out,
6758
6759 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6760
6761         * device/include/string.h: applied Stas Sergeev's patch to make this
6762         header file compatible with the preprocessor -Wundef option
6763         * src/SDCCmain.c (main): abort compilation if preprocessor reports
6764         failure (fixes bug #941458)
6765
6766 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6767
6768         * src/SDCCopt.c (killDeadCode): fixed bug #907733
6769         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
6770         that the variable, not the function, should be static
6771         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
6772         to be consistent with non-literal case
6773
6774 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6775
6776         * src/SDCCast.c (isConformingBody): fixed bug #949967
6777         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
6778         convilong): fixed bug #952086
6779
6780 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6781
6782         * src/SDCCmem.c (allocVariables): fixed bug #955321
6783
6784 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6785
6786         * src/hc08/main.c (_hc08_genAssemblerEnd),
6787         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
6788         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
6789         completely eliminated the use of a temporary file
6790         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
6791         when more than one file linked
6792         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
6793
6794 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6795
6796         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
6797         which fixes bug #543481
6798         * support/regression/tests/bug-751703.c: fixed comments left from a
6799         cut and paste error
6800         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
6801         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
6802         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
6803         scopes
6804         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
6805         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
6806         are now changed to underscores in moduleName
6807
6808 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6809
6810         * as/mcs51/lkmem.c: better fix for bug #954173
6811
6812 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6813         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6814
6815         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
6816         * device/include/c8051f000.h,
6817         * device/include/c8051f120.h,
6818         * device/include/c8051f300.h,
6819         * device/include/c8051f310.h,
6820         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
6821         PWM16) and detab'ed
6822
6823 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6824
6825         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
6826         and mailing lists, doc'ed --no-peep-comments, removed reference
6827         to knoppix (newest version has no LyX/LaTeX), other minor changes
6828         * src/SDCCglue.c (glue): save 2 bytes stack space with
6829         option --main-return. The ljmp could probably be avoided too
6830
6831 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6832
6833         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
6834
6835 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6836
6837         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
6838         * src/SDCCopt.c (isLocalWithoutDef),
6839         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
6840         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
6841         (credit to Maarten Brock for patch #949363, on which this is based)
6842         * support/regression/tests/bug-751703.c: some test cases of extern used
6843         within inner scopes.
6844
6845 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6846
6847         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
6848         SPEC_STRUCT
6849         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
6850         struct definitions
6851         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
6852         dwWriteLabel): fix to create valid debugger symbols even when
6853         the module name has non-alphanumeric symbols in it
6854         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
6855         when a variable's allocation has been optimized away
6856
6857
6858 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6859
6860         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
6861         * src/hc08/main.c,
6862         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
6863         * src/mcs51/main.c,
6864         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
6865         * src/ds390/main.c,
6866         * src/z80/gen.c (z80_emitDebuggerSymbol),
6867         * src/z80/main.c,
6868         * src/pic/gen.c (pic14_emitDebuggerSymbol),
6869         * src/pic/main.c,
6870         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
6871         * src/pic16/main.c,
6872         * src/avr/gen.c (avr_emitDebuggerSymbol),
6873         * src/avr/main.c,
6874         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
6875         * src/xa51/main.c,
6876         * src/SDCCdebug.c (emitDebuggerSymbol),
6877         * src/SDCCdebug.h,
6878         * src/port.h: added a debugger struct to the port struct. Added a
6879         callback for defining debugger symbols
6880
6881         * src/SDCCast.c (createLabel),
6882         * src/SDCC.y (labeled_statement): mark all compiler generated labels
6883         with isitmp = 1
6884         * src/SDCCicode.h,
6885         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
6886         iCode back to the ast for the function
6887
6888         * src/hc08/ralloc.c (hc08_assignRegisters),
6889         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
6890         unneeded fields from the regs struct.
6891         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
6892         pushReg() & pullReg() functions instead of emitcode()
6893
6894         * src/hc08/gen.c (genLabel, genhc08Code),
6895         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
6896
6897         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
6898         debugger hooks
6899
6900         * src/hc08/gen.c (genEndFunction, genhc08Code),
6901         * src/hc08/gen.h,
6902         * src/mcs51/gen.c (genEndFunction, gen51Code),
6903         * src/mcs51/gen.h,
6904         * src/ds390/gen.c (genEndFunction, gen390Code),
6905         * src/ds390/gen.h,
6906         * src/z80/gen.c (genEndFunction, genZ80Code),
6907         * src/z80/gen.h,
6908         * src/z80/z80.h,
6909         * src/pic/gen.c (genEndFunction, genpic14Code),
6910         * src/pic/gen.h,
6911         * src/pic16/gen.c (genEndFunction, genpic16Code),
6912         * src/pic16/gen.h,
6913         * src/avr/gen.c (genEndFunction, genAVRCode),
6914         * src/avr/gen.h,
6915         * src/xa51/gen.c (genEndFunction, genXA51Code),
6916         * src/xa51/gen.h,
6917         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
6918         specific code to cdbFile.c and out of the backend code generators
6919
6920         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
6921         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
6922         starting address is now 0
6923
6924         * as/hc08/asm.h,
6925         * as/hc08/m08pst.c,
6926         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
6927         assembler directive for DWARF support
6928         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
6929
6930         * src/src.dsp,
6931         * src/Makefile.in,
6932         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
6933
6934 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6935
6936         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
6937         and inappropriate peephole optimization in jump tables
6938
6939 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6940
6941         * as/hc08/m08pst.c,
6942         * src/SDCCglue.c: sdccopt works for the hc08 port now
6943
6944 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
6945
6946         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
6947
6948 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6949
6950         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
6951
6952 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6953
6954         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
6955         rules
6956         * src/SDCCmain.c,
6957         * src/SDCCglobl.h,
6958         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
6959         comments from the peephole optimizer replacement rules
6960         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
6961         symbols
6962         * src/SDCCcse.c (updateSpillLocation),
6963         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
6964         equivalents
6965         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
6966         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
6967         objects far pointers
6968
6969 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6970
6971         * src/SDCCsymt.h: a missing part of my last change
6972         * src/pic/ralloc.c (regTypeNum),
6973         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
6974
6975 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6976
6977         * src/SDCCicode.h,
6978         * src/SDCCicode.c (aggrToPtrDclType),
6979         * src/SDCCptropt.h,
6980         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
6981         ptrPseudoSymConvert),
6982         * src/pic/ralloc.c (regTypeNum),
6983         * src/pic16/ralloc.c (regTypeNum),
6984         * src/hc08/ralloc.c (regTypeNum),
6985         * src/ds390/ralloc.c (regTypeNum),
6986         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
6987         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
6988
6989 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6990
6991         * link/z80/lkmain.c (afile),
6992         * as/hc08/lkmain.c (afile),
6993         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
6994         prevent a pointer problem when a filename has no directory and
6995         no extension specified.
6996
6997 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6998
6999         * link/z80/lkmain.c (afile): allow periods in directory names
7000         * link/z80/lkmain.c (afile),
7001         * as/mcs51/lkmain.c (afile),
7002         * as/hc08/lkmain.c (afile): allow linker script file to have an
7003         extension other than ".lnk"
7004         * link/z80/lklex.c (getfid),
7005         * link/z80/lkmain.c (parse),
7006         * as/mcs51/lklex.c (getfid),
7007         * as/mcs51/lkmain.c (parse),
7008         * as/hc08/lklex.c (getfid),
7009         * as/hc08/lkmain.c (parse): Support comments in the linker script
7010         file on lines by themselves and after filenames
7011
7012 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7013
7014         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
7015
7016 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7017
7018         * src/z80/peeph-z80.def: removed some peephole rules that don't
7019         work with multibyte arithmetic (fixed bug #937126)
7020         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
7021         to registers and not global variables
7022         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
7023         geniCodePreInc, geniCodePostDec, geniCodePreDec,
7024         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
7025         checking for assignments not internally generated (fixed bug #931895)
7026         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
7027         structure member (fixed bug #930072)
7028
7029 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7030
7031         * src/SDCCmain.c (linkEdit),
7032         * src/hc08/main.c (_hc08_parseOptions),
7033         * as/hc08/Makefile.in,
7034         * as/hc08/aslink.h,
7035         * as/hc08/asm.h,
7036         * as/hc08/m08pst.c,
7037         * as/hc08/lkrloc.c (relr, rele),
7038         * as/hc08/lkarea.c (lnkarea)
7039         * as/hc08/lkmain.c (afile, parse),
7040         * as/hc08/lkelf.c: support for ELF output
7041         * as/hc08/lks19.c (s19),
7042         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
7043
7044 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7045
7046         * as/mcs51/lkihx.c: Fixed bug #899105.
7047
7048 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7049
7050         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
7051         .dsp files from Unix to DOS.
7052
7053 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7054
7055         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
7056         function pointers; we have been compliant for several months now.
7057         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
7058         change that was accidently commented out
7059         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
7060         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
7061         bug #922319
7062
7063 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7064
7065         * src/hc08/gen.c: output of all of the internal debugging information
7066         is now controlled by the D() macro; it is disabled by default
7067
7068 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7069
7070         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
7071         harder to keep the same registers during a CAST iCode
7072         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
7073         long via int can be done in a single cast, if the signedness is
7074         correct.
7075         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
7076         putchar() in tinibios.c in ds390's library
7077
7078 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
7079
7080         * src/SDCCast.c (decorateType): fixed bug #898889,
7081         cast result of a literal complement too
7082         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
7083         fixed check for bitfields
7084
7085 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
7086
7087         * src/SDCCicode.c (geniCodeLogic): made it static,
7088         (geniCodeLogicAndOr): added in order to fix bug #905492,
7089         (ast2iCode): fixed bug #905492
7090         * support/regression/tests/bug-905492.c: added
7091         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
7092         (processParms): fixed bug #927659: don't copy parms, this will clear
7093         decorated flag
7094         * support/regression/tests/bug-927659.c: added
7095
7096 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
7097
7098         * src/SDCCast.c (addCast): don't cast float to char
7099         * device/lib/libsdcc.lib: added _memmove
7100
7101 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
7102
7103         * device/lib/large/Makefile: fixed parallel execution by
7104         replacing `make` by `$(MAKE)`
7105
7106 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7107
7108         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
7109         offsets (fixes bug #923936)
7110
7111 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
7112
7113         * device/lib/small/Makefile: fixed parallel execution by
7114         replacing `make` by `$(MAKE)`
7115
7116 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7117
7118         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
7119
7120 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
7121
7122         * src/pic/gen.c (genCpl): multi-byte complements were not working.
7123         * src/regression/Makefile: Regression test was not running.
7124
7125 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
7126
7127         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
7128         complement if possible
7129         * src/SDCCval.c (valComplement),
7130         * src/SDCCicode.c (operandOperation): fixed complement of literal
7131         * support/regression/tests/onebyte.c (testComplement): added
7132
7133 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
7134
7135         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
7136         return an optimized tree; actually replace actParm with the new tree
7137         * src/SDCCast.h: added some parantheses to remove side effects
7138         * support/regression/tests/bug-920866.c
7139
7140 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
7141         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
7142         Bit operands were not being handled properly in the pic14 port.
7143         (now src/regression/add.c passes again).
7144
7145 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7146
7147         * src/SDCC.y (labeled_statement): case and default no longer require
7148         a following statement (RFE #893037)
7149
7150 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7151
7152         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
7153         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
7154         disabled (fixes bug #916294)
7155         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
7156         "mov a,acc"; patch provided by Lenny Story
7157         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
7158
7159 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7160
7161         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
7162         functions
7163         * src/ds390/gen.c (genFunction, genEndFunction),
7164         * src/ds390/ralloc.c (ds390_assignRegisters),
7165         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
7166         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
7167         pushed if there are parameters passed on the stack. Also, a cleaner
7168         way to decide if r0/r1 should be pushed/popped. (Together they fix
7169         bug #918693)
7170
7171 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7172
7173         * doc/sdccman.lyx,
7174         * device/lib/mcs51/crtpagesfr.asm,
7175         * device/lib/mcs51/crtxinit.asm,
7176         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
7177         to avoid confusion with Si Lab's SFRPAGE register.
7178
7179 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7180
7181         * src/SDCCglue.c (emitMaps): allow public sfr variables
7182         * src/SDCCglue.c (initialComments): include compiler build date
7183         with compiler version and put the timestamp of the generated
7184         assembly file on a serperate line to be less confusing.
7185         * src/port.h: added genInitStartup hook
7186         * src/avr/main.c,
7187         * src/ds390/main.c,
7188         * src/hc08/main.c,
7189         * src/pic/main.c,
7190         * src/pic16/main.c,
7191         * src/xa51/main.c,
7192         * src/z80/main.c: genInitStartup initialize as NULL (default to
7193         historical behaviour)
7194         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
7195         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
7196         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
7197         library instead of hard coding it into the compiler.
7198         * support/regression/ports/mcs51-stack-auto/spec.mk,
7199         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
7200         * device/lib/mcs51/Makefile,
7201         * device/lib/small/Makefile,
7202         * device/lib/large/Makefile,
7203         * device/lib/mcs51/crtpagesfr.asm,
7204         * device/lib/mcs51/crtstart.asm,
7205         * device/lib/mcs51/crtxclear.asm,
7206         * device/lib/mcs51/crtxinit.asm,
7207         * device/lib/mcs51/crtclear.asm,
7208         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
7209         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
7210         and into user configurable files.
7211         * device/lib/clean.mk: clean mcs51 directory too
7212         * support/regression/tests/longlit.c: added static to T1 declaration
7213         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
7214         accesses in the initialization code
7215
7216 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7217
7218         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
7219         OSCTRIMVAL as noted in bug #916008
7220
7221 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7222
7223         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
7224         in loops with multiple exits (reported as incorrect registers
7225         used by Martin Helmling in Sdcc-user list)
7226
7227 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7228
7229         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
7230         made ds390 register extensions look less like error messages
7231
7232 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7233
7234         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
7235         reported by Adam Wozniak in Sdcc-user list
7236
7237 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
7238
7239         * src/SDCCast.c (decorateType): fixed with bug and promotion in
7240         arithmetic optimizations, added debug output
7241
7242 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
7243
7244         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
7245         * sdcc.spec: updated and split sdcc into 3 rpms
7246         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
7247         needed for literals of LEFT_OP and '+'
7248         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
7249         introduced RESULT_TYPE_NOPROM
7250         (geniCodeMultiply): fixed logic for decision if mul is optimized to
7251         left shift
7252         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
7253         limited promotion to int only for '*'
7254         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
7255
7256 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
7257
7258         * src/pic16/gen.c (genSkip),
7259         (genc16bit2lit), (gencjneshort): commented out
7260         (is_LitOp): new helper function, checks operand type
7261         (genCmpEq): rewritten
7262
7263 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
7264
7265         * support/regression/tests/bug-908454.c: added
7266
7267 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
7268
7269         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
7270         * src/SDCCicode.c (usualBinaryConversions): op needs int type
7271         (geniCodeCast): cosmetic, don't preserve bit storage class
7272         (geniCodeLeftShift): added promotion
7273         (geniCodeLogic): fixed regression
7274         * src/SDCCsymt.c (computeTypeOr): accept bits too
7275         (compareType): 2nd part of fix for bug #908454, needed for bitfields
7276
7277 2004-03-07  Borut Razem <borut.razem AT siol.net>
7278
7279         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
7280
7281 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
7282
7283         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
7284         version of pic16_genPackRegisters which does not check if ic is a
7285         CAST operator,
7286         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
7287         function cause string1.c regression test fails
7288
7289 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
7290
7291         * sim/ucsim/configure.in,
7292         * sim/ucsim/configure,
7293         * sim/ucsim/doc/Makefile.in: use docdir
7294         * src/SDCC.y: fixed sbit atrributes
7295         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
7296         * src/SDCCast.c (decorateType): |^& need special promotion handling
7297         * src/SDCCast.h,
7298         * src/SDCCsymt.h: moved definition of RESULT_TYPE
7299         * src/SDCCsymt.h (computeType),
7300         * src/SDCCicode.c: computeType() needs op
7301         * src/SDCCsymt.c (checkTypeSanity),
7302         * doc/sddman.lyx: "plain" bitfields are unsigned
7303         * src/SDCCsymt.c (computeTypeOr): added
7304         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
7305         |^& ops
7306         * src/SDCCval.c (val*): computeType() needs op
7307         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
7308         * support/regression/tests/onebyte.c: added tests for |^&
7309
7310 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
7311
7312         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
7313         for writing icode into asm output.
7314
7315 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
7316
7317         * src/pic16/device.c: added some debug lines enabled
7318         with macro DEBUG_CHECK,
7319         * src/pic16/genarith.c: more debug in genPlus,
7320         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
7321         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
7322         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
7323         * (aopForSym): onStack symbols are re-placed in data memspace,
7324         and onStack flag is cleared,
7325         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
7326         copy temporary pcodeop,
7327         * (genPcall): added warning for not updating PCLATU,
7328         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
7329         always true for pic16 port,
7330         * (genMultOneWord): NEW, supports integer multiplication,
7331         * (genMult): modified to call genMultOneWord,
7332         * (ifxForOp): added warning when return NULL,
7333         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
7334         flag is set before call to operandFromSymbol for implicit
7335         added structures,
7336         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
7337         options.intlong_rent are set by default,
7338         * (_hasNativeMulFor): modified to allow port generation of integer
7339         multiplication,
7340         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
7341         set regtype to REG_SFR for all registers, restricting seting the
7342         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
7343
7344 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7345
7346         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
7347         more than 500 times in the regression tests
7348
7349 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7350
7351         * support/Util/SDCCerr.h,
7352         * support/Util/SDCCerr.c,
7353         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7354         enumerator_list),
7355         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
7356         for symbol conflicts.
7357         * support/valdiags/tests/enum.c,
7358         * support/valdiags/tests/tentdecl.c,
7359         * support/valdiags/tests/struct.c: expect possible error messages
7360         referring to original symbol definitions.
7361         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
7362         * src/SDCCsymt.h,
7363         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
7364
7365 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
7366
7367         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
7368
7369 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
7370
7371         * src/pic16/ralloc.c (newReg): fixed bug #908929
7372
7373 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7374
7375         * src/ds390/gen.c: added missing #include "main.h"
7376
7377 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
7378
7379         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
7380         checking if symbol is already in set,
7381         * src/pic16/device.h: prototype for checkAddSym,
7382         * src/pic16/gen.c: (_G): added entry interruptvector,
7383         * (assignResultValue): removed some commented out lines,
7384         * (genFunction): check for ISR via sym->type, absolute section for
7385         interrupt code is created via a new pBlock, the goto instruction is
7386         placed now correctly at the interrupt vector position, changed all
7387         references from ivec to _G.interruptvector,
7388         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
7389         is the interrupt is a high priority one, same for return from ISR,
7390         * src/pic16/glue.c: changed all calls of addSetHead for publics and
7391         externs to calls of checkAddSym,
7392         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
7393         pic16_pcode_verbose flag is set,
7394         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
7395         * src/pic16/pcoderegs.c: message about how many registers are saved
7396         will only be emitted if pic16_pcode_verbose flag is set,
7397
7398 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7399
7400         * src/ds390/ralloc.h,
7401         * src/ds390/ralloc.c (ds390_regWithIdx),
7402         * src/ds390/gen.c (emitcode),
7403         * src/ds390/main.h,
7404         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
7405         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7406         ds390operandCompare, getRegsRead, getRegsWritten,
7407         initializeAsmLineNode): customized instruction size calculation for
7408         ds390, started basis for some register optimizations
7409         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
7410         corresponding assembly output
7411         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
7412         missing push/pop of r0/r1. Optimized push/pops
7413
7414 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7415
7416         * src/mcs51/main.c (instructionSize): fixed ACALL size
7417         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
7418
7419 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
7420
7421         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
7422         the sorting of rlist with NULL elements
7423         * (print_idataType, print_idata): NEW to create idata sections
7424         * src/pic16/device.h: idataSymSet new variable
7425         * src/pic16/gen.c (genFunction): fixed some bugs in string
7426         comparing, improved the absolute section creation for ISRs,
7427         added FSR0L/FSR0H in registers that are saved in an ISR,
7428         * (genInline): fixed the processing of inline snippets,
7429         now they undergo no process by the peephole optimizer
7430         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
7431         are placed in idataSymSet,
7432         * (pic16emitStaticSeg): extern symbols are added in externs,
7433         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
7434         switching when aboslute variables are placed in access bank memory
7435         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
7436         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
7437         commented out with #if,
7438         * (pic16_packRegisters): reintroduce the check for CAST because some
7439         symbols are not correctly handled,
7440         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
7441         pCodeInstruction instead of pCode,
7442         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
7443         pCodeAsmDir definition,
7444         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
7445         directive, then the argument directive is emitted without the leading
7446         tab, hack for inline labels which must be in the first column,
7447         * (compareLabel,pic16_findNextInstruction),
7448         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
7449         * (insertBankSwitch): modified for the new pCodeAsmDir,
7450
7451 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7452         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
7453
7454         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
7455         instance,
7456         * (pushSide): commented out with #if,
7457         * (assignResultValue): fixed some typos in saving
7458         registers,
7459         * (genPcall): FIXED and sync'ed with genCall,
7460         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
7461         * (genNearPointerGet): fixed to handle some more cases,
7462         implementation scheme via table reads,
7463         * (genConstPointerGet): modified to access code memory correct,
7464         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
7465         and improved to handle some cases
7466         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
7467         instead of "RETLW" for init data
7468         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
7469         not IN_DIRSPACE, work around to reduce bank switching when aboslute
7470         variables are placed in access bank memory (<0x80 and >=0xf80),
7471         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
7472         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
7473         TBLWT_POSTDEC,TBLWT_PREINC
7474         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
7475         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
7476         directives
7477         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
7478         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
7479         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
7480         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
7481
7482 2004-02-29  Borut Razem <borut.razem AT siol.net>
7483
7484         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
7485         support/Util/findme.h, support/Util/system.h: enhance binary relative
7486         search for lib and include by using findProgramPath()
7487
7488 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7489
7490         * src/SDCCpeeph.h,
7491         * src/SDCCpeeph.c (pcDistance),
7492         * src/port.h,
7493         * src/mcs51/ralloc.h,
7494         * src/mcs51/ralloc.c (mcs51_regWithIdx),
7495         * src/mcs51/main.h,
7496         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
7497         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7498         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
7499         size calculation port specific, started basis for some register
7500         optimizations
7501         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
7502         missing push/pop of r0/r1. Optimized push/pops
7503         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
7504         * device/lib/_modsint.c (_modsint),
7505         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
7506         and stack version so regression tests pass
7507
7508 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
7509
7510         * src/Makefile.in (dep): include SLIBOBJS in dependency check
7511         * src/SDCCast.c (decorateType): catch another small optimization
7512         with '?' operator
7513         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
7514         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
7515         modified to finally use computeType() all over SDCC,
7516         see Feature Request #877103
7517         * src/SDCCval.h: cosmetic
7518         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
7519         valCompare(); regression tested in muldiv.c
7520         * support/regression/tests/muldiv.c (testMod): mod sign follows
7521         dividend only
7522
7523 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
7524
7525         * src/SDCCast.c (decorateType): fixed bug #902362
7526         * doc/INSTALL.txt: fixed install instructions for win32
7527
7528 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
7529
7530         * device/include/Makefile.in (install): fixed by replacing spaces
7531         by tabs
7532         * doc/README.txt,
7533         * doc/INSTALL.txt: updated for release
7534         * doc/sdccman.lyx: added warning for --xstack being buggy
7535
7536 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
7537
7538         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
7539         to eliminate build warnings.
7540         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
7541
7542 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
7543            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7544
7545         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
7546         removed -penable-stack, added comment for stack pragma, added
7547         warning for not initializing the stack/frame registers, removed
7548         comment at interrupts section
7549
7550         Stack is made permanent, there is no ability to disable stack usage.
7551         * src/pic16/device.h,
7552         * src/pic16/device.c: removed all references to USE_STACK macro,
7553         * src/pic16/device.c (pic16_dump_section): when no elements in
7554         rlist, free rlist before return,
7555         * (pic16_dump_int_registers): NEW, internal registers are a new set
7556         of general purpose registers reused by each function,
7557         * (checkAddReg): returns 1 if registers is added to set,
7558         * (pic16_groupRegistersInSection): when a registers is of type
7559         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
7560         * src/pic16/device.h: memRange and Assigned Memory are deleted,
7561         SRCASECMP macro is moved here from device.c
7562         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
7563         PO_PCLATU, PO_PRODL, PO_PRODH,
7564         * (pic16_pCodeOpType, genMinus,
7565         changed compares to "a" register, with AOP_ACC,
7566         * (pic16_genPlus): fixed some bugs and indented properly,
7567         * (pic16_addSign): changed size to size+offset in the MOVWF
7568         instruction,
7569         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
7570         multiply 8-bit operand by literal, result is 8-bit,
7571         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
7572         multiply 2 8-bit operand, result is 8-bit,
7573         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
7574         genUMult8X*_16,
7575         * src/pic16/gen.c: changed accUse to contain WREG only,
7576         * (pic16_emitcomment): renamed to pic16_emitpcomment,
7577         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
7578         true, do not use immediate addressing any more unless sym is a
7579         pointer in codespace,
7580         * (aopForRemat): do not use immediate addressing when symbol not in
7581         codespace and when symbol's address is requested,
7582         * (aopOp): for-loop in if(sym->accUse) is modified for the new
7583         accUse size (= 1),
7584         * (aopGet): added case for AOP_ACC and don't return "accumulator
7585         bug" but WREG instead,
7586         * (popGetTempReg): pushes contents of temporary register in stack,
7587         * (popReleaseTempReg): pops contents of temporary register from
7588         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
7589         * (pic16_popGet): separated case AOP_ACC to return register WREG
7590         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
7591         or PO_IMMEDIATE and initializes their instance/offset appropriately,
7592         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
7593         the use of immediate pointers to certain cases only.
7594
7595         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
7596         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
7597         * (assignResultValue, genCall, genRet): modified to use the new
7598         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
7599         genPcall is still broken,
7600         * (genFunction): added code to create 'A' type pBlocks when
7601         interrupt functions are generated, code not extensively tested yet,
7602         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
7603         * (genEndFunction): modified so ISRs pop stored registers from stack,
7604         * (genMultOneByte): cleanup,
7605         * (AccRsh): added flag andmask, to and result with appropriate mask,
7606         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
7607         * (genDataPointerGet): fixed and reenabled its use,
7608         * (genNearDataPointerGet): bugs fixed,
7609         * (genDataPointerSet): bugs fixed,
7610         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
7611         pic16_DumpSymbol, pic16_DumpOp,
7612         * src/pic16/genutils.h: function prototypes for the above functions,
7613         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
7614         pointers,
7615         * (pic16emitRegularMap): many many many improvements, but needs a
7616         major cleanup,
7617         * src/pic16/main.c: enable_stack in pic16_options is removed,
7618         * (_pic16_parseOptions): removed command line options -penable-stack,
7619         * (_process_pragma): emit stack symbol only when stack pragma is
7620         processed,
7621         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
7622         redirected to FSR0L/FSR0H pair,
7623         * (pic16_get_op, pic16_get_op2): modifications and improvements,
7624         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7625         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
7626         for immediates,
7627         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
7628         * (dumpPicOptype): NEW,
7629         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
7630         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
7631         with movff instruction,
7632         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
7633         added pic16_int_regs, some packRegsFor* functions are commented out,
7634         because produce errors,
7635         * src/pic16/NOTES: minor modifications
7636
7637 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7638
7639         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
7640         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
7641         --pack-iram.
7642         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
7643         * as/mcs51/lkaomf51.c: fixed bug #895763
7644
7645 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
7646
7647         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
7648
7649 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7650
7651         * doc/sdccman.lyx: added details about the HC08 storage classes and
7652         interrupts, fixed the register usage info for z80 & gbz80
7653
7654 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
7655
7656         * doc/sdccman.lyx: added more pic16 port documentation
7657         * device/include/pic16/: added header pic18fregs.h
7658
7659 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
7660
7661         * doc/sdccman.lyx: added Vangelis' contribution
7662
7663 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7664
7665         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
7666         extend to the next CALL or PCALL, not just to the next CALL.
7667
7668 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
7669
7670         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
7671
7672 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7673
7674         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
7675         bug #895752 and a better fix for bug #716790
7676
7677 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7678
7679         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
7680
7681 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7682
7683         * doc/sdccman.lyx: minor changes, minor changed
7684
7685 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
7686
7687         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
7688         which can't handle SDCC_NEWONEBYTEOPS,
7689         (geniCodeMultiply): removed conversion from mult to shift for pic14
7690         and pic16
7691
7692 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7693
7694         * src/hc08/gen.h,
7695         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
7696         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
7697         thus fixing bug #895406
7698
7699 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
7700
7701         * device/lib/_modsint.c,
7702         * device/lib/_modslong.c: sign follows divisor only
7703         * src/hc08/gen.c (genMultOneByte): if result size is 1,
7704         signs or signedness can be ignored
7705         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
7706         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
7707         added optimization for IFX,
7708         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
7709         arguments;
7710         reenabled optimization for IFX, which was removed on 2004-01-11
7711         * src/SDCCast.h: added return type IFX
7712         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
7713         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
7714         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
7715         SDCC_OLDONEBYTEOPS selects the old behaviour
7716         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
7717         changed again and commented promotion rule
7718         * src/SDCCval.c (valDiv): promotion no longer necessary
7719         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
7720         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
7721         rewritten
7722         * support/regression/tests/onebyte.c: added
7723
7724 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
7725
7726         * gen.c (genInline): reverted to old code for assemnling inline
7727         code because of bug reported James Chadd
7728
7729 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
7730
7731         * ralloc.h: missing declarations from previous patch,
7732         seems that patch for ralloc.h was never applied, fixed
7733
7734 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7735            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7736
7737         * pcode.c,
7738         * pcode.h,
7739         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
7740         indirect addressing. Marked FSR0 as deprecated
7741         * gen.c (pointerCode): commented out, not needed now
7742         (pic16_popGet2p): new MOVFF helper function
7743         (genGenPointerGet),
7744         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
7745         (shiftRLong): removed duplicate debugging info
7746
7747 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7748
7749         * src/ds390/gen.c (genNearPointerGet),
7750         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
7751         optimization with bits, but not bitfields.
7752         * src/ds390/ralloc.c (packRegisters),
7753         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
7754
7755 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
7756
7757         * src/SDCCcse.c (algebraicOpts): copy operands before modification
7758
7759 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7760
7761         * src/SDCCsymt.h,
7762         * src/SDCCicode.c (operandFromSymbol),
7763         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
7764         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
7765         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
7766         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
7767         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
7768         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
7769         bug #892038
7770         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
7771         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
7772         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
7773         * src/SDCCsymt.c (newSymbol),
7774         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7775         enumerator_list),
7776         * src/SDCCval.h,
7777         * src/SDCCval.c (newiList): fixed bug #885705
7778
7779 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7780
7781         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
7782         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
7783
7784 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7785
7786         * device/include/c8051f120.h,
7787         * device/include/c8051f300.h,
7788         * device/include/c8051f310.h: added/updated header files for Silicon
7789         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7790         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
7791         in new section Submitting patches
7792
7793 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7794
7795         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
7796         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7797         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7798         genGenPointerSet),
7799         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
7800         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7801         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7802         genGenPointerSet),
7803         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
7804         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7805         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7806         genGenPointerSet),
7807         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
7808         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7809         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7810         genGenPointerSet): fixed bug #892400
7811         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
7812         to eliminate build warnings.
7813         * src/SDCCast.c (processParms),
7814         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
7815         fixed bug 751859
7816         * support/valdiag/valdiag.py: added GCC to the list of defines active
7817         when compiling with gcc
7818
7819 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7820
7821         * support/Util/SDCCerr.h,
7822         * support/Util/SDCCerr.c,
7823         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
7824         with an incomplete type (fixed bug #883734)
7825         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
7826
7827 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7828
7829         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
7830
7831 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7832
7833         * src/SDCCast.c (decorateType),
7834         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
7835         function pointer implementation
7836         * support/regression/tests/funptrs.c: added tests to verify both forms
7837         of function pointers work correctly. Added tests to verify parameters
7838         are passed in the correct order.
7839
7840 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
7841
7842         * device.c (regCompare): registers are sorted by ascending
7843         address and increasing size,
7844         * main.c (_pic16_finaliseOptions): removed the declaration
7845         of compiler macro MCU. Now a macro of the format pic18fxxxx
7846         will be defined from the command line
7847
7848 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7849             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7850
7851         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
7852         PCOP_RLCF was overwritten!
7853         * gen.c (genSkip): commented out calls to pic16_emitcode,
7854         * (genCmpEQ): fixed "long" compares, only high word did get compared,
7855         * (genlshTwo),
7856         * (genRRC): added debugging info,
7857         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
7858         overwritten while shifting,
7859         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
7860         overwritten while shifting,
7861         * (AccLsh),
7862         * (AccRsh),
7863         * (shiftLLeftOrResult),
7864         * (shiftRLeftOrResult),
7865         * (shiftRLong),
7866         * (shiftLLong): Implemented with pic16_emitpcode
7867         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
7868         * (genLeftShift): Fixed bug, operand for shift by variable always
7869         was "and"ed with 0x0f,
7870         * (genLeftShiftLiteral),
7871         * (genrshTwo),
7872         * (genRightShiftLiteral): added debugging info,
7873         * (genrshFour): added comment,
7874         * (genRightShift): determined signedness from operand "left"
7875         instead of "result"
7876
7877 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7878
7879         * src/SDCCicode.c (geniCodeParms),
7880         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
7881         function pointers, fixed function pointer bugs #861242 and #861896
7882
7883 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7884
7885         * device/include/c8051f000.h,
7886         * device/include/c8051f120.h,
7887         * device/include/c8051f300.h: added header files for Silicon
7888         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7889
7890 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
7891
7892         * src/SDCCast.c (processParams): added new type flow and restructured
7893         (gatherAutoInit): added new type flow
7894         (addCast): cosmetic changes
7895         (getLeftResultType): added new type flow for array indices, patch
7896         provided by Stas, see FR #877103
7897         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
7898         array index patch by Stas
7899         * src/SDCCast.h: added prototype getResultTypeFromType()
7900         * src/SDCCval.h,
7901         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
7902         * src/pic/glue.c (pic14emitStaticSeg),
7903         * src/pic16/glue.c (pic16emitStaticSeg),
7904         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
7905         for initialization of symbols
7906         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
7907         * support/Util/SDCCerr.h:
7908         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
7909         * .version: bumped version number to 2.3.8
7910         * device/include/Makefile.in (install),
7911         * doc/Makefile (install): changed to 'rm `find ...`' construct to
7912         avoid warnings
7913
7914 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
7915
7916         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
7917         Slade Rich fixed an optimization bug
7918         * src/pic/pcodepeep.c,
7919         * src/pic/pcoderegs.c
7920         * doc/Makefile (install): added test for directory
7921
7922 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7923
7924         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
7925         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
7926         * src/pic/ralloc.c (getRegPtr, getRegGpr),
7927         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
7928         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
7929         * as/mcs51/asexpr.c (term),
7930         * as/hc08/asexpr.c (term): fixed bug #887146
7931
7932 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7933
7934         * src/z80/gen.c (genMult): handle single byte result product
7935         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
7936         DUMMY_READ_VOLATILE (fixed bug #886367)
7937
7938 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
7939
7940         * support/regression/tests/libmullong.c: fixed logic, on little endian
7941         hosts we ended without a mullong_wrapper()
7942
7943 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7944
7945         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
7946         virus/worm forged address usage.
7947
7948 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
7949
7950         Fixed promotion, it should be done on AST level:
7951         * src/SDCCast.c (addCast): added promotion to int
7952         (decorateType): updated call to upCast()
7953         * src/SDCCicode.c (geniCodeLeftShift): removed call to
7954         usualUnaryConversions()
7955
7956 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
7957
7958         * support/regression/tests/literalop.c (mulWrapper): Added a
7959         wrapper to remove integer overflow warnings.
7960
7961         * support/regression/tests/float_trans.c: Made work on host.
7962
7963         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
7964         location of sz80.
7965
7966         * support/regression/generate-cases.py (main): Changed from inline
7967         to a main method.
7968
7969         * doc/Makefile (install): Changed to depth first to get rid of
7970         missing directory install warning.
7971
7972         * as/Makefile (install-doc): Made work on Mac.
7973
7974 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
7975
7976         * src/SDCCast.c: added an additional type flow in decorateType() of
7977         opposite direction, see feature request #860006; it's enabled at runtime
7978         by setting the environment variable SDCC_NEWTYPEFLOW
7979         * src/SDCCast.h: changed prototype of decorateType()
7980         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
7981         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
7982         'char' to 'int' can be omitted, if both operands are 'unsigned char';
7983         see feature request #877103
7984         * src/SDCCval.c: updated call of decorateType()
7985         (valBitwise): fixed bug #882876
7986         (valMinus): added promotion
7987         (valLogicAndOr): result is unsigned
7988         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
7989         * src/SDCCsymt.c (computeType),
7990         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
7991         must not cause an unsigned operation
7992         * src/pic/glue (pic14emitRegularMap),
7993         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
7994
7995 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
7996
7997         * src/pic/pcode.c (PCodeID): commented out left over debug code
7998
7999 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
8000
8001         * support/valdiag/tests/overflow.c: added shift tests
8002         * src/pic/device.c,
8003         * src/pic/gen.c,
8004         * src/pic/gen.h,
8005         * src/pic/glue.c,
8006         * src/pic/main.c,
8007         * src/pic/pcode.c,
8008         * src/pic/pcode.h,
8009         * src/pic/pcodepeep.c,
8010         * src/pic/pcoderegs.c,
8011         * src/pic/ralloc.c,
8012         * src/pic/ralloc.h: applied patch from Slade Rich;
8013         added support for multiple code pages and multiple RAM banks on the
8014         PIC 14 port. The ASM files now no longer simply assume all the
8015         code / RAM are in the same page / bank. This means the linker can
8016         safely allocate code/RAM of separate ASM files to different pages/banks.
8017         * doc/sdccman.lyx: added Slade's tips
8018         * src/mcs51/peeph.def: fixed bug #880768
8019
8020 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8021
8022         * src/hc08/ralloc.c (rematStr): fixed bug #879282
8023         * src/SDCCast.c (decorateType): fixed bug #880197
8024
8025 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
8026
8027         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
8028         getopt.h.
8029
8030         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
8031         strtof is not part of C89 and isn't included with Mac OS X.
8032
8033 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8034
8035         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
8036         shiftL2Left2Result): fixed bug #879326
8037         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
8038         (genMultOneByte): fixed bug in signed vs unsigned multiplication
8039         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
8040         address fetch for clr instruction
8041         * device/lib/hc08/_mulint.c: created optimized assembly version
8042         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
8043
8044 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
8045
8046         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
8047         proposed in FR #877103
8048
8049 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
8050
8051         * src/SDCCval.c (cheapestVal): added missing checks
8052         * src/SDCCicode.c (usualBinaryConversions): fixed condition
8053         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
8054
8055 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
8056
8057         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
8058         equal operands
8059
8060 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
8061
8062         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
8063         loaded with the linker search paths (-L arguments) and the libraries
8064         to be linked with the current source (-l arguments). Changes
8065         currently will affect only the pic16 port.
8066         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
8067         include path the port specific paths and port specific libraries,
8068         * gplink command now contains the $3 argument,
8069         * src/pic16/device.h,
8070         * src/pic16/device.c,: structure PIC_device is made public and
8071         renamed to PIC16_device, the same for variable Pics which is renamed
8072         to Pics16. Updated all references to them.
8073         * src/pic16/glue.c (pic16glue): corrected bug with code
8074         initialization which bypassed the variable initializations block.
8075
8076         * device/lib/pic16/Makefile.rules: removed --penable-stack from
8077         COMPILE_FLAGS and added the --nostdinc option
8078
8079 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8080
8081         * device/include/mc68hc908jb8.h: Register defs for another member
8082         of the hc08 family. Contributed by Bjorn Bringert - thanks!
8083
8084 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
8085
8086         Documenting changes from previous commits.
8087         * configure.in (version 1.56),
8088         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
8089         when generating output files to configure the pic16 library,
8090         but now I've commented it out, since gputils aren't installed in the
8091         SF compile farm, so library won't compile
8092
8093         * device/lib/Makefile.in (version 1.56): initially I've added in
8094         target 'all' the prerequestive 'model-pic16' so it compiled the
8095         pic16 library, but now I've commented it out for the same reasons
8096         above,
8097         * added targets 'model-pic16' and 'objects-pic16' to compile the
8098         library
8099         * added target 'port-specific-objects-pic16' to handle the
8100         generated libraries and copy them into the build/ directory
8101         * added target 'clean-intermediate-pic16' to clean intermediate
8102         files into pic16 directory
8103         * in target 'installdirs' added line to create directory pic16 in
8104         the installation path
8105
8106         * device/include/Makefile.in (version 1.11): in target 'install'
8107         added lines to copy all header files to installation path,
8108         * in target 'installdirs' added line create directory for pic16
8109         headers in the installation path
8110
8111 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
8112
8113         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
8114          a function call
8115
8116 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
8117
8118         * configure,
8119         * device/lib/configure.in,
8120         * device/lib/configure: fixed for autoconf 2.57
8121
8122 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8123
8124         * src/z80/main.c (_parseOptions): fixed the portmode= command line
8125         option so that it actually works. Made it specific to the z80, since
8126         the gbz80 doesn't have these kinds of I/O ports.
8127
8128 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8129
8130         * device/include/z180.h,
8131         * device/lib/_memcpy.c,
8132         * device/lib/_memmove.c,
8133         * device/lib/_mulint.c,
8134         * device/lib/ser_ir.c,
8135         * device/lib/ser_ir_cts_rts.c,
8136         * device/lib/_strcmp.c,
8137         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
8138         * src/z80/main.c (_process_pragma): add support for pragmas bank and
8139         portmode; added deprecation warning for bank= and protmode= forms.
8140         Also, guard against buffer overflow.
8141         * src/z80/gen.c (aopGet): generate better code for sfr banked read
8142
8143 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8144
8145         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
8146         changed interrupt vector table generation to only emit declared vectors.
8147         * device/include/Makefile.in: added missing backslash
8148         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
8149
8150 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8151
8152         Mainly changes to support compilation of the device libraries
8153         * src/pic16/device.c: stack is allocated via symbol and not
8154         via literal number. The symbol is placed in the corresponding
8155         position of the data ram
8156         * (pic16_dump_section): relocatable and absolute uninitialized
8157         data are now emitted in sorted order to reduce section naming,
8158         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
8159         weren't marked as being in the access bank,
8160
8161 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
8162
8163         Added portion of GNU PIC Library under the directory
8164         device/include/pic16 and device/lib/pic16. These files
8165         contain the declarations of SFRs for the PIC18Fxx2 devices.
8166         The directory is initialized via configure from toplevel.
8167
8168 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
8169
8170         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
8171         the spilllocations to be compared correctly
8172
8173 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8174
8175         * src/SDCCast.c (decorateType): fixed bug introduced today
8176
8177 2004-01-12  Borut Razem <borut.razem AT siol.net>
8178
8179         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
8180         doc/sdccman.lyx: upper case pragmas are deprecated
8181
8182 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
8183
8184         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
8185         in simpler and even better code
8186
8187 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
8188
8189         * src/SDCCicode.c (operandOperation): fixed bug #874819
8190         * src/SDCCast.c (decorateType): fixed
8191         char foo (unsigned long ul) { return ul > 0; }
8192
8193 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8194
8195         * doc/sdccman.lyx: Moved and added some sections, small changes
8196         all over. Telling LaTeX to be less strict with word spacing
8197         to better keep the right margin. Changed some notes about
8198         maintainance of the ports in section 3.2.1 - is it OK like this?
8199
8200 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
8201
8202         SDCC source changes:
8203         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
8204         convilong): modified to inform the pic16 port that builtin functions
8205         are external
8206
8207         PIC16 PORT specific changes:
8208         * src/pic16/device.c pic16_dump_equates() added,
8209         processor registers declared internally by the port are emitted in
8210         the translation as equates,
8211         * src/pic16/gen.c: inline code is passed unprocessed to the
8212         translation,
8213         * (pic16_popGetLit2): fnuction modified to take second operand as
8214         pCodeOp pointer and not as literal,
8215         * (popRegFromIdx): prefixed with pic16_,
8216         * (pic16_popCombine2): modified to receive already allocated pCode
8217         operands,
8218         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
8219         * (genFunction): initializes local stack frame and pushes on stack
8220         all the registers used by this function,
8221         * (genEndFunction): restores all registers from stack and restores
8222         stack frame,
8223         * src/pic16/glue.c (pic16emitRegularMap): various changes and
8224         improvements,
8225         * (pic16glue): changed the program startup sequence,
8226         * added new dbName code 'A' for functions placed in absolute section
8227         * src/pic16/main.c: added function attribute _naked,
8228         * added pragma 'code' to place a fnuction at an absolute address,
8229         * added command line arguments --debug-ralloc and --pcode-verbose,
8230         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
8231         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
8232         * (pic16_newpCodeOpLit2): modified to take the second operand as
8233         pCodeOp pointer,
8234         * (pic16_printpBlock): modified to emit each function in a separate
8235         section,
8236         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
8237         UPPER for immediate operands,
8238         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
8239         instruction,
8240         * src/pic16/peeph.def: all peepholes with movff are commented out,
8241         because there is a problem in the pcode peep optimizer,
8242         * src/pic16/ralloc.c: the register allocator can now reuse local
8243         function symbols for another function. This saves register usage.
8244         * src/pic16/ralloc.h: added flag isLocal in structure regs,
8245
8246         Added file src/pic16/NOTES with information about program writing on
8247         the current port version.
8248
8249 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8250
8251         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
8252         and peephole 252 (array access)
8253
8254 2004-01-09  Borut Razem <borut.razem AT siol.net>
8255
8256         * src/SDCCmain.c : fixed #872250: -l command line defined library
8257           files are scanned before standard library files
8258
8259 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8260
8261         * src/SDCCast.c (decorateType): fixed bug #874046
8262
8263 2004-01-09  Borut Razem <borut.razem AT siol.net>
8264
8265         * support/scripts/sdcc.nsi: remove previous installation
8266
8267 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8268
8269         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
8270         bytes for last interrupt vector (mcs51)
8271         * sdcc.spec: fixed typo
8272
8273 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8274
8275         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
8276         gen51Code): more efficient parameter receive for --model-large
8277         ("bug" #845294)
8278
8279 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8280
8281         * src/ds390/main.c,
8282         * src/z80/main.c: added missed needLinkerScript flags (more than
8283         one port structure defined in these file)
8284         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
8285         bug #795325
8286
8287 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
8288
8289         * src/SDCCmain.c: removed various references to DEFAULT_PORT
8290         * src/port.h: added flag needLinkerScript in port->linker
8291         structure to inform whether to create a .lnk file or not,
8292         * src/avr/main.c,
8293         * src/ds390/main.c,
8294         * src/hc08/main.c,
8295         * src/mcs51/main.c,
8296         * src/pic/main.c,
8297         * src/pic16/main.c,
8298         * src/xa51/main.c,
8299         * src/z80/main.c: changed appropriately to configure
8300         needLinkerScript flag
8301         * src/pic/gen.c,
8302         * src/pic16/gen.c (genAddrOf): fixed bug #863624
8303         * src/pic/glue.c: added variable udata_section_name to
8304         override default uninitialized data segment definition for
8305         devices only with SHAREBANK memory (reported from Erik Epetrich)
8306         * (pic14emitOverlay): modified to emit a commented overlay segment
8307         directive when no overlay data exist
8308         * (picglue): modified to emit uninitialized data segment
8309         according to udata_section_name
8310         * src/pic/main.c (_pic14_parseOptions): added command line
8311         options --udata-section-name=[name] to override default
8312         udata definition name
8313         * modified _linkCmd and _asmCmd to include compiler passed
8314         arguments via -W option
8315         * src/pic16/main.c: added $l in _asmCmd, changed extension for
8316         object file from '.rel' to '.o' in port->linker structure,
8317         changed size of fptr from 2 to 3 in port structure
8318
8319 2004-01-07  Borut Razem <borut.razem AT siol.net>
8320
8321         * support/scripts/sdcc.nsi: update PATH
8322         * support/scripts/sdcc.ico: craeted
8323
8324 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
8325
8326         * device/include/Makefile.in: fix install
8327         * doc/Makefile: fix install
8328
8329 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8330
8331         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
8332         in bug #860505
8333         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
8334         how the function variable allocation summary is displayed; also
8335         include information about variables allocated to the overlay
8336         segment
8337
8338 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8339
8340         * as/mcs51/lkmain.c: Help about -Y option
8341         * as/mcs51/lkarea.c: Fixed gcc warnings
8342
8343 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8344
8345         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
8346         fixed warning
8347         * support/valdiag/tests/overflow.c: added
8348         * src/SDCCast.c (decorateType),
8349         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
8350         LEFT_OP (left shift)
8351
8352 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8353
8354         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
8355         (default behaviour).
8356
8357 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8358
8359         A python script to validate compiler diagnostic messages. It can be
8360         used to verify that sdcc complains about bad c source code and
8361         gives a good location of the error.
8362         * support/valdiag/Makefile,
8363         * support/valdiag/valdiag.py,
8364         * support/valdiag/tests/*
8365
8366 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8367
8368         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
8369         * src/SDCCsymt.c (newEnumType),
8370         * src/SDCCsymt.h
8371         * support/Util/SDCCerr.c,
8372         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
8373         enum related bugs.
8374         * support/regression/tests/enum.c: added test for enum values that
8375         require at least 2 bytes of storage.
8376
8377 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8378
8379         * src/common.h: added ifndef/define/endif macros
8380         around the header file.
8381         Bug reported from Jesus Calvino-Fraga
8382
8383 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8384
8385         * sdcc.spec: updated
8386         * device/include/Makefile.in: don't install CVS directories
8387         * device/lib/Makefile.in: added removal of CVS directories after install
8388         * doc/Makefile: fixed install, added local_icons
8389         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
8390         * src/mcs51/gen.c (genRightShift): fixed bug #870788
8391         * src/ds390/gen.c (genRightShift): fixed bug #870788
8392         * src/SDCCast.c (decorateType): fixed bug #870781
8393
8394 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8395
8396         PIC16 port related changes:
8397         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
8398         added variable stackPos,
8399
8400         * gen.c: genCall, assignResultValue: added support for
8401         pushing/retrieving function parameters to/from stack,
8402         genFunction,genEndFunction: setup stack frame for the
8403         generated function,
8404         genAddrOf: will be changed according to bug 863624
8405
8406         * added files genutils.c and genutils.h which contain gen*
8407         debugged and optimised functions extracted from gen.c
8408
8409         * glue.c: added variable 'externs' which holds extern symbols,
8410         pic16emitRegularMap: is modified to properly handle relocatable
8411          symbols under the new scheme,
8412         pic16createInterruptVect: is modified
8413         pic16printPublics: is modified to emit 'global' assembler directives,
8414         added pic16_printExterns to print extern symbols,
8415         pic16glue: initializes stack/frame pointer in the beginning of
8416         the assembly output. Temporary hack, will be corrected later,
8417         because gplink yet does not support stack and SDCC does not
8418         yet support a type of crt0.o object to create the final binary.
8419
8420         * Removed many lines that contain 8051 legacy code.
8421         * The code is finally placed under a 'code' directive.
8422         * Added port specific options.
8423
8424         * _process_pragma: simplified since now we do not need *special*
8425         include file to define SFR registers. But a separate header
8426         will be needed. This will be developed later.
8427         * _pic16_parseOptions: added, parses port specific options:
8428         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
8429         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
8430         --preplace-udata-with=
8431
8432         * _pic16_setDefaultOptions: modified to initialize section names,
8433         but hack is temporarly out of order since it needs improvement.
8434         * _pic16_genAssemblerPreamble: configuration words are emitted by
8435         their address instead of their name. This part is incomplete and
8436         supports only the 18Fxx2 devices. Other devices will emit an error
8437         during assembly since they do not contain the same set of config
8438         registers
8439         * _pic16_genIVT: is modified,
8440
8441         * pcode.c: added definitions for some hardware registers that are needed
8442         for stack support
8443         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
8444         All PCI entries are updated. Now LFSR is supported.
8445         * Removed pic16_pciTRIS is mentioned by mdubuc in source
8446         * added pic16_newpCodeOpLit2 to support instructions with
8447         two literal arguments
8448         * pic16_pCode2str: corrected code that emits assembler instructions
8449         with two literal operands and those that have an access bit modifier
8450         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
8451         this fixes a bug which caused some labels to be lost, when an
8452         assembler directive was added, i.e. banksel,
8453         * pic16_FixRegisterBanking: improved logic that causes the insertion
8454         of bank switching,
8455         * InlineFunction: functions that are called once, are not any more
8456         inlined. This can be a port option in the future,
8457
8458         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
8459
8460         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
8461         hold the corresponding uninitialized symbols,
8462         * pic16_allocProcessorRegister: registers have explicit marked the
8463         accessBank field,
8464         * pic16_allocInternalRegister: registers are explicit marked as
8465         not used,
8466         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
8467         processing list, so bit registers were lost,
8468         *
8469
8470         * ralloc.h: added field 'accessBank' and original symbol operand
8471         in register definition,
8472         * removed the field isMapped from register definition,
8473
8474         ** Several functions have been removed from various sources:
8475         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
8476         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
8477         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
8478         pic16_assignRelocatableRegisters
8479
8480         ** others have been introduced:
8481         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
8482         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
8483
8484 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
8485
8486         * support/scripts/inc2h.pl: changed definition of BIT_AT
8487         to emit 'sbit at' instead of 'bit at'. This was a request.
8488
8489         PIC16 port related preliminary changes:
8490         * gen.c: prefixed function popRegFromString with
8491         pic16_ and all references to it corrected
8492         * pcode.c: all pic16_pc_* hardware registers prefixed
8493         with underscore (_),
8494         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
8495         * ralloc.c: newReg(): when register is REG_SFR then
8496         set address to rIdx,
8497         pic16_allocProcessorRegister(): marks register wasUsed=0
8498         pic16_writeUsedRegs(): added a call to assign processor
8499         registers via pic16_assignFixedRegisters
8500
8501 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8502
8503         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
8504         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
8505         variables in unused register banks.  Also the SSEG is placed
8506         wherever there is enough space for it, and IDATA can be anywhere
8507         in internal RAM.  For now compile using -Wl-Y[stack_size].
8508         The mem file is different for this option as well, since it
8509         makes no sense of talking about DSEG lenght.
8510
8511 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
8512
8513         * src/SDCClrange.c: fixed bug 869095 that caused segfault
8514         in certain cases, e.g. when ROM assignment, patch provided
8515         from Albert den Haan.
8516
8517 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
8518
8519         Many signedness and type propagation fixes:
8520         * src/SDCCicode.c: made geniCodeCast() static
8521         replaced SPEC_ by IS_ (cosmetic)
8522         (operandOperation): fixed div and mod operation
8523         (usualBinaryConversions): added support for promotion of char
8524         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
8525         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
8526         (geniCodeAdd): an array index will stay unsigned, even if promoted
8527         from char to int
8528         (geniCodeArray): ditto
8529         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
8530         * src/SDCCsymt.c (computeType): added more support for char;
8531         promotion of char is selectable by promoteCharToInt, fixed signedness
8532         for all cases
8533         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8534         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8535         * src/SDCCval (val*): replaced signedness calculation by
8536         computeType()
8537         rearranged if-branches (cosmetic)
8538         (valShift): added warning W_SHIFT_CHANGED
8539         (valCompare): fixed problem with different types
8540         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
8541         * support/regression/tests/literalop.c: added many cases
8542         * support/regression/tests/ast_constant_folding.c: changed finally to
8543         'unsigned int'
8544         * .version: new year, new version: 2.3.7
8545         * src/SDCCmain.c (main): applied patch #866468
8546         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
8547         provided by Scott Bronson
8548         * doc/sdccman.lyx: updated documentation for sdcdb
8549         updated and added chapter tips
8550
8551 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8552
8553         * src/SDCCsymt.h: missing from yesterday's commits
8554
8555 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8556
8557         * src/SDCC.y (struct_or_union_specifier),
8558         * support/Util/SDCCerr.c,
8559         * support/Util/SDCCerr.h: verify that struct & union tags are used
8560         as declared.
8561
8562 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8563
8564         * src/SDCCglobl.h: missing from yesterday's commits
8565
8566 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8567
8568         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
8569         sft_attributes, struct_declaration, parameter_declaration,
8570         type_name, start_block, declaration_list),
8571         * src/SDCC.lex (check_type): support redefinition of typedef names
8572
8573 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8574
8575         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
8576         aligned xdata arrays. Erik helped me with the if clause.
8577
8578 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8579
8580         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
8581         warning
8582
8583 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8584
8585         * src/SDCCast.h,
8586         * src/SDCCast.c (newAst_),
8587         * src/SDCCicode.h,
8588         * src/SDCCicode.c (ast2iCode, newiCode),
8589         * src/SDCCglobl.h,
8590         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
8591         expr, statement, expression_statement, selection_statement,
8592         iteration_statement, expr_opt, jump_statement): foundation for tracking
8593         sequence points
8594         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
8595         point code too)
8596
8597 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8598
8599         * support/Util/SDCCerr.c,
8600         * src/SDCCast.h,
8601         * src/SDCCast.c (createCase, createDefault, decorateType),
8602         * src/SDCClabel.c (labelUnreach),
8603         * src/SDCC.y (labeled_statement, jump_statement): More improvements
8604         to error messages.
8605         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
8606         (with thanks to Stas Sergeev)
8607         * device/include/time.h,
8608         * device/lib/time.c (CheckTime): suppress unreachable code warning
8609
8610 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8611
8612         * src/SDCCast.c (createIvalCharPtr),
8613         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
8614         bug #753752)
8615         * support/regression/tests/nullstring.c: tests for these two bugs
8616
8617 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8618
8619         * support/Util/SDCCerr.h,
8620         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
8621         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
8622         about storage class and 'at' used inside struct or union
8623         * src/SDCCBBlock.c (iCodeFromeBBlock),
8624         * src/SDCCcse.c (ifxOptimize),
8625         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
8626         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
8627         printIval, emitStaticSeg, emitOverlay),
8628         * src/SDCClabel.c (deleteIfx),
8629         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
8630         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
8631         gatherAutoInit, processParms),
8632         * support/Util/SDCCerr.h,
8633         * support/Util/SDCCerr.c (werrorfl): Support for better error location
8634         reporting for post-parse errors.
8635
8636 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8637
8638         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
8639         implicit casts via union; they don't work on big endian systems
8640         (possible fix for bug #861138)
8641
8642 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8643
8644         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
8645         * src/mcs51/main.c: fixed the fix for bug #737001
8646
8647 2003-12-15  Borut Razem <borut.razem AT siol.net>
8648
8649         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
8650
8651 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8652
8653         * support/makebin/makebin.c: put output in binary mode
8654
8655 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8656
8657         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
8658         xdata and data memory on startup. Set the environment variable
8659         SDCC_NOGENRAMCLEAR to disable this.
8660         * src/mcs51/peephole.def,
8661         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
8662         (allows non-interrupt and interrupt code to safely compete for a resource
8663         without the non-interrupt code having to disable interrupts)
8664
8665 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8666
8667         * src/SDCCicode.c (geniCodeAdd),
8668         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
8669         with valFromType if type might be a pointer and host is big endian).
8670         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
8671         types, not just integer types.
8672         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
8673         multiply defined with mismatching "at" address.
8674
8675 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8676
8677         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
8678         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
8679         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
8680         with embedded nulls (fixed bug #753752)
8681
8682 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8683
8684         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
8685         Apparently this did not see much testing (endless loop)
8686
8687 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8688
8689         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
8690
8691 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8692
8693         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
8694         gracefully handle NULL memmap pointers
8695
8696 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8697
8698         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
8699         instead of deleting the iCode when an operand is volatile
8700         * src/z80/gen.c (genDummyRead),
8701         * src/mcs51/gen.c (genDummyRead),
8702         * src/ds390/gen.c (genDummyRead),
8703         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
8704         not just IC_RIGHT
8705         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
8706         * src/SDCC.y: fixed bug #850420
8707
8708 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8709
8710         Applied z80 i/o port patch from Peter Townson and fixed some operators
8711         to better handle operands in A register.
8712         * device/include/z180.h
8713         * src/SDCC.y
8714         * src/SDCCglue.c
8715         * src/z80/gen.c
8716         * src/z80/gen.h
8717         * src/z80/main.c
8718         * src/z80/peeph-z80.def
8719         * src/z80/peeph.def
8720         * src/z80/z80.h
8721
8722 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8723
8724         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
8725
8726 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8727
8728         * device/lib/hc08/_mullong.c: Removed extra #endif
8729
8730 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8731
8732         * sim/ucsim/hc08.src/inst.cc,
8733         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
8734         carries from x to h
8735         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
8736         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
8737         * device/include/stdarg.h: fixed varargs for hc08
8738         * device/lib/Makefile.in,
8739         * device/lib/hc08/Makefile,
8740         * device/lib/hc08/_mulint.c,
8741         * device/lib/hc08/_mullong.c: fixed some endian problems
8742
8743 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8744
8745         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
8746         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
8747         * device/lib/_gptrget.c,
8748         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
8749
8750 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8751
8752         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
8753         * src/SDCCast.c (astErrors): fixed bug #846007
8754         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
8755
8756 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8757
8758         * src/SDCCast.c (decorateType): disabled a transformation I added in
8759         revision 1.188 (access to fields of a structure at an absolute address);
8760         it breaks with bitfields, extern declarations, and gcse analysis.
8761         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
8762         could be assigned through a pointer, so don't complain.
8763         * src/SDCCast.c (astErrors),
8764         * src/SDCCast.h,
8765         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
8766
8767 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
8768
8769         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
8770         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
8771         output of __config directives, since gpasm now supports them
8772         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
8773         pre-processor macro, i.e. -DMCU=p18f452
8774         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
8775         and modified to handle 'cast' icode similarly to '=' icode
8776         * src/pic16/device.h (typedef struct PIC_device): added field
8777         'extMIface' to indicate that chip has external memory interface
8778         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
8779         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
8780         18F8720
8781
8782 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8783
8784         * src/SDCC.y (pointer): fixed bug #846006
8785         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
8786         * src/SDCCast.c (decorateType): fixed bug #846009
8787         * src/ds390/peeph.def,
8788         * src/ds390/gen.c (genAnd, genOr),
8789         * src/mcs51/peeph.def,
8790         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
8791
8792 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8793
8794         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
8795         * src/SDCCdflow.c
8796         * src/SDCCcse.c
8797         * src/SDCCcse.h
8798         * src/SDCCBBlock.h
8799         * src/SDCCBBlock.c
8800
8801 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
8802
8803         fixed bug #845089
8804         * src/SDCCbitv.h,
8805         * src/SDCCbitv.c: added function to free a bitvector
8806         * src/SDCClrange.h,
8807         * src/SDCClrange.c: added function to recompute the liveranges
8808         * src/avr/ralloc.c,
8809         * src/ds390/ralloc.c,
8810         * src/hc08/ralloc.c,
8811         * src/mcs51/ralloc.c,
8812         * src/pic/ralloc.c,
8813         * src/pic16/ralloc.c,
8814         * src/xa51/ralloc.c,
8815         * src/z80/ralloc.c: recompute the liveranges after register packing
8816
8817 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
8818
8819         * src/SDCCloop.c (newInduction): fixed bug #845630
8820
8821 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8822
8823         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
8824         inadvertantly left behind from my 2003-11-12 change
8825
8826 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8827
8828         Updated headers I neglected to commit yesterday.
8829         * src/SDCClrange.h,
8830         * src/SDCCicode.h
8831
8832 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8833
8834         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
8835         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
8836         * src/SDCCopt.c (eBBlockFromiCode),
8837         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
8838         the creation of the key hash table from the sequencing so it can be used
8839         earlier (for some GCSE bug fixes still pending)
8840
8841 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8842
8843         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
8844         * support/regression/tests/addsub.c: testing genPlus shortcut
8845
8846 2003-11-15  Borut Razem <borut.razem AT siol.net>
8847
8848         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
8849
8850 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8851
8852         * src/SDCCcse.c (cseBBlock): fixed bug #527779
8853         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
8854         ordering is immaterial.
8855         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
8856
8857 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8858
8859         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
8860         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
8861         (SIGSEV) of bug #840381
8862         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
8863         unlink new file before rename if new and old filenames are the same)
8864
8865 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8866
8867         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
8868         uninitialized variables) for the mcs51. Set environment variable
8869         SDCC_GENRAMCLEAR to test.
8870         xdata initialization slightly shorter
8871
8872 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8873
8874         * src/SDCCsymt.h,
8875         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
8876         #838241 & 780691 (basicly the same bug)
8877         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
8878         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
8879
8880 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
8881
8882         * src/SDCCmain.c (linkEdit): "fix" #834252
8883
8884 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8885
8886         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
8887         * src/SDCCast.h,
8888         * src/SDCC.y: fixed bug #819403
8889
8890 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8891
8892         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
8893         the reentrant attribute.
8894         * src/hc08/gen.c (genPackBits): added missing stack readjustment
8895         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
8896         simulation
8897         * src/SDCCast.c (decorateType): fixed bug with storage class not being
8898         updated during pointer dereference; f.e. ~(((char *)1)*) was being
8899         erroneously reduced to a literal.
8900         * src/hc08/ralloc.c (packRegisters, rematStr),
8901         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
8902         some cases
8903
8904 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8905
8906         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
8907         * doc/sdccman.lyx: changed from 'article' to 'book'
8908         * doc/Makefile: readded test_suite_spec and cdbfileformat
8909
8910 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
8911
8912         * device/include/stdlib.h: include malloc.h to comply with ANSI
8913         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
8914
8915 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8916
8917         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
8918         * doc/clean.mk: also remove *.out files
8919         * doc/sdccman.lyx: some additions, larger top/bottom margins
8920
8921 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8922
8923         * src/SDCC.y: fixed bug #837365
8924         * support/regression/tests/bitopcse.c
8925         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
8926         a symbol (might be valop instead)
8927         * device/lib/Makefile.in: added errno.c to HC08SOURCES
8928         * device/lib/clean.mk: added hc08 to the cleaning list
8929
8930 2003-11-04  Borut Razem <borut.razem AT siol.net>
8931
8932         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
8933           made 2003-11-04
8934         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
8935           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
8936           malloc is declared in standard stdlib.h
8937
8938 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8939
8940         * device/lib/hc08/Makefile: need to clean .rel not .o files
8941         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
8942
8943 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8944
8945         * src/port.h,
8946         * src/hc08/main.c,
8947         * src/mcs51/main.c,
8948         * src/ds390/main.c,
8949         * src/z80/main.c,
8950         * src/avr/main.c,
8951         * src/pic/main.c,
8952         * src/pic16/main.c,
8953         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
8954         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
8955         tests (which uses the port's oclsExpense function)
8956         * src/SDCC.y,
8957         * src/SDCCast.c,
8958         * src/SDCCicode.c,
8959         * src/hc08/gen.c,
8960         * src/ds390/gen.c,
8961         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
8962
8963 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8964
8965         * src/SDCCcse.c (ifxOptimize),
8966         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
8967         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
8968         deleting the IFX iCode.
8969         * src/hc08/ralloc.c: reduced unneeded slocs
8970         * src/hc08/gen.c: fixed bug in asmopToBoolean
8971
8972 2003-11-04  Borut Razem <borut.razem AT siol.net>
8973
8974         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
8975           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
8976           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
8977           transferred to configure
8978
8979 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
8980
8981         Use headers defined in the C[++] standards:
8982         * sim/ucsim/gui.src/serio.src/fileio.cc
8983         * sim/ucsim/gui.src/serio.src/frontend.cc
8984         * sim/ucsim/gui.src/serio.src/main.cc
8985         * sim/ucsim/gui.src/serio.src/posix_signal.cc
8986         * support/Util/NewAlloc.c
8987         * as/hc08/lklibr.c
8988         * as/mcs51/lklibr.c
8989         * as/z80/aslist.c
8990         * as/z80/assym.c
8991
8992 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8993
8994         * Added MSVC projects for hc08 assembler and linker:
8995         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
8996         /as/hc08/link_hc08.dsp
8997
8998 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
8999
9000         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
9001
9002 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
9003
9004         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
9005
9006 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9007
9008         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
9009
9010 2003-10-31  Borut Razem <borut.razem AT siol.net>
9011
9012         * support/cpp2/cpplib.h,
9013           support/cpp2/cpplib.c,
9014           support/cpp2/cpplex.c,
9015           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
9016           to switch _asm block preprocessing on / off. Default is
9017           #pragma preproc_asm +
9018
9019 2003-10-31  Borut Razem <borut.razem AT siol.net>
9020
9021         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
9022           when outputting comment blocks (when executed with -C option) and
9023           _asm (SDCPP specific) blocks
9024
9025 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9026
9027         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
9028
9029 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
9030
9031         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
9032
9033 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
9034
9035         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
9036         * src/SDCCast.c (decorateType): fixed bug #832664
9037
9038 2003-10-31  Borut Razem <borut.razem AT siol.net>
9039
9040         * support/cpp2/cpplex.c: fixed for SDCPP:
9041           comments(when executed with -C option) and _asm blocks
9042           were included even if they where in skipped #if block.
9043           Applied solution from GCC cpp 3.3.2
9044
9045 2003-10-31  Borut Razem <borut.razem AT siol.net>
9046
9047         * src/SDCC.lex: sdcc now understands both formats:
9048           '# <line_number> <file_name>' and
9049           '#line <line_number> <file_name>'
9050         * support/cpp2/cppmain.c: sdcpp now generates the standard
9051           '# <line_number> <file_name>' instead of former
9052           '#line <line_number> <file_name>'
9053
9054 2003-10-30  Borut Razem <borut.razem AT siol.net>
9055
9056         * support/cpp2/cpphash.h,
9057         * support/cpp2/cpplib.h
9058         * support/cpp2/cpplex.c,
9059         * support/cpp2/cppmain.c,
9060         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
9061
9062 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9063
9064         Fixed a number of problems revealed by bug #827883.
9065         * src/SDCCloop.c (loopInvariants): Spill location of the
9066         result operand should be recomputed if extracted from
9067         a loop. Also, don't extract assignments of an iTemp
9068         from a literal.
9069         * src/SDCCast.c (isConformingBody): loop reversal should
9070         not occur if the control variable is involved with a
9071         relational operator.
9072
9073 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
9074
9075         * .version: bumped to 2.3.6 to reflect the big improvements
9076         made by Erik and Klaus. Thanks!
9077
9078 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
9079
9080         Replaced the livrange code.
9081         * src/SDCClrange.c: added new LR code
9082         * src/SDCCloop.c,
9083         * src/SDCCBBlock.h: removed remainig parts from old LR code
9084         * src/ds390/ralloc.c,
9085         * src/ds390/gen.c: minor fixes to make it work with new code
9086
9087 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9088
9089         * as/hc08/asm.h,
9090         * as/hc08/lkrloc.c,
9091         * src/hc08/gen.c,
9092         * src/hc08/ralloc.c: Fix various warnings related to the hc08
9093         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
9094         (tweaked fix for bug #818696)
9095
9096 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9097
9098         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
9099
9100 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9101
9102         * src/SDCCmain.c,
9103         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
9104         * src/mcs51/gen.c (gencjneshort),
9105         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
9106         more efficient (per Scott Bronson's suggestion)
9107
9108 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9109
9110         Extended the semantics of the critical keyword to include
9111         individual statements. See RFE #827755 and #799831
9112         * src/SDCC.y
9113         * src/SDCCicode.c
9114         * src/SDCCopt.c
9115         * src/SDCCast.c
9116         * support/Util/SDCCerr.c
9117         * support/Util/SDCCerr.h
9118         * src/mcs51/gen.c
9119         * src/ds390/gen.c
9120         * src/hc08/gen.c
9121
9122 2003-10-19  Borut Razem <borut.razem AT siol.net>
9123
9124         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
9125
9126 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9127
9128         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
9129         Fixed bug #818696
9130         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
9131         and predecrement operand is displayed
9132
9133 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9134
9135         * src/SDCCval.c (valMinus): fixed bug #826041
9136
9137 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9138
9139         Some hc08 related updates that I missed earlier
9140         * sim/ucsim/stypes.h
9141         * support/regression/ports/hc08/spec.mk
9142
9143 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9144
9145         New target "hc08" for the Motorola 68hc08 family of micros
9146
9147         * configure
9148         * configure.in
9149         * Makefile
9150         * src/hc08/*
9151         * src/SDCCmain.c
9152         * src/port.h
9153         * sim/ucsim/hc08.src/*
9154         * sim/ucsim/configure.in
9155         * src/ucsim/configure
9156         * sim/ucsim/packages_in.mk
9157         * as/hc08/*
9158         * as/Makefile
9159         * device/include/mc68hc908qy.h
9160         * device/lib/hc08/*
9161         * device/lib/Makefile.in
9162         * support/regression/ports/hc08/*
9163         * support/regression/Makefile
9164
9165 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9166
9167         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
9168         regression test
9169         * src/ds390/gen.c (genCast): fixed bug #821957
9170
9171 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
9172
9173         * device/lib/logf.c: "fixed" overlay bug
9174         * support/regression/ports/host/spec.mk: added m library
9175         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
9176         * support/regression/tests/float_trans: added (for Eric)
9177
9178 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
9179
9180         * src/mcs51/gen.c (genCpl): fixed bug
9181         http://sf.net/mailarchive/message.php?msg_id=6263915
9182
9183 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
9184
9185         * src/SDCCast.c (decorateType): added extended constant folding
9186         * src/SDCCsymt.c (computeType): cleanup
9187         * src/SDCCval.c (valShift): minor optimization
9188         * support/regression/tests/ast_constant_folding.c: added
9189
9190 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9191
9192         * src/SDCCmain.c: removed some unintended changes
9193
9194 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9195
9196         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
9197         * src/z80/gen.c: fixed part of bug #817589
9198         * src/SDCCsymt.c (checkFunction): fixed bug #817895
9199
9200 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
9201
9202         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
9203         * src/SDCCcflow.c
9204         * src/SDCCcse.c
9205         * src/SDCCdflow.c
9206         * src/SDCClabel.c
9207         * src/SDCClrange.c
9208         * src/SDCCmem.c
9209         * src/SDCCopt.c
9210         * src/SDCCpeeph.c
9211         * src/SDCCset.c
9212         * src/avr/ralloc.c
9213         * src/ds390/ralloc.c
9214         * src/izt/ralloc.c
9215         * src/mcs51/ralloc.c
9216         * src/pic/ralloc.c
9217         * src/pic16/ralloc.c
9218         * src/xa51/ralloc.c
9219         * src/z80/ralloc.c
9220         * src/z80/gen.c: removed unused label "release:"
9221
9222 2003-10-06  Borut Razem <borut.razem AT siol.net>
9223
9224         * src/SDCC.lex: removed definition of unused variables
9225           save_optimize and save_options
9226
9227 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
9228
9229         * clean.mk: removed '=' in "-maxdepth=1"
9230         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
9231         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
9232
9233 2003-10-06  Borut Razem <borut.razem AT siol.net>
9234
9235         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
9236           my_unput() replaced by unput()
9237
9238 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
9239
9240         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
9241         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
9242         type-punned pointer will break strict-aliasing rules"
9243         Old LR behaviour is again default; Klaus' LR can be choosen by
9244         defining the environment variable LRKLAUS
9245         * src/SDCCBBlock.h
9246         * src/SDCCloop.c
9247         * src/SDCClrange.c
9248         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
9249         * clean.mk: fixed removal of files in bin/CVS/
9250         * device/lib/clean.mk: fixed removal of directories small and large
9251         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
9252         * src/SDCCicode.c,
9253         * src/SDCCval.c: removed superflous test for pedantic
9254
9255 2003-10-05  Borut Razem <borut.razem AT siol.net>
9256
9257         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
9258           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
9259           message "unmatched #pragma SAVE and #pragma RESTORE"
9260
9261 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9262
9263         * doc/sdccman.lyx: various additions and updates (interrupts, inline
9264           assembly, critical functions, atomic, nojtbound)
9265
9266 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
9267
9268         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
9269         * src/SDCCBBlock.h
9270         * src/SDCCloop.c
9271         * src/SDCCloop.h
9272         * src/SDCClrange.c
9273
9274 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9275
9276         * src/z80/gen.h,
9277         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9278         * src/mcs51/gen.h
9279         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9280         * src/ds390/gen.h
9281         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
9282         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
9283         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
9284
9285 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9286
9287         * src/z80/gen.c (genRet): fixed bug #524753
9288         * src/z80/gen.c (genCast): fixed internal error on cast from
9289         pointer to long
9290         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
9291         fix for bug #477835 to the z80
9292         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
9293         for tracking iCodes in the peephole optimizer for z80
9294
9295 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9296
9297         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
9298         the other part of bug #814548
9299         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
9300
9301 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
9302
9303         * src/SDCCcse.c: fixed part of bug #814548
9304
9305 2003-09-28  Borut Razem <borut.razem AT siol.net>
9306
9307         * src/asm.c: rewrite of printILine() to use temporary file instead
9308           a pipe
9309         * src/xa51/main.c: commented out declaration of int rewinds
9310
9311 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9312
9313         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
9314
9315 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9316
9317         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
9318         * src/asm.c (printILine): Fixed bug #811015
9319
9320 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9321
9322         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
9323         freeing.
9324
9325 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9326
9327         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
9328         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
9329         to correctly handle general case of AOP_PAIRPTR
9330         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
9331
9332 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9333
9334         * src/mcs51/ralloc.c (fillGaps),
9335         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
9336         register positioning bug)
9337
9338 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
9339
9340         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
9341
9342 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9343
9344         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
9345         genCodePointerGet, genGenPointerGet, genFarPointerSet,
9346         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
9347         (ralloc doesn't intentionally do this now, but perhaps later)
9348         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
9349         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
9350         register positioning bugs (Fixed bug #762602 and #795325)
9351         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
9352         (Fixed bug #808779)
9353         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
9354         lines that --i-code-in-asm generates
9355
9356 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9357
9358         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
9359         trying to fclose a FILE* that was already closed.
9360
9361 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9362
9363         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
9364         of const struct should be treated as if const themselves)
9365
9366 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
9367
9368         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
9369
9370 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9371
9372         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
9373         Unix (/n) and DOS (/r/n) line terminations.
9374
9375 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9376
9377         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
9378         bug #613775
9379
9380 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9381
9382         * src/mcs51/gen.c (genFunction, genEndFunction),
9383         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
9384         and restore of EA so that stack offsets to parameters are
9385         correct when using both critical and reentrant/stack-auto.
9386         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
9387         size (can be triggered in error if sloc is shared between
9388         different sized objects)
9389         * device/include/float.h: fixed macros to explicitly use
9390         unsigned long where needed
9391
9392 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
9393
9394         Feature req. 799831: added code to allow nesting of critical functions
9395         * src/mcs51/gen.c (genFunction, genEndFunction)
9396         * src/ds390/gen.c (genFunction, genEndFunction)
9397
9398 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9399
9400         * src/SDCCsymt.c (sclsFromPtr),
9401         * src/SDCCsymt.h,
9402         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
9403         support for standard C idiom of memory mapped variables; for
9404         example, *((xdata int*)0x1234) = 1 is now internally equivalent
9405         to xdata int at 0x1234 tempvar = 1.
9406         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
9407         provided by Akiya ISHIDA
9408
9409 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
9410
9411         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
9412         * src/SDCCval.c (constVal): added reduction from int to char
9413         * src/SDCCval.c (valMult, valDiv): fixed sign handling
9414         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
9415         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
9416         to ignore the sign
9417         * support/regression/tests/shifts.c: fixed
9418
9419 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9420
9421         * src/z80/gen.c (genXor): Fixed bug #805445
9422
9423 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9424
9425         Fixed bug #621531 (const & volatile confusion in the type chain).
9426         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
9427         refer to the const or volatile state of the pointer itself.
9428
9429         * src/SDCCast.c
9430         * src/SDCCglue.c
9431         * src/SDCCicode.c
9432         * src/SDCCsymt.c
9433         * src/SDCCval.c
9434         * src/SDCC.y
9435         * src/SDCCsymt.h
9436         * src/pic/gen.c
9437         * src/pic/ralloc.c
9438         * src/pic16/gen.c
9439         * src/pic16/ralloc.c
9440         * support/regression/tests/const.c
9441
9442 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9443
9444         When checking for duplicated modules, use absolute paths
9445         instead of relative paths.  Files changed:
9446
9447         * as/mcs51/lklib.c
9448         * link/z80/lklib.c
9449
9450 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9451
9452         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
9453
9454 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9455
9456         * device/include/string.h: added size_t typedef, changed
9457         prototypes to use size_t, eliminated separate reentrant and
9458         non-reentrant declarations, added _memmove declaration
9459         * device/lib/_memcpy.c: changed to use size_t instead of int,
9460         changed /4 to >>2 to avoid division library call
9461         * device/lib/_memcmp.c,
9462         * device/lib/_memset.c,
9463         * device/lib/_strncat.c,
9464         * device/lib/_strncpy.c,
9465         * device/lib/_strncmp.c: changed to use size_t instead of int
9466         * device/lib/_memmove.c: new file (fixed bug #772294)
9467         * device/lib/Makefile.in: added _memmove.c
9468         * device/lib/z80/asm_strings.s: fixed bug #772290
9469         * support/regression/tests/bitfields.c: attempt to fix host assertion
9470         failure on amd64-unknown-linux2.2
9471
9472 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9473
9474         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
9475         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
9476         * as/z80/asmain.c (main): fixed bug #801766
9477
9478 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
9479
9480         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
9481         compilers
9482
9483 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9484
9485         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
9486         reported in bug #800609
9487
9488 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
9489
9490         * Top header beautifications in src/pic16 directory:
9491           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
9492           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
9493           pcoderegs.h, ralloc.c, ralloc.h
9494         * main.c: added top header and GPL license notice
9495         * pcode.c: fixed the if-conditional warning
9496
9497 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
9498
9499         * device/lib/_mullong.c: replaced int by short for gcc
9500
9501 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9502
9503         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
9504         and JUMPTABLE iCodes properly now (worked by accident before)
9505         * src/mcs51/gen.c (leftRightUseAcc),
9506         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
9507         iCode properly now. Use getSize instead of nRegs since a & b
9508         aren't part of the nRegs tally.
9509
9510 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
9511
9512         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
9513         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
9514           before instructions that use the _STATUS register
9515
9516 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
9517
9518         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
9519         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
9520         fetching of the pointer
9521         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
9522         copied from genNearPointerSet()
9523         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
9524         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
9525         If they pop r0/r1 they must be called in the opposite order than aopOp().
9526         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
9527         (resp. --stack-auto), prepared for --xstack
9528
9529 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9530
9531         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
9532
9533 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9534
9535         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
9536         these ports have their own __sdcc_external_start()
9537
9538 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
9539
9540         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9541         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
9542         type for bits was changed. It resulted in bit variables becoming
9543         global, which is not permitted in PIC 14 assembly output.
9544
9545 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9546
9547         * doc/sdccman.lyx: various additions and updates. Rearranged sections
9548
9549 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9550
9551         Z80 and MCS51 linkers complaint if a public symbol is defined
9552         in more than one library module:
9553
9554         * as/mcs51/lklib.c
9555         * link/z80/lklib.c
9556         * as/mcs51/Makefile.in
9557
9558 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9559
9560         A few small changes that speed up the peephole optimizer.
9561
9562         * src/SDCCpeeph.c
9563
9564 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9565
9566         Try to make the peephole optimizer smarter by maintaining
9567         an association between the assembly source code and the
9568         iCodes that originated them. Put this information to use
9569         with a new peephole rule condition "notVolatile" so that
9570         the rules can be aggressive yet still safe.
9571
9572         * src/SDCCpeeph.c
9573         * src/SDCCpeeph.h
9574         * src/mcs51/gen.c
9575         * src/mcs51/peeph.def
9576
9577 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9578
9579         Fixed bug #741761
9580
9581         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
9582         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
9583         if the left or right operand symbols have the accuse flag set.
9584
9585 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9586
9587         Changed the type of the result of the ! (NOT) operator to char;
9588         previously it returned the same type as the source. This allows
9589         us to eliminate all the genFloatNot functions (all of its target
9590         implementations were very buggy) since !float can use the same
9591         code as !long now.
9592
9593         * src/SDCCicode.c (ast2iCode): ! returns char
9594         * src/mcs51/gen.c (genNot, genNotFloat),
9595         * src/ds390/gen.c (genNot, genNotFloat),
9596         * src/z80/gen.c (genNot, genNotFloat),
9597         * src/pic/gen.c (genNot, genNotFloat),
9598         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
9599
9600 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
9601
9602         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9603         1. Interrupt would not compile properly. Ensure PCLATH register is saved
9604            during interrupts. Ensure WSAVE is located at a shared bank address.
9605         2. Fixed page selection in some places
9606         3. Fixed BTFSS/C to where necessary use registers directly and not simply
9607            the registers name strings.
9608         4. Fixed "signed / unsigned compare" compiler warnings.
9609         5. The PIC port manages its own allocation of the general purpose
9610            registers, but makes no attempt to reuse them. As a result when
9611            compiling it soon runs out of general purpose registers. Some
9612            additional code was added to the files pcode.c and device.c to walk
9613            through the function call tree and rename the registers so that they
9614            get reused.
9615
9616         * src/pic/device.c
9617         * src/pic/gen.c
9618         * src/pic/glue.c
9619         * src/pic/pcode.c
9620         * src/pic/pcode.h
9621         * src/pic/ralloc.c
9622         * src/pic/ralloc.h
9623         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
9624         genPlus() & genMinus() when the result is the same as left or right
9625
9626 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9627
9628         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
9629
9630 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9631
9632         Made bitfield a distinct type from bit so that bitfields
9633         convert as per ANSI C and bits retain their traditional
9634         boolean style behaviour. Implemented bitfield support in
9635         the z80 port.
9636
9637         * src/SDCCsymt.h,
9638         * src/SDCCsymt.c,
9639         * src/SDCCast.c,
9640         * src/cdbFile.c,
9641         * src/mcs51/gen.c,
9642         * src/ds390/gen.c: bit v bitfield split
9643         * src/z80/gen.c: New support for bitfields
9644         * support/regression/tests/bitfields.c: reenabled z80,
9645         added more tests
9646
9647 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9648
9649         Rules 246.x, 247.x relate to bitfields, the others speed up
9650         access to xdata mapped I/O devices.
9651
9652         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
9653
9654 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9655
9656         Cleaned up genPackBits and genUnpackBits and added two helper
9657         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
9658         for literal assignments in genPackBits (thanks to Frieder for
9659         reminding me).
9660
9661         * src/mcs51/gen.c
9662         * src/ds390/gen.c
9663
9664 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9665
9666         Fixed bug #748310 (pointer to function type mishandled when the
9667         function name is omitted). Also fixed a SIGSEGV when a function
9668         attribute (reentrant, etc) is used on a non-function or on a
9669         function but misplaced before the parameter list.
9670
9671         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
9672         bug #748310
9673         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
9674         * support/Util/SDCCerr.h,
9675         * support/Util/SDCCerr.c: Added func attr misuse error msg
9676
9677 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9678
9679         Fixed bug #787649 by anonymous
9680         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
9681         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
9682
9683 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9684
9685         Fixed numerous bitfield problems.
9686
9687         * src/SDCC.y: More bitfield related error checking
9688         * src/SDCCsymt.h,
9689         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
9690         * support/Util/SDCCerr.h,
9691         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
9692         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9693         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9694         * support/regression/tests/bitfields.c: tests added
9695
9696 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9697
9698         Made the constant following the "interrupt" keyword optional. If
9699         omitted, the function will not automatically be given an entry
9700         in the interrupt vector table (similar to #pragma NOIV, but
9701         less syntacticly kludgy). The interrupt number is also now
9702         range checked. Also fixed a bug in the high order bit example
9703         in the manual.
9704
9705         * src/SDCC.y
9706         * src/SDCCmem.c
9707         * src/SDCCglue.c
9708         * src/SDCCsymt.h
9709         * support/Util/SDCCerr.c
9710         * support/Util/SDCCerr.h
9711         * doc/sdccman.lyx
9712
9713 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9714
9715         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
9716         * src/SDCCicode.c (operandOperation): rewritten some ops
9717         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
9718         * src/SDCCsymt.c (computeType): literals are handled the same way as any
9719         other type
9720         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
9721         be re-activated by defining REDUCE_LITERALS)
9722         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
9723         unsigned, but are signed by default
9724         * src/SDCCval.c (constVal): rearranged
9725         * src/SDCCval.c (valMod): preliminary fix
9726         * src/SDCCval.c (valCastLiteral): use TYPE_* types
9727         * support/regression/literalop.c: added, work in progress
9728
9729 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9730
9731         Generate warnings for useless declarations like "char data;"
9732         that don't do what new users expect.
9733
9734         * src/SDCC.y
9735         * support/Util/SDCCerr.h
9736         * support/Util/SDCCerr.c
9737
9738 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
9739
9740         * src/SDCCval.c (valMult): fix overflow detection of negative int
9741
9742 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9743
9744         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
9745
9746         Changes to support big endian targets:
9747
9748         * src/ports.h
9749         * src/SDCCglue.c
9750         * src/avr/main.c
9751         * src/ds390/main.c
9752         * src/izt/i186.c
9753         * src/mcs51/main.c
9754         * src/pic/main.c
9755         * src/pic16/main.c
9756         * src/xa51/main.c
9757         * src/z80/main.c
9758
9759 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
9760
9761         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
9762         * device/lib/time.c: fixed warning "integer overflow in expression"
9763
9764 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
9765
9766         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
9767         * src/SDCCval.c (constVal): changed default to signed; hex and octal
9768         constants are unsigned; added recognition of "u" flag for unsigned
9769         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
9770         * src/SDCCval.c (valDiv, valMod): fixed signdness
9771         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
9772         signedness of modulo, left and right shift
9773         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
9774         * support/Util/SDCCerr.h: added warning W_INT_OVL
9775         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
9776         * src/SDCCast.c (ast_print): improved output of constants
9777
9778 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9779
9780         Fixed some warnings when building with MSVC:
9781
9782         * as/mcs51/asdata.c
9783         * as/z80/asdata.c
9784         * as/mcs51/asm.h
9785         * as/z80/asm.h
9786         * link/z80/aslink.h
9787         * link/z80/lkdata.c
9788         * link/z80/lkeval.c
9789         * link/z80/lkgb.c
9790         * link/z80/lkihx.c
9791         * link/z80/lks19.c
9792         * link/z80/lksym.c
9793         * support/cpp2/cpplib.c
9794         * src/ds390/gen.c
9795         * src/mcs51/gen.c
9796
9797 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
9798
9799         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
9800
9801 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9802
9803         * support/librarian/clean.mk: Do not remove Makefile.
9804         * support/librarian/Makefile: added.
9805
9806 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9807
9808         Added librarian to MSVC build:
9809         * all.dsp
9810         * sdcc.dsw
9811         * support/librarian/librarian.dsp
9812
9813         'configure' not needed for librarian, removed:
9814         * support/librarian/configure
9815         * support/librarian/configure.in
9816         * support/librarian/config_in.h
9817         * support/librarian/Makefile.in
9818
9819         Hopefully these ones built the librarian and the rest of sdcc properly:
9820         * Makefile
9821         * Makefile.common.in
9822
9823         Messed up 'configure', so revert to previous version:
9824         * configure
9825         * configure.in
9826
9827 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
9828
9829         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
9830         there, while the mantissa of a double is "only" 53 bits wide.
9831
9832 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9833
9834         Adding sdcclib to the build.  MSVC project coming soon.
9835         Files added/changed:
9836
9837         * support/librarian/clean.mk
9838         * support/librarian/configure
9839         * support/librarian/configure.in
9840         * support/librarian/config_in.h
9841         * support/librarian/Makefile.bcc
9842         * support/librarian/Makefile.in
9843         * support/librarian/sdcclib.c
9844         * Makefile.bcc
9845         * Makefile
9846         * Makefile.common.in
9847         * configure
9848         * configure.in
9849
9850 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9851
9852         Linker now complaints if linked modules have conflicting options, for
9853         example, one compiled using --model-large and another one compiled with
9854         --model-small.  The following files were modified:
9855
9856         * as/mcs51/asdata.c
9857         * as/mcs51/aslink.h
9858         * as/mcs51/asm.h
9859         * as/mcs51/asmain.c
9860         * as/mcs51/asout.c
9861         * as/mcs51/i51pst.c
9862         * as/mcs51/lkdata.c
9863         * as/mcs51/lklibr.c
9864         * as/mcs51/lkmain.c
9865         * as/z80/asdata.c
9866         * as/z80/asm.h
9867         * as/z80/asmain.c
9868         * as/z80/asout.c
9869         * as/z80/z80pst.c
9870         * link/z80/aslink.h
9871         * link/z80/lkdata.c
9872         * link/z80/lklibr.c
9873         * link/z80/lkmain.c
9874         * src/SDCCglue.c
9875
9876 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9877
9878         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
9879         as/mcs51/lklibr.c: Generate a warning when a library is not found.
9880
9881 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
9882
9883         * src/z80/mappings.i: fix _mul[us][int,long] entries
9884
9885 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9886
9887         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
9888
9889 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
9890
9891         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
9892         * support/regression/tests/bitopcse.c: added
9893         fixed warning:
9894         * src/avr/gen.c:
9895         * src/pic/gen.c:
9896         * src/pic16/gen.c:
9897         * src/z80/gen.c:
9898         * src/xa51/gen.c:
9899
9900 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9901
9902         added support for new library format to z80, gbz80 linkers:
9903         *link/z80/aslink.h
9904         *link/z80/lklex.c
9905         *link/z80/lklib.c
9906         *link/z80/lklist.c
9907
9908 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
9909
9910         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
9911         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
9912
9913 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
9914
9915         added DUMMY_READ_VOLATILE:
9916         * src/SDCC.y:
9917         * src/avr/gen.c:
9918         * src/xa51/gen.c:
9919         * src/z80/gen.c:
9920         * src/pic/gen.c:
9921         * src/pic16/gen.c:
9922         * src/mcs51/gen.c:
9923         * src/ds390/gen.c:
9924         * src/SDCCcse.c (algebraicOpts): many improvements
9925         * src/SDCCcse.h: removed algebraicOpts()
9926         * src/SDCCicode.c (picDummyRead): added
9927
9928 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9929
9930         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
9931         "Insufficient space in data memory".
9932
9933 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9934
9935         * src/mcs51/gen.c: fixed bug #771358
9936         * src/z80/gen.c: fixed bug #759087
9937
9938 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
9939
9940         * src/pic16/glue.c: minor cleanup by Vangelis
9941
9942 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9943
9944         * device/include/regc515c.h: fixed #758477
9945         * device/lib/_gptrget.c: saving some cycles in generic pointer get
9946         * device/lib/_gptrput.c: saved a few bytes
9947         * my tab spacing is 8, yours too?)
9948         * device/lib/_ser.c: process RX bytes earlier than TX bytes
9949         * device/lib/serial.c: process RX bytes earlier than TX bytes
9950         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
9951
9952 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9953
9954         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
9955
9956 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9957
9958     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
9959
9960 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
9961
9962         * device/lib/Makefile.in: bad fix, reverted to 1.43
9963
9964 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
9965
9966         * device/lib/Makefile.in: added missing z80 object files
9967
9968 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
9969
9970         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
9971         pic16 progress by Vangelis:
9972         * src/SDCCglobl.h:
9973         * src/SDCCmain.c:
9974         * src/pic/Makefile:
9975         * src/pic:
9976         * pic/Makefile:
9977         * pic16/device.c:
9978         * pic16/device.h:
9979         * pic16/gen.c:
9980         * pic16/gen.h:
9981         * pic16/genarith.c:
9982         * pic16/glue.c:
9983         * pic16/main.c:
9984         * pic16/pcode.c:
9985         * pic16/pcode.h:
9986         * pic16/pcodepeep.c:
9987         * pic16/peeph.def:
9988
9989 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9990
9991     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
9992
9993 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9994
9995     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
9996     added gbz80 build to MSVC project.
9997     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
9998     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
9999     from 8051 stuff and setup so it links using a .lnk file.
10000
10001 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10002
10003     * support/librarian/sdcclib.c: sdcc librarian.
10004     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
10005     with sdcclib.
10006
10007 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10008
10009     * as/mcs51/lkmain.c: properly handle extensions in function afile.
10010
10011 2003-07-02  Borut Razem <borut.razem AT siol.net>
10012
10013         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
10014         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
10015         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
10016         src/xa51/main.c, src/z80/main.c:
10017         virtualization of glue() function: each port has it's own glue function,
10018         which is accessed by do_glue function pointer in PORT.general structure
10019
10020 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
10021
10022         * DS800C400 fun, improved ROM interface and tinibios.
10023
10024 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
10025
10026         * More support for DS80C400. Now includes beginning of interface to ROM.
10027
10028 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
10029
10030         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
10031
10032 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10033
10034         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
10035
10036 2003-06-19  Borut Razem <borut.razem AT siol.net>
10037
10038         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
10039
10040 2003-06-19  Borut Razem <borut.razem AT siol.net>
10041
10042         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
10043         fixed Z80 port - crt0.o: cannot open.
10044
10045 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
10046
10047         * support/Util/MySystem.c (merge_command): revert bad fix
10048
10049 2003-06-18  Borut Razem <borut.razem AT siol.net>
10050
10051         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
10052
10053 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10054
10055         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10056         option --use-stdout sends errors to stdout instead of stderr.
10057
10058 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
10059
10060         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
10061
10062 2003-06-15  Borut Razem <borut.razem AT siol.net>
10063
10064         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
10065         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
10066         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
10067         fixed width array of pointers replaced with sets;
10068         multiple include and lib paths ared transferred to preprocessor and linker
10069         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
10070         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
10071         fixed width array of pointers
10072         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
10073         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
10074         fixupPath(), getPathDifference()
10075         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
10076         fixed width array of pointers
10077
10078 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
10079
10080         * src/pic16/ralloc.c: fix warnings
10081         * src/pic16/pcode.c: fix warning
10082
10083 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
10084
10085          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
10086         know all the details, but essentially this set of changes enable
10087         the pic16 port to generate movff instructions and generate assembler
10088         directives,
10089         * src/SDCCmain.c:
10090         * src/pic16/gen.c:
10091         * src/pic16/glue.c:
10092         * src/pic16/pcode.c:
10093         * src/pic16/device.c:
10094         * src/pic16/main.c:
10095         * src/pic16/pcode.h:
10096         * src/pic16/pcoderegs.c:
10097         * src/pic16/ralloc.c:
10098         * src/pic16/ralloc.h:
10099
10100 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10101
10102         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
10103         added option --vc, so sdcc errors and warnings are compatible with
10104         Microsoft Visual Studio.
10105
10106 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10107
10108         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
10109           device/lib/libfloat.lib: added atof function.
10110
10111 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
10112
10113         * doc/sdccman.lyx: updated to Lyx 1.3
10114         * doc/cdbfileformat.lyx: updated to Lyx 1.3
10115         * doc/test_suite_spec.lyx: updated to Lyx 1.3
10116         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
10117
10118 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
10119
10120         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
10121
10122 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10123
10124         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
10125           additions to the "related tools/documentation" section
10126
10127 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
10128
10129         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
10130
10131 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
10132
10133         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
10134         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
10135
10136 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
10137
10138         * doc/sdccman.lyx: fix double dash and other minor things
10139         * doc/Makefile: fix double dash
10140
10141 2003-05-28  Karl Bongers(patches from Martin Helmling)
10142         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
10143           condition and ignore commands.
10144
10145 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10146
10147         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
10148           is in parts still quite out of date, I did changes as far as I felt makes sense
10149           for a non-native english speaker.
10150           Please feel free to add to the manual or to correct my changes.
10151         * doc/Makefile: undid touching the date of intermediate tex files.
10152
10153 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10154
10155         * doc/sdccman.lyx: Manual has an index now
10156
10157 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
10158
10159         Finalize muluint/mulsint and mululong/mulslong merging:
10160         * device/lib/_mulint.c
10161         * device/lib/_mullong.c
10162         * device/lib/gbz80/mul.s
10163         * device/lib/gbz80/stubs.s
10164         * device/lib/z80/mul.s
10165         * device/lib/z80/stubs.s
10166         * src/SDCCsymt.c (initCSupport)
10167
10168 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10169
10170         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
10171         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
10172           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
10173           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
10174           instead of /Zm500.
10175
10176 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10177
10178         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
10179           the regression tests I'm not brave enough to enable 245.b, 245.c
10180         * doc/sdccman.lyx: added latex preamble for hyperref package.
10181           Using pdflatex this will give you a hyperlinked pdf file with
10182           bookmarks. (prepend '%' before /usepackage if this breaks something)
10183
10184 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10185
10186          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
10187
10188 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
10189
10190         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
10191
10192 2003-05-21    <johan AT balder>
10193
10194         * src/SDCCglue.c (printIval): fixed bug #739934
10195
10196 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10197
10198         Applied patch from bug 737905 (renamed yylineo to mylineno):
10199         * src/altlex.c
10200         * src/SDCCast.c
10201         * src/SDCglobl.h
10202         * src/SDCC.lex
10203         * src/SDCCsymt.c
10204         * src/SDCCval.c
10205         * src/pic16/pcode.c: Cleaned warnings
10206         * src/pic16/pcodeflow.c: Cleaned warnings
10207         * src/pic16/pcoderegs.c: Cleaned warnings
10208
10209 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
10210
10211         * src/pic16/pcode.c: Cleaned warnings
10212         * src/pic16/pcodepeep.c: Cleaned warnings
10213         * src/pic16/ralloc.c: Cleaned warnings
10214
10215 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
10216
10217         * doc/sdccman.lyx: fixed bug 739745
10218         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
10219
10220 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
10221
10222         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
10223         it can be defined with CFLAGS when running configure
10224         * src/SDCCmain.c: fixed compiling + linking with object files
10225
10226 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
10227
10228         * configure.in: configure for pic16 port,
10229             added --disable-pic16-port
10230         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
10231         * src/SDCCmain.c: linkOptions is changed to set *,
10232             added if/endif conditional macros to remove options help
10233             messages from optionsTable when a port is not configured, added
10234             support for the PIc16 port in the ports table, when executing
10235             the compiler with no port specified on command line, a default
10236             port is selected with the new macro DEFAULT_PORT which is
10237             defined in port.h, in setDefaultOptions() linkOptions is removed
10238             from initialization assignment, since now it is a set,
10239             parseCmdLine uses setParseWithComma for linkOptions, in
10240             linkEdit() linkOptions are accessed with new function indexSet()
10241             which returns the i'th item of a set variable. See SDCCset.c, in
10242             linkEdit() when calling buildCmdLine(), added linkOptions as
10243             last argument. Now users can pass arguments to gplink via the
10244             -Wl option, main() uses pic16glue() to glue up pic16 programs
10245         * src/SDCCpeeph.c: various changes to support pic16
10246         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
10247             return the i'th item of the set
10248         * src/SDCCset.h: added function prototype for indexSet()
10249         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
10250         * src/clean.mk: added pic16 in CLEANALLPORTS variable
10251         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
10252             added macro DEFAULT_PORT
10253         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
10254         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
10255             generated
10256         * src/pic16/glue.c: commented out some error producing lines
10257         * src/pic16/main.c: __config directives are commented out to stop
10258             gpasm complaining and test the linkage with gplink, _linkCmd and
10259             _asmCmd changed to be more gplink and gpasm friendly
10260         * src/pic16/peeph.def: peep rule 3 is commented out, since it
10261             produced an error when parsed, peep rule 12 is added to utilize
10262             movff, but it is commented out since the pCode does not support
10263             yet a command with 2 address arguments
10264
10265 2003-05-18    <johan AT balder>
10266
10267         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10268         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
10269 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
10270
10271         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
10272   Added feature to script commands from file.
10273
10274 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
10275
10276         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
10277         * src/SDCCutil.c: include ctype.h for win32
10278
10279 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
10280
10281         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
10282
10283 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
10284
10285         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
10286   Fixed so you can set breakpoints prior to run, run does not stop
10287   on entry now.  Add tbreak.  Other enhancements and fixes for use
10288   with ddd.
10289
10290 2003-05-12  Borut Razem <borut.razem AT siol.net>
10291
10292         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
10293
10294 2003-05-11  Borut Razem <borut.razem AT siol.net>
10295
10296         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
10297         the path of bin directory, so that PATH is the only env. variable, which has to be set
10298         in case of standard installation.
10299         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
10300         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
10301         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
10302
10303 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10304
10305         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
10306         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
10307         temp files are in the port dir; clean the gen/test directory when
10308         generating new test.c
10309         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
10310         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
10311         * support/regression/tests/zeropad.c: added
10312
10313 2003-05-09    <johan AT balder>
10314
10315         * src/SDCCglue.c: fixed bug #597940
10316
10317 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
10318
10319         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10320   cache sfr, optimize next,step, fix off by one sourceline,
10321   support ddd list function.
10322         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
10323
10324 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10325
10326         * support/regression/HTMLgen.py: added compare_s2f()
10327         * support/regression/Makefile: redo 1.27
10328         * support/regression/generate-cases.py: redo 1.5
10329
10330 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
10331
10332         * support/regression/tests/float.c: workaround 33 bit hex constant
10333         * support/regression/tests/simplefloat.c: fix division for host
10334
10335 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
10336
10337         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
10338         that tame's the PIC's over-aggressive optimizer.
10339
10340 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10341
10342          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
10343          support for MSVC.
10344
10345 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
10346
10347         Initial support for DS80C400. "Hello world" runs on TINIm400
10348         (with polled I/O).
10349
10350 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
10351
10352          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10353          * Some notes on ddd usage added in debugger/README
10354          Martin Helmling adding more features and fixes for ddd GUI debugger.
10355          Code added for nexti, stepi, up, down, and other adjustments.
10356
10357 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
10358
10359         * src/pic/pCodepeep.c non-wildcard asmops are now handled
10360         * src/pic/peeph.def Added two rules to optimize carry manipulation
10361         * src/pic/* removed debug printfs
10362
10363 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
10364
10365         * debugger/mcs51/cmd.c: added header newalloc.h
10366
10367 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
10368
10369         * as/Makefile: new EXEEXT
10370         * as/z80/Makefile: remove trailing slash of BUILDIR
10371         * as/z80/clean.mk: new EXEEXT
10372         * Makefile.common.in: add to CFLAGS (and others), don't replace it
10373         * support/cpp2/Makefile.in: new EXEEXT
10374         * src/pic/glue.c (pic14emitRegularMap): fixed warning
10375
10376 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
10377
10378         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
10379         EXEEXT was introduced to fix all related problems with targets
10380         "clean", "install" and "uninstall"; a couple of further flaws
10381         especially with "clean" have been fixed too
10382         * as/mcs51/Makefile.in
10383         * as/mcs51/clean.mk
10384         * as/z80/Makefile
10385         * Makefile
10386         * clean.mk
10387         * debugger/mcs51/Makefile.in
10388         * debugger/mcs51/clean.mk
10389         * link/z80/Makefile
10390         * link/z80/Makefile.in
10391         * link/z80/clean.mk
10392         * link/Makefile
10393         * packihx/Makefile.in
10394         * packihx/clean.mk
10395         * sim/ucsim/Makefile
10396         * sim/ucsim/clean.mk
10397         * sim/ucsim/avr.src/Makefile.in
10398         * sim/ucsim/avr.src/clean.mk
10399         * sim/ucsim/s51.src/Makefile.in
10400         * sim/ucsim/s51.src/clean.mk
10401         * sim/ucsim/xa.src/Makefile.in
10402         * sim/ucsim/xa.src/clean.mk
10403         * sim/ucsim/z80.src/Makefile.in
10404         * sim/ucsim/z80.src/clean.mk
10405         * sim/ucsim/main_in.mk
10406         * sim/ucsim/packages_in.mk
10407         * sim/ucsim/gui.src/Makefile.in
10408         * sim/ucsim/gui.src/serio.src/Makefile.in
10409         * sim/ucsim/gui.src/serio.src/clean.mk
10410         * src/Makefile.in
10411         * src/clean.mk
10412         * support/cpp2/Makefile.in
10413         * support/cpp2/clean.mk
10414         * support/makebin/Makefile
10415         * support/makebin/clean.mk
10416         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
10417         * doc/sdccman.lyx: --program-suffix no longer needed
10418
10419 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
10420
10421          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
10422          Martin Helmling added support for ddd GUI debugger.
10423          Code added to display assembly, set variables, and other commands
10424          to interface to ddd.
10425
10426 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
10427
10428         * as/Makefile: fix target clean
10429         * as/clean.mk: fix target clean
10430         * as/z80/clean.mk: fix target clean
10431
10432 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
10433
10434         * Makefile.common.in: added  AT EXEEXT AT
10435         * configure.in: removed all mingw32 stuff
10436         * configure: rebuilt from configure.in
10437         * doc/sdccman.lyx: updated section "installation"
10438         * support/scripts/sdcc_mingw32: adapted to configure
10439         * support/scripts/sdcc_cygwin_mingw32: added
10440
10441 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
10442
10443         * src/pic Added object file support for the PIC port
10444         * src/pic Applied patch from Craig Franklin (this started the object file support)
10445         * src/regression Updated the PIC regression tests for object files
10446
10447 2003-04-20  Borut Razem <borut.razem AT siol.net>
10448
10449         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
10450           lklex.c: In function `getfid':
10451           lklex.c:203: warning: array subscript has type `char'
10452         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
10453           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
10454         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
10455           stack handling macros
10456
10457 2003-04-19  Borut Razem <borut.razem AT siol.net>
10458
10459         * "handling space characters in file path" task:
10460         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
10461         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
10462         * support/Util/MySystem.h: make it self-sufficient
10463         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
10464           src/z80/main.c, sdcc/as/mcs51/lklex.c:
10465           handling space characters in file path
10466         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
10467           (it will be used by assemblers, which have their own includes, e.g. gpasm)
10468         * support/Util/MySystem.c: handling space characters in executable's path
10469
10470 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
10471
10472         * as/z80/Makefile: fix permanent rebuild of z80
10473         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
10474         * support/regression/tests/bitfields.c: added Johan's bitfields.c
10475
10476 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
10477
10478         * src/SDCCopt.c: add special case optimization to replace modulo by
10479           a power of two with a bitwise AND.
10480
10481 2003-04-18    <johan AT balder>
10482
10483         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
10484
10485 2003-04-17    <johan AT balder>
10486
10487         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
10488         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
10489
10490 2003-04-13  Borut Razem <borut.razem AT siol.net>
10491
10492         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
10493         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
10494           fixed mingw problem in adl_NORMALIZE_PATH
10495
10496 2003-04-12  Borut Razem <borut.razem AT siol.net>
10497
10498         * fixed "#pragma SAVE/RESTORE can not be nested":
10499         * src/SDCC.lex: reworked pragma handling functions
10500         * sdcc/src/SDCCglobl.h: reworked stack handling macros
10501         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
10502
10503 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10504
10505         * src/SDCCutil.c (pathEquivalent): defined but not used
10506         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
10507         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
10508         * configure: rebuilt from configure.in
10509         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10510         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10511         * device/include/Makefile.in: replace sdcc_datadir
10512         * device/lib/Makefile.in: replace sdcc_datadir
10513         * Makefile.common.in: add LDFLAGS from configure
10514         * packihx/Makefile.in: use LDFLAGS
10515         * src/Makefile.in: use LDFLAGS
10516         * support/cpp2/Makefile.in: add LDFLAGS from configure
10517         * support/makebin/Makefile: use LDFLAGS
10518         * .version: bumped version number to 2.3.5
10519
10520 2003-04-12  Borut Razem <borut.razem AT siol.net>
10521
10522         * completed "different paths" task:
10523         * src/SDCCmacro.c: fixed bug in handling quotes
10524         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
10525         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
10526
10527 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10528
10529         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
10530
10531 2003-04-11 kevin Vigor <kevin AT vigor.nu>
10532
10533         * ds390/gen.c ds390/peeph.def: fix bug 706781
10534
10535 2003-04-11  Borut Razem <borut.razem AT siol.net>
10536
10537         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
10538
10539 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
10540
10541         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
10542         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
10543          set - this bit used to not be set...).
10544         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
10545           bad code in PIC Port
10546         * src/regression/and2.c added to test bug 609268
10547         * src/regression/Makefile added and2.c to regression test
10548
10549
10550 2003-04-08    <johan AT CP255758-A>
10551
10552         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
10553         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
10554         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
10555
10556 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
10557
10558         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
10559         fix bug #487815
10560         * support/cpp2/Makefile.in: fix bug #487815
10561         * configure: rebuilt from configure.in
10562         * Makefile.common.in: docdir changed, new path suffixes
10563         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10564         * sdcc_vc_in.h: reflect changes from sdccconf.h
10565         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
10566         * src/SDCCutil.h: remove BINDIR hack
10567         * doc/sdccman.lyx: update new path hierarchy
10568
10569 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10570
10571         * src/SDCCpeeph.c: added okToRemoveSLOC test
10572
10573 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10574
10575         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
10576
10577 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10578
10579         * src/SDCCpeeph.c: added labelIsReturnOnly test
10580         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
10581
10582 2003-04-05    <johan AT balder>
10583
10584         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
10585         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
10586         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
10587         * src/SDCCast.c: fixed a warning
10588         * src/SDCCast.h: fixed a warning
10589         * src/SDCCicode.c (operandFromAst): fixed a warning
10590
10591 2003-04-04    <johan AT balder>
10592
10593         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
10594         * src/SDCCast.c (decorateType): fixed bug #715076
10595         * src/SDCC.y: fixed bug #702907
10596
10597 2003-04-03    <johan AT balder>
10598
10599         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
10600         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
10601         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
10602         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
10603         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
10604
10605 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
10606
10607         * _decdptr.c: fix return values
10608         * _gptrget.c: fix return values
10609         * _gptrgetc.c: fix return values
10610         * _gptrput.c: fix return values
10611         * _mulint.c: fix return values
10612         * as/z80/Makefile: fix 'make -j' problem
10613
10614 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
10615
10616         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
10617         * configure.in: big cleanup, updated to autoconf 2.5x
10618         * configure: rebuilt from configure.in
10619         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10620         * sdcc_vc_in.h: reflect changes from sdccconf.h
10621         * doc/Makefile: fixed a flaw in "make install"
10622
10623 2003-04-02    <johan AT balder>
10624
10625         * src/ds390/gen.c (genCmp): no comments
10626         * src/mcs51/gen.c (genCmp): no comments
10627         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
10628         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
10629
10630 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
10631
10632         * support/regression/generate-cases.py: place generated file in given sub directory
10633         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
10634         * support/regression/Makefile: improvements for 'make -j';
10635         side effect: it's simpler and faster now
10636
10637 2003-03-31  Borut Razem <borut.razem AT siol.net>
10638
10639         * src/z80/main.c: link-{port} and as-{port} defined without path
10640         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
10641
10642 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
10643
10644         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
10645
10646 2003-03-30  Borut Razem <borut.razem AT siol.net>
10647
10648         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
10649           changed type of list parameter to set
10650         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
10651         * src/port.h: changed type of do_assemble() parameter to set
10652         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
10653           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
10654           definition of "cppoutfilename" macro with NULL value in preProcess()
10655         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
10656         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
10657         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
10658           replaced with set *binPathSet
10659         * shash_add() deallocates the item, if allready exsists, before adding the new one
10660         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
10661
10662 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
10663
10664         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
10665           a nested for loop bug in the PIC port
10666         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
10667           for loops
10668
10669 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
10670
10671         * support/Util/dbuf.h: remove C++ stuff to make it portable
10672
10673 2003-03-28  Borut Razem <borut.razem AT siol.net>
10674
10675         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
10676           literal strings in stringLiteral()
10677         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
10678         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
10679           to the project
10680
10681 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
10682
10683         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
10684
10685 2003-03-26    <johan AT balder>
10686
10687         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
10688         * src/ds390/gen.c (saveRegisters): catched symbol abuse
10689         * src/SDCCast.c (decorateType): fixed " -v < 3"
10690
10691 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
10692
10693         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
10694         Added Lenny Story's debug infrastructure changes:
10695         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
10696         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
10697         * src/cdbFile.c: added
10698         * src/SDCCdebug.c: added
10699         * src/SDCCdebug.h: added
10700         * src/SDCCast.c (createFunction)
10701         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
10702         * src/SDCCmain.c (parseCmdLine, main)
10703         * src/SDCCmem.c (redoStackOffsets)
10704         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
10705         * src/SDCCsymt.h
10706         * src/common.h
10707         * src/avr/gen.c (genAVRCode)
10708         * src/ds390/gen.c (gen390Code)
10709         * src/mcs51/gen.c (gen51Code)
10710         * src/pic/gen.c (genpic14Code)
10711         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
10712         * src/xa51/gen.c (genXA51Code)
10713         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
10714
10715 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10716
10717         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
10718         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
10719
10720 2003-03-22    <johan AT balder>
10721
10722         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
10723
10724 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
10725
10726         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
10727         * doc/cdbfileformat.lyx: added, written by Lenny Story
10728         * doc/Makefile: added cdbfileformat.lyx
10729         * doc/clean.mk: added cdbfileformat.lyx
10730
10731 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
10732
10733         * src/mcs51/peeph.def: fix bug #705773
10734
10735 2003-03-20    <johan AT balder>
10736
10737         An sfr/sbit can have an "at #" AND an initializer
10738         * src/SDCCsymt.c (checkSClass):
10739         * src/SDCCmem.c (allocGlobal):
10740         * src/SDCCmem.c (allocLocal):
10741         * src/SDCCast.c (createBlock):
10742
10743 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
10744
10745         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
10746
10747 2003-03-16    <johan AT balder>
10748
10749         Undid the hackup of const and volatile, the problem is much bigger
10750         * src/SDCC.y:1.65
10751         * src/SDCCast.c:1.171
10752         * src/SDCCglue.c:1.138
10753         * src/SDCCicode.c:1.146
10754         * src/SDCCsymt.c:1.150
10755         * src/SDCCval.c:1.65
10756
10757 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
10758
10759         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
10760         * src/ds390/gen.c (genAddrOf): fixed bug #704087
10761
10762 2003-03-13    <johan AT balder>
10763
10764         Hackup const and volatile modifiers in type chains a bit:
10765         * src/SDCC.y:1.63
10766         * src/SDCCast.c:1.169
10767         * src/SDCCglue.c:1.136
10768         * src/SDCCicode.c:1.143
10769         * src/SDCCsymt.c1.146
10770         * src/SDCCsymt.h1.59
10771         * src/SDCCval.c:1.63
10772
10773 2003-03-12    <johan AT balder>
10774
10775         * src/SDCCBBlock.h: more LRH debugging junk
10776         * src/SDCCcflow.h: more LRH debugging junk
10777         * src/SDCCloop.c: more LRH debugging junk
10778         * src/SDCC.y (struct_declaration): fixed bug #697590
10779         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
10780         * src/ds390/gen.c (aopForRemat): fixed bug #700031
10781         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
10782
10783 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10784         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
10785         test function names must now match exactly).
10786         * src/SDCCcse.c: added special case in findCheaperOp to allow
10787         extending a short integer. Makes less awful code for bug 700121 test case.
10788
10789 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10790
10791         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
10792         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
10793
10794 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10795
10796         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
10797         actually called (operandsNotEqual() was called for all
10798         operandsNotEqualX tests).
10799
10800 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10801
10802         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
10803         with shorter literals. Fixes bug 700121.
10804
10805 2003-03-11    <johan AT balder>
10806
10807         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
10808
10809 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
10810
10811         * src/SDCCloop.c (mergeRegions): an evil beast is dead
10812         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
10813
10814 2003-03-10  Borut Razem <borut.razem AT siol.net>
10815
10816         * src/SDCCmain.c: pipe preprocessor's output
10817         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10818         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10819         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10820         which closes all pipes in pipeSet set
10821         * src/SDCCset.c: free deleted item in function deleteSetItem()
10822         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10823         moved from z80 to src subproject
10824         * .version: increased version number to 2.3.4
10825
10826 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
10827
10828         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
10829         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
10830         * support/regression/ports/xa51/spec.mk: fix typo
10831
10832 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
10833
10834         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
10835
10836 2003-03-09  Borut Razem <borut.razem AT siol.net>
10837
10838         * src/SDCCmain.c: pipe preprocessor's output
10839         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10840         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10841         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10842         which closes all pipes in pipeSet set
10843         * src/SDCCset.c: free deleted item in function deleteSetItem()
10844         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10845         moved from z80 to src subproject
10846
10847 2003-03-09  Borut Razem <borut.razem AT siol.net>
10848
10849         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
10850         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
10851         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
10852         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
10853         * src/SDCCglobl.h: unification of WIN32 native definitions
10854
10855 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10856
10857         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
10858
10859 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10860
10861         * src/configure.in:   check for endianess (even while cross-compiling)
10862         * src/configure:      check for endianess (even while cross-compiling)
10863         * src/configure_in.h: check for endianess (even while cross-compiling)
10864         * src/avr/gen.c:        remove old endianess stuff
10865         * src/mcs51/gen.c:      remove old endianess stuff
10866         * src/ds390/gen.c:      remove old endianess stuff
10867         * src/pic/gen.c:        remove old endianess stuff
10868         * src/pic/genarith.c:   remove old endianess stuff
10869         * src/pic/glue.c:       fix endianess check
10870         * src/pic16/gen.c:      remove old endianess stuff
10871         * src/pic16/genarith.c: remove old endianess stuff
10872         * src/pic16/glue.c:     fix endianess check
10873         * src/xa51/gen.c:       remove old endianess stuff
10874         * src/z80/gen.c:        fix endianess check
10875         * src/SDCCglue.c:       fix endianess check
10876         * src/ds390/peeph.def: fix bug 700036
10877
10878 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10879
10880         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
10881         * src/configure: find appropriate data-types on host for SDCC's int and long
10882         * src/configure.in: find appropriate data-types on host for SDCC's int and long
10883         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
10884         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
10885
10886 2003-03-07    <johan AT balder>
10887
10888         Just a big NOOP:
10889                 some minor cleanups before the big shot
10890                 OP_DEFS and OP_USES now use Kevin's protection
10891                 new option --nolabelopt
10892
10893         * src/SDCCBBlock.c:
10894         * src/SDCCast.c,:
10895         * src/SDCCcflow.c:
10896         * src/SDCCcse.c:
10897         * src/SDCCicode.c:
10898         * src/SDCCicode.h:
10899         * src/SDCClabel.c:
10900         * src/SDCCloop.c:
10901         * src/SDCCmain.c:
10902         * src/ds390/ralloc.c:
10903         * src/mcs51/ralloc.c:
10904         * src/pic/ralloc.c:
10905         * src/xa51/ralloc.c:
10906         * src/z80/ralloc.c:
10907
10908 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
10909
10910         * src/pic/pcode.c (get_op): fix 64 bit warnings
10911         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
10912         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
10913         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
10914         * support/regression/tests/malloc.c: fix 64 bit warnings
10915
10916 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
10917
10918         * src/mcs51/gen.c (genMinus): fixed bug 696436
10919
10920 2003-03-02  Borut Razem <borut.razem AT siol.net>
10921
10922         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
10923
10924 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
10925
10926         * configure.in: test for mkstemp
10927         * sdccconf_in.h: add HAVE_MKSTEMP
10928
10929 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
10930
10931         * device/include/ctype.h: removed warning while using --stack-auto
10932         * device/include/malloc.h: removed warning while using --stack-auto
10933         * device/include/string.h: removed warning while using --stack-auto
10934
10935 2003-02-23  Borut Razem <borut.razem AT siol.net>
10936
10937         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
10938         because NDEBUG is defined (see man assert)
10939         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
10940
10941 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10942
10943         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
10944         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
10945
10946 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10947
10948         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
10949         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
10950
10951 2003-02-18    <johan AT balder>
10952
10953         * as/mcs51/asmain.c (asmbl): module can start with a digit
10954         * as/z80/asmain.c (asmbl): module can start with a digit
10955
10956 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
10957
10958         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
10959         * src/asm.c: fix pipe() for Mingw32
10960
10961 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
10962
10963         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
10964         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
10965         make -V work again; --c1mode reads now from stdin
10966         * doc/sdccman.lyx: added --c1mode
10967         * support/Util/SDCCerr.c: new messages for c1 mode
10968         * support/Util/SDCCerr.h: new messages for c1 mode
10969         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
10970
10971 2003-02-15    <johan AT balder>
10972
10973         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
10974
10975 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
10976
10977         * doc/sdccman.lyx: Environment variables, -o and other minor things
10978
10979 2003-02-14    <johan AT balder>
10980
10981         * src/xa51/main.c: before anyone really tries to use it :)
10982
10983         * Install doc's in share/sdcc/doc
10984         * removed some obsolete files
10985         * Do a proper make distclean and uninstall
10986         M Makefile.common.in
10987         R sdccbuild.sh
10988         M as/Makefile
10989         M device/include/Makefile.in
10990         M device/lib/Makefile.in
10991         M doc/sdccman.lyx
10992         M link/Makefile
10993         M sim/ucsim/doc/Makefile.in
10994         M src/clean.mk
10995         R src/avr/peeph.rul
10996         R src/xa51/peeph.rul
10997         M support/cpp2/Makefile.in
10998         M support/makebin/Makefile
10999
11000
11001 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
11002
11003         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
11004
11005 2003-02-10  Borut Razem <borut.razem AT siol.net>
11006
11007         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
11008         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
11009         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
11010         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
11011         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
11012         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
11013         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
11014         src/z80/Makefile.bcc: Borland Makefile cleanup
11015         * as/z80/Makefile.bcc: Added Borland Makefile
11016         * support/cpp2/borland.h: Removed
11017
11018 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
11019
11020         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
11021         * src/SDCC.lex: new pragma NOIV
11022         * src/SDCCglobl.h: new pragma NOIV
11023         * src/SDCCmem.c: new pragma NOIV
11024
11025 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11026
11027         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
11028
11029 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
11030
11031         * src/SDCCmain.c: signal handling is switched off by --debug
11032         * doc/Makefile: small fix for install; use clean.mk again
11033         * doc/clean.mk: clean *.pdf and *.html too
11034
11035 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
11036
11037         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
11038         * device/lib/printfl.c: fix a ds390 bug by making it portable
11039         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
11040         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
11041         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
11042         * debugger/mcs51/cmd.c: converted multi-line string literals
11043         * sim/ucsim/globals.cc: converted multi-line string literals
11044         * src/SDCCmain.c: introduced signal handler to remove temp files
11045         * doc/Makefile: small tweaks, implement clean
11046         * doc: removed generated files
11047
11048 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11049
11050         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
11051         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
11052         Address Record is not correctly generated for DS390."
11053
11054 2003-02-02  Borut Razem <borut.razem AT siol.net>
11055
11056         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
11057         * as/mcs51/asm.h: fixed compilation with Borland C
11058         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
11059         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
11060         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
11061         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
11062         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
11063         src/z80/Makefile.bcc: delete $(LIB) only if exist
11064         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
11065
11066 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
11067
11068         * device/include/malloc.h: introduced NULL
11069         * device/include/string.h: introduced NULL
11070         * device/include/stdlib.h: introduced NULL
11071         * device/lib/_memcpy.c: removed NULL
11072         * device/lib/_strcat.c: removed NULL
11073         * device/lib/_strchr.c: removed NULL
11074         * device/lib/_strcmp.c: removed NULL
11075         * device/lib/_strcpy.c: removed NULL
11076         * device/lib/_strcspn.c: removed NULL
11077         * device/lib/_strlen.c: removed NULL
11078         * device/lib/_strncat.c: removed NULL
11079         * device/lib/_strncmp.c: removed NULL
11080         * device/lib/_strncpy.c: removed NULL
11081         * device/lib/_strpbrk.c: removed NULL
11082         * device/lib/_strrchr.c: removed NULL
11083         * device/lib/_strspn.c: removed NULL
11084         * device/lib/_strstr.c: removed NULL
11085         * device/lib/_strtok.c: removed NULL
11086         * device/lib/malloc.c: removed NULL, include own header
11087
11088 2003-02-02    <johan AT balder>
11089
11090         * 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
11091         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
11092         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
11093         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
11094         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
11095         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
11096
11097 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11098
11099         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
11100         area 'DATA'"
11101
11102 2003-02-01    <johan AT balder>
11103
11104         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
11105
11106 2003-01-31    <johan AT CP255758-A>
11107
11108         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
11109
11110 2003-01-30    <johan AT balder>
11111
11112         * src/SDCCBBlock.c: automatic bug detection
11113         * src/SDCCicode.c: automatic bug detection
11114
11115 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11116
11117         * src/SDCCglobl.h:   now --xram-size 0 works
11118         * src/SDCCmain.c:    now --xram-size 0 works
11119
11120 2003-01-29    <johan AT balder>
11121
11122         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
11123
11124 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11125
11126         * as/mcs51/aslink.h: Added options --xram-size and --code-size
11127         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
11128         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
11129         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
11130         * src/SDCCglobl.h:   Added options --xram-size and --code-size
11131         * src/SDCCmain.c:    Added options --xram-size and --code-size
11132
11133 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
11134
11135         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
11136         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
11137
11138 2003-01-27    <johan AT balder>
11139
11140         * src/SDCC.y: fixed bug #613764
11141
11142 2003-01-26    <johan AT balder>
11143
11144         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
11145         * src/SDCCsymt.h: fixed bug #673374
11146         * src/SDCCglue.c: fixed bug #661910
11147         * src/SDCCast.c: fixed bug #458099 and 673374
11148
11149 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
11150
11151         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
11152         * as/mcs51/strcmpi.h: added
11153         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
11154         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
11155         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
11156         * as/mcs51/assym.c: strcmpi -> as_strcmpi
11157         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
11158         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
11159         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
11160         * as/mcs51/Makefile.aslink: new module strcmpi
11161         * as/mcs51/Makefile.asx8051: new module strcmpi
11162         * as/mcs51/Makefil.bcc: new module strcmpi
11163         * as/mcs51/Makefile.in: new module strcmpi
11164         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
11165
11166 2003-01-26    <johan AT balder>
11167
11168         * src/SDCCglue.c: reverted back to 1.124
11169         * src/SDCCast.c: reverted back to 1.156
11170         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
11171
11172 2003-01-25    <johan AT balder>
11173
11174         * src/SDCCglue.c: A better fix for bug #661910
11175         * src/SDCCast.c: A better fix for bug #661910
11176         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
11177
11178 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11179
11180         * src/Makefile.in: remove spawn.o
11181         * src/SDCCmain.c: remove spawn.h
11182         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
11183         * src/spawn.c: removed
11184         * src/spawn.h: removed
11185         * support/regression/ports/ds390/spec.mk: link with -r
11186
11187 2003-01-24    <johan AT CP255758-A>
11188
11189         * src/ds390/gen.c (aopOp): fixed bug #667458
11190         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
11191         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
11192         (createIvalCharPtr): an ival doesn't always have a storage class anymore
11193
11194 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
11195
11196         * src/mcs51/peeph.def: better assembler identation by Frieder
11197         * src/mcs51/gen.c: better assembler identation by Frieder
11198
11199 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
11200
11201         * as/z80/string.h: removed for gcc 3.2
11202         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
11203         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
11204
11205 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11206
11207         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
11208         * src/SDCCpeeph.c (replaceRule): fix bug #663503
11209         * support/regression/Makefile: separate temp files for ports
11210         * support/regression/generate-cases.py: separate temp files for ports
11211         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11212         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
11213
11214 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
11215
11216         * moved tinitalk to device/examples/ds390
11217
11218 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
11219
11220         * as/mcs51/lkmem.c: rflag is for DS390
11221         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
11222         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
11223                          (linkEdit): move mem- and map-files the same way as ihx-files
11224         * src/z80/main.c (_setDefaultOptions): removed --generic
11225         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
11226         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
11227         * src/pic/glue.c (picglue): --c1mode works again
11228         * src/pic16/glue.c (pic16glue): --c1mode works again
11229         * src/asm.c (printCLine): fix #660034
11230
11231 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
11232
11233         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
11234         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
11235         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
11236         * as/mcs51/lkmem (summary): better fix for sp problem
11237         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
11238         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
11239         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
11240                                               remove --stack-after-data
11241
11242 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
11243
11244         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
11245         * src/SDCCutil.c (join): ugly bug: missing '\0'
11246         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
11247
11248 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11249
11250         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
11251         * src/port.h: typo
11252         * src/pic/main.c (_asmCmd): gpasm supports -o
11253         * src/z80/main.c: more general macros
11254         * device/lib/Makefile.in: remove intermediate files
11255
11256 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
11257
11258         * .version: Bumped version number to 2.3.3
11259         * src/SDCCBBlock.c: new option -o
11260         * src/SDCCglobl.h: new option -o
11261         * src/SDCCglue.c: new option -o
11262         * src/SDCCmain.c: new option -o
11263         * src/asm.c: new option -o
11264         * src/ds390/main.c: new option -o
11265         * src/pic/glue.c: new option -o
11266         * src/pic/pcode.c: new option -o
11267         * src/pic/ralloc.c: new option -o
11268         * src/pic16/glue.c: new option -o
11269         * src/pic16/pcode.c: new option -o
11270         * src/pic16/ralloc.c: new option -o
11271         * src/z80/main.c: new option -o
11272         * device/lib/Makefile.in: use -o
11273         * support/regression/ports/ds390/spec.mk: use -o
11274         * support/regression/ports/gbz80/spec.mk: use -o
11275         * support/regression/ports/mcs51/spec.mk: use -o
11276         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
11277         * support/regression/ports/z80/spec.mk: use -o
11278         * support/regression/ports/ucz80/spec.mk: use -o
11279         * support/regression/ports/xa51/spec.mk: use -o
11280         * support/regression/fwk/lib/timeout.c: fix usage string
11281
11282 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
11283         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
11284
11285 2003-01-07    <johan AT balder>
11286
11287         * src/SDCCast.c (decorateType): fixed bug #600035
11288
11289 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
11290         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
11291         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
11292         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
11293         * src/pic/pcode.c: outcommented unused variable to remove warnings
11294         * src/pic/ralloc.c: outcommented unused variable to remove warnings
11295
11296 2003-01-06    <karl AT turbobit.com>
11297         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
11298    regression tests.
11299
11300 2003-01-06    <johan AT balder>
11301
11302         * src/SDCCicode.c: fixed array add
11303
11304 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
11305         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
11306         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
11307
11308 2003-01-04    <johan AT balder>
11309
11310         * src/SDCCval.c (getNelements): fixed the initialized array of structures
11311
11312 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11313         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
11314
11315 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11316         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
11317         * support/regression/tests/bug-524697.c: fit mem usage into 8032
11318
11319 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11320         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
11321
11322 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
11323         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
11324
11325 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
11326         * src/mcs51/main.c: removed {bindir}{sep} from aslink
11327
11328 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11329
11330     * in /sdcc/as/mcs51/ changed these files in order to create an
11331     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
11332     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
11333     following files to include the previous two files: aslink.dsp,
11334     Makefile.aslink, Makefile.bcc, and Makefile.in.
11335
11336     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
11337     .adb instead of .cdb
11338
11339 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11340
11341         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
11342         value from option --iram-size.
11343
11344 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11345
11346         * /sdcc/as/mcs51/lklist.c: added boundary check before using
11347         dram[] array.
11348
11349 2002-09-18    <wiml AT hhhh.org>
11350
11351         * SDCClrange.h: exposed setFromRange() and setToRange()
11352         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
11353           packRegsForAccUse() (bug 542397)
11354         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
11355           multiple times and emitting the fetch operations more than once
11356           added aopGetUsesAcc() function to allow binary operators to
11357           fetch their operands in the correct order; made genMinus() emit
11358           compact code for X = LITERAL - Y
11359
11360 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11361         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
11362         sprintf() in line 1267.
11363
11364 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11365         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
11366         like ports.
11367
11368 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11369         Changes to aslink (All the changes are marked with 'JCF'):
11370
11371         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
11372         summary().
11373
11374         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
11375         area BSEG.  Also moves, if possible, the DATA area down into the internal
11376         ram so more space is available.
11377
11378         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
11379         sflag.
11380
11381         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
11382         not bytes.  Function summary() which creates a memory usage summary
11383         file with extension .mem.  Reports of overlaping stack and small stack
11384         size.  If the space for the stack is less than 16 bytes aslink trows a
11385         warning.
11386
11387         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
11388         the 8051.  Option 'y' for memory summary output file.
11389
11390         Changes to sdcc (All the changes are marked with 'JCF'):
11391
11392         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
11393
11394         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
11395         overlaying area for it (uses RegBankUsed[4]).
11396
11397         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
11398         bank zero as used by default.  By default aslink locates the stack
11399         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
11400         the creation of the .mem file.  Delegates the allocation of data area
11401         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
11402         the begining of the stack area to aslink.
11403
11404         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
11405         glue() in SDCCglue.c creates an area for it.
11406
11407 2002-09-03  Borut Razem <borut.razem AT siol.net>
11408         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
11409         sdcc/src/pic/glue.c:
11410         introduced atexit() handler for teporay files removal in case of
11411         errors, assertions, ...
11412
11413 2002-08-29  Borut Razem <borut.razem AT siol.net>
11414         * sdcc/support/cpp2/auto-host_vc_in.h:
11415         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
11416         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
11417         Maybe there is a similar problem with BORLANDC? It should be checked!
11418
11419         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
11420         corrected improper use of assert: the assignment to clr variable was done inside the assert.
11421         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
11422         was not executed, and the compiler (cl) launched a warning:
11423         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
11424
11425 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11426         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
11427
11428 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
11429         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
11430
11431         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11432           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
11433           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
11434           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11435           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
11436           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
11437           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
11438         - added Release configuration in VS projects
11439         - review of compiler an linker options
11440         - VC .exe files are generated in bin_vc directory, not to interfere
11441           with binaries generated from other projects (cygwin, mingw, bcc ...)
11442
11443         * sdcc/src/yacc.dsp: added
11444
11445         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
11446         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
11447         and insert the version number definitions from .version
11448
11449         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
11450
11451         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
11452         added - genarate auto-host.h using auto-host_vc_in.h as template
11453
11454         * sdcc/sdcc_vc.h,
11455         removed from CVS, generated automatically
11456
11457 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
11458         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
11459
11460 2002-08-11  Borut Razem <borut.razem AT siol.net>
11461         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
11462
11463 2002-08-10  Borut Razem <borut.razem AT siol.net>
11464         * src/SDCCmain.c (main):
11465         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
11466         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
11467         The consequence was that some temporary files were not removed.
11468
11469         * src/SDCCglue.c:
11470         unification of code in functions tempfilename() and tempfile():
11471         function tempnam() is defined in Visual Studio 6.0 and .NET
11472
11473         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
11474
11475         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11476           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
11477         - removed compiler command line option /WX: Treats all warnings as errors
11478         - update a list of source files, included into the project
11479
11480         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11481           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
11482         changed project type to Generic Project so that can be correcly converted to VS.NET project
11483
11484         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
11485
11486         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
11487
11488         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
11489
11490         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
11491         added return 0 statements after assert() to make compiler happy
11492
11493         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
11494         added newline in the def file to keep MSC compiler satisfied
11495
11496         * sdcc/src/z80/gen.c:
11497         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
11498           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
11499         - solved MSC error in function aopDump()
11500
11501         * sdcc_vc.h: define PREFIX as "\\sdcc"
11502
11503 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
11504         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
11505
11506 2002-06-22  Scott Dattalo <scott AT dattalo.com>
11507         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
11508         - Rewrote the register banking algorithm.
11509         - Added pCode live-range analysis to registers (for now, only non-used and
11510         singly-used registers optimized away)
11511
11512         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
11513
11514         * 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.
11515
11516 2002-05-10  Scott Dattalo <scott AT dattalo.com>
11517         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
11518
11519 2002-04-22  Michael Hope  <michaelh AT vroom>
11520
11521         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
11522
11523         * configure.in (DD_COPT): Added include support required for gbdk.
11524
11525         * .version: Bumped version number just to increase it.
11526
11527         * src/SDCCmain.c: Added -nostdinc to the default options.
11528
11529 2002-04-15  Michael Hope  <michaelh AT vroom>
11530
11531         * device/lib/z80/printf.c (sprintf): Added.
11532
11533         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
11534
11535         * src/z80/peeph.def: Added transpose redundent load rule.
11536
11537         * src/z80/main.c: Added force callee saves for jaune.
11538
11539         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
11540
11541         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
11542
11543 2002-03-28  Johan Knol  <johan AT balder>
11544
11545         * src/SDCCval.c: fixed bug #532436
11546
11547 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11548         * /src/port.h:
11549         Added "char *Processor" field to the port structure.
11550
11551         * /src/SDCCmain.c:
11552         Added -p option. Allows port dependent processor to be specified.
11553
11554         * all ports:
11555         Initialized the new field char *Processor field to NULL in all ports
11556
11557         * /src/pic/*:
11558         Compiler generated registers for interrupt context saving
11559         were not getting allocated.
11560
11561 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
11562
11563         * /src/SDCCast.c:
11564         Fixed left shift. Will promote the left side of a left shift
11565         if a) left shifting more than size of operand or b) when assigned
11566         to something size > size of left side
11567
11568 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11569         * src/pic/*
11570         tons of changes. Register allocation has been
11571         rewritten. Added customization for the various PICs. Flow
11572         analysis is restructured. ...
11573
11574         * src/pic/device.h:
11575         Added
11576
11577         * src/pic/device.c:
11578         Added. device.c is a PIC port hack to accomodate variations
11579         in PIC devices.
11580
11581 2002-03-13  Michael Hope  <michaelh AT vroom>
11582
11583         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
11584
11585 2002-03-04  johanknol  <johanknol AT manik>
11586
11587         * /src/SDCCval.c: fixed
11588
11589         const unsigned char arr[][2] = { { 0, 1 } };
11590         t18.c:1: error: Initializer element is not constant
11591
11592 2002-03-04  bela  <bela AT manik>
11593
11594         * /device/include/mcs51reg.h:
11595         ds89c420 register definition update
11596
11597 2002-03-03    <johan AT FRIJA>
11598
11599         * support/Util/SDCCerr.c: did something, but don't no why anymore
11600
11601         * support/regression/tests/bug-524691.c: made it a little less shy
11602
11603         * src/SDCCast.c (decorateType): fixed bug #524697
11604
11605         * src/SDCCast.c: made some lineno improvements
11606
11607         * src/SDCCval.c (getNelements): changed warning to error
11608
11609         * src/SDCCglue.c (printIvalArray): changed warning to error
11610
11611         * src/SDCCicode.c: fixed a warning for mingw
11612
11613         * src/SDCCast.c (decorateType): fixed the << promotion for ops
11614
11615         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
11616
11617 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
11618
11619         * src/ds390/peeph.def:
11620         Added some more peephole rules
11621
11622         * src/ds390/gen.c: Various fixes & enhancements
11623
11624         * src/SDCClrange.c, src/SDCClrange.h:
11625         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
11626
11627         * src/ds390/ralloc.c:
11628         various fixes & enhancements (ds390) specific
11629
11630         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
11631         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
11632         from rallocs.
11633
11634         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
11635
11636 2002-03-02    <johan AT FRIJA>
11637
11638         * src/SDCCast.c (decorateType): fixed bug #524708
11639
11640         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
11641
11642         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
11643
11644 2002-03-01  Michael Hope  <michaelh AT vroom>
11645
11646         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
11647
11648         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
11649
11650 2002-03-01    <johan AT FRIJA>
11651
11652         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
11653
11654         * src/SDCCast.c (decorateType): fixed bug #524209
11655
11656         * src/SDCCval.c (valNot): fixed bug #524195
11657
11658 2002-02-26    <johan AT balder>
11659
11660         * src/xa51/gen.c: fixed a warning
11661
11662         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
11663
11664         * src/SDCCast.c (decorateType): fixed bug #522534
11665
11666 2002-02-23    <johan AT balder>
11667
11668         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
11669
11670 2002-02-22    <johan AT balder>
11671
11672         * src/SDCCast.c: fixed bug #514865
11673
11674         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
11675
11676 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
11677
11678         * sdcc/src/SDCCloop.c:
11679         Previous fix was not good. basic blocks that have "break" or "return" are
11680         not really partof a loop , but live ranges used in these blocks should
11681         be live thru the entire loop, so set partOfLoop but don't add them to
11682         loop region
11683
11684 2002-02-21    <johan AT FRIJA>
11685
11686         * src/SDCCcse.c: fixed bug #514308
11687
11688 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
11689
11690         * src/SDCCloop.c:
11691         Fixed BUG #519583. If a conditional block ended in a return/break
11692         statement inside a loop, it was not being considered part of the loop.
11693
11694         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
11695
11696 2002-02-10  Karl Bongers <karl AT turbobit.com>
11697
11698         * debugger/*:
11699         Fixed up SDCDB debugger somewhat.  Updated debugger/README
11700         with lots of comments and notes.
11701
11702         * device/examples/test2.c:
11703         Fix bug, "red" variable not being initialized(compiler complained).
11704
11705         * device/examples/Makefile, examples/test3.c:
11706         Add Makefile in device/examples folder, compiles test3.c
11707         for use as a multiple module SDCDB test case.
11708
11709         * sim/ucsim/cmd.src/cmdset.cc:
11710         Took out debug printfs in ucsim "next" command.
11711
11712         * sim/ucsim/xa.src:
11713         Karl and Johan start ucsim XA support.  Most dissassembly working,
11714         about 75% emulation done(plenty of work remaining).
11715
11716         * sim/ucsim/z80.src:
11717         Add Z80 support to ucsim, add test-ucz80 regression test,
11718         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
11719         Notice z80 compiler fails on examples/test3.c/crc code.
11720
11721 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
11722
11723         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
11724         Added support for --parms-in-bank1
11725
11726         * src/ds390/peeph.def:
11727         added a few more peephole optimzations
11728
11729         * src/ds390/main.c:
11730         1) added __builtin_inp & __builtin_outp used to read in data of given length
11731            from a memory mapped port
11732         2) added __builtin_memcmp
11733         3) added __builtin_swapw swap bytes of a short
11734
11735         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
11736         1) handle multiple send & receives from register bank1
11737         2) ralloc can now allocate DPTR1 to some liveRanges
11738
11739         * src/SDCCsymt.c, src/SDCCsymt.h:
11740         changes to handle multiple sends & receives
11741
11742         * src/SDCCptropt.h:
11743         added some pointer arithmetic optimization
11744
11745         * src/SDCCptropt.c:
11746         added some pointer arithmetic optimizations but not stable yet so not
11747         called from anywhere (will get this working shortly)
11748
11749         * src/SDCCopt.c: fixed for multiple sends & receives
11750
11751         * src/SDCCmain.c:
11752         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
11753         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
11754            set preprocessor defines (depending on options)
11755
11756         * src/SDCCicode.c, src/SDCCicode.h:
11757         changes made to handle multiple sends & receives
11758
11759         * src/SDCCglobl.h:
11760         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
11761
11762         * src/SDCCcse.c, src/SDCCcse.h:
11763         added function findbackward def (to be used in upcoming optimization)
11764
11765         * src/SDCCcflow.c, src/SDCCcflow.h:
11766         added function returnAtEnd - to determine if a basic block terminates with
11767         a RETURN iCode
11768
11769         * src/SDCCast.c, src/SDCCast.h:
11770         added option parms-in-bank1
11771
11772         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
11773         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
11774         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
11775         adjusted for --parms-in-bank1 option
11776
11777         * device/include/string.h:
11778         donot redefine "reentrant" keyword
11779
11780         * device/include/ds80c390.h: Added some more SFRs
11781
11782 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
11783
11784         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
11785
11786 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
11787
11788         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
11789
11790 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
11791
11792         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
11793
11794 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
11795
11796         * Added --xram-movc option
11797
11798 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
11799
11800         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
11801
11802 2002-01-11  Johan Knol
11803
11804         * Added math lib of Jesus Calvino-Fraga
11805
11806 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
11807
11808         * src/SDCCmain.c (processFile): fix processing of ../../src.c
11809         * support/regression/Makefile: new target test-mcs51-stack-auto
11810         * support/regression/ports/mcs51-stack-auto/spec.mk: added
11811
11812 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11813
11814         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
11815
11816 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11817
11818         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
11819
11820 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
11821
11822         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
11823
11824         * src/SDCCglue.h: add definition for printIvalChar()
11825
11826 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11827
11828         * src/SDCCast.c: fix #498138 by Johan
11829
11830         * src/SDCCglue.c: fix #498138 by Johan
11831
11832 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11833
11834         * support/regression/Makefile: fix clean
11835
11836         * support/regression/ports/ds390/support.c: fix transmission of last character
11837
11838 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
11839
11840         * /sdcc/src/ds390/gen.c:
11841         a) improved computing address of stack variable
11842         b) took out some #if 0 code
11843         c) improved parmBytes adjustment
11844         d) improved genPlusIncr & genMinusIncr
11845         e) genCmp could generate bad code (when left assigned to DPTR)
11846         f) Fixed bug in hasInc
11847
11848         * /sdcc/src/ds390/ralloc.c:
11849         a) packRegsForSupport could mess up live information (Fixed)
11850         b) packRegsDPTRuse could be incorrect for left & right shift
11851
11852         * /sdcc/src/mcs51/ralloc.c:
11853         packRegsForSupport could mess up the live information (Fixed)
11854
11855         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
11856
11857         * /sdcc/src/SDCCast.c:
11858         can reverse a loop even if function call is present as long
11859         as the loop control variable is local & is not passed as parameter
11860
11861 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11862
11863         * /sdcc/ChangeLog: *** empty log message ***
11864
11865         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
11866         More builtin function additions for TININative
11867
11868         * /sdcc/src/ds390/ralloc.c:
11869         Had broken the regression testsuite
11870
11871         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
11872
11873         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
11874         Added funcattr hasStackParms will be set for reentrant functions when there
11875         are paramteres on the stack, this helps in minimizing frame pointer generation
11876         typeFromStr can handle function pointers now
11877
11878         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
11879         *** empty log message ***
11880
11881 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11882
11883         * /src/ds390/gen.c, /src/ds390/main.c:
11884         More builtin function additions for TININative
11885
11886         * /src/ds390/ralloc.c:
11887         Had broken the regression testsuite
11888
11889         * /src/SDCCast.c: Fixed a bug in dumptree
11890
11891         * /src/SDCCsymt.c, /src/SDCCsymt.h:
11892         Added funcattr hasStackParms will be set for reentrant functions when there
11893         are paramteres on the stack, this helps in minimizing frame pointer generation
11894         typeFromStr can handle function pointers now
11895
11896         * /doc/builtins.txt, /doc/TININative.txt:
11897         *** empty log message ***
11898
11899
11900 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11901
11902         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
11903         ALPHA version for -mTININative
11904
11905         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
11906         updated to reflect changes in the port structure
11907
11908         * /src/port.h:
11909         added function do_assemble (similar to do_link) if non-null this function
11910         will be called to do assembly (-mTININative) requires a multi command
11911         assembly
11912         added function genAssemblerEnd will be called to generate assembler Epilogue
11913
11914         * /src/SDCCsymt.c:
11915         added _JavaNative to debug info printing
11916
11917         * /src/SDCCmain.c: added option --tini-libid
11918         added port->do_assemble function (-mTININative) has a multi command assemble
11919
11920         * /src/SDCCglue.c: Disabled "constExpr" check
11921         added port->genAssemblerEnd function
11922
11923         * /src/SDCCglobl.h: Added option --tini-libid value
11924
11925         * /src/SDCCast.h:
11926         tookout optimizeCompare from the header (has no external references)
11927
11928         * /src/SDCCast.c: made one more function "static"
11929
11930 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
11931
11932         * src/z80/mappings.i: Added z80asm support.
11933
11934         * src/z80/main.c: Added z80asm support on --asm=z80asm
11935
11936         * src/z80/gen.c: Fixed asm portability issues.
11937
11938         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
11939
11940         * src/SDCCglue.c (printExterns): Added global/extern split.
11941
11942 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
11943
11944         * support/regression/Makefile: added test for mcs51 model large
11945
11946         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
11947
11948         * support/regression/ports/gbz80/spec.mk: added -mgbz80
11949
11950 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
11951
11952         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
11953
11954 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
11955
11956         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
11957
11958         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
11959
11960 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
11961
11962         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
11963
11964         * support/regression/tests/simplefloat.c: Port to mcs51.
11965
11966 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
11967         * support/regression/tests/bug-485362.c: Added.
11968
11969         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
11970
11971         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
11972
11973         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
11974
11975         * src/z80/gen.c (aopDump): Added a dump function.
11976
11977 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
11978         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
11979
11980         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
11981
11982         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
11983
11984         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
11985
11986         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
11987
11988         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
11989
11990         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
11991
11992         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
11993
11994         * support/regression/ports/ds390/support.c: Use tinibios.
11995
11996         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
11997
11998 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
11999
12000         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
12001         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
12002
12003         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
12004
12005         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
12006
12007 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
12008
12009         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
12010
12011         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
12012         (packRegsForIYUse): Created and optimised.
12013
12014 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12015
12016         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
12017 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
12018
12019         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
12020
12021         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
12022
12023         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
12024
12025 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12026
12027         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
12028
12029         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
12030
12031 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12032
12033         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
12034
12035         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
12036
12037         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
12038
12039 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
12040
12041         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
12042         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
12043         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
12044
12045         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
12046
12047         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
12048         (genNotFloat): Added.
12049         (genUminusFloat): Added.
12050
12051         * device/lib/z80/Makefile: Added floating pt stubs.
12052
12053         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
12054
12055         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
12056
12057         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
12058
12059 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
12060
12061         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
12062
12063         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
12064
12065         * sdcc/support/regression/Makefile: Add port ds390.
12066
12067         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
12068
12069         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
12070
12071         * sdcc/support/regression/ports/ds390/spec.mk: Added.
12072
12073         * sdcc/support/regression/ports/ds390/support.c: Added.
12074
12075         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
12076
12077         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
12078
12079         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
12080
12081 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12082
12083         * device/include/malloc.h: Added z80 and gbz80 support.
12084
12085         * device/lib/gbz80/heap.s: Added.
12086
12087         * device/lib/z80/heap.s: Added.
12088
12089         * device/lib/malloc.c: Added z80 and gbz80 support.
12090
12091         * support/regression/tests/malloc.c (testMalloc): Added.
12092
12093         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
12094
12095         * support/regression/tests/bug-478094.c: Added.
12096
12097         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
12098
12099 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
12100
12101         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
12102
12103         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
12104
12105         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
12106
12107         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
12108
12109         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
12110
12111 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
12112
12113         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
12114
12115 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
12116
12117         * support/regression/tests/bug-477927.c: Added.
12118
12119         * src/z80/peeph.def: Added minor rules.
12120
12121         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
12122
12123         * src/z80/peeph.def: Added jump optimisation modification.
12124
12125 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
12126
12127         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
12128
12129 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
12130
12131         * support/regression/tests/funptrs.c: Added.
12132
12133 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
12134
12135         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
12136
12137 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
12138
12139         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
12140
12141         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
12142
12143         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
12144         (movLeft2ResultLong): Created.
12145
12146         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
12147         (joinPushes): Added.  Joins two char pushes into a word push.
12148
12149 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
12150
12151         * support/cpp2/Makefile.in (install): Added creation of dest dir.
12152
12153         * support/makebin/Makefile (install): Added creation of dest dir.
12154
12155 2001-10-24 Karl Bongers <karl AT turbobit.com>
12156
12157         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
12158
12159 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
12160
12161         * src/z80/ralloc.c: Turned off faulty pack for one use.
12162
12163         * src/z80/peeph-gbz80.def: Removed redundent restart options.
12164
12165         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
12166
12167 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
12168
12169         * support/regression/Makefile: Improved clean
12170
12171         * support/regression/ports/gbz80/spec.mk: Added clean
12172
12173         * support/regression/ports/host/spec.mk: Added clean
12174
12175         * support/regression/ports/z80/spec.mk: Added clean
12176
12177         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
12178
12179         * support/regression/ports/mcs51/timeout.c: little improvements
12180
12181 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
12182
12183         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
12184
12185         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
12186
12187         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
12188
12189 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
12190
12191         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
12192
12193         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
12194
12195 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
12196         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
12197
12198         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
12199
12200         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
12201
12202         * src/mcs51/main.c (_linkCmd): Added bin path to command.
12203
12204         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
12205
12206         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
12207
12208         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
12209
12210         * support/regression/tests/longor.c: Added.
12211
12212 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
12213
12214         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
12215
12216         * as/mcs51/aslink.h: define PATH_MAX
12217
12218         * as/mcs51/asm.h: define PATH_MAX
12219
12220         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
12221
12222         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
12223
12224         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
12225
12226         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
12227
12228         * src/SDCCglobl.h: define PATH_MAX
12229
12230         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
12231
12232         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
12233
12234 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
12235
12236         * src/z80/gen.c (gencjneshort): Fixed
12237
12238         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
12239
12240 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
12241
12242         * support/regression/tests/bug-469671.c: Added.
12243
12244         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
12245
12246 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
12247
12248         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
12249
12250         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
12251
12252 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
12253
12254         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
12255
12256         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
12257
12258         * src/device/lib/_mullong.c : removed hint: nooverlay bug
12259
12260         * src/device/lib/_divuint.c : removed hint: nooverlay bug
12261
12262         * src/device/lib/_divulong.c: removed hint: nooverlay bug
12263
12264         * src/device/lib/_moduint.c : removed hint: nooverlay bug
12265
12266         * src/device/lib/_modulong.c: removed hint: nooverlay bug
12267
12268 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
12269
12270         * 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.
12271
12272         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
12273
12274         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
12275
12276 2001-10-07    <johan AT FRIJA>
12277
12278         * device/lib/gets.c (gets): fixed the return value.
12279
12280 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
12281         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
12282
12283         * 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.
12284
12285         * 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.
12286
12287         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
12288
12289         * src/pic/gen.c: Removed Safe_strdup.
12290
12291         * configure.in: Added option to enable libgc support.
12292
12293         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
12294         (bitVectUnion): Optimised.
12295         (bitVectIntersect): Optimised.
12296         (bitVectBitsInCommon): Optimised.
12297         (bitVectCplAnd): Optimised.
12298
12299         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
12300
12301 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12302
12303         * src/SDCCmain.c: distinguish between assembler debug and plain options
12304
12305         * src/avr/main.c:   remove standard assembler options
12306
12307         * src/ds390/main.c: remove standard assembler options
12308
12309         * src/mcs51/main.c: remove standard assembler options
12310
12311         * src/port.h: removed "PENDING" comment
12312
12313 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12314
12315         * src/device/lib/_mulint.c  : new, with assember functions
12316
12317         * src/device/lib/_mullong.c : new, with assember functions
12318
12319         * src/device/lib/_divuint.c : with assember functions
12320
12321         * src/device/lib/_divsint.c : with assember functions
12322
12323         * src/device/lib/_divulong.c: with assember functions
12324
12325         * src/device/lib/_divslong.c: with assember functions
12326
12327         * src/device/lib/_moduint.c : with assember functions
12328
12329         * src/device/lib/_modsint.c : with assember functions
12330
12331         * src/device/lib/_modulong.c: with assember functions
12332
12333         * src/device/lib/_modslong.c: with assember functions
12334
12335         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
12336
12337         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
12338
12339         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
12340                                       replaced _mululong.c and _mulslong.c by _mullong.c
12341
12342 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12343
12344         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
12345
12346 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12347
12348         * src/SDCCglue.c: test, if win32api is available for MINGW
12349
12350 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12351
12352         * src/SDCCsymt.c: no more _modifier in printTypeChain()
12353         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
12354         * support/regression/ports/gbz80/spec.mk: removed GENERIC
12355         * support/regression/ports/host/spec.mk: removed GENERIC
12356         * support/regression/ports/mcs51/spec.mk: removed GENERIC
12357         * support/regression/ports/z80/spec.mk: removed GENERIC
12358
12359 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
12360
12361         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
12362
12363         * support/regression/tests/bug-467035.c: Created.
12364
12365 2001-10-01    <johan AT FRIJA>
12366
12367         * src/SDCC.y: fixed bug #466586 part 1
12368
12369 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
12370
12371         * SDCCicode.c: z80 has no generic pointers
12372         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
12373
12374 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
12375
12376         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
12377
12378 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
12379
12380         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
12381
12382         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
12383
12384 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
12385
12386         * configure.in: Fixed up so that ucsim is only configured once.
12387
12388         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
12389
12390         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
12391         (getPathDifference): As above.
12392
12393         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
12394
12395         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
12396
12397 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
12398         * .version: Updated to 2.3.1
12399
12400         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
12401         Added copyright header.
12402
12403         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
12404         (assemble): Added support for macro based assembler commands.
12405         (linkEdit): Added support for macro based linker commands.
12406         (preProcess): Changed the pre-processor to use macros.
12407         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
12408         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
12409
12410         * device/lib/z80/crt0.s: Added module name for debugging.
12411
12412 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
12413
12414         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12415
12416         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
12417
12418         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
12419
12420         * src/Makefile.in: Added SDCCmacro and SDCCutil
12421
12422 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
12423
12424         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12425
12426 2001-09-16    <johan AT FRIJA>
12427
12428         * 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.
12429
12430 2001-09-15    <johan AT FRIJA>
12431
12432         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
12433         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
12434
12435 2001-09-11    <johan AT FRIJA>
12436
12437         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
12438
12439 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
12440
12441         * support/regression/tests/bug-460444.c: Added test case.
12442
12443         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
12444         (genCast): Added justification for all of the asserts.
12445
12446 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
12447
12448         * support/regression/support.c: _xdata replaced by xdata
12449
12450         * support/regression/spec.mk: removed _generic
12451
12452 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
12453
12454         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
12455
12456         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
12457         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
12458
12459         * src/z80/peeph.def: Added a rule to optimise shift then compare.
12460
12461         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
12462
12463         * support/regression/tests/bug-460010.c: Added test case.
12464
12465         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
12466
12467 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
12468
12469         * support/regression/Makefile: inter-port-clean adjusted for mcs51
12470
12471         * support/regression/testfwk.c: removed workaround for bug #436344
12472
12473         * support/regression/tests/bp.c: use less memory with mcs51
12474
12475         * support/regression/tests/bug-441448.c: use less memory
12476
12477         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
12478
12479         * support/regression/collate-results.py: typo
12480
12481 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
12482
12483         * support/regression/tests/fetchoverlap.c: Added new test case.
12484
12485         * support/regression/tests/bp.c: Added new test case.
12486
12487         * support/regression/tests/bug-448984.c: Added new test case.
12488
12489         * support/regression/tests/pow2shifts.c: Added new test case.
12490
12491         * src/z80/gen.c: Turned off the noise it normally generates for the release.
12492         (genlshTwo): Fixed right shift for count > 8.
12493
12494         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
12495
12496 2001-09-08    <johan AT FRIJA>
12497
12498         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
12499
12500 2001-09-07    <johan AT FRIJA>
12501
12502         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
12503
12504         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
12505
12506 2001-09-06    <johan AT FRIJA>
12507
12508         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
12509         * bernhard noted me at this: "() equals to (void)" (1.38)
12510
12511 2001-09-05    <johan AT FRIJA>
12512
12513         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
12514
12515 2001-09-04    <johan AT FRIJA>
12516
12517         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
12518
12519
12520 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
12521
12522         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
12523
12524 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
12525
12526         * link/z80/aslink.h: Fixed path for PATH_MAX
12527
12528 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
12529
12530         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
12531
12532         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
12533
12534         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
12535
12536         * 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.
12537
12538 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
12539
12540         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
12541         (genCmp): Fixed up genCmp for the GB with longs.
12542
12543         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
12544
12545         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
12546
12547         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
12548
12549         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
12550
12551 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
12552
12553         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
12554
12555 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
12556
12557         * 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.
12558
12559         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
12560
12561 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
12562
12563         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
12564
12565         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
12566
12567 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
12568
12569   * sim/ucsim/configure:    little improvement of Cygwin-detection
12570   * sim/ucsim/configure.in: little improvement of Cygwin-detection
12571   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
12572   * support/regression/tests/bug-221100.c: small changes for mcs51
12573   * support/regression/tests/bug-221168.c: small changes for mcs51
12574   * support/regression/tests/bug-227710.c: small changes for mcs51
12575   * support/regression/tests/staticinit.c: small changes for mcs51
12576   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
12577   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12578   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12579
12580 $Revision$