* support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
[fw/sdcc] / ChangeLog
1 2006-09-06 Borut Razem <borut.razem AT siol.net>
2
3         * support/scripts/sdcc.nsi: fixed Error: unterminated string parsing
4           line at sdcc.nsi:153
5         * sdcc/debugger/mcs51/simi.c: argsToCmdLine() fixes
6
7 2006-09-05 Borut Razem <borut.razem AT siol.net>
8
9         * configure.in, configure: support for winsock2
10         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
11           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
12           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
13           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
14           debugger/mcs51/symtab.h: sdcdb WIN32 native port
15
16 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
17
18         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
19           and OP_DEFS
20         * support/regression/tests/bug1551947.c: new, added
21         * src/SDCCsymt.h: strings are char* not byte*
22
23 2006-09-05 Raphael Neider <rneider AT web.de>
24
25         * device/lib/pic16/libdev/pic18f4550.c,
26           device/include/pic16/pic18f4550.h: added PORTD/TRISD
27             declarations/definitions from patch #1520949
28
29 2006-09-05 Raphael Neider <rneider AT web.de>
30
31         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
32           byte-aligned bitfields, fixes #1539278
33
34 2006-09-05 Raphael Neider <rneider AT web.de>
35
36         * src/pic/gen.c (genReceive): skip unreferenced arguments,
37           fixes #1544120
38
39 2006-09-04 Borut Razem <borut.razem AT siol.net>
40
41         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
42         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
43           -mno-cygwin is a part of the compiler name
44         * support/scripts/sdcc_mingw32: don't disable ucsim
45
46 2006-09-03 Borut Razem <borut.razem AT siol.net>
47
48         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
49         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
50
51 2006-09-03 Raphael Neider <rneider AT web.de>
52
53         * src/pic/ralloc.c,
54         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
55           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
56           fixes #1550049
57
58 2006-09-01 Borut Razem <borut.razem AT siol.net>
59
60         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
61           to make ppc-osx happy
62
63 2006-08-31 Borut Razem <borut.razem AT siol.net>
64
65         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
66         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
67         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
68         * support/regression/ports/ds390/spec.mk,
69           support/regression/ports/mcs51/spec.mk,
70           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
71           To run regression tests in mingw environment:
72           make DEV_NULL=NUL CC=gcc
73
74 2006-08-30 Borut Razem <borut.razem AT siol.net>
75
76         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
77           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
78           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
79           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
80           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
81           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
82           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
83           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
84           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
85           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
86           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
87           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
88           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
89           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
90           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
91           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
92           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
93           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
94           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
95           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
96           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
97           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
98           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
99           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
100           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
101           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
102           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
103           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
104           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
105           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
106           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
107           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
108           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
109           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
110           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
111           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
112           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
113           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
114           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
115           ucsim WIN32 native port
116
117 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
118
119         * doc/sdccman.lyx: added note on dynamic memory heap initialization
120
121 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
122
123         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
124         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
125
126 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
127
128         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
129         * support/regression/tests/bug1546986.c: new, added
130         * as/mcs51/.cvsignore,
131         * debugger/mcs51/.cvsignore,
132         * src/.cvsignore: deleted
133
134 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
135
136         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
137           definitions)
138
139 2006-08-20 Borut Razem <borut.razem AT siol.net>
140
141         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
142           removed cl_listen_console::match(), cl_console::match(),
143           restructured cl_commander::proc_input()
144
145 2006-08-16 Borut Razem <borut.razem AT siol.net>
146
147         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
148           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
149           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
150
151 2006-08-14 Borut Razem <borut.razem AT siol.net>
152
153         * support/regression/Makefile.in,
154           support/regression/ports/pic14/gpsim.cmd,
155           support/regression/ports/pic14/spec.mk,
156           support/regression/ports/pic14/support.c:
157           added pic14 regression test
158
159 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
160
161         * as/doc/asxhtm.html: documented changed ABS behaviour
162         * as/doc/README: fixed some typos
163
164 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
165
166         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
167           not defined on host
168
169 2006-08-12 Borut Razem <borut.razem AT siol.net>
170
171         * support/regression/fwk/include/testfwk.h,
172           support/regression/fwk/lib/testfwk.c,
173           support/regression/generate-cases.py,
174           support/regression/Makefile.in:
175           regression test framework does not depend on function pointers and
176           variable arguments
177
178 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
179
180         * device/include/stddef.h: c temporary hack to fix bug 1518273
181
182 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
183
184         * device/include/mcs51/cc2510fx.h: added
185         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
186           to projects.
187
188 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
189
190         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
191         * as/z80/Makefile.in: added strcmpi.c
192         * as/z80/z80adr.c: added upper case registers and lower case conditionals
193         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
194
195 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
196
197         * device/lib/gbz80/asm_strings.s,
198         * device/lib/gbz80/crt0_rle.s,
199         * device/lib/gbz80/div.s,
200         * device/lib/gbz80/mul.s,
201         * device/lib/gbz80/shift.s,
202         * device/lib/z80/asm_strings.s,
203         * device/lib/z80/crt0_rle.s,
204         * device/lib/z80/div.s,
205         * device/lib/z80/mul.s,
206         * device/lib/z80/shift.s: changed to all lower case menmonics except the
207           flags which are all upper case
208
209 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
210
211         * as/z80/asm.h: made CASE_SENSITIVE 1
212         * link/z80/aslink.h: made CASE_SENSITIVE 1
213         * src/z80/gen.c (throughout): made all conditionals upper case
214         * support/regression/tests/bug1503067.c: new
215
216 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
217
218         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
219           (shiftIntoPair): added case 2 for PAIR_IY,
220           (setupToPreserveCarry): replaced parameters with iCode and check if
221            PAIR_DE is in use to fix bug 1399290,
222           (genPlus, genMinus): updated call to setupToPreserveCarry
223         * support/regression/tests/bug1399290.c: new
224
225 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
226
227         * device/lib/Makefile.in (Z80SOURCES): enabled float support
228         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
229         * src/ds390/gen.c (shiftRLong),
230         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
231         * src/mcs51/gen.c (sameReg): changed to sameByte,
232           (xch_a_aopGet): new,
233           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
234            shiftRLong): fixed bug 1533966
235         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
236           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
237         * support/regression/Makefile.in: disabled z80, enabled ucz80
238         * support/regression/tests/float_trans.c: enabled test for z80 and host
239         * support/regression/tests/shifts2.c: new, for testing bug 1533966
240
241 2006-08-01 Borut Razem <borut.razem AT siol.net>
242
243         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
244           comparison is always false due to limited range of data type
245           on PPC64 machine (openpower-linux1) where "char = unsigned char"
246
247 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
248
249         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
250         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
251         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
252         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
253
254 2006-07-31 Borut Razem <borut.razem AT siol.net>
255
256         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
257           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
258           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
259           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
260           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
261           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
262           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
263           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
264           enable ucsim mingw compilation. Serial port is disabled,
265           since it uses termios.h API, which is not available on native
266           WIN32
267
268 2006-07-31 Borut Razem <borut.razem AT siol.net>
269
270         * Small Device C Compiler 2.6.0 released
271         * support/scripts/sdcc.nsi: added FULL_DOC option
272         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
273
274 2006-07-28 Borut Razem <borut.razem AT siol.net>
275
276         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
277         * doc/INSTALL.txt: updated
278
279 2006-07-27 Borut Razem <borut.razem AT siol.net>
280
281         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
282           device/lib/pic/libdev/Makefile.in: fixed bug
283           [ 1438354 ] pic libsdcc: distclean doesn't work
284         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
285           device/lib/pic16/libio/Makefile.in: fixed bug
286           [ 1438344 ] pic16 lib: clean doesn't work properly
287         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
288
289 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
290
291         * device/lib/pic/libsdcc/fsdiv.c,
292         * device/lib/pic/libsdcc/fsmul.c,
293         * device/lib/pic16/libsdcc/float/fsdiv.c,
294         * device/lib/pic16/libsdcc/float/fsmul.c,
295         * device/lib/_fsdiv.c,
296         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
297         * support/regression/tests/bug1520966.c: added
298         * doc/knownbugs.html: removed [ 1520966 ] from the list
299
300 2006-07-25 Borut Razem <borut.razem AT siol.net>
301
302         * configure.in, configure, sdccconf_in.h: fixed bug
303           [ 1519095 ] regression test onebyte.c fails on ppc64 host
304         * doc/knownbugs.html: removed [ 1519095 ] from the list
305
306 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
307
308         * doc/knownbugs.html: added, contains list of known bugs at release
309         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
310
311 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
312
313         * device/include/mcs51/compiler.h: added SFRX for xdata based special
314           function registers and corrected defaults with additional warning
315         * device/lib/malloc.c: cosmetic changes
316         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
317         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
318           (fillGaps): and used it
319
320 2006-07-20 Raphael Neider <rneider AT web.de>
321
322         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
323           output unless SDCCPICDEBUG is set
324         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
325           output if SILENT is set
326
327 2006-07-11 Borut Razem <borut.razem AT siol.net>
328
329         * doc/README.txt: updated
330
331 2006-07-10 Borut Razem <borut.razem AT siol.net>
332
333         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
334           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
335           in WIN32 installation
336         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
337           release candidate 1
338
339 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
340
341         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
342         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
343
344 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
345
346         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
347
348 2006-07-06 Borut Razem <borut.razem AT siol.net>
349
350         * support/regression/tests/bitfields.c:
351           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
352         * support/regression/tests/constantRange.c:
353           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
354
355 2006-07-04 Borut Razem <borut.razem AT siol.net>
356
357         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
358           src/port.mk,
359           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
360           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
361           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
362           reverted changes from 2006-07-03
363         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
364         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
365           added CPPFLAGS, used by the host port
366
367 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
368
369         * support/regression/valdiag/tests/switch.c,
370         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
371         * support/regression/tests/libmullong.c: fixed for host
372         * support/regression/ports/host/spec.mk: disable all warnings for host,
373         SDCC runs with --less-pedantic too
374
375 2006-07-03 Borut Razem <borut.razem AT siol.net>
376
377         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
378           defined CPPFLAGS
379         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
380         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
381           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
382           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
383           include ../port.mk
384         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
385           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
386           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
387           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
388
389 2006-07-02 Raphael Neider <rneider AT web.de>
390
391         * src/pic16/devices.inc,
392         * device/include/pic16/pic18fregs.h,
393         * device/include/pic16/pic18f4550.h,
394         * device/lib/pic16/pics.all,
395         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
396
397 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
398
399         * as/hc08/lkaomf51.c (OutputName),
400         * as/mcs51/lkaomf51.c (OutputName),
401         * as/z80/asmain.c (asmbl),
402         * src/ds390/main.c (asmLineNodeFromLineNode),
403         * src/hc08/ralloc.c (hc08_assignRegisters),
404         * src/mcs51/main.c (asmLineNodeFromLineNode),
405         * src/xa51/ralloc.c (checkRegMask),
406         * src/xa51/gen.c (emitcode),
407         * src/z80/gen.c (_emit2),
408         * src/SDCCast.c (searchLitOp),
409         * src/SDCCglobl.h,
410         * support/packihx/packihx.c,
411         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
412         * src/ds390/gen.c (aopPutUsesAcc),
413         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
414         * support/regression/tests/libmullong.c (mullong_wrapper),
415         * src/SDCCsymt.c (powof2),
416         * src/SDCCast.c,
417         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
418         * src/SDCCsymt.h: added TYPE_TARGET_*
419         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
420         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
421         SDCCast because 1) header problems 2) this is the right place
422         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
423         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
424         prototype
425
426 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
427
428         * src/SDCCicode.h: removed buggy semicolon in unused macro
429         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
430         search for previous definiton of auto symbols too,
431         (findPrevUse): fixed logic of emitWarnings
432
433 2006-06-26 Raphael Neider <rneider AT web.de>
434
435         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
436           PCLATH and PCLATU on interrupts, potentially fixes #1505141
437
438 2006-06-25 Raphael Neider <rneider AT web.de>
439
440         * device/lib/pic/libm: NEW, added math library functions
441         * device/lib/pic/libsdcc: NEW; added float support functions
442         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
443         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
444           NEW, added math related headers
445         * device/include/asm/pic/features.h: NEW
446         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
447           (popGet): allow larger offsets for AOP_PCODE,
448           (genDataPointerSet): handle literals explicitly, more debug output,
449           (genAssign): fixed for float using aopLiteral ;-)
450         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
451           GOTO initialisation routine
452         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
453           flag on registers, fixes #1469043 (local variables do not work)
454         * src/pic/main.c (_pic14_do_link),
455         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
456           available
457
458 2006-06-25 Borut Razem <borut.razem AT siol.net>
459
460         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
461           characters printed (not including the trailing '\0' used to end
462           output to strings). Problem detected in regression test bug-927659.c.
463           NOTE: printf() family functions should return int instead
464           unsigned int!
465         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
466           specifier are printed as themselves
467         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
468           support flags, width and precision specifiers
469
470 2006-06-24 Borut Razem <borut.razem AT siol.net>
471
472         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
473           to the list of sdcc tagrets not supporting bit type
474         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
475           testfor pic16 due to bug:
476           [ 1511794 ] pic16: regression test bug-895992.c fails
477
478 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
479
480         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
481         * src/SDCCglue.c (initPointer), fixed bug 1496419
482         * support/regression/tests/bug1496419.c: new, added
483
484 2006-06-22 Borut Razem <borut.razem AT siol.net>
485
486         * support/regression/ports/pic16/support.c: use gpsim usart module from
487           libgpsim_modules library
488
489 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
490
491         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
492         IP0H to IPH0.
493
494 2006-06-19 Raphael Neider <rneider AT web.de>
495
496         * src/pic/glue.h,src/pic16/glue.h: added prototypes
497         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
498           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
499           (pic14printExterns,pic14printPublics,pic16printPublics,
500           pic16_printExterns): use new functions to emit symbols
501           (picglue,pic16glue): emit publics before emitting externs
502         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
503           locally defined functions to avoid bug #1443651
504         * support/regression/tests/bug-716242.c: removed pic16 workaround
505         * support/regression/ports/pic16/spec.mk: ignore errors during build
506
507 2006-06-19 Raphael Neider <rneider AT web.de>
508
509         * src/pic/glue.h: added pic14aopLiteral prototype
510         * src/pic/glue.c (pic14aopLiteral): return unsigned int
511         * src/pic/gen.c: removed stdint.h dependency
512           (aopGet): use Safe_strdup()
513           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
514           (genDataPointerSet): use pic14aopLiteral()
515         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
516           for pic16; thanks to Bernhard and Maarten
517
518 2006-06-18 Borut Razem <borut.razem AT siol.net>
519
520         * support/regression/tests/structflexarray.c: flexible array members
521           not supported by gcc < 3
522         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
523           GUI tool by default
524         * src/pic/gen.c: don't include [p]strdin.h on solaris
525         * support/Util/pstdint.h: addad svn attributes
526         * support/regression/tests/constantRange.c,
527           support/regression/tests/rotate.c: include inttypes.h instead
528           stdint.h on solaris, addad svn attributes
529
530 2006-06-18 Raphael Neider <rneider AT web.de>
531
532         * src/SDCCsymt.c (initCSupport): change return type of divschar to
533           int for PIC16
534         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
535           (pic16_genMinusBits): simplified sign-extension
536           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
537             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
538             adjusted to correctly handle mixed-signed operands, disabled
539             now unused multiplciation routines
540         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
541           (assignResultValue): added argument denoting the size of the result
542             as returned by the function (fixes upcasts in assigning from
543             function calls: char foo(); int i = foo();)
544           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
545             function result to assignResultValue
546           (genMult): disabled inlined multiplication code
547           (genDiv): augmented to also handle the modulus operator, fixed to
548             handle mixed-signed operands correctly
549           (genMod): simply call genDiv, disabled unused code
550           (genAssign): fixed missing (sign-)extension on result
551         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
552             valid char operands, allow signed operands for native code, added
553             division and modulo operator handling
554         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
555
556         As a consequence, onebyte.c (if split into two files) and muldiv.c
557         pass regression tests.
558
559 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
560
561         * doc/Makefile.in: two runs of makeindex seem needed to get
562         correct page references in the index of sdccman.pdf
563         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
564
565 2006-06-17 Borut Razem <borut.razem AT siol.net>
566
567         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
568
569 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
570
571         * doc/sdccman.lyx: updated, added (porting source code, debugging),
572         mentioned ec2drv and paulmon
573
574 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
575
576         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
577           consecutive abs areas
578           (find_empty_space, allocate_space): added map to handle codemap or
579            xdatamap,
580           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
581            absolute idata and xdata
582         * as/mcs51/lkmem.c (summary2): updated legend
583
584 2006-06-16 Raphael Neider <rneider AT web.de>
585
586         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
587
588 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
589
590         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
591           1208515
592         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
593
594 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
595
596         * src/port.h (struct PORT): added field gp_tags, to hold the tag
597         value of generic pointers,
598         * src/avr/main.c,
599           src/ds390/main.c,
600           src/hc08/main.c,
601           src/izt/i186.c,
602           src/izt/tlcs900h.c,
603           src/mcs51/main.c,
604           src/pic/main.c,
605           src/pic16/main.c,
606           src/xa51/main.c,
607           src/z80/main.c: PORT structure, added elements for gp_tags field,
608         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
609         fields in the PORT structure of each port,
610         * src/SDCCast.c (decorateType): allow processing of generic pointers
611         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
612         S_FIXED symbols
613
614 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
615
616         * link/z80/lkgb.c,
617         * link/z80/lkgg.c,
618         * src/pic16/gen.c,
619         * src/pic16/main.c,
620         * src/pic16/pcode.c,
621         * src/pic/main.c,
622         * src/pic/pcoderegs.c,
623         * src/SDCCicode.c,
624         * src/SDCCmain.c,
625         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
626           bug 1504689 on minGW
627
628 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
629
630         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
631
632 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
633
634         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
635
636 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
637
638         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
639           for optimization
640
641 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
642
643         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
644         to a char variable. Fixed bug #1504211
645         * device/include/pic16/adc.h,
646         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
647         and fixed bug #1364390
648
649 2006-06-10 Borut Razem <borut.razem AT siol.net>
650
651         * CVSROOT: removed the CVS left-over
652
653 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
654
655         * as/hc08/asmain.c (asexit),
656         * as/hc08/lkmain.c (lkexit),
657         * as/mcs51/asmain.c (asexit),
658         * as/mcs51/lkmain.c (lkexit),
659         * src/SDCCglue.c (DEFSETFUNC),
660         * src/SDCCmain.c (linkEdit, assemble),
661         * support/librarian/sdcclib.c (AddRel),
662           replaced unlink() by standard C remove()
663         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
664         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
665           gatherImplicitVariables): new, added to fix bug 608752,
666           (createFunction): added gatherImplicitVariables()
667         * src/SDCCast.h: added createRMW prototype
668         * src/SDCCsymt.h (struct symbol): added infertype
669         * support/regression/tests/bug608752.c: new, added
670
671 2006-06-10 Raphael Neider <rneider AT web.de>
672
673         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
674           multibyte dummy reads (fixes #1503234)
675
676 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
677
678         * device/include/mcs51/compiler.h: new, added header file to enable
679           creating common sfr definition header files for different compilers
680
681 2006-06-05 Raphael Neider <rneider AT web.de>
682
683         * src/pic16/{pcode.h,genarith.c}:
684           introduced pCodeOp combining any two pCodeOps (previously only
685           two register operands could be combined), removed pcop2 from
686           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
687         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
688         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
689           rewritten to use new PO_TWO_OPS
690         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
691         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
692           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
693           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
694           (pic16_get_op): embraced return arg to allow #define return(x),
695             added new case for combined opcodes
696           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
697           (pic16_pCode2str,pic16_getRegFrompCodeOp,
698            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
699
700 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
701
702         * src/SDCCval.c (checkConstantRange): added
703         * src/SDCCval.h: added checkConstantRange
704         * support/Util/SDCCerr.c,
705         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
706         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
707         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
708         * src/SDCCast.c (decorateType): added checkConstantRange,
709         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
710         can be emitted with the correct always true/false warning,
711         added optimization for double '!';
712         result of decorateType() must be assigned back to the tree, because
713         decorateType() can change the tree
714         * src/SDCCicode.c (geniCodeLogic),
715         (geniCodeAssign): replaced new checkConstantRange, added warnings,
716         (checkConstantRange): removed, it was only a fragment which never
717         emitted a warning
718         * src/SDCCsymt.c (computeType): fixed promotion for
719         "-1 < (unsigned bit) b"
720         * src/pic/ralloc.c (packRegsForAssign),
721         * src/pic16/ralloc.c (packRegsForAssign),
722         * src/hc08/ralloc.c (packRegsForAssign),
723         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
724         from mcs51
725         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
726         * support/regression/tests/constantRange.c: added
727         * support/valdiag/tests/constantRange.c: added
728         * support/valdiag/valdiag.py: added -DPORT_HOST=1
729
730 2006-06-02 Borut Razem <borut.razem AT siol.net>
731
732         * support/regression/ports/pic16/support.c: increase stack size
733           to 255 bytes
734         * support/regression/Makefile.in: sort tests by name so that the
735           resutlts can be compared on different machines / platforms
736
737 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
738
739         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
740         * src/ds390/gen.c (emitLabel): new, added,
741           (genDjnz): fixed stack overflow bug,
742           (throughout): cosmetic changes to sync with mcs51/gen.c,
743           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
744         * src/mcs51/gen.c (genEndFunction): small optimization,
745           (throughout): cosmetic changes to sync with ds390/gen.c
746
747 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
748
749         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
750           (_print_format): fixed printing pointers
751         * src/mcs51/gen.c (emitLabel, movb): new, added,
752           (genAssign): small optimization,
753           (genDjnz): fixed stack overflow bug,
754           (throughout): replaced sprintf with SNPRINTF,
755           replaced mcs51_regWithIdx with REG_WITH_INDEX,
756           replaced emitcode("mov", "b,...") with MOVB(...),
757           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
758           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
759         * src/mcs51/peeph.def: added rules 140 and 264
760         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
761           so they may get optimized into registers
762
763 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
764
765         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
766           immediately when encountered,
767           (printUsage): always use stderr even on windows
768
769 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
770
771         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
772         (processParms): fixed bug #1247551
773         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
774         parseCmdLine, main): print '--version' to stdout,
775         print 'help' to stdout if --help is given,
776         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
777         arguments are given; fixed --help
778
779 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
780
781         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
782         * support/regression/tests/bug-1493710.c: added
783
784 2006-05-27 Borut Razem <borut.razem AT siol.net>
785
786         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
787           static instead auto
788         * support/regression/ports/pic16/support.c: increase stack size
789           from default 64 bytes to 128 bytes
790         * support/regression/tests/staticinit.c,
791           support/regression/tests/float.c: regression tests fully enabled
792           for pic16 port by putting the initialized data arrays into the code
793           section
794         * support/regression/ports/pic16/spec.mk: don't link default libraries.
795           This was changed by mistake in the previous version.
796
797 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
798
799         * src/pic16/gen.c (genFunction, genEndFunction): some
800         beautifications, fixed bug with falsely restoring FSR2 in large
801         stack model, thanks to Beau E. Cox for reporting the bug
802
803 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
804
805         * debugger/mcs51/break.c,
806         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
807           use %p to print pointers, made address variables unsigned
808         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
809         * debugger/mcs51/symtab.c (parseSymbol): must return something
810         * src/mcs51/gen.c (aopForSym): small optimization,
811            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
812           (freeAsmop): added missing break,
813           (aopPut): removed parameter bvolatile, determine it inside the function,
814           (saveRegisters, unsaveRegisters): small optimization,
815           (genIpush): removed pointless check,
816           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
817           replaced sprintf with SNPRINTF,
818           replaced strcpy with strncpyz,
819           updated aopPut calls,
820           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
821         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
822
823 2006-05-24 Borut Razem <borut.razem AT siol.net>
824
825         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
826           modification of test for the pic16 port, put the array to the code
827           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
828
829 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
830
831         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
832         * support/Util/pstdint.h: added
833
834 2006-05-22 Borut Razem <borut.razem AT siol.net>
835
836         * src/regression/Makefile: removed bool2.c test, added -q linker option
837         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
838           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
839           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
840           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
841           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
842           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
843           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
844           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
845           define SUPPORT_BIT_TYPES 0, removed unused bit variables
846
847 2006-05-22 Raphael Neider <rneider AT web.de>
848
849         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
850           bug #1492360 (problematic due to generic pointers, see code)
851
852 2006-05-22 Borut Razem <borut.razem AT siol.net>
853
854         * support/regression/ports/pic16/specs.mk: removed stack size linker
855           directive
856         * support/regression/tests/array.c,
857           support/regression/tests/bitopcse.c,
858           support/regression/tests/bug-908454.c,
859           support/regression/tests/malloc.c: modified for pic16 regression test
860         * support/regression/tests/bitfields.c:
861           pic16 - excluded bitfileds of size > 8
862         * support/regression/tests/bp.c: pic16 - reduced data size
863         * support/regression/tests/bug-221100.c: pic16 - reduced data size
864         * support/regression/tests/bug-460010.c:
865           pic16 - used the absolute address the fits in memory
866         * support/regression/tests/bug-716242.c:
867           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
868         * support/regression/tests/float.c:
869           pic16 - excluded - data size too big
870         * support/regression/tests/onebyte.c:
871           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
872         * support/regression/tests/shifts.c:
873           pic16 - function names probably have to differ in first X characters
874           (gpasm limitation?)
875         * support/regression/tests/staticinit.c:
876           pic16 - excluded some tests due error: no target memory available for
877           section ".idata"
878
879 2006-05-22 Borut Razem <borut.razem AT siol.net>
880
881         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
882           second try. Thanks Stas Sergeev once more.
883
884 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
885
886         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
887           (genLeftShift, genRightShift): fixed bug 1491627
888         * src/hc08/peeph.def (rules 7, 8.x): added
889         * support/regression/tests/shifts.c (ShiftLeftByParam,
890           ShiftRightByParam, testShiftByParam): added to test variable shifting
891
892 2006-05-20 Raphael Neider <rneider AT web.de>
893
894         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
895         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
896           (allocReg): add only new registers to dynAllocRegs,
897           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
898             #1489055, #1445850, and probably #1483693
899
900 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
901
902         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
903         bug in for-loop that didn't emit the last of CONFIG and ID registers
904
905 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
906
907         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
908           with offset
909         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
910           1489016, 1434401 and 1490124
911         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
912           1489016, 1434401 and 1490124
913
914 2006-05-17 Borut Razem <borut.razem AT siol.net>
915
916         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
917           thanks Stas Sergeev
918
919 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
920
921         * device/include/mcs51/P89c51RD2.h,
922         * device/include/mcs51/P89LPC901.h,
923         * device/include/mcs51/P89LPC922.h,
924         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
925
926 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
927
928         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
929         to fix missing stack pragma in compiled binary object file,
930
931 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
932
933         * support/packihx/configure.in,
934         * support/packihx/configure: removed warning, autoconf >= 2.5x can
935         determine sizeof basic types even while cross compiling
936
937 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
938
939         * src/avr/gen.c (aopop),
940         * src/ds390/gen.c (aopOp),
941         * src/hc08/gen.c (aopOp),
942         * src/mcs51/gen.c (aopop),
943         * src/pic16/gen.c (pic16_aopOp),
944         * src/pic/gen.c (aopOp),
945         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
946         if size of operand is smaller than spill location
947
948 2006-05-12 Borut Razem <borut.razem AT siol.net>
949
950         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
951           have to have CR/LF line endings even if they are checked out on *nix
952           or on WIN32 in cygwin binmode
953
954 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
955
956         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
957         * device/include/ds80c390.h: added sfr16 definitions
958         * src/ds390/gen.c,
959         * src/ds390/gen.h,
960         * src/ds390/main.c,
961         * src/ds390/ralloc.c,
962         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
963           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
964           bit returning functions
965         * support/regression/tests/sfr16.c: enabled test on ds390
966
967 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
968
969         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
970         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
971
972 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
973
974         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
975         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
976           (cl_address_space constructor): removed expensive initialization,
977           (cl_address_space::get_cell): extended for late initialization,
978           (cl_address_space::*): use late initialization,
979           (cl_address_decoder::activate): removed expensive initialization,
980           This reduced regression test running time by 25%
981
982 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
983
984         * packihx/,
985         * configure.in,
986         * configure,
987         * sdcc.dsw,
988         * Makefile.bcc,
989         * Makefile.in,
990         * support/packihx/Makefile.in,
991         * support/packihx/clean.mk,
992         * support/packihx/Makefile.bcc,
993         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
994
995 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
996
997         * src/SDCCval.c (valNot): fix for regression test failure
998           of not.c on big endian hosts
999
1000 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1001
1002         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
1003
1004 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
1005
1006         * device/lib/mcs51/Makefile.in: changed string comparison operator
1007           to = for POSIX compliance; == is bash extension
1008
1009 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1010
1011         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
1012           kosmonaut_pirx
1013
1014 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
1015
1016         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
1017         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
1018         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
1019         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
1020         bug report #1478657,
1021
1022 2006-05-05 Borut Razem <borut.razem AT siol.net>
1023
1024         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
1025           making the html
1026
1027 2006-05-02 Borut Razem <borut.razem AT siol.net>
1028
1029         * doc/Makefile.in: removed *.ind dependency since there is no rule to
1030           create *.ind, which made make to fail if invoked with -j 2
1031
1032 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
1033
1034         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
1035           Hubert Sack for patch 1479782
1036
1037 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
1038
1039         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
1040
1041 2006-05-01 Raphael Neider <rneider AT web.de>
1042
1043         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
1044           (create_pic): store only prefix-free device name,
1045           (init_pic): check for device names with "16" prefix,
1046           (list_valid_pics),
1047         * src/pic/device.h (struct PIC_device),
1048         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
1049             stored device name,
1050         * device/include/pic/pic12f{635,675,629,683}.h,
1051         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
1052         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
1053         * device/include/pic/pic16f505.h,
1054         * device/lib/pic/libdev/pic16f505.c: removed
1055         * device/include/pic/pic14devices.txt: added support for pic12f
1056             devices, removed unsupported non 16-bit devices
1057             [above changes provided by patch from Zik Saleeba]
1058         * src/pic/*, src/pic16/*, device/include/pic16/*,
1059           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
1060
1061 2006-05-01 Borut Razem <borut.razem AT siol.net>
1062
1063         * configure.in, configure, doc/Makefile.in:
1064           sync with nightly build makefile - latex, dvipdf and dvips
1065           not needed any more
1066
1067 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
1068
1069         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
1070         in the library source
1071
1072 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
1073
1074         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
1075
1076 2006-04-28 Raphael Neider <rneider AT web.de>
1077
1078         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
1079         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
1080           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
1081         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
1082
1083 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
1084
1085         * device/lib/pic/libdev/Makefile.in,
1086         * device/lib/hc08/Makefile.in,
1087         * device/lib/gbz80/Makefile.in,
1088         * device/lib/z80/Makefile.in,
1089         * device/lib/ds390/Makefile.in,
1090         * device/lib/ds400/Makefile.in: added srcdir to include search path,
1091         thanks to Borut for the bug report
1092         * configure.in,
1093         * configure: always create doc/Makefile independent from --enable-doc
1094         * Makefile.in: always install from directory doc independent from
1095         --enable-doc
1096         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
1097         removed
1098         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
1099         * doc/Makefile.in: install *.txt if present
1100         * device/include/Makefile.in (install): added installation of pic/*.inc
1101         and pic/*.txt files again, they were erroneously removed
1102
1103 2006-04-28 Raphael Neider <rneider AT web.de>
1104
1105         * src/pic/{gen.c,main.h,pcode.c},
1106         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
1107             concerning signedness with casts
1108
1109 2006-04-28 Raphael Neider <rneider AT web.de>
1110
1111         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
1112             definition of an interrupt handler,
1113         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
1114             interrupt handler stuff from picglue() to separate routine,
1115           (picglue): enabled definition of intr handlers in files w/o main()
1116
1117 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1118
1119         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
1120           compilation with MSVC 2005 Express Edition (VC8)
1121
1122 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
1123
1124         * device/lib/Makefile: fixed build of gbz80 lib
1125
1126 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1127
1128         * support/regression/tests/bug-460010.c,
1129         * support/regression/tests/bug-524691.c,
1130         * support/regression/tests/bug-716242.c: removed conditional defines
1131           that are already in testfwk.h
1132
1133 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1134
1135         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
1136           (AccAXRsh1): added, shift right by 1,
1137           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
1138            AccAXLrl1
1139         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
1140
1141 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
1142
1143         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
1144         remove cast to same type
1145         * src/SDCCast.c (decorateType): fix for RFE 1475742,
1146         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
1147         * as/z80/Makefile,
1148         * link/z80/Makefile: removed, they have moved to
1149         Makefile.in files
1150         * configure,
1151         * configure.in: replaced duplicate message about ucsim by missing sdcpp
1152         * install-sh: fix bug #1204398 by setting umask 0022
1153         * device/lib/Makefile: separate build of z80 and gbz80 lib
1154
1155 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
1156
1157         Enabled VPATH feature: changed nearly all Makefiles (149 files).
1158         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
1159
1160         One basic decision: e.g. src/clean.mk includes further files. In order
1161         to make this work there are two solutions:
1162         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
1163           run configure on them. This way they can use
1164           'include $(srcdir)/port-clean.mk'
1165         - always include clean.mk by the Makefile at the same level. To avoid
1166           that `make clean` tries to include and build Makefile.dep the
1167           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
1168           implemented, because now even `make uninstall` doesn't create
1169           Makefile.in. clean.mk could be eliminated by pasting it in
1170           Makefile.in.
1171
1172         * debugger/mcs51/Makefile.in: build own objects from library sources
1173         (SLIB, SDCC) in current directory
1174
1175         * configure, configure.in: renamed --disable-device-lib-build in
1176         --disable-device-lib; added --enable-doc, the required tools are
1177         searched by configure; added result message; the toolchain for the
1178         belonging ports are now only built, if the port is enabled.
1179
1180         * support/regression/*: all output is written in directory gen, because
1181         the fwk and ports directories don't livet in the build tree using vpath
1182
1183         * doc/sdccman.lyx: renamed --disable-device-lib-build to
1184         --disable-device-lib, added --enable-doc, added section VPATH
1185
1186         * sim/ucsim/configure.in,
1187         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
1188         z80 are enabled by default
1189
1190 2006-04-24 Raphael Neider <rneider AT web.de>
1191
1192         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
1193             to config word, "pic14_"-prefixed some extern functions
1194           (pic14_emitConfigWord): emit __config directive(s) if assignment to
1195             config word has been found
1196         * src/pic/device.h: added prototypes
1197         * src/pic/pcode.c: added "pic14_"-prefix where needed
1198         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
1199             fixup
1200         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
1201             words,
1202           (pic14emitRegularMap): ignore config words,
1203           (pic14createInterruptVect): moved generating __config directives away
1204           (picglue): have __config directives emitted
1205
1206 2006-04-24 Borut Razem <borut.razem AT siol.net>
1207
1208         * doc/Makefile: sync with nightly build makefile
1209
1210 2006-04-24 Raphael Neider <rneider AT web.de>
1211
1212         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
1213             registers that have not been assigned proper liveranges,
1214             fixes #1469504 and #1474602,
1215           (pCodeRegOptimizeRegUsage): fixed typo in comment
1216
1217 2006-04-24 Borut Razem <borut.razem AT siol.net>
1218
1219         * device/examples/main8051.c: deleted - it was removed from CVS
1220           24.mar.2000 and after that modified 18.feb.2001, so it reappered
1221           after the transition to Subversion
1222         * src/SDCCalloc.h: deleted - it was removed  from CVS
1223           3.feb.2001 and after that modified 18.feb.2001, so it reappered
1224           after the transition to Subversion
1225         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
1226           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
1227           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
1228           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
1229
1230 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
1231
1232         * as/asx8051.dsp: added mcs51/strcmpi.h
1233         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
1234         * as/hc08/aslink.h: updated lnksect prototype
1235         * as/hc08/asm.h,
1236         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
1237         * as/hc08/asmain.c,
1238         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
1239           (newdot): handle A_ABS
1240         * as/hc08/asout.c,
1241         * as/mcs51/asout.c (outarea): output address
1242         * as/hc08/lkaomf51.c,
1243         * as/mcs51/lkaomf51.c: disabled unused array UsageType
1244         * as/hc08/m08pst.c,
1245         * as/mcs51/i51pst.c,
1246         * as/z80/z80pst.c: "ABS" is not A_OVR
1247         * as/hc08/lkarea.c (newarea): read a_addr,
1248           (lnkarea): added codemap array, sort absolute areas to the front,
1249            combine all GSINITx/GSFINAL,
1250           (find_empty_space, allocate_space): new functions,
1251           (lnksect): return next address, handle absolute sections
1252         * as/mcs51/lkarea.c (newarea): read a_addr,
1253           lnksect2 prototype changed,
1254           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
1255           (find_empty_space, allocate_space): new, factored out of lnksect2,
1256           (lnksect2): return next address, handle absolute sections
1257         * as/hc08/lkhead.c,
1258         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
1259         * as/hc08/lklibr.c (addfile, fndsym),
1260         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
1261           index out of range and detect both '\' and '/'
1262         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
1263         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
1264           regression tests (ds390 cannot return bool yet)
1265         * doc/sdccman.lyx: changed version number, document changed --no-peep,
1266           document critical interrupts on z80, document changed SDCC define
1267         * src/asm.c (_asxxxx_mapping): fixed .org directive,
1268           (_a390_mapping): added .org directive
1269         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
1270           (genMultOneByte): fixed warnings
1271         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
1272           ones
1273         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
1274         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
1275           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
1276         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
1277         * src/pic16/main.c: removed newReg prototype
1278         * src/pic16/pcode.c,
1279         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
1280           warnings
1281         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
1282           ones
1283         * src/pic16/ralloc.c
1284         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
1285           to fix warnings
1286         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
1287           from short to PIC_OPTYPE
1288         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
1289         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
1290           optype from short to PIC_OPTYPE
1291         * src/port.h: made int_size unsigned to fix warnings
1292         * src/SDCC.y: fixed warning on MSVC
1293         * src/SDCCicode.c (getArraySizePtr): return unsigned int
1294         * src/SDCCopt.c (convertToFcall): fixed warnings
1295         * src/SDCCsymt.h: removed double prototype for genSymName
1296         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
1297           offset int to fix warnings
1298
1299 2006-04-22 Borut Razem <borut.razem AT siol.net>
1300
1301         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1302           references to CVS replaced with Subversion
1303
1304 2006-04-21 Borut Razem <borut.razem AT siol.net>
1305
1306         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1307           references to CVS replaced with Subversion
1308
1309 2006-04-19 Borut Razem <borut.razem AT siol.net>
1310
1311         * src/version.awk: adapted for svn
1312         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
1313           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
1314           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
1315           /binutils-avr/etc/*.vi, *.jin: removed all properties
1316           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
1317
1318 2006-04-19 Borut Razem <borut.razem AT siol.net>
1319
1320         * CVS to Subversion migration completed
1321
1322 2006-04-18 Borut Razem <borut.razem AT siol.net>
1323
1324         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
1325           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
1326
1327 2006-04-17 Borut Razem <borut.razem AT siol.net>
1328
1329         * device/include/Makefile.in: added pic/*.inc to the installation
1330
1331 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
1332
1333         * support/regression/collate-results.py: fixed output in case of
1334         a valdiag error
1335         * support/regression/generate-cases.py: fixed splitting of pathnames
1336         with dots
1337         * as/hc08/lklibr.c (addfile),
1338         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
1339
1340 2006-04-11 Raphael Neider <rneider AT web.de>
1341
1342         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
1343         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
1344         * src/pic16/pcode.c (assignValnums): fixed #1460578
1345
1346 2006-04-11 Raphael Neider <rneider AT web.de>
1347
1348         * device/lib/pic/libdev/*.c,
1349         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
1350           fixes #1468739, enables compilation in --std-c99 mode
1351         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
1352
1353 2006-04-11 Raphael Neider <rneider AT web.de>
1354
1355         * src/pic/device.c (find_device): removed debug output
1356           (list_valid_pics): enabled verbose listing of supported devices
1357         * device/include/stdbool.h: define bool as char for pic14/16 as well
1358
1359 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1360
1361         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
1362
1363 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1364
1365         * .version: bumped version to 2.5.6
1366         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
1367
1368 2006-04-06 Raphael Neider <rneider AT web.de>
1369
1370         * .version: bumped version to 2.5.6 (pic14 ABI changed)
1371         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
1372         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
1373           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
1374             pic14_constructAbsMap
1375           (pic14printPublics): declare absolute global symbols as global
1376           (pic14createInterruptVect),
1377         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
1378           (newReg): assume new registers unused, use correct name in
1379             hashtable (reg->name instead of name), more debugLog output
1380         * src/pic/device.h (PIC_device): added fields for verbose output
1381         * src/pic/device.c: moved device definition to pic14devices.txt,
1382             added routines for runtime parsing of pic14devices.txt,
1383             added support for second config word
1384         * src/pic/main.c (_process_pragma): removed #pragma maxram,
1385           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
1386           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
1387           (_pic14_parseOptions): moved pCodeInitRegisters here
1388           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
1389         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
1390           (pCodeInitRegisters): rewrapped comments, perpared new approach to
1391             handling the pseudo stack
1392         * device/lib/Makefile.in: ignore failures in objects-pic16,
1393         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
1394         * device/lib/pic/NEWS: document new dependency on picXXX.lib
1395         * device/lib/pic/Makefile.subdir,
1396         * device/lib/pic16/Makefile.subdir: improved clean rules
1397         * device/lib/pic/libdev/: NEW, pic14 device libraries
1398         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
1399         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
1400         * device/include/Makefile.in: create subdir and install pic14 headers
1401         * device/include/pic/p16f_common.inc: removed unused declarations
1402         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
1403             PICs from inc2h.pl v1.6,
1404             replaced BIT_AT macros with struct declarations
1405         * device/include/pic/pic14devices.txt: definition of supported devices,
1406             all above improvements contributed by Zik Saleeba, thanks
1407         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
1408         * support/scripts/sdcc.nsi: also install pic14 device libraries and
1409             headers
1410
1411 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1412
1413         * device/include/mcs51/c8051f410.h: added interrupt numbers,
1414         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
1415           thanks to Charles Olds
1416
1417 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1418
1419         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
1420
1421 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1422
1423         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
1424         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
1425         * support/regression/bug1464657.c: added, new test
1426
1427 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1428
1429         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
1430           version number
1431
1432 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1433
1434         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
1435           --no-peep and --peep-file <file> are used don't use default rules but
1436           do use the <file>
1437
1438 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1439
1440         * src/mcs51/gen.c (genCall): fixed bug 1457608
1441
1442 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1443
1444         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
1445         changes seem to cause (trigger?) problems with the build system.
1446
1447 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
1448
1449         * src/SDCCpeeph.c (operandsLiteral): new, added,
1450           (callFuncByName): inserted operandsLiteral
1451         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
1452
1453 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1454
1455         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
1456         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
1457
1458 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1459
1460         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
1461           implemented patch 1120823 Thanks to Willy De la Court (normal
1462           interrupts need an interrupt number now if they are made critical),
1463           and enabled nesting of critical functions though not for gbz80
1464           (genCritical, genEndCritical): added functions
1465           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
1466         * src/z80/mappings.i: added "ei" to all mappings
1467
1468 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1469
1470         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
1471         submitted by the Debian SDCC maintainer Aurelien Jarno:
1472         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
1473         archive with gcc 4.1 on mips and wrote the patch"
1474
1475 2006-03-16 Raphael Neider <rneider AT web.de>
1476
1477         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
1478           the left operand is shorter than the result (c* = lit-c* + int),
1479           fixes bug #1450796
1480         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
1481           OP_SYMBOL
1482
1483 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1484
1485         * src/.version: increased version number to 2.5.5
1486         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
1487         linking is done manually in pic16 port's _linkEdit,
1488         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
1489         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
1490         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
1491         allocate asmop as AOP_ACC,
1492         (aopForRemat): added parameter 'bool result' in function declaration,
1493         (pic16_aopGet): return AOP_ACC when accessing WREG,
1494         (pic16_popGetTempReg): minor modification,
1495         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
1496         'pic16_allocWithIdx',
1497         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
1498         calling function in absolute addresses,
1499         (genAssign): take into account AOP_ACC asmop,
1500         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
1501         * src/pic16/pcoderegs.c: some debug functions and lines added,
1502         * src/pic16/ralloc.c (decodeRegType): added but commented out,
1503         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
1504         register too,
1505         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
1506         call to allocReg, not by manually allocating a new one,
1507         (pic16_assignRegisters): now before going through the register
1508         allocating functions mark all registers as free. This eliminates some
1509         side effects resulting from peephole parser done earlier in the backbone
1510
1511 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
1512
1513         * src/SDCCicode.c (geniCodeLogic),
1514         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
1515
1516 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
1517
1518         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
1519           (genSend): bugfix, do not allocate and free twice,
1520           (shiftRLong): handle partially overlapping aops
1521         * support/regression/tests/bitopcse.c: fixed warning redefined idata
1522
1523 2006-03-08 Borut Razem <borut.razem AT siol.net>
1524
1525         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
1526           for pic16
1527
1528 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
1529
1530         * support/regression/tests/bug1409955.c: new, added
1531         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
1532         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
1533           (aopForSym, aopOp): increment asmop.allocated if reused,
1534           (freeAsmop): decrement asmop.allocated and check for zero instead of
1535           using asmop.freed,
1536           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
1537           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
1538            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
1539            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
1540            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
1541            genSignedRightShift, genRightShift, genDataPointerGet,
1542            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
1543            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
1544             in reverse order from allocation,
1545           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
1546             added swappedLR to keep track
1547         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
1548           pdata & code for GCC, z80, gbz80 & hc08
1549         * support/regression/tests/zeropad.c: moved defines to testfwk.h
1550
1551 2006-03-08 Raphael Neider <rneider AT web.de>
1552
1553         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
1554
1555 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
1556
1557         * device/include/mcs51/c8051f410.h: new SiLabs mcu
1558         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
1559         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
1560
1561 2006-03-06 Borut Razem <borut.razem AT siol.net>
1562
1563         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
1564           made the linker quiet
1565
1566 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
1567
1568         * src/pic16/gen.c (genPcall): fixed bug #1443644
1569         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
1570         which dumps before the function entry point a data byte which represents
1571         the number of the local variables used by the specified function, added
1572         'xinst' for initial support for Extended Instruction Support,
1573         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
1574         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
1575         port->fun_prefix anymore (may change later),
1576         (genFunction, genEndFunction): do not store/restore local registers for
1577         _main (this should take care the --main-return command line option in
1578         the future),
1579         (genOr): removed some legacy pic-port instructions,
1580         * src/pic16/genarith.c (genAddLit): re-enabled old code because
1581         performing operations with SFR's causes data to be written more than
1582         once to each SFR. Perhaps SFRs should be handled in special cases...
1583         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
1584         pcode.h
1585         * src/pic16/main.c (_process_pragma): stack bound checking did not take
1586         into account for stack starting position,
1587         (struct OPTIONS pic16_optionsTable): added command line argument
1588         --extended or -y for Extended Instruction Support,
1589         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
1590         (deassignLRs): *** perhaps the most important change, old 'for' code
1591         (commented out for reference), didn't account for some registers which
1592         were left marked 'not free' after a pointer operation. The change
1593         reduces register usage a lot in some cases
1594
1595 2006-03-04 Borut Razem <borut.razem AT siol.net>
1596
1597         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
1598           _clean
1599         * support/regression/tests/bug-524697.c: decreased array size for
1600           mcs51 to fit into the internal RAM
1601         * support/regression/Makefile.in: a little bit more verbose
1602
1603 2006-03-03 Borut Razem <borut.razem AT siol.net>
1604
1605         * support/regression/fwk/lib/testfwk.c,
1606           support/regression/fwk/include/testfwk.h: introduced function
1607           _prints(), nonrecursive _printn(), call _initEmu() from main()
1608         * support/regression/ports/gbz80/support.asm,
1609           support/regression/ports/ucz80/support.asm,
1610           support/regression/ports/z80/support.asm,
1611           support/regression/ports/ds390/support.c,
1612           support/regression/ports/hc08/support.c,
1613           support/regression/ports/host/support.c,
1614           support/regression/ports/mcs51/support.c,
1615           support/regression/ports/xa51/support.c: added empty _initEmu()
1616           function
1617         * support/regression/ports/pic16/gpsim.cmd,
1618           support/regression/ports/pic16/spec.mk,
1619           support/regression/ports/pic16/support.c,
1620           support/regression/Makefile.in: added pic16 regression test
1621
1622 2006-03-01 Raphael Neider <rneider AT web.de>
1623
1624         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
1625           genConstPointerGet): use safe way of generating MOVFF to cover
1626             literals as well as registers, fixes bug #1440527
1627         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
1628             dereference
1629           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
1630             more correctly, fixes bug #1232186
1631           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
1632         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
1633             gplink guess the correct processor in more cases, applied patch
1634             from Till Riedel attached to and fixing bug #1436552
1635
1636 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1637
1638         * support/regression/tests/array.c: added, contains check for #1434401
1639         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
1640
1641 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
1642
1643         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
1644         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
1645         * device/include/mcs51/c8051f326.h,
1646         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
1647         * device/include/mcs51/c8051f000.h,
1648         * device/include/mcs51/c8051f018.h,
1649         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
1650           PCON_IDLE,PCON_STOP and added sfr16 definitions
1651
1652 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1653
1654         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
1655           genGetWord): fixed bug 1409955
1656
1657 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1658
1659         * device/include/hc08/mc68hc908gp32.h,
1660         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
1661
1662 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
1663
1664         * src/SDCCast.c (constExprValue): return NULL if not a value
1665         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
1666         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
1667         * support/regression/tests/bitfields.c: enabled signed bitfield for all
1668
1669 2006-02-13 Borut Razem <borut.razem AT siol.net>
1670
1671         * src/regression/ptrarg.c: added, fails due to bug #1430967
1672         * src/regression/Makefile: ptrarg.c added, ...
1673
1674 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1675
1676         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
1677         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
1678
1679 2006-02-11 Borut Razem <borut.razem AT siol.net>
1680
1681         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
1682           print "Processor: xxx" message to stdout only if --verbose
1683
1684 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1685
1686         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
1687         * support/regression/tests/bug1426356.c: added
1688         * support/regression/tests/bitfields.c: removed 2 tests
1689
1690 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
1691
1692         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
1693         * device/include/mcs51/c8051f330.h,
1694         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
1695           PCON_IDLE,PCON_STOP and added sfr16 definitions
1696         * device/lib/_divsint.c,
1697         * device/lib/_divuint.c,
1698         * device/lib/_divulong.c,
1699         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
1700           register bank bug for small stackauto
1701
1702 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
1703
1704         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
1705
1706 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
1707
1708         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
1709         * all.dsp: corrected several bin paths
1710         * device/include/mcs51/c8051f120.h,
1711         * device/include/mcs51/c8051f300.h,
1712         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
1713           to PCON_IDLE,PCON_STOP
1714         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
1715         * device/lib/printf_large.c (output_float): fixed bug 1388703
1716         * support/regression/tests/bug1057979.c: added test for bug 1388703
1717
1718 2006-02-08 Raphael Neider <rneider AT web.de>
1719
1720         * src/pic/pcode.c (pciTRIS): fixed typo,
1721           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
1722           (LinkFlow): fixed handling of flows that end in a call,
1723           (ReuseReg): perform safety check earlier
1724         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
1725             to work with flows at the beginning of a pBlock,
1726             fixes #1426557 (Symbol not previously defined),
1727           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
1728             usage information
1729           (RemoveUnusedRegisters): update register usage info
1730         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
1731             created, reuse existing ones instead
1732         * src/pic/gen.c (genPcall): fixed #1424719
1733
1734 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
1735
1736         * link/z80/lkmain.c,
1737         * link/z80/lklex.c,
1738         * link/z80/lkdata.c,
1739         * link/z80/aslink.h: fixed build on current cygwin:
1740         replaced getline() by lk_getline()
1741
1742 2006-02-01 Borut Razem <borut.razem AT siol.net>
1743
1744         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
1745           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
1746           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
1747           src/regression/bool1.c, src/regression/bool2.c,
1748           src/regression/bool3.c, src/regression/call1.c,
1749           src/regression/compare.c, src/regression/compare10.c,
1750           src/regression/compare2.c, src/regression/compare3.c,
1751           src/regression/compare4.c, src/regression/compare5.c,
1752           src/regression/compare6.c, src/regression/compare7.c,
1753           src/regression/compare8.c, src/regression/compare9.c,
1754           src/regression/configword.c, src/regression/for.c,
1755           src/regression/inline.c, src/regression/mult1.c,
1756           src/regression/nestfor.c, src/regression/or1.c,
1757           src/regression/pointer1.c, src/regression/ptrfunc.c,
1758           src/regression/rotate1.c, src/regression/rotate2.c,
1759           src/regression/rotate3.c, src/regression/rotate4.c,
1760           src/regression/rotate5.c, src/regression/rotate6.c,
1761           src/regression/rotate7.c, src/regression/string1.c,
1762           src/regression/struct1.c, src/regression/sub.c,
1763           src/regression/sub2.c, src/regression/switch1.c,
1764           src/regression/while.c, src/regression/xor.c,
1765           src/regression/create_stc, src/regression/simulate,
1766           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
1767           regression tests
1768         * src/regression/gpsim_assert.h: added
1769
1770 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
1771
1772         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
1773         ((void (code *) (void)) 0) ();
1774         * as/hc08/aslex.c,
1775         * as/hc08/aslink.h,
1776         * as/hc08/asm.h,
1777         * as/hc08/asmain.c,
1778         * as/hc08/lkdata.c,
1779         * as/hc08/lklex.c,
1780         * as/hc08/lkmain.c,
1781         * as/mcs51/aslex.c,
1782         * as/mcs51/aslink.h,
1783         * as/mcs51/asm.h,
1784         * as/mcs51/asmain.c,
1785         * as/mcs51/lkdata.c,
1786         * as/mcs51/lklex.c,
1787         * as/mcs51/lkmain.c,
1788         * as/z80/aslex.c,
1789         * as/z80/asm.h,
1790         * as/z80/asmain.c: fixed build on current cygwin:
1791         replaced getline() by as_getline()
1792
1793 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
1794
1795         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
1796         declarator in the symbol chain
1797         * src/SDCCsymt.h,
1798         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
1799         parameter list for function pointers
1800         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
1801         * support/regression/tests/bug-716242.c: added
1802
1803 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
1804
1805         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
1806         offset if possible
1807         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
1808
1809 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
1810
1811         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
1812         inifinitely recurseable, added static
1813         * support/regression/tests/bug-1408066.c: added
1814
1815 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
1816
1817         * src/SDCCicode.h,
1818         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
1819         renamed, added possibility to create "postLoopLbl"-labels
1820         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
1821         newiTempLoopHeaderLabel
1822         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
1823         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
1824         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
1825         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
1826         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
1827         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
1828         (basicInduction): fixed bug #136564, made static,
1829         (loopInduction): changed parameter of basicInduction, made static,
1830         (addPostLoopBlock): added
1831         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
1832         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
1833         findLoopEndSeq
1834         * support/regression/tests/bug-136564.c: added
1835         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
1836         --std-sdcc99 to LIBSDCCFLAGS
1837
1838 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
1839
1840         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
1841         while loop
1842         * support/regression/tests/bug-1406131.c: added
1843
1844 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
1845
1846         * src/SDCCast.c (decorateType): fix promotion of unary minus
1847         * src/SDCCsymt.c (computeType): beautified
1848         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
1849         (valUnaryPM, valComplement): fix sign and promotion,
1850         (valNot): ANSI: result type is int (SDCC: unsigned char)
1851         * support/regression/tests/uminus.c: speedup by removing superflous
1852         test case 'int'
1853         * support/regression/tests/onebyte.c: added promotion and signedness
1854         tests for unary minus
1855         * support/regressions/tests/bug-477927.c: disable warning about
1856         uninitialized variables
1857         * support/regression/tests/not.c: added
1858
1859 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
1860
1861         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
1862         * src/mcs51/gen.c (gen51Code): show final register usage after
1863         fillGaps in asm with --i-code-in-asm
1864         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
1865         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
1866         incUsed, rliveClear, adjustIChain): made static,
1867         (setFromRange): excluded because it's unused,
1868         (findPrevUseSym, markWholeLoop): added,
1869         (findPrevUse): rewritten; fixes bug 895992; now a complete search
1870         through all branches of predecessors enables sdcc to emit the warning
1871         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
1872         (rlivePoint): made static, added parameter emitWarnings which is only
1873         true during the first run out of two,
1874         (findRecursiveSucc, findRecursivePred): removed,
1875         (computeLiveRanges): made static, added parameter emitWarnings,
1876         (dumpIcRlive): added for debugging only
1877         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
1878         removed prototype of setFromRange()
1879         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
1880         in call of computeLiveRanges()
1881         * support/regression/tests/bug-895992.c: added
1882         * support/regression/tests/bug-971834.c: added
1883         * support/valdiag/tests/bug-895992.c: added
1884         * support/valdiag/tests/bug-971834.c: added
1885
1886 2005-12-18 Raphael Neider <rneider AT web.de>
1887
1888         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
1889           (genUnpackBits): improved code for direct operands,
1890           (genPackBits): improved code for literal assignment to bitfields
1891             and for direct destination operands (no FSR indirection),
1892             prevented redundant AND, fixes #1362800,
1893           (AccLsh): added parameter to disable masking of the result
1894         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
1895           skip instructions with side-effects (like incfsz),
1896           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
1897         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
1898         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
1899           fixes #1375263
1900
1901 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
1902
1903         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
1904         volatile variables as spill location
1905
1906 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
1907
1908         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
1909         replacing literals
1910         * support/regression/tests/bug-1376320.c: added
1911
1912 2005-12-08 Raphael Neider <rneider AT web.de>
1913
1914         * src/pic/device.c: renamed is_shared to pic14_is_shared
1915         * src/pic/gen.c (genIfx): re-enabled handling of sbits
1916         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
1917           (is_valid_identifier): added for above workaround
1918
1919 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
1920
1921         * device/lib/Makefile.in: fixed to enable port-specific-objects
1922         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
1923           char, thanks Hubert Sack
1924         * doc/sdccman.lyx: documented --xstack-loc,
1925           elaborated a bit more on interrupts and pitfalls,
1926           removed "setjmp/longjmp unsupported",
1927           documented some unsupported C99 features
1928         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
1929         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
1930           if, thanks Hubert Sack
1931         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
1932         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
1933           make make_library
1934         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
1935           regression tests can report resource usage (rfe 700441)
1936         * support/regression/collate-results.py: report resource usage
1937         * support/regression/ports/ds390/spec.mk,
1938         * support/regression/ports/hc08/spec.mk,
1939         * support/regression/ports/mcs51/spec.mk,
1940         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
1941         * support/regression/ports/ds390/uCsim.cmd,
1942         * support/regression/ports/hc08/uCsim.cmd,
1943         * support/regression/ports/mcs51/uCsim.cmd,
1944         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
1945         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
1946           library, use the default one
1947         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
1948           building the library
1949
1950 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1951
1952         * config.dsp: added dependency on .version and configure_vc.awk
1953         * device/include/setjmp.h: updated for --stack-auto and --xstack
1954         * device/include/mcs51/at89c51snd1c.h: corrected line endings
1955         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
1956         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
1957         * device/lib/libsdcc.lib: added _setjmp
1958         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
1959           (decorateType): fixed bug 1372851,
1960           (optimizeGetHbit): fixed warning
1961         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
1962           array initialisation
1963         * support/regression/tests/bug1057979.c: added test for bug 1358192
1964         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
1965
1966 2005-12-03 Borut Razem <borut.razem AT siol.net>
1967
1968         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
1969           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
1970
1971 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
1972
1973         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
1974         createIval): implement symbol independant "flexible array member",
1975         (createIvalCharPtr): implemented flexible array initialisation with a
1976         string
1977         * src/SDCCsymt.c (copyStruct): removed,
1978         (getSize): fixed misleading comment,
1979         (getAllocSize): removed, the additional allocation size is now in
1980         sym->flexArrayLength,
1981         (checkStructFlexArray): new, syntax checks for flexible array members,
1982         (compStructSize): added syntax checks for "flexible array members"
1983         (copyStruct): removed,
1984         (copyLinkChain): removed inefficient fix for bug 770487
1985         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
1986         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
1987         symbol->flexArrayLength
1988         * src/SDCCerr.c,
1989         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
1990         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
1991         * support/regression/tests/structflexarray.c: added
1992         * support/valdiag/tests/structflexiblearray.c: added
1993
1994 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
1995
1996         * src/SDCCast.c (decorateType): fixed bug 1368489
1997         * support/Util/SDCCerr.c,
1998         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
1999
2000 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2001
2002         * device/include/mcs51/at89c51snd1c.h: added file submitted by
2003           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
2004
2005 2005-11-27 Borut Razem <borut.razem AT siol.net>
2006
2007         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
2008           support/cpp2/mkdeps.h: added command line option
2009           -obj-ext=<extension> to SDCPP to define object file externion, used
2010           for generation of make dependencies (-M)
2011         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
2012
2013 2005-11-26 Borut Razem <borut.razem AT siol.net>
2014
2015         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
2016           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
2017           added pic and pic16 libraries
2018
2019 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2020
2021         * device/include/float.h: Corrected typo in prototype of __fsgt
2022
2023 2005-11-25 Borut Razem <borut.razem AT siol.net>
2024
2025         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
2026           added creation of model-mcs51-stack-auto libraries
2027
2028 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
2029
2030         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
2031         and fields-list too
2032         * src/SDCCast.c (createIvalArray): removed obsolete comment
2033
2034 2005-11-24 Borut Razem <borut.razem AT siol.net>
2035
2036         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
2037           added missing device/lib/mcs51/crt*.asm sources
2038
2039 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
2040
2041         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
2042
2043 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
2044
2045         * device/lib/_fs2schar.c,
2046         * device/lib/_fs2sint.c,
2047         * device/lib/_fs2slong.c: optimized inline asm
2048
2049 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2050
2051         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2052           Better handling of floats between -1.0 and 0.0.
2053
2054 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2055
2056         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
2057           (the missing "if"s prohibited removal of redundant labels)
2058
2059 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2060
2061         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2062           Properly convert floats between -1.0 and 0.0 to long, int, and char
2063           types (max integer value of negative floats tends to zero).
2064         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2065           Removed changes made so to work properly with floats between
2066           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
2067           and _fs2char.c
2068
2069 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2070
2071         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
2072         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
2073         (genCast) cosmetic change
2074         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
2075         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
2076         from mcs51
2077         * support/regression/tests/bitfields (testSignedBitfields): added
2078
2079 2005-11-18 Borut Razem <borut.razem AT siol.net>
2080
2081         * sdcc/device/lib/Makefile.in: remove all unnecessary files
2082         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
2083           introduced SILENT option to make building of pic16 libraries less
2084
2085 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2086
2087         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2088           Now they work properly with floats between -1.0 and 0.0
2089         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
2090
2091 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2092
2093         * src/SDCCicode.c (printOperand): added missing else
2094
2095 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2096
2097         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
2098         reformatted for better readability
2099         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
2100         signed bitfields
2101
2102 2005-11-17 Borut Razem <borut.razem AT siol.net>
2103
2104         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
2105           introduced SILENT option to make building of pic16 libraries less
2106           verbose - used for nightly snapshot build
2107         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
2108           available on Win32 platforms.
2109         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
2110           medium, large, pic and pic16
2111
2112 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2113
2114         * device/lib/printf_large.c: Temporary patch for bug 1358192:
2115           printf("%f"...) sets fraction to zero.
2116
2117 2005-11-16 Raphael Neider <rneider AT web.de>
2118
2119         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
2120           fixes #1357221
2121         * src/pic/gen.c (genIfx): implemented for CARRY bit
2122         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
2123           to generic pointers, fixes #1357332,
2124           (pic16_movLit2f): NEW,
2125           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
2126
2127 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2128
2129         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
2130
2131 2005-11-11 Raphael Neider <rneider AT web.de>
2132
2133         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
2134         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
2135           compute pointer's type from operand,
2136           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
2137           improved single bit reads, fixes bug #1353379
2138
2139 2005-11-09 Borut Razem <borut.razem AT siol.net>
2140
2141         * support/scripts/sdcc.nsi: added lib/pic to the package
2142
2143 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
2144
2145         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
2146
2147 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2148
2149         * support/regression/tests/bug1348008.c: added
2150         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
2151         * support/regression/tests/bug1337835.c: updated comment
2152
2153 2005-11-06 Borut Razem <borut.razem AT siol.net>
2154
2155         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2156           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2157           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2158           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2159           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
2160           dynamic construction of cl_error_class and derivates - 2.nd try
2161
2162 2005-11-05 Borut Razem <borut.razem AT siol.net>
2163
2164         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
2165           bug, which caused Bus Errors on sparc solaris
2166
2167 2005-11-04 Borut Razem <borut.razem AT siol.net>
2168
2169         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2170           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2171           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2172           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2173           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
2174           and derivates to resolve the initialization problem on OSX
2175
2176 2005-11-02 Borut Razem <borut.razem AT siol.net>
2177
2178         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2179           corrected typo - #include <winsock2.h>
2180
2181 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
2182
2183         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
2184           (_asxxxx_mapping): added org directive for future enhancements
2185
2186 2005-11-01 Borut Razem <borut.razem AT siol.net>
2187
2188         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2189           enabled sockets on WIN32
2190         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
2191
2192 2005-10-31 Borut Razem <borut.razem AT siol.net>
2193
2194         * support/regression/generate-cases.py: escape backslashes in {testcase}:
2195           WIN32 backslash path delimiters should be escaped when used in C strings
2196         * support/regression/tests/bitfields.c: exclude failing assertions for
2197           __CYGWIN32__ and __MINGW32__ hosts
2198
2199 2005-10-30 Borut Razem <borut.razem AT siol.net>
2200
2201         * src/SDCCutil.c: corrected double comparison typo
2202
2203 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
2204
2205         * device/lib/medium/Makefile: added for new memory model medium
2206         * device/include/asm/mcs51/features.h: updated for medium/pdata
2207         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
2208           added Multiply & Accumulate sbit's and MAC0_PAGE define
2209         * device/include/mcs51/c8051f300.h: added sfr16 definitions
2210         * device/include/mcs51/c8051f310.h: added sfr16 definitions
2211         * device/lib/_mullong.c: update for medium model
2212         * device/lib/incl.mk: added medium model
2213         * doc/sdccman.lyx: documented medium model
2214         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
2215         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
2216         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
2217         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
2218           (allocParms): set SCLS and OCLS to pdata for medium model
2219         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
2220           for pdata,
2221           (powof2): return <0 if not power of 2
2222         * src/avr/gen.c (genBitWise): use updated powof2
2223         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
2224           (shiftR2Left2Result): small optimization in setup, save acc when storing,
2225           (shiftLLeftOrResult): use B if necessary
2226         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
2227         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
2228         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
2229         * support/regression/Makefile.in: added test-mcs51-medium
2230         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
2231
2232 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
2233
2234         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
2235         specifier unsigned
2236         * device/lib/time.c (mktime): fixed bug 1334315
2237
2238 2005-10-28 Raphael Neider <rneider AT web.de>
2239
2240         * device/include/pic/p16f_common.inc: added common declarations
2241         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
2242
2243 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2244
2245         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
2246           (aopPutUsesAcc): added to predict accumulator use,
2247           (assignResultValue): save acc if necessary,
2248           (genMinusDec): store result if indirectly addressed,
2249           (genDivOneByte):  save acc if necessary,
2250           (movLeft2Result): bugfix if left already in acc,
2251           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
2252             attention to accumulator use (esp. pdata),
2253           (genReceive): receive pdata correctly
2254         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
2255         * src/SDCCicode.h: added isOperandInPagedSpace prototype
2256
2257 2005-10-27 Raphael Neider <rneider AT web.de>
2258
2259         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
2260
2261 2005-10-27 Raphael Neider <rneider AT web.de>
2262
2263         * .version: changed version to 2.5.4
2264         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
2265         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
2266           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
2267             arithmetics support routines
2268         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
2269         * device/lib/Makefile.in: also create installdir for pic
2270
2271         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
2272           pic14 port as well
2273         * src/pic/device.c (dump_sfr): rewritten to delegate register
2274           placement to the linker (use `extern sym' rather than sym EQU addr),
2275           (validAddress): fixed to check last specified address
2276         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
2277           (popGetLit): truncate literal value to 8 bit,
2278           (popGet): moved assert to more appropriate place
2279           (popGetExternal): create pCode operand from and mark the according
2280             symbol as being `extern'
2281           (popGetAddr): added sanity check on immediate's offset, provide
2282             GPOINTER tag on demand
2283           (aopPut): fixed for immediates,
2284           (mov2w_op): move operand's address or contents to WREG (depending on
2285             operand type), safer variant of mov2w,
2286           (movwf,call_libraryfunc): NEW, handy abbreviations,
2287           (get_argument_pcop,get_return_val_pcop,pass_argument,
2288           get_returnvalue): interface for accessing function parameters and
2289             return values,
2290           (assignResultValuei,genRet): use new parameter/return value interface
2291           (pic14_getDataSize): back to old version handling generic pointers,
2292           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
2293             provided implementation and/or fixed old one,
2294           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
2295             calls, removed legacy 8051 reference code
2296           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
2297           (loadSignToC): NEW, move the operands sign bit to CARRY,
2298           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
2299             genRightShiftSigned, accepts negative shift counts,
2300           (setup_fsr): load FSR and adjust IRP (indirect memory access),
2301           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
2302             generic pointers, __data pointers and __code pointers,
2303           (genUnpackBits,genPackBits): rewritten to work with generic pointers
2304             and signed bitfields, limit bitfields to 8 bit,
2305           (genDataPointerGet): fixed number of bytes read,
2306           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
2307           (genPointerGet,genPointerSet): fixed handling of __code pointers,
2308             pointers to constant data are no longer assumed to point to __code
2309             space, removed invalid pointer types,
2310           (bitpatternFromVal): retrieve the PICs representation of an integer
2311             or float literal,
2312           (genDataPointerSet): fixed assigning to po_immediate operands,
2313           (genGenPointerSet): implemented as library call,
2314           (genIfx): fixed incorrect condition,
2315           (genAddrOf): limit generic pointers' addresses to 2 bytes,
2316             provide GPOINTER tag according to destination's storage class,
2317           (genCast): added code to handle casting to generic pointers, added
2318             sign-/zero extension of the result
2319           (aop_isLitLike,op_isLitLike): fixed handling of immediates
2320         * src/pic/gen.h: added macros to access IRP bit in STATUS register
2321         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
2322           extend the result
2323         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
2324           address/register resides in the shared banks
2325           (emitSymbolToFile): improved to handle global and `pinned' symbols,
2326             put all variables into separate sections (have the linker arrange
2327             them)
2328           (picglue): put init code and interrupt handlers in separate sections
2329         * src/pic/main.c: added port specific options table, modified to PORT
2330           structure to make GPOINTERs 3 byte, added pic14_options
2331           (_pic14_do_link): private linking routine (update paths to libraries,
2332             add libsdcc.lib by default)
2333         * src/pic/main.h: declare pic14_options
2334         * src/pic/pcode.c: fixed instructions i/o relations,
2335           (RegCond): reverted to correct version,
2336           (newpCodeOpLit): truncate literals to 8 bit,
2337           (genericPrint): added debug output,
2338           (getRegFromInstruction): fixed for various operand types, simplified
2339           (BuildFlow): fixed broken handling of isntructions with labels
2340           (LinkFlow): start at last instruction in flow (skip trailing comments),
2341             pass the flow on to the next instruction after CALL
2342           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
2343           (insertPCodeInstruction): fixed inserting after a skip instruction,
2344           (DoBankSelect): fixed for labeled instructions
2345           (OptimizepBlock): honor --nopeep switch
2346           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
2347         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
2348         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
2349           (pCodeOptime2pCodes): allow disabling this optimization via
2350             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
2351             but is still buggy), started implementation of a dataflow based
2352             pCode optimization (CSE + dead code elimination)
2353           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
2354         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
2355           names are independant of the stack location and therefore portable across
2356           devices
2357
2358 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2359
2360         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
2361           (selectSpil): fixed bug 1337835 by not spilling bit variables
2362         * support/regression/tests/bug1337835.c: added test for this bug
2363         * src/mcs51/peeph.def: restart after rule 3.c,
2364           addded rules 263.x to optimize loading constants
2365
2366 2005-10-26 Raphael Neider <rneider AT web.de>
2367
2368         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
2369         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
2370           (genAssign): emit warning when casting literals to generic pointer
2371             type, also applies when taking the address of a fixed variable,
2372           (genCast): improved casting to generic pointers
2373         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
2374           extern variables, added verbose error message
2375         * device/include/pic16/{string.h,errno.h}: added #pragma library c
2376
2377 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
2378
2379         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
2380         carry must be complemented too
2381         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
2382         could be emitted by genMinus
2383         * src/SDCCval.c (constVal): fixed bug 1305065
2384
2385 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
2386
2387         * src/SDCCast.c (addCast): added promotion for bit variables
2388         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
2389         promotion casts + optimisation
2390         (optimizeGetWord): fix warning 'i' might be used uninitialized
2391         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
2392         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
2393
2394 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
2395
2396         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
2397         all chars are promoted to int; promotion should be handled in SDCCast.c
2398
2399 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2400
2401         * device/lib/_strcmp.c: Fixed bug 1326457
2402
2403 2005-10-11 Raphael Neider <rneider AT web.de>
2404
2405         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
2406         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
2407
2408 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
2409
2410         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
2411         * support/regression/tests/sfr16.c: added test for the sfr32 bug
2412
2413 2005-10-04 Raphael Neider <rneider AT web.de>
2414
2415         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
2416           device/lib/pic16/pics.all: added pic18f1320
2417         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
2418
2419 2005-09-30 Raphael Neider <rneider AT web.de>
2420
2421         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
2422         * src/pic16/devices.inc: NEW, provides device descriptions
2423         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
2424
2425 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2426
2427         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
2428           GETHBIT
2429
2430 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
2431
2432         * doc/sdccman.lyx: updated Highest Order Bit documentation,
2433           documented Any Order Bit, Higher Order Byte and Higher Order Word
2434         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
2435         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
2436           (optimizeGetAbit): new, to get any bit, not only the high bit,
2437           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
2438           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
2439           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
2440           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
2441             RIGHT_OP: also try GETBYTE, GETWORD optimization,
2442             GETABIT, GETBYTE, GETWORD: decorate them,
2443           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
2444           (ast_print): added GETABIT, GETBYTE, GETWORD
2445         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
2446         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
2447           (geniCodeBinary): new generic binary icode,
2448           (ast2iCode): added GETABIT, GETBYTE, GETWORD
2449         * src/port.h: updated comment for PORT.hasExtBitOp
2450         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
2451           (genGetByte): new, to get a single byte,
2452           (genGetWord): new, to get a word from a long,
2453           (gen51Code): added GETABIT, GETBYTE, GETWORD
2454         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
2455
2456 2005-09-23 Raphael Neider <rneider AT web.de>
2457
2458         * configure.in, configure: have device/lib/pic configured
2459         * device/lib/Makefile.in: added model-pic14
2460         * device/lib/clean.mk: added pic/ to clean rule
2461         * device/lib/pic: added rudimentary pic14 library providing support
2462           functions for multiplication/division/generic pointer access
2463         * src/SDCCopt.c (convilong): mark support functions as extern
2464           for pic14 port as well
2465         * src/pic/gen.c (genMult): added assertions,
2466           (genpic14Code): emit warning on unhandled iCodes
2467         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
2468         * src/pic/pcode.c (pCodeOpCopy),
2469         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
2470           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
2471           SFR_REGISTER}), made safe for future extensions
2472         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
2473           instructions even if preceeded by SKIP instructions (also remove
2474           them); removed unused code
2475         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
2476           prevents leaving parts of the structure uninitialized after copying
2477
2478 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
2479
2480         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
2481           ago by me
2482         * support/regression/tests/addsub.c: added test for the bug
2483
2484 2005-09-21 Raphael Neider <rneider AT web.de>
2485
2486         * device/include/pic16/pic18f1220.h,
2487           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
2488         * device/lib/pic16/Makefile.rules: added missing opening paren
2489         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
2490           are provided in genutils.c,
2491           (genUminusFloat,genUminus,genCmpEq): added asserts on different
2492           operand/result sizes,
2493           (genCmp): assert on NULL pointers first, then check deref'ed values
2494         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
2495           result size
2496
2497 2005-09-18 Raphael Neider <rneider AT web.de>
2498
2499         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
2500           as these are now unused,
2501           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
2502         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
2503           local, avoids uninitialized pointer dereference on r->name
2504         * src/pic16/ralloc.c (newReg): fixed indentation
2505
2506 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
2507
2508         * src/SDCCval.c (constVal): fixed bug 730366
2509         * support/Util/SDCCerr.c,
2510         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
2511
2512 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2513
2514         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
2515
2516 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
2517
2518         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
2519
2520 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
2521
2522         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
2523           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2524         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
2525           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2526         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
2527         * packihx/packihx.c (hexDigit): made c unsigned char
2528         * as/mcs51/lklibr.c (fndsym),
2529         * link/z80/lkgb.c (gb),
2530         * link/z80/lklibr.c (fndsym),
2531         * link/z80/lkrloc.c (relr),
2532         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
2533         * src/SDCC.lex (checkCurrFile, process_pragma),
2534         * src/SDCCglue.c (spacesToUnderscores),
2535         * src/SDCCmain.c (setParseWithComma, processFile),
2536         * src/asm.c (tvsprintf, printCLine),
2537         * src/avr/gen.c (emitcode, aopPut),
2538         * src/ds390/gen.c (emitcode),
2539         * src/hc08/gen.c (emitcode, emitinline),
2540         * src/mcs51/gen.c (emitcode, genInline),
2541         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2542           tokenizeLineNode),
2543         * src/pic/ralloc.c (debugLog),
2544         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2545           tokenizeLineNode),
2546         * src/pic16/ralloc.c (debugLog),
2547         * src/z80/main.c (_process_pragma):
2548            made all ctype.h function calls safe
2549         * src/SDCCopt.c: include math.h for fabs
2550         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
2551           and used them throughout the code to make ctype.h function calls safe
2552         * src/ds390/main.c (asmLineNodeFromLineNode),
2553         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
2554         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
2555            unsigned char*
2556         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
2557           (newpCodeAsmDir): made ctype.h function calls safe
2558         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
2559           pic16_emitcode):  made lbp unsigned char*
2560         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
2561           (pic16_newpCodeAsmDir): made ctype.h function calls safe
2562         * src/xa51/gen.c (emitcode),
2563         * src/z80/gen.c (_emit2): made lbp unsigned char*
2564         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
2565            char*
2566
2567 2005-09-05 Raphael Neider <rneider AT web.de>
2568
2569         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
2570           access bank splitpoint
2571
2572 2005-09-05 Raphael Neider <rneider AT web.de>
2573
2574         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
2575
2576 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
2577
2578         * .version: changed to version 2.5.3
2579         * doc/sdccman.lyx: changed version to 2.5.3,
2580           documented --codeseg and --constseg and pragma codeseg and constseg,
2581           documented bit parameters (reentrant) and bit returning
2582         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
2583            currFunc->recvSize, but is this ok for all ports?
2584           (ast2iCode): result of ~ on unsigned char must be cast to int for
2585            bool to work
2586         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
2587           function pointers in bit space
2588         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
2589           (processFuncArgs): call port.reg_parm() with reentrancy info
2590         * src/port.h,
2591         * src/avr/main.c,
2592         * src/ds390/main.c,
2593         * src/hc08/main.c,
2594         * src/pic/main.c,
2595         * src/pic16/main.c,
2596         * src/xa51/main.c,
2597         * src/z80/main.c: port.reg_parm prototype extended with
2598           "bool reentrant" parameter
2599         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
2600           options.stackAuto for allocating bit register parameters
2601         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
2602           (genSend): set BitBankUsed if it is,
2603           (selectRegBank): factored out of genCall for use in genPcall,
2604           (genCall): removed redundant dtype assignmen, use selectRegBank,
2605           (genPcall): handle returning in Carry properly, save in F0 if needed,
2606           (genReceive): handle bit register parameters
2607         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
2608           (mcs51_assignRegisters): enable bit registers for all reentrant
2609            functions and don't set BitBankUsed unconditionally
2610         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
2611         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
2612         * support/regression/tests/funptrs.c: added tests for BOOL and for return
2613
2614 2005-08-27 Borut Razem <borut.razem AT siol.net>
2615
2616         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
2617         ppc-osx (Darwin) does not support -u option. It seems that it is
2618         supported only on Linux - GNU cp
2619
2620 2005-08-25 Borut Razem <borut.razem AT siol.net>
2621
2622         * sim/ucsim/gui.src/serio.src/Makefile.in,
2623           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
2624           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2625           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
2626           install and strip, since the strip at /usr/ccs/bin should be used
2627           on solaris
2628
2629 2005-08-24 Borut Razem <borut.razem AT siol.net>
2630
2631         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
2632
2633 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
2634
2635         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
2636         ffffffffu
2637
2638 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
2639
2640         * as/mcs51/aslink.h: completed lkrloc.c prototypes
2641         * as/mcs51/lkmain.c (link_main): fixed warning
2642         * device/include/stdbool.h: ds390 has no advanced bit support yet
2643         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
2644         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
2645         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
2646           and updated their macros
2647         * src/SDCCval.c (constVal): updated comment for renamed b_long
2648
2649 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
2650
2651         * as/mcs51/asdata.c: changed ctype['['] to BINOP
2652         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
2653           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
2654           (oprio): set priority for '['
2655         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
2656            and adb_24_bit
2657         * as/mcs51/asm.h: added defines R_BIT and S_BIT
2658         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
2659         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
2660         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
2661           added overlayable BIT_BANK area
2662         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
2663           (summary2): explain 'T' in legenda
2664         * as/mcs51/lkrloc.c: replaced old K&R style,
2665           (relr): added R_BIT processing,
2666           (errmsg): added "Bit-addressable relocation error",
2667           (adb_bit): added for converting from byte- to bit-addressable space,
2668           (adb_24_bit): added for converting from byte- to bit-addressable space
2669         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
2670            used in reentrant functions now even as return value
2671         * device/lib/_gptrput.c (_gptrput): removed obsolete code
2672         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
2673           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
2674         * src/SDCCglobl.h: added indicator BitBankUsed
2675         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
2676            the bit registers b0-b7
2677         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
2678           (geniCodeCast): fixed bug 1263853,
2679           (geniCodeLogicAndOr): put result in bool or char,
2680           (geniCodeReceive): added parameter func for accessing the return type,
2681           (geniCodeFunctionBody): pass func to geniCodeReceive
2682         * src/SDCCmain.c: added indicator BitBankUsed
2683         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
2684         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
2685           (checkSClass): don't put automatic bool/bit on stack,
2686           (checkFunction): removed check on function cannot return bit
2687         * src/SDCCsymt.h: added newBoolLink prototype
2688         * src/mcs51/gen.c (rb1regs): added bit registers,
2689           (movc): created for assigning to carry,
2690           (pushReg, popReg): created for pushing registers,
2691           (sameRegs): check both AOP_REG and AOP_CRY types,
2692           (aopOp): handle bit registers,
2693           (aopPut): optimization no self-assign,
2694           (saveRegisters): push reg->base (bits) only once for bit registers,
2695            and use pushReg,
2696           (unsaveRegisters): pop reg->base only once and use popReg,
2697           (assignResultValue): added parameter func and return in carry for bits,
2698           (genIpush): optimization no reload in A if not changed,
2699           (genSend): bit parameters in reentrant functions are passed in bit
2700            registers by first assigning to bits in B, then save registers and
2701            copy B to bits,
2702           (genCall): handle returning in Carry properly, save it in F0 if needed,
2703           (genPcall): updated assignResultValue call, this is not safe yet for bit
2704            returning function !!!
2705           (genFunction): don't generate equ's for bit registers and use pushReg,
2706           (genEndFunction): take care of bit returning functions and use popReg,
2707           (genRet): return bit in Carry,
2708           (genIfx): optimize bit registers and other directly addressable bits,
2709           (genReceive): updated assignResultValue call
2710         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
2711           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
2712            registers when using stack-auto
2713         * src/mcs51/ralloc.c (_G): added allBitregs,
2714           (regs8051): added the bit registers,
2715           (createStackSpil): use macro IS_BIT,
2716           (getRegBit): added to allocate a bit register, else spill,
2717           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
2718           (updateRegUsage): factored out to ease stepping while debugging,
2719           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
2720            also allocate bit registers,
2721           (fillGaps): handle bit registers,
2722           (findAllBitregs): added to create bit vector with all bit registers,
2723           (mcs51_allBitregs): returns this bit vector,
2724           (mcs51_assignRegisters): when using stack-auto use bit registers for
2725            passing parameters and creating local variables
2726         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
2727
2728 2005-08-22 Borut Razem <borut.razem AT siol.net>
2729
2730         * device/lib/Makefile.in: replaced find option -or with -o
2731           to make it run on solaris
2732
2733 2005-08-22 Raphael Neider <rneider AT web.de>
2734
2735         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
2736           fixes #1265442 (crash on Solaris)
2737
2738 2005-08-20 Borut Razem <borut.razem AT siol.net>
2739
2740         * configure, configure.in: added tests for libsocket and libnsl libraries,
2741           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
2742           from support/regression/Makefile.in
2743         * support/regression/Makefile.in: added
2744         * device/lib/pic16/Makefile.common.in: force make to use bash shell
2745         * sim/ucsim/libtool: regenerated on sparc-solaris
2746         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2747           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
2748           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
2749           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
2750           sparc-solaris, which doesn't use GNU ld linker
2751         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
2752         * as/Makefile: find on sparc-solaris does not support -maxdepth option
2753
2754 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
2755
2756         * src/mcs51/peeph.def: updated comments
2757
2758 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2759
2760         * device/lib/_gptrget.c,
2761         * device/lib/_gptrput.c: slightly shorter
2762         * doc/sdccman.lyx: incremented version
2763         * src/mcs51/peeph.def: moved peephole comments to the line of first
2764           change to better keep line correlation, reanimated 186.e
2765         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
2766
2767 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
2768
2769         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
2770           David Saxton with quotes around file name.
2771
2772 2005-08-15 Borut Razem <borut.razem AT siol.net>
2773
2774         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
2775           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
2776           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
2777           make tests run on x86_64 platform
2778
2779 2005-08-13 Raphael Neider <rneider AT web.de>
2780
2781         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
2782           as it might be executed DURING a build (parallel make is wonderful)
2783
2784 2005-08-13 Raphael Neider <rneider AT web.de>
2785
2786         * device/lib/Makefile.in (port-specific-objects-pic16):
2787           revert to cp $(PORT)/bin/*.* $(PORTDIR)
2788         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
2789           dependency
2790         * device/lib/pic16/Makefile.rules: build subdirs before creating
2791           the library, removed builddir rule, create $(builddir) early in
2792           recurse rule, use empty recurse rule for leaf directories
2793         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
2794           mkdir errors (race condition), removed duplicate suffix "hex"
2795           from clean rules
2796         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
2797         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
2798           prevents mkdir -p from aborting on Alpha
2799
2800 2005-08-12 Raphael Neider <rneider AT web.de>
2801
2802         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
2803           db-statements in order to allow for arrays of pointers in code
2804           sections to be placed without interspersed 0-padding, fixes
2805           bug #1256215
2806         * (emitStatistics): fixed division by zero for pic18f1220
2807         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
2808           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
2809         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
2810         * (pic16_pCodeConstString): keep track of already emitted string
2811           literals to prevent "duplicate definitions of symbol _str_NR"
2812         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
2813           debug message
2814         * device/lib/Makefile.in: ignore failing PIC16 library builds
2815         * device/lib/pic16/Makefile: do not build if gputils are missing
2816         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
2817
2818 2005-08-10 Raphael Neider <rneider AT web.de>
2819
2820         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
2821           my last commit)
2822
2823 2005-08-10 Raphael Neider <rneider AT web.de>
2824
2825         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
2826           Rokas' patch to add the new fixed point type "__fixed16x16"
2827         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
2828           functions for __fixed16x16 arithmetics
2829         * device/lib/pic16: reimplemented the build system to support
2830           a separate build directory, better handling of libio (create
2831           the library in a separate subdir for each architecture) and
2832           easier configuration (centralized in Makefile.common)
2833
2834 2005-08-07 Raphael Neider <rneider AT web.de>
2835
2836         * src/pic16/gen.c (genrshTwo): fixed sign extension
2837         * src/pic16/device.c: added pic18f2320, 4220 and 4320
2838         * device/include/pic16/pic18f2220.h: changed some bit definitions,
2839           added T0CONbits
2840         * device/include/pic16/pic18f4220.h: NEW, header for
2841           pic18f4220 and pic18f4320
2842         * device/include/pic16/pic18fregs.h: added new devices,
2843           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
2844         * device/include/pic16/signal.h: resolved name clashes
2845           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
2846           to also allow testing for interrupt enable bits, added
2847           comments on how to use the macros
2848         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
2849         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
2850           register definitions for the devices
2851         * device/lib/pic16/pics.all: added new devices
2852         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
2853           allocated memory
2854         * device/lib/pic16/libc/stdlib/memfree: do not count
2855           the block header as free memory
2856         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
2857           simplified and added missing end-of-blocklist-marker
2858           (reported by Peter Onion, fixes #1252814)
2859         * (_mergeHeapBlock): fixed loop condition
2860         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
2861           len==0, restructured code
2862         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
2863           up a bit, reduced bitfield accesses, prevent endless loops
2864           in case of heap corruption
2865         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
2866           "unreferenced arguments/must return a value" warnings
2867         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
2868           replaced BAUDREG with SPBRG
2869         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
2870           device/lib/pic16/debug/gstack/gstack.c: replaced
2871           _naked, _asm, _endasm with __naked, __asm, __endasm
2872
2873 2005-08-05 Raphael Neider <rneider AT web.de>
2874
2875         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
2876           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
2877
2878 2005-08-05 Borut Razem <borut.razem AT siol.net>
2879
2880         * device/lib/Makefile.in: added missing ';'
2881         * configure: removed ^M characters
2882
2883 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2884
2885         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
2886           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
2887           License
2888
2889 2005-08-04 Borut Razem <borut.razem AT siol.net>
2890
2891         * configure.in: pic16 libraries build 2nd try - enable running
2892           configure in device/lib/pic16
2893         * configure: regenerated from configure.in
2894         * device/lib/Makefile.in: create $(PORT)/bin directory
2895
2896 2005-08-03 Raphael Neider <rneider AT web.de>
2897
2898         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
2899           to get/set values via pointers
2900         * (genUnpackBits,genPackBits): changed detection of
2901           ptr->bitfield vs. sym.bitfield, fixed access via generic
2902           pointers, removed dead (wrong) code for multibyte bitfields
2903         * (genNearPointerGet, genGenPointerGet): removed useless code,
2904           fixed bitfield detection, fixes #1250594
2905         * (genNearPointerSet): removed useless code
2906         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
2907           and introduced macro pic16_emitpcode that conditionally emits
2908           the origin of the following pCode (useful for debugging SDCC)
2909         * src/pic16/pcode.c: changed (and disabled) some debug outputs
2910         * (createDefmap): fixed handling of LFSR for --optimize-df
2911
2912 2005-08-02 Borut Razem <borut.razem AT siol.net>
2913
2914         * device/lib/Makefile.in: pic16 libraries build enabled since
2915           gputils-0.13.2 are now localy installed at sourceforge's compile farm
2916
2917 2005-08-02 Raphael Neider <rneider AT web.de>
2918
2919         * src/pic16/gen.c (genPackBits): removed deprecated warning
2920         * (genGenPointerSet): fixed bitfield detection
2921
2922 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2923
2924         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
2925
2926 2005-07-31 Raphael Neider <rneider AT web.de>
2927
2928         * device/lib/pic16/libdev/pic18f458.c,
2929           device/include/pic16/pic18f458.h: added missing T0CONbits
2930
2931 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
2932
2933         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
2934
2935 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
2936
2937         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
2938
2939 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2940
2941         * device/include/mcs51/at89c51ed2.h: added.
2942
2943 2005-07-23 Raphael Neider <rneider AT web.de>
2944
2945         * src/pic/gen.h: added emitpcode macro for debugging
2946         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
2947           and replace by macro adding debug information on demand
2948         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
2949         * (gencjne): tried to fix; replaced with correct (slower) code
2950         * (gen{Unp,P}ackBits): fixed single bit access
2951         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
2952         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
2953           previous instruction
2954         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
2955           register has to be handled with care (forbidding movement
2956           of assignments/uses, removing assignments completely, ...)
2957         * (pCodeOptime2pCodes): make use of regIsSpecial
2958         * added lots of debugging output (commented out)
2959         * src/pic/rallloc.c (deassignLRs): prevent operand registers
2960           from being reused as result UNLESS it is known to work
2961
2962 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
2963
2964         * support/Util/dbuf.h: include <stddef.h> for size_t
2965         * .version: changed to version 2.5.2
2966
2967 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2968
2969         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
2970
2971 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2972
2973         * src/hc08/gen.c (genMinus): fixed bug #1241835,
2974           (genModOneByte): removed needless psha/pula
2975
2976 2005-07-22 Raphael Neider <rneider AT web.de>
2977
2978         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
2979           have PIC14 handled like PIC16, fixes broken pic14 linker calls
2980         * src/pic/gen.c (resolveIfx): do not "invent" labels
2981         * (genSkipc): changed to positive logic
2982         * (genSkipCond): removed as no longer needed
2983         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
2984           backport from PIC16
2985         * (genLeftShift): check operands are in different registers
2986         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
2987           INCF does not update CARRY...
2988         * src/pic/main.c: fixed _linkCmd
2989         * src/pic/pcode.c (unlinkpCode): added inactive code
2990         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
2991           alive (do not assign result and operand overlapping registers)
2992
2993 2005-07-22 Raphael Neider <rneider AT web.de>
2994
2995         * src/pic/device.c (dump_sfr): replaced register declaration with
2996           call to emitSymbolToFile() to avoid duplicate symbols
2997         * (assignRelocatableRegisters): do not declare external symbols
2998         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
2999           right (take size of type, not etype)
3000         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
3001         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
3002         * (packRegsForAccUse): disabled assignment of WREG as
3003           the result reg to prevent occurence of just fixed #1235003,
3004           fixes #1242954
3005         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
3006           symbols (avoids duplicate symbols in .asm file)
3007         * (pic14emitRegularMap): use emitSymbolToFile()
3008         * src/pic/gen.c (aopOp): fixed spillLocation handling
3009         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
3010         * (genDataPointerSet): removed unneccessary variables/output
3011
3012 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
3013
3014         * as/mcs51/lkarea.c: enlarged codemap for banked memory
3015         * device/lib/mcs51/crtbank.asm: added # to 0x0F
3016
3017 2005-07-21 Raphael Neider <rneider AT web.de>
3018
3019         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
3020           architecture cannot handle them efficiently, fixes bug #1235003
3021         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
3022           check for empty sets before using them (fixes bug #1232190)
3023
3024 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
3025
3026         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
3027           (lnksect2): generate warnings for memory overlap
3028         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
3029           constseg to set the name of these segments so you can instruct the linker
3030           to place them in banks
3031         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
3032         * src/SDCCglobl.h: added MODEL_HUGE to enum,
3033           added code_seg and const_seg to options
3034         * src/SDCCglue.c (emitMaps): use options.const_seg,
3035           (createInterruptVect): put interrupt vectors in segment HOME,
3036           (glue): put HOME before static segment and put the main glue in HOME,
3037           (glue): use options.code_seg
3038         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
3039         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
3040           these segments so you can instruct the linker to place them in banks
3041           (linkEdit): use code_loc for HOME segment which should be the first
3042           segment in code memory now
3043         * src/SDCCmem.c: fixed more stuff like bug 1238386
3044         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
3045           (changePointer): don't change function pointers to code pointers for
3046           banked functions,
3047           (compareType): added exceptional check for banked function pointers
3048         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
3049         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
3050           after static in code memory
3051         * src/mcs51/gen.c: added aopLiteralLong prototype,
3052           (aopForSym): use getSize for functions,
3053           (genCall): generate banked calls over one trampoline __sdcc_banked_call
3054           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
3055           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
3056           the segment,
3057           (genPcall): use call for literal function pointers and generate banked
3058           calls over the one trampoline so there's only one place for the user to
3059           modify according to his/hers hardware,
3060           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
3061           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
3062         * src/mcs51/main.c: added keyword banked,
3063           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
3064         * support/Util/SDCCerr.c,
3065         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
3066           needed for passing the bank and address to the trampoline
3067         * device/lib/mcs51/crtbank.asm: added for bankswitching
3068         * device/lib/mcs51/Makefile: added crtbank
3069
3070 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3071
3072         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
3073           for fields at offset 0 of a struct or union as reported
3074           on 2005-07-07 in the developer mailing list.
3075
3076 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
3077
3078         * src/SDCCmem.c: fixed bug 1238386
3079
3080 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3081
3082         * src/mcs51/peeph.def: added labelrefcounting for peepholes
3083           (patch #1144962), added peephole 300, enabled 259.x
3084         * doc/sdccman.lyx: removed screenshot and provided link instead
3085
3086 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3087
3088         * doc/sdccman.lyx: added section about debugging with ddd
3089         * doc/figures/ddd_example.eps: screenshot of debugging session
3090
3091 2005-07-04 Raphael Neider <rneider AT web.de>
3092
3093         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
3094           like CODE pointers, fixes #1115683
3095         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
3096           call, fixes bugs #1232211, #1228110,
3097           fixed wrong casts to pCodeFlow from pCodeInstructions
3098
3099 2005-07-04 Raphael Neider <rneider AT web.de>
3100
3101         * src/pic/gen.c (popGet): changed assert to allow for
3102           bit operands
3103         * (popGetAddr): changed signature to provide
3104           an additional index, patched all call sites
3105         * (genCmpEq): handle literal-like operands correctly
3106         * (genAddrOf): added sanity checks on __code/__data pointers
3107         * (genAssign): added handling of symbols from __code section
3108         * (gencjne): do not generate code for comparisons whose result
3109           is neither stored nor used, fixes bug #1171114
3110         * (AccLsh, AccRsh): operate on operand instead of WREG
3111         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
3112           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
3113           by known count
3114         * rewrote complete shift-by-literal logic, commented unused
3115           functions out
3116         * (genConstPointerGet): get multiple bytes (if result size > 1),
3117           fixed handling of non-immediate addresses
3118         * (genPointerGet): handle CODE pointers like CONST pointers
3119         * (genpic14Code): insert C-SRC lines as Cource-pCodes
3120         * ({aop,op}_isLitLike): NEW, single place to decide whether an
3121           operand is to be treated as a literal or not
3122         * (mov2w,genPcall,genCmpEq),
3123           src/pic/genarith.c: use aop_isLitLike() to decide between
3124           literal/register contents
3125         * (addSign): added missing offset
3126         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
3127           only emit comment in debug-mode,
3128           use {aop,op}_isLitLike throughout the file
3129         * src/pic/glue.c: fix initializers for pointers (work in progress)
3130         * src/pic/pcode.c (get_op): honor index on _const symbols
3131         * ({reset,dump}pCodeStatistics): NEW, estimate code size
3132         * (dumppBlock): added pCode size estimation
3133         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
3134           check for IS_SYMOP before OP_SYMBOL'ing
3135         * fixed indentation, compacted switch-statements
3136         * (allocReg): find free register and allocate it instead of
3137           allocating new registers all the time
3138         * (deassignLRs): prevent POINTER_GET's from being assigned the same
3139           registers as its operands (necessary only for multibyte GETs)
3140
3141 2005-07-01 Raphael Neider <rneider AT web.de>
3142
3143         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
3144           debugging .asm-output macros FENTRY + FEXIT
3145         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
3146           way... I wonder...
3147         * (emitpComment): NEW, printf to pCode
3148         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
3149           offset handling
3150         * (popGetAddr): NEW, variant of popGet to access an immediates
3151           high(er) bytes instead of the n'th byte of memory they reference,
3152           replaced popGet with popGetAddr where neccessary
3153         * (genDataPointerGet): reactivated and fixed implementation
3154         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
3155           accesses
3156         * (genDataPointerSet): fixed multibyte assignments
3157         * (genpic14Code): fixed --i-code-in-asm handling
3158         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
3159         * (genPlus): fixed index-out-of-bounds error
3160         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
3161         * src/pic/ralloc.c: added debugging output macro FENTRY2
3162         * (spillThis): fixed indentation, enbraced for-body for clarity
3163         * (rematStr): commented out as now unused
3164         * (regTypeNum): commented out special spill case (overwrites
3165           arbitrary values)
3166         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
3167
3168 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
3169
3170         * doc/sdccman.lyx: documented sfr16/sfr32,
3171           added example for using storage class with function pointers
3172         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
3173
3174 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
3175
3176         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
3177         * device/lib/_itoa.c,
3178         * device/lib/_ltoa.c: optimized codesize
3179         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
3180           but don't know how to suppress the double warning.
3181         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
3182         * support/Util/SDCCerr.c,
3183         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
3184
3185 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
3186
3187         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
3188           fixed old K&R prototypes
3189         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
3190         * device/lib/_gptrget.c,
3191         * device/lib/_gptrgetc.c,
3192         * device/lib/_gptrput.c: changed versions for new memory indicator values,
3193           also new versions for small generic pointers and banked generic pointers
3194         * src/port.h: added const_name
3195         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
3196         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
3197         * src/SDCCcse.c (findPrevIc): check all associative operators
3198         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
3199         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
3200         * src/SDCCmem.c: updated comments,
3201           set far-space to 0 for pdata, results in optimized code
3202         * src/SDCCmem.h: added macro CONST_NAME
3203         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
3204           moving the info into the highest bits, see also gptrget/gptrput
3205         * src/src.dsp: added sdcc.ico to project files
3206         * src/avr/gen.c (genCast): fixed bug 0x%d
3207         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
3208         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
3209           relation between ptr_type and DCL_TYPE,
3210           (genCast): fixed bug 0x%d
3211         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
3212           (CODE)" for const_name
3213         * src/hc08/gen.c (genCast): fixed bug 0x%d
3214         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
3215           (hc08_port): added "CONST (CODE)" for const_name
3216         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
3217           (aopForRemat, adjustArithmeticResult): disconnected direct relation
3218           between ptr_type and DCL_TYPE,
3219           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
3220           operand* and took AOP() inside function so sfr-ness can be checked,
3221           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
3222           new prototype,
3223           (genFunction, genEndFunction): optimized stack setup,
3224           (genMinus): optimized for literals with ending zeroes (in bytes),
3225           (genCast): fixed bug 0x%d
3226         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
3227           (mcs51_port): added "CONST (CODE)" for const_name
3228         * src/mcs51/peeph.def: made rule 226 more generic
3229         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
3230         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
3231         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
3232         * src/z80/main.c (z80_port): added NULL for const_name,
3233           (gbz80_port): added NULL for const_name
3234         * support/regression/tests/bug663539.c,
3235         * support/regression/tests/sfr16.c: new tests
3236
3237 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3238
3239         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
3240
3241 2005-06-24 Raphael Neider <rneider AT web.de>
3242
3243         * device/lib/pic16/libdev/pic18f[68][567]20.c:
3244           corrected typos...
3245         * device/include/pic16/signal.h: added USBIF
3246           and SIG_USB
3247
3248 2005-06-24 Raphael Neider <rneider AT web.de>
3249
3250         * device/lib/pic16/libdev/pic18f2455.c,
3251           device/include/pic16/pic18f2455.h: NEW
3252         * device/include/pic16/pic18fregs.h,
3253           device/lib/pic16/pics.all,
3254           src/pic16/device.c: added 18f2455
3255         * device/lib/pic16/libdev/pic18f[68][567]20.c,
3256           device/include/pic16/{pic18f[68][567].h,usart.h}:
3257           replaced MULTIPLE_USARTS define with more relaible
3258           compatibility sfrs (for USART access)
3259
3260 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
3261
3262         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
3263           and the output asm file line is printed on two lines.
3264
3265 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3266
3267         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
3268           BGT, BLE, BHI, and BLS instructions
3269         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
3270           genCmpEq): removed
3271         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
3272           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
3273           fixes bug #1216342
3274         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
3275
3276 2005-06-15 Raphael Neider <rneider AT web.de>
3277
3278         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
3279         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
3280         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
3281           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
3282           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
3283
3284 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3285
3286         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
3287           Marcel Telka in bug #1215704
3288
3289 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
3290
3291         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
3292           located in shared memory bank.
3293
3294 2005-05-31 Raphael Neider <rneider AT web.de>
3295
3296         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
3297           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
3298           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
3299
3300 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
3301
3302         * device/lib/_strncpy.c: fixed the fix
3303
3304 2005-05-26 Raphael Neider <rneider AT web.de>
3305
3306         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
3307           initializers with \0, bug #1208187
3308         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
3309           intializers with \0, bug #1208187
3310
3311 2005-05-26 Raphael Neider <rneider AT web.de>
3312
3313         * src/pic16/glue.c (pic16_printIvalChar): fixed string
3314           initializers with \0, bug #1208187
3315         * src/pic16/main.c (_process_pragma): added sanity checks
3316           for stack position and size, emit warnings when appropriate
3317
3318 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3319
3320         * device/lib/_strncpy.c: fixed not filling with \0
3321
3322 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3323
3324         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
3325           createFunction),
3326         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
3327           compound_statement),
3328         * src/SDCCsymt.h,
3329         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
3330
3331 2005-05-24 Raphael Neider <rneider AT web.de>
3332
3333         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
3334
3335 2005-05-24 Raphael Neider <rneider AT web.de>
3336
3337         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
3338           TRISE definitions, closes bug #1162453
3339
3340 2005-05-22 Raphael Neider <rneider AT web.de>
3341
3342         * src/pic16/main.c (_process_pragma): check for missing
3343           arguments to pragmas code and udata
3344         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
3345           consistency fixes to match other headers (thanks to Jim Paris)
3346         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
3347
3348 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3349
3350         * src/SDCCicode.c (isOperandEqual): fixed missing ;
3351
3352 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
3353
3354         * support/regression/tests/bug1198642.c: new test
3355         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
3356         * src/SDCCcse.c (findPrevIc): added comment, please have a look
3357         * support/scripts/resource.h,
3358         * support/scripts/resource.rc,
3359         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
3360         * support/scripts/sdcc.ico: added 32x32 icon
3361
3362 2005-05-18 Raphael Neider <rneider AT web.de>
3363
3364         * device/lib/pic16/libdev/pic18f*.c,
3365         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
3366           keywords to "__sfr" and "__at (X)"
3367         * device/include/pic16/pic18fregs.h: added pic18f4520
3368         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
3369           #1203088 (MPLAB compatibility)
3370
3371 2005-05-17 Raphael Neider <rneider AT web.de>
3372
3373         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
3374         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
3375         * device/lib/pic16/pics.all: added new devices
3376         * src/pic16/device.c: added support for pic18f4520
3377
3378 2005-05-16 Raphael Neider <rneider AT web.de>
3379         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
3380         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
3381         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
3382           convenience function for bit access
3383
3384 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3385
3386         * device/lib/printf_large.c: fixed bug 1193299
3387         * support/regression/tests/bug1057979.c: added test %3.3s
3388
3389 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3390
3391         * device/include/mcs51/8051.h,
3392         * device/include/mcs51/8052.h: made parseable with lint
3393         * device/include/mcs51/lint.h: added include file for (sp)lint
3394         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
3395         * doc/cdbfileformat.lyx,
3396         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
3397
3398 2005-05-14 Raphael Neider <rneider AT web.de>
3399
3400         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
3401         * device/lib/pic16/libc/stdlib/itoa.c (new)
3402         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
3403         * device/lib/pic16/libio/Makefile: exclude subdir according to
3404           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
3405         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
3406         * src/pic16/gen.c (genFunction): prevent annoying warning
3407         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
3408           nameclashes on BeOS
3409         * support/cpp2/cppmain.c (cpp_output_string): new
3410         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
3411           fixes bug 1116802
3412
3413 2005-05-13 Borut Razem <borut.razem AT siol.net>
3414
3415         * src/SDCCmain.c (linkEdit): fixed bug 1195202
3416
3417 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3418
3419         * .version: changed to version 2.5.1; back to bleeding edge development
3420
3421 2005-05-11 Borut Razem <borut.razem AT siol.net>
3422
3423         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
3424           generate PDF version 1.3 documents
3425
3426 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3427
3428         * .version: changed to version 2.5.0
3429
3430 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3431
3432         * doc/sdccman.lyx: updated weblinks, index and smaller updates
3433
3434 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3435
3436         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
3437         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
3438         well as many smaller updates.
3439         * .version: changed to version 2.5.0-pre1
3440
3441 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3442
3443         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
3444
3445 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3446
3447         * support/regression/tests/bug1185672.c: added
3448         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
3449           bug 1185672
3450         * src/mcs51/gen.c (genCall): added comments, made it look safer
3451         * src/mcs51/gen.c (genEndFunction): simplified
3452
3453 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3454
3455         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
3456
3457 2005-04-14 Borut Razem <borut.razem AT siol.net>
3458
3459         * fixed bug 1045046 - SIGSEGV with really simple code?:
3460           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
3461           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
3462
3463 2005-04-14 Borut Razem <borut.razem AT siol.net>
3464
3465         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
3466           src/pic16/device.h: temporarily disabled experimental #inline pragma
3467           for 2.5.0 release
3468
3469 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
3470
3471         * device/include/z80/stdio.h,
3472         * device/include/z80/string.h: removed these highly incomplete files so
3473           SDCC can use the default ones in device/include/
3474
3475 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3476
3477         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
3478         gcc warning.
3479         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
3480         fix sdcpp warnings.
3481
3482 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3483
3484         * device/include/malloc.h: removed redundant __reentrant prototypes
3485         * device/lib/_mullong.c: added working xstack variant in asm (C version
3486           doesn't pass regression tests)
3487         * device/lib/bpx.c: used __data and made bpx char for mcs51
3488         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
3489           (createFunction): fixed bug with xstackPtr
3490         * src/SDCCcse.c: corrected comments
3491         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
3492           (killDeadCode, eBBlockFromiCode): removed unused code
3493         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
3494           corrected comments
3495         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
3496           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
3497           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
3498           (genModOneByte): fixed warning in MSVC
3499         * src/mcs51/main.c (): added comments
3500         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
3501
3502 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3503
3504         * src/SDCCmain.c (linkEdit): oops, changed one line too many
3505
3506 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
3507
3508         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
3509
3510 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
3511
3512         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
3513         characters arrays of larger size than the declared one.
3514
3515 2005-04-10 Borut Razem <borut.razem AT siol.net>
3516
3517         * src/pic/gen.c (genInline),
3518           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
3519           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
3520           (findNextInstruction), (findPrevInstruction),
3521           (findInstructionUsingLabel),
3522           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
3523         * src/pic/pcode.c (findLabel): added missing '\n'
3524         * src/src.dsp: added SDCCdwarf2.c to the project
3525
3526 2005-04-09 Borut Razem <borut.razem AT siol.net>
3527
3528         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
3529
3530 2005-04-08 Raphael Neider <rneider AT web.de>
3531
3532         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
3533           into the chain after a given one) and mergeDefmapSymbols (combine
3534           defmap entries for each symbol per pcode)
3535         * (createDefmap): have defmap entries merged in the end
3536         * (defmapReplaceSymRef): split defmap entries covering two accesses to
3537           a symbol before replacing one access type's symbol, merge symbols in
3538           the end (replacement symbol might already have an entry)
3539         * (assignValnums): keep reference to written WREG intact
3540
3541 2005-04-08 Raphael Neider <rneider AT web.de>
3542
3543         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
3544           Alpha)
3545
3546 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
3547
3548         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
3549         bytes
3550
3551 2005-04-07 Raphael Neider <rneider AT web.de>
3552
3553         * device/include/pic16/usart.h: added compatibility defines for
3554           devices with more than one USART
3555         * device/include/pic16/pic18f[68][567]20.h: activated above defines
3556
3557 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3558
3559         * device/lib/Makefile.in: updated for port specific include
3560
3561 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3562
3563         * support/regression/ports/mcs51/spec.mk: added mcs51 include
3564
3565 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3566
3567         * device/include/8051.h,
3568         * device/include/8052.h,
3569         * device/include/at89S8252.h,
3570         * device/include/at89c55.h,
3571         * device/include/at89x051.h,
3572         * device/include/at89x51.h,
3573         * device/include/at89x52.h,
3574         * device/include/mcs51reg.h,
3575         * device/include/reg51.h,
3576         * device/include/reg764.h,
3577         * device/include/regc515c.h,
3578         * device/include/sab80515.h: (re)moved these 12 files
3579         * device/include/mcs51/8051.h,
3580         * device/include/mcs51/8052.h,
3581         * device/include/mcs51/at89S8252.h,
3582         * device/include/mcs51/at89c55.h,
3583         * device/include/mcs51/at89x051.h,
3584         * device/include/mcs51/at89x51.h,
3585         * device/include/mcs51/at89x52.h,
3586         * device/include/mcs51/mcs51reg.h,
3587         * device/include/mcs51/reg51.h,
3588         * device/include/mcs51/reg764.h,
3589         * device/include/mcs51/regc515c.h,
3590         * device/include/mcs51/sab80515.h: and added them here
3591
3592 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3593
3594         * device/include/stdarg.h: changed SDCC specific keywords to double
3595           underlined form.
3596         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
3597           mcs51 and ds390.
3598         * device/include/hc08/mc68hc908gp32.h,
3599         * device/include/hc08/mc68hc908jb8.h,
3600         * device/include/hc08/mc68hc908jkjl.h,
3601         * device/include/hc08/mc68hc908qy.h: fixed comments
3602         * device/include/mcs51/README: updated
3603         * device/include/mcs51/c8051f120.h: added PINRSF
3604         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
3605         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
3606           amidst code. Also inline is not supported.
3607
3608 2005-04-06 Raphael Neider <rneider AT web.de>
3609
3610         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
3611         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
3612           callers stack/frame pointers
3613
3614 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3615
3616         * device/include/pic16/usart.h: added, missing in previous commit,
3617         * device/include/pic16/adc.h: fixed typo,
3618         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
3619         commit,
3620         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
3621         <p18fxxx.inc>
3622         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
3623         uninitialized because a bug appears with gplink
3624         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
3625         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
3626         complains for unrecognised option
3627
3628 2005-04-05 Raphael Neider <rneider AT web.de>
3629
3630         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
3631           structs as well (using memcpy)
3632         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
3633           on ISRs (GOTO has no label)
3634         * src/pic16/device.h: added OF_OPTIMIZE_DF
3635         * src/pic16/main.c: added compiler switch --optimize-df to enable the
3636           new data flow analysis/optimization
3637         * src/pic16/pcode.c: added (prototypes for and implementation of)
3638           dataflow analysis functions, fixed pCodeInstructions' inCond and
3639           outCond values, made RCALL a branch instruction
3640         * (pic16_unlinkpCode): keep C line if possible
3641         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
3642           C line moved if possible
3643         * (pic16_getRegFrompCodeOp): NEW, improved version of...
3644         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
3645           to use new pic16_getRegFrompCodeOp (works for more SFRs)
3646         * (pic16_BuildFlow): fixed skip instructions with label (did not start
3647           new flow)
3648         * (pic16_getJumptabpCode): NEW, needed in...
3649         * (LinkFlow): fixed handling of jumptables, calls and conditional
3650           branches
3651         * (pic16_InsertCommentAfter): NEW
3652         * (pic16_pCodeReplace): made verbose and flow preserving
3653         * (AnalyzeFlow): added call to data flow analysis
3654         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
3655         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
3656         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
3657
3658 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3659
3660         * src/SDCCast.c (decorateType): fixed bug #1105626
3661
3662 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
3663
3664         * device/include/asm/pic16/features.h,
3665         * pic18f*.h headers,
3666         * device/include/pic16/adc.h,
3667         * device/include/pic16/delay.h,
3668         * device/include/pic16/i2c.h,
3669         * device/include/pic16/malloc.h,
3670         * device/include/pic16/stdio.h,
3671         * device/include/pic16/stdlib.h,
3672         * device/include/pic16/string.h,
3673         * device/lib/pic16/libc/stdio/printf_tiny.c,
3674         * device/lib/pic16/libc/stdio/printf_small.c,
3675         * device/lib/pic16/libc/stdio/strmgpsim.c,
3676         * device/lib/pic16/libc/stdio/strmmssp.c,
3677         * device/lib/pic16/libc/stdio/strmusart.c,
3678         * device/lib/pic16/libc/stdio/vfprintf.c,
3679         * device/lib/pic16/libc/stdlib/ltoa.c,
3680         * device/lib/pic16/libc/stdlib/putchar.c,
3681         * device/lib/pic16/libc/stdlib/x_ftoa.c,
3682         * device/lib/pic16/libc/stdlib/memchrpgm.c,
3683         * device/lib/pic16/libc/stdlib/memchrram.c,
3684         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
3685         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
3686         * device/lib/pic16/libio/adc/adcbusy.c,
3687         * device/lib/pic16/libio/adc/adcread.c,
3688         * device/lib/pic16/libio/adc/adcsetch.c,
3689         * device/lib/pic16/libio/usart/ubaud.c,
3690         * device/lib/pic16/libio/usart/ubusy.c,
3691         * device/lib/pic16/libio/usart/udrdy.c,
3692         * device/lib/pic16/libio/usart/uopen.c,
3693         * device/lib/pic16/libio/usart/uputc.c,
3694         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
3695         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
3696         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
3697         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
3698         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
3699         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
3700         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
3701         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
3702         specific keywords to double underlined form,
3703         * device/lib/pic16/libc/Makefile.rules,
3704         * device/lib/pic16/libsdcc/Makefile.rules,
3705         * device/lib/pic16/libm/Makefile,
3706         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
3707         to compile with C standard set in Makefile.common
3708         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
3709         rand.c and crc.c in compilation process,
3710         * device/lib/pic16/libsdcc/int/divuint.c,
3711         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
3712         `c' from signed to unsigned,
3713         * device/lib/pic16/startup/crt0.c,
3714         * device/lib/pic16/startup/crt0i.c,
3715         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
3716         keywords to double underlined form, bug fixes in _do_cinit function
3717         which prevented the correct initialization of the .idata segment,
3718         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
3719         core to enter a infinite loop
3720         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
3721
3722 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3723
3724         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
3725
3726 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3727
3728         * device/include/Makefile.in: add support for hc08 subdirectory
3729         * device/include/hc08/: new subdirectory
3730         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
3731         Lucas Loizaga, thanks!
3732         * device/include/hc08/mc68hc908qy.h,
3733         * device/include/hc08/mc68hc908gp32.h,
3734         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
3735         their own directory. Changed internal macro names to use the compiler
3736         reserved namespace. Changed SDCC specific keywords to double
3737         underlined form.
3738         * device/include/math.h,
3739         * device/include/malloc.h,
3740         * device/include/stdarg.h,
3741         * device/include/stdbool.h
3742         * device/include/string.h,
3743         * device/include/tinibios.h,
3744         * device/include/ds400rom.h,
3745         * device/include/8051.h,
3746         * device/include/8052.h,
3747         * device/include/80c51xa.h,
3748         * device/include/at89c55.h,
3749         * device/include/at89S8252.h,
3750         * device/include/at89x51.h,
3751         * device/include/at89x52.h,
3752         * device/include/ds80c390.h,
3753         * device/include/reg764.h,
3754         * device/include/regc515c.h,
3755         * device/include/sab80515.h,
3756         * device/include/mcs51/c8051f000.h,
3757         * device/include/mcs51/c8051f018.h,
3758         * device/include/mcs51/c8051f020.h,
3759         * device/include/mcs51/c8051f040.h,
3760         * device/include/mcs51/c8051f060.h,
3761         * device/include/mcs51/c8051f120.h,
3762         * device/include/mcs51/c8051f300.h,
3763         * device/include/mcs51/c8051f310.h,
3764         * device/include/mcs51/c8051f320.h,
3765         * device/include/mcs51/c8051f330.h,
3766         * device/include/mcs51/c8051f350.h,
3767         * device/include/z180.h: Changed SDCC specific keywords to double
3768         underlined form.
3769
3770 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
3771
3772         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
3773         18F4455,
3774         * (pic16_assignConfigWordValue): disable testing of configuration
3775         register value with config mask,
3776         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
3777         function with port->fun_prefix,
3778         * (genFunction): when generating a naked interrupt function never
3779         create an absolute segment placed in interrupt vector address, place
3780         the actual interrupt function at IVA instead, when an interrupt
3781         function is generated with unspecified interrupt then do not create
3782         the absolute section,
3783         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
3784         code for generating a call to generic pointer get/put function with
3785         a call to function pic16_callGenericPointer(),
3786         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
3787         the call to the generic pointer get/put functions with prefixing the
3788         function name with port->fun_prefix,
3789         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
3790         * src/pic16/main.c (_process_pragma): prefix function with
3791         port->fun_prefix,
3792         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
3793         calling assembler, old 18Fxxxx macro is deprecated,
3794         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
3795         PC_ASMDIR in while condition,
3796         * (findInstruction): add PC_ASMDIR in while condition,
3797         * (buildCallTree): prefix main with port->fun_prefix,
3798         * (pic16_pCode2str): fixed bug that didn't emit the memory access
3799         identifier for variable with banked access in instructions BTFSS,
3800         BTFSC, BCF, BSF, BTG
3801         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
3802         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
3803         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
3804         perform optimization when enviroment variable NO_REG_OPT is set,
3805         * (insideLRBlock): NEW, return 1 if register is inside an
3806         INF_LOCALREGS block,
3807         * (RemoveRegFromLRBlock): remove a register that is completely
3808         eliminated by register optimization, but it is still left in local
3809         register store/restore in/from stack block,
3810         * (Remove2pcodes): after removing register, check to see if it
3811         should be removed from local register store/restore in/from stack
3812         block,
3813         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
3814         DUMMY_READ_VOLATILE,
3815
3816         * device/include/pic16/adc.h: minor prototype modifications and
3817         update,
3818         * device/include/pic16/malloc.h: added GPL notice various
3819         modifications,
3820         * device/include/pic16/stdint.h: NEW, standard header for ints
3821         * device/include/pic16/delay.h: NEW, header for delay functions,
3822         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
3823         delay1mtcy,
3824         * device/include/pic16/signal.h: NEW, header providing helper macros
3825         for implementing signal handlers,
3826         * device/include/pic16/stdio.h: added prototypes for functions,
3827         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
3828         prototypes for stdin and stdout, added macro PUTCHAR to
3829         automatically implement putchar function prototype,
3830         * device/include/pic16/usart.h: modified and updated USART library,
3831         * device/lib/pic16/libio/adc/,
3832         * device/lib/pic16/libio/i2c: some modifications to improve library
3833         performance,
3834         * device/lib/pic16/libc/stdio/: modifications for the new printf*
3835         family of functions,
3836         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
3837         family of functions and other sources,
3838         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
3839         of the PIC18Fxx[28] devices,
3840         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
3841         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
3842         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
3843         _do_cinit function, because the previous failed when local variables
3844         where not placed in the same memory bank,
3845         * device/lib/pic16/libsdcc/char/: various modifications to improve
3846         library performance,
3847         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
3848         information on the new functions of the c library and more...
3849
3850 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3851
3852         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
3853
3854 2005-03-26 Raphael Neider <rneider AT web.de>
3855
3856         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
3857           if condition == CARRY)
3858         * (genCmp): adapted to new genSkipc semantics
3859         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
3860           on rIfx (genCmp was broken)
3861
3862 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3863
3864         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
3865         * src/z80/main.c (_keywords[]),
3866         * src/SDCCglobal.h (struct options),
3867         * src/SDCC.y,
3868         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
3869         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
3870         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
3871         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
3872         always available in leading double underscore form. The C99 support is
3873         mostly missing, but it's a start.
3874         * support/regression/tests/bug-227710.c: fixed nonconforming use of
3875         reserved identifier "__data".
3876
3877 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3878
3879         * src/mcs51/peeph.def: fixed bug 1170013
3880
3881 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
3882
3883         * device/include/mcs51reg.h: fixed bug 842007
3884
3885 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3886
3887         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
3888         last time.
3889
3890 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3891
3892         * src/port.h (struct PORT),
3893         * src/avr/ralloc.c (avr_assignRegisters),
3894         * src/avr/main.c,
3895         * src/ds390/ralloc.c (ds390_assignRegisters),
3896         * src/ds390/main.c,
3897         * src/hc08/ralloc.c (hc08_assignRegisters),
3898         * src/hc08/main.c,
3899         * src/mcs51/ralloc.c (mcs51_assignRegisters),
3900         * src/mcs51/main.c,
3901         * src/pic/ralloc.c (pic14_assignRegisters),
3902         * src/pic/main.c,
3903         * src/pic16/ralloc.c (pic16_assignRegisters),
3904         * src/pic16/main.c,
3905         * src/xa51/ralloc.c (xa51_assignRegisters),
3906         * src/xa51/main.c,
3907         * src/z80/ralloc.c (z80_assignRegisters),
3908         * src/z80/ralloc.h,
3909         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
3910         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
3911         * src/SDCCcse.h,
3912         * src/SDCCdflow.c (computeDataFlow),
3913         * src/SDCCdflow.h,
3914         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
3915         * src/SDCCloop.h,
3916         * src/SDCCcflow.c (*),
3917         * src/SDCCcflow.h,
3918         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
3919         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
3920         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
3921         immedDom() returning wrong block; probably fixes bug #1160833)
3922
3923 2005-03-20 Borut Razem <borut.razem AT siol.net>
3924
3925         * support/scripts/inc2h.pl: WIN32 port
3926
3927 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
3928
3929         * device/lib/makefile.in: added abs.c and labs.c
3930
3931 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
3932
3933         * device/include/stdint.h: added
3934         * device/lib/abs.c: added
3935         * device/lib/labs.c: added
3936         * device/include/stdlib.h: added abs() and labs() prototypes
3937         * device/lib/libsdcc.lib: added abs and labs
3938         * device/include/float.h,
3939         * device/lib/_fsmul.c,
3940         * device/lib/printf_fast.c,
3941         * device/lib/printf_tiny.c: updated comments
3942
3943 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3944
3945         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
3946         bug #1164313
3947
3948 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3949
3950         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
3951         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
3952
3953 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
3954
3955         * device/lib/printf_large.c: removed inline assembly for portability and
3956           readability. Use printf_fast if speed or size are more important.
3957         * src/pic16/gen.c: removed conditions around use of DEBUGpc
3958         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
3959
3960 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
3961
3962         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
3963         prevent compiler warning
3964
3965 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3966
3967         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
3968         moved to level 0 and declared as static. Also they are explicit
3969         placed in access bank. This was necessery because some times they
3970         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
3971         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
3972         optimizations. Currently only compare to unsigned char is implemented,
3973         * src/pic16/gen.c: added fReturnIdx array,
3974         * (struct resolvedIfx) is moved to gen.h and made public,
3975         * (struct _G): added sregsAlloc and sregsAllocSet fields,
3976         * (aopForSym): added an optimization to directly store in stack of
3977         the operand of a SEND iCode,
3978         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
3979         but as registers instead (AOP_REG) using the fReturnIdx array,
3980         * (pic16_freeAsmop): remove the freed register from the
3981         _G.sregsAlloc field,
3982         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
3983         a compare of 'WREG',
3984         * (pic16_popGetTempRegCond): changed function prototype, now
3985         function takes also a bitVector argument v which holds the current
3986         set of registers that are allocated for stack access by aopForSym,
3987         registers allocated in aopForSym for accessing stack symbols are not
3988         any more part of the functions usedRegs field,
3989         * (genCall): some times aopOp is called for a stack variable to be
3990         send, aopForSym might perform the push, if this is true make sure
3991         that genCall doesn't push the variable twice by testing _G.resDirect,
3992         * (genFunction): changed testing for unspecified interrupt number
3993         from 256 to INTNO_UNSPEC,
3994         * modified selection scheme of frame pointer generation. Previously
3995         if function did use local registers a frame pointer was generated,
3996         now a frame pointer is generated only if function has arguments
3997         (that need PLUSW2 register access), or has stack arguments, or the
3998         compiler is not instructed to omit the frame pointer,
3999         * (genEndFunction): before restoring local registers that were saved
4000         in the function preamble, also restore the registers that *might*
4001         have been allocated for stack access,
4002         * (genRet): removed some old comments,
4003         * (genCmp, the active (RN's) version): added a call to the
4004         pic16_genCmp_special function to perform the compare with a more
4005         robust and optimized way,
4006         * (genInline): a feature has been added in inline code generation,
4007         which allows a wildcard variable substitution when writing inline
4008         assembly. Code is incomplete and experimental therefore undocumented,
4009         * (genCast): changed order of aopOp for result and right to allow
4010         aopForSym to directly load the result if possible,
4011         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
4012         perform an optimized compare on some selected special occasions,
4013         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
4014         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
4015         generate an IVT any more,
4016         * src/pic16/main.c (pic16_optionsTable): added command line option
4017         --optimize-cmp,
4018         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
4019         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
4020         macros,
4021         * src/pic16/NOTES: Raphael Neider added in list of active developers
4022         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
4023         jumptable_end to prevent bug #,
4024         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
4025         inCond and outCond fields,
4026         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
4027         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
4028         turn off register spilling,
4029         * (packRegsForOneUse): synced with other ports' versions although it
4030         is not used currently,
4031         * (pic16_packRegisters): added an optimization while reading
4032         structure bitfields, some registers may be saved (malloc code is
4033         decreased by 80 bytes)
4034
4035 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
4036
4037         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
4038         left is a bitfield, if yes, then don't optimize assignment. Perhaps
4039         this can be optimized more?
4040
4041 2005-03-10 Raphael Neider <rneider AT web.de>
4042
4043         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4044           genNearPointerGet): (hopefully) fixed access to bitfields via
4045           pointers (p->bitN = x; and x = p->bitN; failed)
4046
4047 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
4048
4049         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
4050
4051 2005-03-09 Raphael Neider <rneider AT web.de>
4052
4053         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
4054
4055 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
4056
4057         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
4058         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
4059           (regTypeNum): set REG_BIT type if necessary
4060         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
4061         * support/regression/tests/critical.c: check bug 1144613
4062
4063 2005-03-02 Raphael Neider <rneider AT web.de>
4064
4065         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
4066
4067 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4068
4069         * src/avr/ralloc.c (serialRegAssign),
4070         * src/ds390/ralloc.c (serialRegAssign),
4071         * src/hc08/ralloc.c (serialRegAssign),
4072         * src/mcs51/ralloc.c (serialRegAssign),
4073         * src/pic/ralloc.c (serialRegAssign),
4074         * src/pic16/ralloc.c (serialRegAssign),
4075         * src/xa51/ralloc.c (serialRegAssign),
4076         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
4077
4078 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
4079
4080         * src/SDCCast.c (decorateType): fixed bug 1124787
4081
4082 2005-02-20 Hubert Sack <sack AT digiplan.de>
4083         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4084
4085         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
4086         patch #1121755
4087
4088 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4089
4090         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
4091         to keep the correct label reference count when adding/removing references
4092         to labels. A peephole file using this is appended to patch #1144962.
4093
4094 2005-02-14 Raphael Neider <rneider AT web.de>
4095
4096         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
4097         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
4098         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
4099           retrievals of result operand's value on assignment
4100
4101 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
4102
4103         * device/include/pic16/string.h: modified prototype for memccpy()
4104         to memccpy(void *, void *, char, size_t)
4105         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
4106         check whether to omit frame pointer or not,
4107         * (genInline): convert all occurences of "\n" to LF in inline
4108         assembler blocks, this helps formatting the inline text,
4109         * (pic16_loadFSR0): modified prototype,
4110         * (genNearPointerGet, genNearPointerSet): reorganization of code,
4111         removed some 8051 legacy code,
4112         * (genPackBits): enabled handling bitfields exceeding one byte in size,
4113         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
4114         before allocating temporary registers in functions,
4115
4116 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4117
4118         * support/regression/tests/bitvars.c: corrected the "fix"
4119
4120 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4121
4122         * support/regression/tests/bitvars.c,
4123         * support/regression/tests/bitwise.c,
4124         * support/regression/tests/rotate.c: "fixed" problems on Alpha
4125
4126 2005-02-10 Raphael Neider <rneider AT web.de>
4127
4128         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
4129           different size for Alpha
4130         * src/pic16/gen.c (genCmpEq) : improved compare with 0
4131
4132 2005-02-09 Raphael Neider <rneider AT web.de>
4133
4134         * src/SDCC.lex(doPragma) : save and restore warning options as well
4135           (also added new stack plus clone- and copyAndFreeSDCCERRG())
4136         * have #pragma less_pedantic set the errorlevel to WARNING
4137           (fixes #1117001)
4138         * (cloneOptimize) : fixed wrong malloc's size
4139         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
4140           facilitate correct handling of #pragma (save|restore)
4141
4142 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4143
4144         * src/mcs51/gen.c: removed non-standard C nameless struct/union
4145
4146 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
4147
4148         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
4149
4150 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
4151
4152         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
4153
4154 2005-02-02 Raphael Neider <rneider AT web.de>
4155
4156         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
4157         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
4158         * (pic16_storeForReturn): fixed to allow returning function pointers
4159         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
4160         * device/include/pic16/{stddef.h,stdbool.h}: added
4161
4162 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
4163
4164         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
4165
4166 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
4167
4168         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
4169         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
4170          appeared to be required
4171
4172 2005-01-31 Borut Razem <borut.razem AT siol.net>
4173
4174         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
4175           include/mcs51 and include/z80 directories to the package
4176
4177 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4178
4179         * src/hc08/gen.c (genFunction): fixed bug #1112752
4180
4181 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4182
4183         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
4184
4185 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4186
4187         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
4188
4189 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
4190
4191         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
4192
4193 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
4194
4195         * device/include/c8051fxxx.h: removed these 6 files
4196         * device/include/mcs51/c8051fxxx.h: added these 11 new files
4197
4198 2005-01-26 Raphael Neider <rneider AT web.de>
4199
4200         * src/pic16/gen.c (genAssign): fixed assignment from longs
4201           in codespace (were cut to three bytes)
4202         * (genDummyRead): implemented (except for CODESPACE...),
4203           fixed bug #1108575
4204         * src/pic16/glue.c (emitStatistics): beautified
4205         * device/lib/pic16/libm/Makefile: added include path
4206
4207 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4208
4209         * src/z80/gen.c (aopPut): fixed bug #1103902
4210
4211 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4212
4213         * device/lib/expf.c: fixed bug #1095792
4214
4215 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
4216
4217         * device/lib/pic16/libm: added Math library sources
4218
4219 2005-01-24 Raphael Neider <rneider AT web.de>
4220
4221         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
4222           to enable upcast to pCodeOpReg2 (there is no type tag to
4223           differenciate the two and pic16_popGet2p cast into PCOR2)
4224         * src/pic16/main.c (_process_pragma): fixed another malloc bug
4225           (sizeof(sectNames) changed to sizeof(sectName))
4226           Both patches fix segfaults under MinGW.
4227
4228 2005-01-23 Raphael Neider <rneider AT web.de>
4229
4230         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
4231           Safe_[mc]?alloc()'ed variables
4232         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
4233           of (byte sized) temporaries (assign them to WREG for now)
4234         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
4235           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
4236           this might fix SIGSEGVs on MinGW...
4237         * src/SDCCopt.c (killDeadCode): restored original behaviour
4238           (volatile operands might get thrown away though)
4239
4240 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
4241
4242         * src/pic16/gen.c: fixed bug #1106975,
4243         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
4244         pointer update, INTCON is saved, global interrupts are disabled and
4245         restored after updateing TOS.
4246         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
4247         * added function attribute 'shadowregs' to take advantage of shadow
4248         registers,
4249         * added function attribute 'wparam' as an alternative to the wparam
4250         pragma,
4251         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
4252         user declares a non-ISR function as 'shadowregs',
4253         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
4254
4255 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
4256
4257         * .version: bumped version number to 2.4.8
4258         * device/lib/pic16/pics.all: list of PIC18F devices supported by
4259         pic16 port,
4260         * device/lib/pic16/libio/i2c/: I2C module support library,
4261         * device/include/pic16/i2c.h: I2C support library header,
4262         * device/lib/pic16/libc/stdio/: standard IO support sources,
4263         * (printf_small.c): printf_small() source, supports float print,
4264         * (printf_tiny.c): printf_tiny() source, does not support floats,
4265         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
4266         enable global optimizations for entire library source, other
4267         Makefiles in the source tree are also modified to reflect this,
4268         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
4269         function,
4270         * doc/sdccman.lyx: updated to reflect new changes,
4271         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
4272         sym->onStack if-case,
4273         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
4274         sbit, idata, _idata, xdata, _xdata,
4275         * added pragma library, to link an external library, (see doc),
4276         * removed command line options, --pomit-config-words, --pomit-ivt,
4277         --pleave-reset-vector,
4278         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
4279         when calling assembler to reflect memory model used, also define
4280         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
4281         reflect stack model used,
4282         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
4283         on stack return NULL,
4284
4285 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4286
4287         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
4288           of the operands is volatile. Fixes #1020220
4289
4290 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4291
4292         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
4293         * (OptimizeRegUsage): make sure that there is really no other flow where
4294           the first pCode is used
4295
4296 2005-01-22 Raphael Neider <rneider AT web.de>
4297
4298         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
4299           to fix #1106967 (pCode->seq are not set up correctly)
4300
4301 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4302
4303         * src/SDCCglue.c (glue): make sure code area is declared before the
4304         static initialization area.
4305
4306 2005-01-21 Raphael Neider <rneider AT web.de>
4307
4308         * device/lib/Makefile.in: fixed test for pic16 install dir
4309         * device/lib/pic16/*/Makefile*: modified compile flags to enable
4310           optimizations
4311         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
4312           added --optimize-goto compiler switch and pragma wparam documentation
4313         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
4314         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
4315           and PRODH closing bug #1071770 (peephole optimizer)
4316
4317 2005-01-19 Raphael Neider <rneider AT web.de>
4318
4319         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
4320           cmdLine buffers (used when calling sdcpp...) are large enough
4321           (MAX_PATH=256 truncates arguments leading to system halts when
4322           used in MinGW...)
4323         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
4324         * (genUminus): rewritten to for efficiency
4325         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
4326           used uninitialized in some cases)
4327         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
4328           copy the third byte from the int -- now assumes 0x80 (data memory)
4329         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
4330           operands (genAddLit expects the iCode's operands to swapped as
4331           well), fixed leftover bytes (crashed for short left operands)
4332         * (pic16_genMinusDec): performance improvements, removed false
4333           PIC14 emitSKPNCs
4334         * (pic16_genMinus): fixed to cope with differently sized operands
4335         * src/pic16/glue.c (pic16_glue): added new banksel optimization
4336           for --obanksel > 1
4337         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
4338         * src/pic16/graph.[ch]: implementation of directed graphs, used by
4339           new banksel optimization
4340         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
4341           analysis for temporary registers (segfaults...)
4342         * src/pic16/peeph.def: added rule
4343
4344 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
4345
4346         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
4347         which converts a float number to its ASCII representation
4348         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
4349         functions to convert the fractional and integer part of a float to ASCII,
4350         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
4351         realloc.c): added _MALLOC_SPEC to explicit place variables in data
4352         ram
4353         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
4354         _STATMEM macros,
4355         * device/include/pic16/adc.h: added GPL info,
4356         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
4357         a pCodeOp as tested operand,
4358         * (genNearPointerGet): optimized bit testing, does not use
4359         intermediate register for bit value, test directly instead with
4360         BTFSS, BTFSC, works only for single bits,
4361         * (genpic16Code): dump the name of the iCode in the asm,
4362         * src/pic16/ralloc.c (decodeOp): removed static declaration and
4363         renamed to pic16_decodeOp,
4364         * (serialRegAssign): do not allocate a temporary register for iCode
4365         sequences that test a single bit for 1/0
4366
4367 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
4368
4369         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
4370         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
4371         access stack and frame pointers. They are initially assigned to
4372         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
4373         accessing SFRs. Updated all occurences of modification of stack or
4374         frame pointer in gen.c and pcode.c,
4375         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
4376         assigning of a literal value to pointers,
4377         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
4378         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
4379         selected
4380
4381 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
4382
4383         * doc/sdccman.lyx: update documentation about stack pragma, added
4384         some info for stack memory models
4385
4386 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4387
4388         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
4389
4390 2005-01-08 Raphael Neider <rneider AT web.de>
4391
4392         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
4393           udata sections to fix bug #1097823
4394
4395 2005-01-05 Raphael Neider <rneider AT web.de>
4396
4397         * src/pic16/gen.c (genGenericShift): added handling of differently
4398           sized left operand and result
4399
4400 2005-01-04 Raphael Neider <rneider AT web.de>
4401
4402         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
4403         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
4404           to hold the condition bit)
4405         * added new version of genCmp (old code available via #define)
4406         * added new version of genShiftLeft/genShiftRight in a generic
4407           way, now supports shifting by negative values
4408         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
4409           shiftCount (expected by genGenericShift)
4410         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
4411         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
4412           dump
4413         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
4414           is an invalid literal too...)
4415
4416 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
4417
4418         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
4419         from Raphael Neider,
4420         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
4421         for 8-bit literals. This fixes some literal operands which are sign
4422         extended to 16-bits ints when instruction needs only 8-bits.
4423
4424 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
4425
4426         * device/lib/logf.c: added mcs51 assembly version
4427         * device/lib/expf.c: added mcs51 assembly version
4428         * device/lib/_logexpf.c: new shared asm code for expf and logf
4429         * device/include/math.h: add defines for assembly math library
4430         * device/lib/Makefile.in: build new _logexpf.c
4431         * device/lib/libfloat.lib: use new _logexpf.c
4432
4433 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4434
4435         * src/pic/device.c
4436         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
4437           device types which have less than 0x7f registers.
4438
4439 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4440
4441         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
4442
4443 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4444
4445         * device/lib/printf_fast.c: only build on supported arch.
4446         * device/lib/printf_tiny.c: only build on supported arch.
4447         * device/lib/printf_fast_f.c: only build if asm float lib
4448         * device/lib/_fsget1arg.c: only build if asm float lib
4449         * device/lib/_fsget2args.c: only build if asm float lib
4450         * device/lib/_fsnormalize.c: only build if asm float lib
4451         * device/lib/_fsreturnval.c: only build if asm float lib
4452         * device/lib/_fsrshift.c: only build if asm float lib
4453         * device/lib/_fsswapargs.c: only build if asm float lib
4454         * device/include/stdio.h: don't provide print_fast,
4455           print_fast_f, print_tiny prototypes if --xstack used
4456
4457 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
4458
4459         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
4460         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
4461           to the SOURCES
4462
4463 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4464
4465         * device/lib/printf_fast_f.c: same as printf_fast, but
4466           with floating point enabled
4467         * device/lib/printf_fast.c: minor tweaks
4468         * device/include/stdio.h: add printf_fast_f
4469
4470 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4471
4472         * src/SDCCmain.c: make --float-reent default for mcs51
4473         * device/lib/_fsadd.c: added mcs51 assembly version
4474         * device/lib/_fssub.c: added mcs51 assembly version
4475         * device/lib/_fsmul.c: added mcs51 assembly version
4476         * device/lib/_fsdiv.c: added mcs51 assembly version
4477         * device/lib/_fseq.c: added mcs51 assembly version
4478         * device/lib/_fsneq.c: added mcs51 assembly version
4479         * device/lib/_fsgt.c: added mcs51 assembly version
4480         * device/lib/_fslt.c: added mcs51 assembly version
4481         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
4482         * device/lib/Makefile.in: add _fscmp to build
4483         * device/lib/libfloat.lib: add _fscmp to build
4484
4485 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4486
4487         * device/lib/_fs2slong.c: added mcs51 assembly version
4488         * device/lib/_fs2sint.c: added mcs51 assembly version
4489         * device/lib/_fs2schar.c: added mcs51 assembly version
4490         * device/lib/_fs2ulong.c: added mcs51 assembly version
4491         * device/lib/_fs2uint.c: added mcs51 assembly version
4492         * device/lib/_fs2uchar.c: added mcs51 assembly version
4493         * device/lib/_slong2fs.c: added mcs51 assembly version
4494         * device/lib/_sint2fs.c: added mcs51 assembly version
4495         * device/lib/_schar2fs.c: added mcs51 assembly version
4496         * device/lib/_ulong2fs.c: added mcs51 assembly version
4497         * device/lib/_uint2fs.c: added mcs51 assembly version
4498         * device/lib/_uchar2fs.c: added mcs51 assembly version
4499         * device/include/float.h: added #define to select asm vs c
4500
4501 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
4502
4503         * device/lib/printf_fast.c: improvements to float output
4504         * device/include/float.h: add defines for assembly float library
4505         * device/lib/_fsget1arg.c: receive 1 float arg
4506         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
4507         * device/lib/_fsnormalize.c: normalize a float
4508         * device/lib/_fsreturnval.c: return float, various helper routines
4509         * device/lib/_fsrshift.c: right shift a float's mantissa
4510         * device/lib/_fsswapargs.c: swap 2 floats
4511         * device/lib/Makefile.in: build these 6 new files for mcs51
4512         * device/lib/libfloat.lib: add these 6 files to the library
4513
4514 2004-12-26 Borut Razem <borut.razem AT siol.net>
4515
4516         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
4517           built by gcc 3.4.2
4518
4519 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
4520
4521         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
4522           and fully reentrant and register bank neutral.
4523         * device/lib/printf_fast.c: added float (not enabled by default),
4524           added compact/slower integer (also not enabled by default),
4525           improved size/speed of fast integer code, other minor changes
4526         * device/include/stdio.h, device/lib/Makefile.in,
4527           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
4528
4529 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
4530
4531         * src/pic16/pcode.c: declaring variables other than at the start of a
4532           block is not supported in C by VC6.
4533
4534 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
4535
4536         * applied a previous patch from Raphael Neider that wasn't included
4537         in the previous commits, which fixes infinite loops within jumptable
4538         improvements,
4539         * made some fixes that previous patches introduced
4540
4541 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
4542
4543         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
4544         that fixes an issue with AOP_PCODE asmop's offset,
4545         * (pic16_popCopyReg): update instance field too,
4546         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
4547         function of pic port,
4548         * (genCmp, genAnd, genAssign),
4549         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
4550
4551 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
4552
4553         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
4554         variables initial values to idata section,
4555         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
4556         variables in some functions. This utilizes parmBytes field of iCode
4557         structure to hold the offset of the variable in stack. (might be
4558         able to use the stack field too?)
4559         * applied patch from Raphael Neider # ### , # ###
4560         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
4561         variable initial values in idata section,
4562         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
4563         for static variables with initial value
4564         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
4565         applied fix in while loop from Raphael Neider.
4566
4567 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
4568
4569         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
4570         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
4571         * src/ds390/ralloc.c (serialRegAssign): spill bits
4572         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
4573         * support/Util/SDCCerr.c,
4574         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
4575         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
4576         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
4577
4578 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
4579
4580         * device/include/sdcc-lib.h: inserted LGPL, added includes
4581           asm/ds390/features.h and asm/mcs51/features.h
4582         * device/include/asm/default/features.h,
4583         * device/include/asm/gbz80/features.h,
4584         * device/include/asm/z80/features.h: added empty _AUTOMEM
4585           and _STATMEM
4586         * device/include/asm/ds390/features.h,
4587         * device/include/asm/mcs51/features.h: added files with defines for
4588           _AUTOMEM and _STATMEM indicating automatic and static storage class
4589         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
4590         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
4591         * src/SDCCicode.c (geniCodeCast),
4592         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
4593         * src/SDCCloop.c (loopInduction): removed unused variable lr
4594         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
4595           to convertToFcall to include char modulo (RFE 1065037), added check
4596           if left operand is unsigned and use abs of literal value
4597         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
4598           as it doesn't work after conversion from peephole.def to peephole.rul
4599         * src/mcs51/gen.c (toBoolean): added check for size,
4600           (genModOneByte): optimized code for signed char modulo a literal
4601           power of 2 (thanks to Hubert Sack),
4602           (genRRC): removed unnecessary "clr c",
4603           (genRLC): replaced "add a,acc" with cheaper "rlc a"
4604         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
4605           jump optimization,
4606           swapped rules 256.c and 256.d,
4607           extended 256.d by using new multiple checks (thanks Erik),
4608           added rules 256.e and 256.f,
4609           updated rule 261.a and 261.b to new generated code
4610         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
4611
4612 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4613
4614         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
4615           induction related bugs, including first part of bug #1074377
4616
4617 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
4618
4619         * applied patch from bug-report #1076292,
4620         * applied patches for genAnd and Goto-optimizations for Raphael
4621         Neider,
4622         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
4623         dump a less iCode information,
4624         * src/pic16/device.h (pic16_options_t): added field debgen,
4625         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
4626         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
4627         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
4628         puclic,
4629         * (various functions): added macros FENTRY and FENTRY2 to functions,
4630         to emit function prologue,
4631         * (various functions): fixed indentation,
4632         * (genNearPointerGet): fixed loading of FSR0,
4633         * (genPackBits): applied patch from Raphael Neider to fix updating
4634         of FSR0 and touching only the modified bits,
4635         * src/pic16/genarith.c (various functions): added macros FENTRY to
4636         emit function prologue in comments,
4637         * src/pic16/pcode.h: added functions debugf2, debugf3,
4638         * src/pic16/ralloc.c: partial fix for packForPush caused
4639         segmentation fault,
4640
4641 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4642
4643         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
4644           <stsp AT users.sourceforge.net> with reversed byte order
4645         * support/regression/tests/rotate.c: added (ds390 skips some tests)
4646
4647 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4648
4649         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
4650           bug #1074377
4651         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
4652         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
4653
4654 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
4655
4656         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
4657
4658 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4659
4660         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
4661           conditions,
4662           (setFromConditionArgs): friendly operand parser for peephole rules,
4663           (operandBaseName, operandsNotRelated): new peephole condition
4664           "operandsNotRelated" -- similar to "operandsNotSame", but takes
4665           architecture specific register naming into account, handles n-way
4666           comparisons, and supports quoted literals
4667         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
4668
4669 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4670
4671         * src/mcs51/peeph.def: fixed bug #1076940
4672
4673 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
4674
4675         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
4676
4677 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4678
4679         Adding support for replacing ljmps with sjmps in jumptables
4680         generated for switch statements. For now you need to set the
4681         environment variable SDCC_SJMP_JUMPTABLE to enable this.
4682         Now 4 algorithms for mcs51 jumptable generation are used:
4683         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
4684         addresses loaded pc-relative for up to 112 cases and stack-pushing
4685         target addresses loaded with offset from dptr for up to 256 cases.
4686
4687         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
4688         * src/mcs51/main.c: adapted constants for switch table generation
4689         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
4690
4691 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
4692
4693         * device/lib/printf_large.c (_print_format): fixed bug 1073386
4694         * support/regression/tests/bug1057979.c: added test for bug 1073386
4695
4696 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
4697
4698         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
4699         compilers
4700
4701 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
4702
4703         * src/pic16/device.h,
4704         * src/pic16/genarith.c,
4705         * src/pic16/glue.c,
4706         * src/pic16/main.c,
4707         * src/pic16/pcode.c: applied patches #1068154 and #1070213
4708
4709 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
4710
4711         Large cummulative patch for pic16 port.
4712         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
4713         to call when a stack overflow occurs,
4714         * (malloc.h): added CVS Id tag,
4715         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
4716         variable,
4717         * added libc directory. The current version of LibC contains string
4718         functions, ctype functions and macros and some functions of the
4719         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
4720         be extensively tested in the future. Standard disclaimer here.
4721         Library is not automatically build yet. But one can build it by
4722         invoking 'make' inside the libc directory.
4723         * added ADC library under libio. Preliminary version yet.
4724
4725         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
4726         * src/pic16/gen.c (aopForRemat): asmop size is filled by
4727         aopForRemat() now and not by pic16_aopOp(),
4728         * (pic16_popGetTempReg): removed warning messgae when allocating
4729         temporary registers, its a buggy feature and will be removed,
4730         * (pic16_popGet): set register instance field in AOP_CRY,
4731         * (pic16_outBitC): fixed for results in size greater than 1,
4732         * (genUminusFloat): fixed for pic16, ported code from mcs51,
4733         * (pic16_storeForReturn): optimized return of 0,
4734         * (genCmp): experimental code for new genCmp which uses PIC18's
4735         special compare&skip instructions. Initial tests fail some times
4736         with variables grater than 1 byte in size, so new code is disabled,
4737         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
4738         a single bit,
4739         * (genCast): began a fix to optimize the casting of a bit to another
4740         bit, now assigning a bitfield to another bitfield will fail, sorry,
4741         * src/pic16/main.c: disabled the use of lr-support feature,
4742         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
4743         * added some function prototypes, added function _debugf prototype,
4744         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
4745         bits with offset (case PO_GPR_BIT),
4746         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
4747         command line,
4748         * (isBankInstruction): modified to return 0 for no banking instruction,
4749         and 1 for banking instruction,
4750         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
4751         caused stop processing pCodes after a inline assembly block,
4752         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
4753         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
4754         registers when it shouldn't,
4755         * src/pic16/ralloc.c (allocReg): add preliminary support for
4756         supporting a limited set of temporary registers,
4757
4758 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4759
4760         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
4761           genDataPointerSet): ensure assignments always copy in MSB to LSB
4762           order,
4763           (loadRegFromAop): recognize CLRH optimization,
4764           (genFunction): optimize RECEIVE iCodes in reentrant functions
4765
4766 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4767
4768         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
4769           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
4770           selected.
4771         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
4772         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
4773           contiguous with data
4774
4775 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4776
4777         * device/lib/_gptrget.c (_gptrget),
4778         * device/lib/_gptrgetc.c (_gptrgetc),
4779         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
4780           instead of sjmp to ret
4781         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
4782           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
4783
4784 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4785
4786         * .version: bumped version to 2.4.7
4787         * device/lib/_gptrget.c (_gptrget): is now _naked
4788         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
4789         * device/lib/_gptrput.c (_gptrput): is now _naked
4790         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
4791           (createFunction): fixed xstack
4792         * src/SDCCglue.c (emitMaps): set allocation required for bit area
4793         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
4794           or bit either,
4795           (geniCodeCritical): store original interrupt state in an iTemp bit
4796           var unless stack-auto
4797         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
4798         * src/SDCCmain.c (setIncludePath): added include/target to search path
4799         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
4800         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
4801           prototype,
4802           (processFuncArgs): put bit vars in bit area
4803         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
4804           unsaveRBank): fixed xstack,
4805           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
4806           (genFunction, genEndFunction): fixed xstack,
4807           (genAssign): optimization don't walk backwards through mem
4808         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
4809         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
4810         * support/regression/Makefile: also make library (for stack-auto) when
4811           making "all" and added "test-mcs51-xstack-auto"
4812         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
4813         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
4814         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
4815         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
4816         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
4817           make-library by MAKE_LIBRARY
4818         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
4819           regression tests for xstack
4820         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
4821         * support/regression/tests/critical.c: test for critical on mcs51
4822
4823 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4824
4825         * support/regression/ports/ucz80/spec.mk: use include and lib files from
4826           built version of sdcc instead of installed version
4827
4828 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4829
4830         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
4831         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
4832           vprintf.c now
4833         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
4834         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
4835           WARNING: remove device/lib/build/z80/printf.o by hand when
4836           updating from previous build!
4837         * device/lib/z80/printf.c: updated comment
4838         * support/regression/tests/bug1057979.c: test all ports now
4839         * support/regression/tests/bug1065458.c: file added
4840
4841 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4842
4843         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
4844           *_start and *_end symbols for static functions
4845
4846 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
4847
4848         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
4849           and search crt0.o in all library paths,
4850           (setIncludePath): proper handling of --nostdinc,
4851           (setLibPath): proper handling of --nostdlib
4852         * support/regression/Makefile,
4853         * support/regression/ports/ds390/spec.mk,
4854         * support/regression/ports/gbz80/spec.mk,
4855         * support/regression/ports/hc08/spec.mk,
4856         * support/regression/ports/mcs51/spec.mk,
4857         * support/regression/ports/mcs51-large/spec.mk,
4858         * support/regression/ports/mcs51-stack-auto/spec.mk,
4859         * support/regression/ports/z80/spec.mk: use include and lib files from
4860           built version of sdcc instead of installed version
4861         * doc/sdccman.lyx: fixed typo in --nostdinc
4862
4863 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
4864
4865         * src/pic/pcode.c,
4866         * src/pic/device.c,
4867         * src/pic/ralloc.c,
4868         * src/pic/gen.c : added support to generate code for struct bit fields.
4869
4870 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4871
4872         * as/xa51/xa_version.h,
4873         * device/include/errno.h,
4874         * device/include/regc515c.h,
4875         * device/lib/_itoa.c,
4876         * device/lib/_ltoa.c,
4877         * device/lib/ser_ir_cts_rts.c,
4878         * sim/ucsim/xa.src/glob.cc,
4879         * sim/ucsim/xa.src/inst_gen.cc,
4880         * sim/ucsim/xa.src/xa_bit.cc,
4881         * sim/ucsim/xa.src/xa_sfr.cc,
4882         * sim/ucsim/z80.src/inst_dd.cc,
4883         * sim/ucsim/z80.src/inst_fdcb.cc,
4884         * support/scripts/keil2sdcc.pl,
4885         * src/pic16/pic16.dsp,
4886         * src/pic16/pic16a.dsp: corrected cvs line endings
4887         * device/lib/printf_large.c: fixed bug 1057979
4888         * src/pic16/gen.c: fixed non-C standard code
4889         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
4890         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
4891         * support/regression/ports/mcs51/support.c: reload T1 asap
4892         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
4893           pdata use and clear idata startup behaviour
4894         * support/regression/tests/bug1057979.c: added
4895
4896 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
4897
4898         * device/examples/ds390/ow390/ad26.h,
4899         * device/examples/ds390/ow390/cnt1d.h,
4900         * device/examples/ds390/ow390/crcutil.c,
4901         * device/examples/ds390/ow390/ownet.h,
4902         * device/examples/ds390/ow390/owsesu.c,
4903         * device/examples/ds390/ow390/swt12.h,
4904         * device/examples/ds390/ow390/swtoper.c,
4905         * device/examples/ds390/ow390/temp10.h,
4906         * device/examples/ds390/ow390/thermodl.c,
4907         * device/examples/ds390/tinitalk/tinitalk.dsp,
4908         * device/examples/ds390/tinitalk/tinitalk.dsw,
4909         * device/examples/mcs51/clock/hw.h,
4910         * device/examples/mcs51/simple2/go.bat,
4911         * device/examples/serialcomm/windows/serial.h,
4912         * device/examples/xa51/dummy.c,
4913         * device/examples/xa51/hello.c,
4914         * device/include/80c51xa.h,
4915         * device/include/at89x051.h: corrected cvs line endings
4916
4917 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
4918
4919         * src/pic16/main.c (options): added command line --gstack, to trace
4920         stack over/under flows,
4921         * added pragma 'wparam' to allow passing first byte of function
4922         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
4923         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
4924         call to __gstack_test function and sets up the symbol as extern,
4925         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
4926         * popaop): added call to pic16_testStackOverflow,
4927         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
4928         wparamList list,
4929         * (genCall, genPcall): now all parameters are passed via stack
4930         except in functions that are pass to wparam pragma in which WREG is
4931         used too,
4932         * (genPcall): REENTRANT flag is checked to see if variable prototype
4933         contains reentrant keyword, don't call a non-reentrant function, via
4934         a reentrant function pointer or vice versa, functions are never
4935         passed via WREG,
4936         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
4937         D.Winkler,
4938         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
4939         SIGSEGV when accessing a NULL register stucture,
4940         * (pic16_printGPointerType): modified to handle UPPER modifier for
4941         function initializers, changed prototype of function to simpler one,
4942         * (pic16_printIvalFuncPtr): check to see if function is already
4943         added in externs list,
4944         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
4945         optimized a move from W to SFR with a move to the same register
4946         later after a CALL,
4947         * device/lib/pic16/debug: NEW directory, contains debug features
4948         which are enabled when linking with libdebug.lib, currently command
4949         line option --gstack enables stack pointer tracing for over/under
4950         flow, corresponding sources are in debug/gstack
4951
4952 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
4953
4954         * doc/sdccman.lyx: updated SDCC version,
4955         * (PIC16 port): update list of command line options,
4956         * src/pic16/device.h (structure pic16_options_t): added field gstack
4957         to enable stack overflow tracing on push/pops,
4958         * src/pic16/device.c (statistics structure): added statistics
4959         structure,
4960         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
4961         pic16_dump_int_registers): increase statistics counters for each
4962         * variable which is encountered
4963         * (pic16_dump_usection): emit each .udata variable to its own udata
4964         section,
4965         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
4966         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
4967         parameters via stack, otherwise use old scheme,
4968         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
4969         assembler output file,
4970         * src/pic16/main.c: added command line options --gstack to enable
4971         push/pop tracing for stack overflow,
4972         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
4973         instructions): added size of each instruction,
4974         * (pic16_countInstruction): estimate size of instructions in
4975         the_pFile list, inline assembly blocks are not counted,
4976         * (pic16_FixRegisterBanking): trace previous register usage, when
4977         banksel optimizations is greater than 0, don't emit a redudant
4978         banksel directive,
4979
4980 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
4981
4982         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
4983         * src/pic16/ralloc.c : applied same fix for pic16.
4984         * src/pic/gen.c : tidied it up a little.
4985
4986 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4987
4988         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
4989         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
4990
4991 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4992
4993         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
4994
4995 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4996
4997         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
4998         non-reentrant function __modsint in the interrupt function (thus
4999         corrupting math operations during serial I/O)
5000         * device/lib/ser_ir.c: as above, changed buffersize
5001         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
5002         256.c,d for zeroing
5003         * doc/Makefile: added option -t for rsync
5004
5005 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5006
5007         * src/SDCCast.h (struct ast),
5008         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
5009
5010 2004-10-20 Borut Razem <borut.razem AT siol.net>
5011
5012         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
5013         package
5014
5015 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
5016
5017         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
5018         makefile targets,
5019         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
5020         support functions to replace long sequences of MOVFF's from access
5021         bank registers to stack and vice versa,
5022         * src/pic16/device.h: added new field opt_flags, where optimization
5023         flags can be set to enable certain features,
5024         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
5025         * pBlock, (genFunction, genEndFunction): surroung loop for
5026         saving/loading used registers in stack with PC_INFO pCodes,
5027         INF_LREGS. Code in between can then be optimized by pCode optimizer
5028         to support function calls,
5029         * (genDataPointerSet): fixed bug which loaded float fields in
5030         structures with corrupt data,
5031         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
5032         in a standard way debug info on stderr. Feature used for developing
5033         and debugging only,
5034         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
5035         obsolete chunks of code,
5036         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
5037         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
5038         * pic16/src/pcode.c (pic16_newpCodeInfo,
5039         * (pic16_newpCodeOpLocalRegs),
5040         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
5041         feature,
5042         * (pic16_pCodeConstString): printing of the initial value of a
5043         symbol as a comment is inhibited since parsing was already done by
5044         copyStr and output is corrupt,
5045         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
5046
5047 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5048
5049         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
5050
5051 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
5052
5053         * as/mcs51/lkarea.c: removed old K&R style,
5054           (lnksect): changed check on boundary error,
5055           (lnksect2): changed check on boundary error,
5056           (lnksect2): extend XSTK to end of page if size = 1
5057         * as/mcs51/lkmain.c: removed old K&R style,
5058           (Areas51): create l_IRAM symbol
5059         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
5060         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
5061           model-mcs51-stack-auto, added model-mcs51-xstack-auto
5062         * device/lib/_mullong.c: added version to be compiled with xstack
5063         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
5064         * device/lib/mcs51/crtxclear.asm: clear pdata as well
5065         * device/lib/mcs51/crtxstack.asm: fixed comment
5066         * src/SDCCglue.c: maxInterrupts defaults to 0,
5067           (emitMaps): added pdata,
5068           (createInterruptVect): (re)moved default,
5069           (glue): added pdata,
5070           (glue): moved __start__xstack to XSTK with default size 1
5071         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
5072           and options.float_rent when options.stackAuto is set,
5073           (linkEdit): only write XDATA_NAME if provided on command line
5074         * src/SDCCmem.h,
5075         * src/SDCCmem.c: added pdata
5076         * src/port.h: added pdata_name to PORT
5077         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
5078           (saveRegisters, unsaveRegisters): removed usage of B,
5079           (genMinus): fixed accumulator clash,
5080           (genJumpTab): added comment, this needs another look
5081         * src/mcs51/gen.c: added check for "B in use" paranoia,
5082           added pushB() and popB()
5083         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
5084           chance
5085         * src/avr/main.c,
5086         * src/ds390/main.c,
5087         * src/hc08/main.c,
5088         * src/mcs51/main.c,
5089         * src/pic/main.c,
5090         * src/pic16/main.c,
5091         * src/xa51/main.c,
5092         * src/z80/main.c: (reset_regparms) made void parameter explicit and
5093           added PSEG (PAG,XDATA) or NULL to port specifier
5094         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
5095         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
5096           (_mcs51_genInitStartup): removed __start__xstack equ,
5097           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
5098         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
5099         * src/z80/gen.c (_rleAppend): fixed warnings
5100         * support/regression/tests/zeropad.c: added pdata test
5101         * .version: bumped to 2.4.6
5102
5103 2004-10-17 Borut Razem <borut.razem AT siol.net>
5104
5105         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
5106         as a part of nightly build
5107
5108 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
5109
5110         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
5111         WREG holds the first byte function parameters,
5112         * (aopForSym): take special case for symbols which are in FARSPACE
5113         but in CODESPACE too,
5114         * (assignResultValue): modified to take into account _G.useWreg,
5115         * (genCall): don't use wreg for parameter passing when function is
5116         declared as reentrant, too, added optimization INCF to stack
5117         pointer when stack parameter count is 1,
5118         * (genFunction, genEndFunction): refurnished and fixed to not using
5119         wreg for passing parameters when function has varargs or is
5120         reentrant, fixed bug with symbol name compare for generating
5121         functions in absolute address,
5122         * (pic16_storeForReturn): refurnished,
5123         * (genCmp): began writing a new version of the function, not ready
5124         yet, therefore it is disabled,
5125         * (genAssign): do not read code memory when assigning a function to
5126         a pointer function,
5127         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
5128         array of characters, not pointer,
5129         * (pic16initialComments): in debug mode emit an .ident directive for
5130         the assembler,
5131         * (_process_pragma): emit a new warning type (internal to pic16)
5132         when setting stack to default length, emit a similar warning when
5133         placing a function at absolute address and address is not word aligned
5134         * (_pic16_parseOptions): added 'return TRUE' statement,
5135         * (_pic16_linkEdit): if compiling a source, then add the source's
5136         file object, first in the list of objects to link,
5137
5138 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
5139
5140         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
5141         * src/pic/main.c : removed VC warning.
5142         * src/pic/gen.c : changed comment.
5143
5144 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
5145
5146         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
5147         reference to a deprecated symbol _GPTRREG was causing failure to
5148         link. Thanks G. M. Gallant for the info.
5149
5150 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
5151
5152         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
5153         comments for Bugs item #954788.
5154
5155 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
5156
5157         * src/pic16/device.c (pic16_dump_gsection,
5158         * pic16_groupRegistersInSection): handle symbols declared to be in
5159         access bank differently,
5160         * src/pic16/gen.c (struct _G): added field resDirect,
5161         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
5162         send values read from stack directly to result and don't allocate
5163         temporary values,
5164         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
5165         same registers,
5166         * (pic16_sameRegsOfs): NEW,
5167         * (freeAsmop): if _G.resDirect is set then do not mark registers as
5168         free because they were not allocated from temporary pool,
5169         * pic16_popRegFromString): workaround to fix a problem with
5170         allocating variables twice or never,
5171         * (genGenPointerGet): using PRODL instead of FSR0H,
5172         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
5173         instead of FSR0H,
5174         * (genAssign): take advantage of the _G.resDirect flag,
5175         * (genCast): around line 11844, use mov2f instead of directly
5176         MOVFF'ing between operands to account for literal values,
5177         * src/pic16/genutils.c: some new debug functions for gpsim have been
5178         added,
5179         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
5180         float with integer part only,
5181         * src/pic16/main.c (_process_pragma): handle pragma udata access to
5182         place variables in access bank
5183         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
5184         updated sources to reflect recent changes in gen.c
5185
5186 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
5187
5188         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
5189         sources that searched for headers in installation path, now the
5190         device/include/pic16 is used,
5191         * src/pic16/glue.c (pic16glue),
5192         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
5193         .line directives if not in debug mode, this suppresses assembler's
5194         warnings for ignored directives
5195
5196 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5197
5198         * src/port.h: made reset_regparms prototype void parameter explicit.
5199         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
5200         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
5201         * doc/sdccman.lyx: documented warning disabling and how to use
5202           printf_large to make it print floats.
5203         * device/include/stdbool.h: NEW
5204         * device/lib/_atof.c,
5205         * device/lib/_divuint.c,
5206         * device/lib/_divulong.c,
5207         * device/lib/expf.c,
5208         * device/lib/printf_large.c,
5209         * device/lib/sincosf.c,
5210         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
5211         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
5212           a completely reentrant lib.
5213
5214 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
5215
5216         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
5217         * device/include/pic16/stdio.h: fixed bug with colon
5218
5219 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
5220
5221         * device/include/pic16/stdio.h,
5222         * device/include/pic16/stdlib.h,
5223         * device/include/pic16/math.h: NEW
5224         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
5225         declared as _naked to reduce overhead
5226         * device/lib/Makefile.in (target port-specific-objects-pic16):
5227         changed * to *.* so to ignore the CVS directory,
5228         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
5229         stacked variables back in stack,
5230         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
5231         corruption
5232
5233 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
5234
5235         * .version: bumped version number to 2.4.5
5236         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
5237         * support/Util/SDCCerr.c (messages structure): added entry for
5238         W_POSSBUG2
5239
5240         Large cumulative patch for pic16 port and libraries.
5241         * device/include/pic16/sdcc-lib.h,
5242         * device/include/pic16/stdarg.h,
5243         * device/include/asm/pic16/features.h,
5244         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
5245         * device/include/pic16/float.h: changes reentrant keyword with
5246         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
5247         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
5248         updated target build-libraries to include objects from gptr,
5249         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
5250         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
5251         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
5252         all function headings,
5253         * src/SDCCmain.c: added global parameter userIncDirsSet,
5254         * (parseCmdLine): when option -I is encountered add directory to
5255         userIncDirsSet too,
5256         * src/version.awk: added space between control and long,
5257         * src/pic16/NOTES: added some notes for the port,
5258         * src/pic16/gen.c: added prototype for mov2fp function,
5259         * (fReturnpic16[]): properly named return value registers,
5260         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
5261         * (aopForSym): added code to handle symbols with onStack flag set,
5262         symbols onStack are allocated PTRSIZE bytes,
5263         * (aopFreeAsmop): handles special case where asmops are stack objects,
5264         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
5265         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
5266         added argument lock to trace flaws in allocating temporary registers
5267         when developing port,
5268         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
5269         * (pic16_popRegFromString): reenabled allocating a direct register
5270         from string,
5271         * (assignResultValue): various beautifications,
5272         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
5273         referenced function argument,
5274         * (genIpush): reenabled to allow stacked arguments, handles only
5275         ic->parmPush iCodes,
5276         * (genCall, genPcall): major changes to allow for variable argument
5277         functions, fixed a bug with falsely restoring stack pointer after
5278         returning from call,
5279         * (genFunction): pending code for critical function,
5280         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
5281         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
5282         * (genNearPointerGet): fixed bug with indirect reading, was always
5283         reading from INDF0
5284         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
5285         pointers,
5286         * (genAddrOf): rewrote code to take address of a stacked function parameter
5287         * (genCast): fixed casting to generic pointer type,
5288         * src/pic16/gen.h: added AOP_STA,
5289         * (struct asmop): added field stk,
5290         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
5291         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
5292         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
5293         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
5294         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
5295         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
5296         generic pointers,
5297         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
5298         and library paths,
5299         * (pic16_port structure): generic pointer size is set to 3,
5300         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
5301         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
5302         compiler warning,
5303         * src/pic16/ralloc.c (allocReg): prevent allocating register when
5304         operand is an iTemp,
5305
5306 2004-09-24 Martin Helmling <mh AT octo-soft.de>
5307
5308         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
5309         * debugger/mcs51/simi.c: addapt new syntax of s51
5310
5311 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
5312
5313         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
5314         * src/pic16/pcode.c: commented out some calls to free() in order to
5315         fix bug #989576,
5316
5317 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5318
5319         * src/SDCCicode.h,
5320         * src/SDCCicode.c (isiCodeInFunctionCall),
5321         * src/avr/ralloc.c (selectSpil),
5322         * src/pic/ralloc.c (selectSpil),
5323         * src/pic16/ralloc.c (selectSpil),
5324         * src/ds390/ralloc.c (selectSpil),
5325         * src/hc08/ralloc.c (selectSpil),
5326         * src/xa51/ralloc.c (selectSpil),
5327         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
5328         stack in the middle of a function call sequence (fixes bug #1020268)
5329         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
5330         costs associated with the minimum switch case.
5331
5332 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5333
5334         * src/SDCC.lex: fixed bug #1030549
5335
5336 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5337
5338         * src/SDCCcse.h (struct cseDef),
5339         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
5340         over a function call if the CSE is derived from a symbol whose
5341         address has been taken (fixes bug #1029883)
5342         * support/regression/tests/bug-1029883: a new regression test for
5343         this bug
5344
5345 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5346
5347         * src/hc08/gen.c (emitinline): fixed bug #1029778
5348         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
5349         to a cast object is no longer a syntax error ("fixes" bug #1030006,
5350         and starts toward RFE #905167)
5351
5352 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
5353
5354         * src/pic16/gen.c (mov2f): New function to move an operand to
5355         another without considering if it is a literal or a register,
5356         * (pic16_sameRegs): don't check if they are both AOP_REG,
5357         * (AccRsh): removed andmask=0 lines,
5358         * (genLeftShift): duplicated to be improved in future versions,
5359         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
5360         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
5361         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
5362         * (pic16initMnemonics): added initialization for POC_INFSNZW,
5363         * (insertBankSwitch): fixed inserting banksel directives algorithm
5364         for instructions that follow a skip instruction, this fixes a report
5365         for broken subtraction code generation,
5366         * src/pic16/ralloc.c (deassignLRs): do not free register if current
5367         iCode is a left op, just in case result and right share the same
5368         registers
5369
5370 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5371
5372         * src/hc08/main.c,
5373         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
5374         preservation of HX
5375         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
5376         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
5377         on 2004-09-12; it was buggy
5378
5379 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
5380
5381         * src/SDCCsymt.h: removed RESULT_CHECK
5382         * src/SDCCast.c,
5383         * src/SDCCglue.c,
5384         * src/SDCCval.c,
5385         * src/pic/glue.c,
5386         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
5387
5388 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
5389
5390         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
5391         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
5392         configuration values no more rejected by compiler, they are assigned
5393         to configuration registers with a warning message instead,
5394         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
5395         the for-loop so last conf register is emitted too,
5396         * (_pic16_initPaths): link library libsdcc.lib by default,
5397         * (_hasNativeMulFor): modified test for multiplication according to
5398         Raphael Neider's remarks. Integer multiplication is also done with
5399         support functions,
5400         * device/include/pic16/pic18fregs.h: corrected type error in while
5401         testing and including 18f6720 header file
5402
5403 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
5404
5405         * src/pic16/device.h (pic16_options): removed field use_crt,
5406         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
5407         until an optimization to handle single bits is added,
5408         * (pic16_loadFSR0): moved before genUnpackBits,
5409         * (genAnd): some white lines removed,
5410         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
5411         leave_reset flags in pic16_options when using crt modules,
5412
5413 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
5414
5415         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
5416           for bugs 898889 & 979599. Also used some safer print instructions.
5417
5418 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
5419
5420         * src/pic16/device.h (pic16_options_t): added field use_crt,
5421         crt_name, no_crt,
5422         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
5423         catch a probable future bug,
5424         * src/pic16/gen.c: aopIdx function commented out,
5425         * (genAssign): commented out old code which used aopIdx,
5426         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
5427         code, added if conditionals to take into account the --use-crt
5428         command line options,
5429         * src/pic16/main.c (pic16_optionsTable): added new command line
5430         options, --use-crt= and --no-crt,
5431         * (_pic16_linkEdit): now the proper crt object is added in the
5432         linker command line except than when --no-crt is specified,
5433         * src/pic16/pcode.c,
5434         * src/pic16/pcode.h: added some structures and functions for a new
5435         optimization scheme to compansate for instruction overhead between
5436         same iCodes, this scheme is currently under development and is not
5437         working in any way,
5438         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
5439         to && operator,
5440         * device/lib/pic16/startup/crt0i.c,
5441         * device/lib/pic16/startup/crt0iz.c: added global char variable
5442         __uflags to force the generation of an idata section
5443
5444 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
5445
5446         * doc/Makefile,
5447         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
5448         * doc/sdccman.lyx: updated sdcc version to 2.4.4
5449
5450 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5451
5452         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
5453         Frieder) and clarified the default code optimization mode
5454
5455 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5456
5457         * src/SDCC.lex (doPragma, process_pragma),
5458         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
5459         "opt_code_size", and "opt_code_balanced"
5460         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
5461         regrouped options by category, added support for category headers
5462         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
5463         and "--opt-code-size"
5464         * doc/sdccman.lyx: documented these new options and pragmas
5465         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
5466         preference into account
5467
5468 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5469
5470         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
5471           geniCodePreDec): Fixed bug 904237 by generating a warning
5472         * src/SDCCerr.h,
5473         * src/SDCCerr.c: added warning W_SIZEOF_VOID
5474
5475 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
5476
5477         * src/pic/device.c : When no max ram set validate full memory range.
5478         * src/pic/pcode.c,
5479         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
5480
5481 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5482
5483         * device/lib/_gptrget.c,
5484         * device/lib/_gptrput.c: updated comment
5485         * device/lib/calloc.c,
5486         * device/lib/free.c,
5487         * device/lib/malloc.c,
5488         * device/lib/realloc.c: added LGPL, made them reentrant-safe
5489         * src/SDCCcse.c (cseBBlock),
5490         * src/SDCCicode.c (printOperand, geniCodeArray),
5491         * src/SDCCicode.h (struct operand): fixed bug 868103
5492         * support/regression/tests/bug-868103.c: added
5493         * src/SDCCast.c (searchLitOp),
5494         * src/SDCCcse.h (struct cseDef),
5495         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
5496         * src/SDCCicode.h (struct operand),
5497         * src/SDCCsymt.h (struct sym_link),
5498         * src/avr/gen.c (hasInc),
5499         * src/ds390/gen.c (hasInc),
5500         * src/hc08/gen.c (genPlusIncr, hasInc),
5501         * src/mcs51/gen.c (hasInc),
5502         * src/pic16/glue.c (pic16_printIvalChar),
5503         * src/pic16/ralloc.c (regWithIdx),
5504         * src/xa51/gen.c (hasInc) : removed warnings
5505         * src/SDCCast.c (createBlock): added comment ???
5506         * src/hc08/ralloc.c: updated comments
5507
5508 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5509
5510         * doc/sdccman.lyx: updated section on switch statements, added
5511         section about semaphore locking
5512         * doc/Makefile: added option -info for latex2html
5513         * device/lib/_gptrget.c,
5514         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
5515
5516 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5517
5518         * src/pic/device.h,
5519         * src/pic/device.c,
5520         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
5521          maxram is less than 0x100.
5522
5523 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5524
5525         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
5526
5527 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5528
5529         * src/port.h,
5530         * src/mcs51/main.c,
5531         * src/ds390/main.c,
5532         * src/z80/main.c,
5533         * src/hc08/main.c,
5534         * src/pic/main.c,
5535         * src/pic16/main.c,
5536         * src/avr/main.c,
5537         * src/xa51/main.c
5538         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
5539         a jump table is the best form for a switch statement, including
5540         automatic insertion of missing cases to make the case range
5541         continuous. Developed in collaboration with Frieder Ferlemann.
5542
5543 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5544
5545         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
5546         accumulator result if it needs sign extension
5547
5548 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5549
5550         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
5551
5552 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5553
5554         * device/lib/gbz80/printf.c,
5555         * device/lib/z80/printf.c: removed define for NULL
5556
5557 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5558
5559         * as/xa51/xa_link.c,
5560         * device/examples/ds390/ow390/ad26.c,
5561         * device/examples/ds390/ow390/cnt1d.c,
5562         * device/examples/ds390/ow390/counter.c,
5563         * device/examples/ds390/ow390/ds2480.h,
5564         * device/examples/ds390/ow390/ds2480ut.c,
5565         * device/examples/ds390/ow390/findtype.c,
5566         * device/examples/ds390/ow390/gethumd.c,
5567         * device/examples/ds390/ow390/owllu.c,
5568         * device/examples/ds390/ow390/ownetu.c,
5569         * device/examples/ds390/ow390/swt12.c,
5570         * device/examples/ds390/ow390/swtloop.c,
5571         * device/examples/ds390/ow390/temp.c,
5572         * device/examples/ds390/ow390/temp10.c,
5573         * device/examples/ds390/ow390/thermo21.c,
5574         * device/examples/ds390/ow390/tinilnk.c,
5575         * device/examples/ds390/ow390/tstfind.c,
5576         * device/examples/serialcomm/windows/serial.cpp,
5577         * device/examples/serialcomm/windows/test_serialcomm.cpp,
5578         * device/include/reg51.h: fixed line endings for cvs
5579
5580 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5581
5582         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
5583         packRegsForAccUse, packRegisters): new accumulator register
5584         packing algorithm
5585         * support/regression/ports/hc08/support.c (_putchar): suppress
5586         warning of unused variable
5587         * src/SDCCicode.c: added SWAP entry to codeTable
5588
5589 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
5590
5591         * device/lib/sprintf.c: forgot to add this file before previous commit
5592
5593 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
5594
5595         * src/pic16/gen.c (genPackBits): added operand right in function
5596         parameters, load result directly if p_type is POINTER (that is
5597         called by genNearPointerSet)
5598         * (genUnPackBits): added operand left in function parameters,
5599         * (genNearPointerGet, genNearPointerSet): prevent the loading of
5600         FSR0 if accessing bitfields,
5601
5602 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
5603
5604         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
5605           _print_format; updated printf, sprintf, vsprintf
5606         * device/include/asm/default/features.h: corrected comment/define
5607         * device/lib/Makefile.in: added sprintf.c
5608         * device/lib/libsdcc.lib: added sprintf module
5609         * device/lib/printf_large.c,
5610         * device/lib/vprintf.c,
5611         * device/lib/sprintf.c: totally refactored printf_large and vprintf
5612           into these 3 files
5613         * support/regression/Makefile: changed ALL_PORTS into a usefull default
5614         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
5615         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
5616           hc08 test
5617         * support/regression/tests/zeropad.c: define idata as data for hc08
5618
5619 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5620
5621         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
5622         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
5623         labels are referenced at least once (even if a reference is not found)
5624         * src/hc08/gen.c (emitcode): set isComment flag for comments
5625         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
5626         loads), rules 6a..6b (optimize jumps to return)
5627
5628 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5629
5630         * device/lib/acosf.c (acosf),
5631         * device/lib/asinf.c (asinf),
5632         * device/lib/atanf.c (atanf),
5633         * device/lib/ceilf.c (ceilf),
5634         * device/lib/cosf.c (cosf),
5635         * device/lib/coshf.c (coshf),
5636         * device/lib/cotf.c (cotf),
5637         * device/lib/fabsf.c (fabsf),
5638         * device/lib/floorf.c (floorf),
5639         * device/lib/log10f.c (log10f),
5640         * device/lib/logf.c (logf),
5641         * device/lib/sinf.c (sinf),
5642         * device/lib/sinhf.c (sinhf),
5643         * device/lib/sqrtf.c (sqrtf),
5644         * device/lib/tanf.c (tanf),
5645         * device/lib/tanhf.c (tanhf),
5646         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
5647         replaced all instances of "reentrant" in the library functions
5648         defined in math.h with this macro.
5649         * support/regression/tests/float_trans.c: reenabled test for hc08
5650
5651 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
5652
5653         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
5654         erroneously deleted
5655
5656 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5657
5658         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
5659         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
5660         multi-byte volatile operands are used
5661         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
5662         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
5663         initialization to area GSINIT0 so that it would always precede
5664         any static initializers in GSINIT
5665         * support/regression/tests/zeropad.c: fixed idata define for hc08
5666         * support/regression/tests/bug-927659.c,
5667         * support/regression/tests/float_trans.c: disabled tests for hc08
5668         pending missing library routines
5669         * .version: increased version number to 2.4.4 - hc08 port now passes
5670         regression tests
5671
5672
5673 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
5674
5675         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
5676         * Makefile.common.in,
5677         * as/Makefile,
5678         * as/hc08/Makefile.in,
5679         * as/mcs51/Makefile.in,
5680         * as/z80/Makefile.in,
5681         * debugger/mcs51/Makefile.in,
5682         * device/include/Makefile.in,
5683         * device/lib/Makefile.in,
5684         * doc/Makefile,
5685         * link/Makefile,
5686         * link/z80/Makefile.in,
5687         * packihx/Makefile.in,
5688         * sim/ucsim/main_in.mk,
5689         * sim/ucsim/avr.src/Makefile.in,
5690         * sim/ucsim/doc/Makefile.in,
5691         * sim/ucsim/gui.src/serio.src/Makefile.in,
5692         * sim/ucsim/hc08.src/Makefile.in,
5693         * sim/ucsim/s51.src/Makefile.in,
5694         * sim/ucsim/xa.src/Makefile.in,
5695         * sim/ucsim/z80.src/Makefile.in,
5696         * src/Makefile.in,
5697         * support/cpp2/Makefile.in,
5698         * support/librarian/Makefile,
5699         * support/makebin/Makefile: added DESTDIR to the install path proposed
5700         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
5701         * doc/sdccman.lyx: added DESTDIR documentation
5702
5703 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
5704
5705         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
5706         instruction for interrupt handlers, use fast returns when returning
5707         from high priority interrupts
5708
5709 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5710
5711         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
5712         code generation
5713         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
5714         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
5715         bugs, ported much of Bernhard's code from mcs51
5716         * src/mcs51/gen.c (genSend),
5717         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
5718         than one when calling a reentrant function
5719         * device/lib/_mullong.c: defined an alternate struct layout for big
5720         endian ports (hc08)
5721
5722 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5723
5724         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
5725         test
5726
5727 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5728
5729         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
5730         are sane and complete before asking the port its prefered parameter
5731         passing method (fixes bug #1017633)
5732         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
5733         and _ret3
5734
5735 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5736
5737         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
5738         problem in bitfields >= 8 bits.
5739
5740 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5741
5742         * src/SDCCsymt.c: undid changes that were not meant to be committed
5743
5744 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5745
5746         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
5747
5748 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5749
5750         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
5751           copied and wrong bit got inverted
5752
5753 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5754
5755         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
5756         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
5757         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
5758         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
5759         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
5760         assignments to bitfields at known addresses
5761         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
5762         reads from bitfields at known addresses
5763         * src/hc08/ralloc.c (packRegisters),
5764         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
5765         genhc08Code): optimize pointer get values used as conditionals
5766         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
5767         and branch
5768
5769 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5770
5771         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
5772         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
5773         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
5774         as conditionals
5775
5776 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5777
5778         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
5779
5780 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5781
5782         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
5783         related problems
5784
5785 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
5786
5787         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
5788
5789 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5790
5791         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
5792         mcs51 port
5793
5794 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5795
5796         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
5797
5798 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5799
5800         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
5801         cases use more compact code.
5802
5803 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
5804
5805         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
5806
5807 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5808
5809         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
5810
5811 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5812
5813         * src/SDCCsymt.h,
5814         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
5815         parameter of changePointer() from symbol* to sym_link*
5816         * src/SDCCast.c (decorateType): call changePointer() for CAST op
5817         * src/SDCCsymt.c (compareType): void* type is castable to other
5818         pointers, but not necesarily an exact match.
5819         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
5820         is no longer blindly treated as an exact match.
5821         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
5822
5823 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
5824
5825         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
5826
5827 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
5828
5829         * src/pic/gen.c,
5830         * src/pic/pcode.c,
5831         * src/pic/ralloc.h,
5832         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
5833
5834 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
5835
5836         * src/pic/device.c,
5837         * src/pic/device.h,
5838         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
5839
5840 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5841
5842         * src/mcs51/gen.c (emitcode): fixed bug #992819
5843
5844 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
5845
5846         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
5847           there's no need to make it worse
5848
5849 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5850
5851         * src/mcs51/ralloc.c (deassignLR),
5852         * src/ds390/ralloc.c (deassignLR),
5853         * src/hc08/ralloc.c (deassignLR),
5854         * src/z80/ralloc.c (deassignLR),
5855         * src/pic/ralloc.c (deassignLR),
5856         * src/pic16/ralloc.c (deassignLR),
5857         * src/avr/ralloc.c (deassignLR),
5858         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
5859         rlivePoint): fixed another part of bug #971834
5860
5861 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5862
5863         * src/z80/main.c: enabled "critical" keyword
5864         * src/z80/mappings.i,
5865         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
5866         functions (fixes bug #979646)
5867         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
5868
5869 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5870
5871         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
5872           such as c:\mydir.
5873
5874 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
5875
5876         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
5877           doesn't disable too much optimizations
5878
5879 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
5880
5881         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
5882
5883 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
5884
5885         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
5886
5887 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
5888
5889         * src/pic/gen.c tidied up tabs
5890         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
5891         * src/pic/main.c tidied up tabs
5892         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
5893         * src/pic/pcoderegs.c tidied up tabs
5894         * src/pic/ralloc.c tidied up tabs
5895
5896 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
5897
5898         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
5899         to S_FIXED for pic16 port and when symbol is not in level 0,
5900         allocate for S_REGISTER storage class and pic16 port, too,
5901         * src/pic16/device.h: prototype for checkSym,
5902         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
5903         * (pic16_assignConfigWordValue): test the value and the mask to
5904         validate that the value is suitable for the configuration word,
5905         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
5906         collect extern declared symbols, don't emit symbol twice, check
5907         first if symbol is in publics set first,
5908         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
5909         * added command line '--fstack' which enables an experimental
5910         feature for stack access, too buggy to be used yet...
5911         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
5912         * (pic16_allocDirReg): when register has storage class S_REGISTER
5913         allocate in pic16_dynAccessRegs,
5914         * device/include/pic16/pic18f????.h: modified configuration word
5915         naming convention, words started as CONFIG0H but should be CONFIG1H
5916
5917 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5918
5919         * device/include/mcs51reg.h: fixed bug 970993
5920
5921 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
5922
5923         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
5924         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
5925         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
5926         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
5927         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
5928         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
5929           error/warning numbers,
5930           added function setWarningDisabled()
5931         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
5932         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
5933           _memcmp.c _memmove.c calloc.c realloc.c free.c
5934         * support/regression/tests/malloc.c: added tests for new functionality
5935         * support/regression/tests/zeropad.c: added tests for truncated initializers
5936           and initialized char arrays starting with '\x0'
5937         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
5938
5939 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
5940
5941         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
5942
5943 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5944
5945         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
5946         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
5947         peephole 177.e. Thanks to anonymous
5948
5949 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
5950
5951         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
5952         function isn't used in the source but referenced as a
5953         variable initializer then declare it as extern in .asm file
5954
5955 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
5956
5957         * .version: increased version number to 2.4.3
5958
5959         Adding version extension according to ChangeLog CVS revision
5960         * src/Makefile.in (target all): added dependency 'version.h'
5961         * (rule version.h): added rule to create version.h from ChangeLog,
5962         * (rule dep): added dependency version.h,
5963         * src/version.awk: AWK script to create version.h
5964         * src/SDCCdwarf2.c (dwWriteModule),
5965         * src/SDCCglue.c (initialComments),
5966         * src/SDCCmain.c (printVersionInfo): modified to write after
5967         version string the version extension number,
5968         * src/SDCCutil.c: included "version.h"
5969         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
5970         number,
5971         * src/SDCCutil.h: added prototype for getBuildNumber
5972
5973         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
5974         includeDirsSet, too,
5975         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
5976         const char [] is found in function prototype...
5977
5978         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
5979         moving to WREG with source is already in WREG,
5980         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
5981         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
5982         * (aopForSym): stack'ed symbols are partially supported, added
5983         if-clause to support symbols in FARSPACE,
5984         * (sameRegs): added test for AOP_ACC to see if registers are same,
5985         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
5986         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
5987         * (pic16_popRegFromString): will not allocate a new register if it
5988         doesn't find one by name, bug may have introduced...
5989         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
5990         * (genIpush): revived to use pic16 port's stack,
5991         * (genAddrOf): added incomplete case for stack'ed operand,
5992         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
5993         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
5994         can handle multibyte operands,
5995         * src/pic16/glue.c (pic16_printIval*): some debug info added,
5996         * (pic16initialComments): added message for MPLAB compatibility
5997         mode enabled,
5998         * src/pic16/main.h: prototype for pic16_mplab_comp,
5999         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
6000         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
6001         * (_pic16_linkEdit): NEW, handles link stage, transferred here
6002         because of increased complexity of procedure,
6003         * (_process_pragma): stack pragma changed to format 'stack pos len',
6004         emit symbol '_stack_end' to conform with gplink,
6005         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
6006         to search for register,
6007         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
6008         PO_GPR_REGISTER,
6009         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
6010         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
6011         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6012         case for PO_GPR_REGISTER,
6013         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
6014         dies, the new era is ahead !...
6015         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
6016         pic16_dynInternalRegs,
6017         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
6018         * (pic16_allocDirReg): minor optimizations and bug fixes,
6019         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
6020
6021         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
6022         load stack and frame pointer with address of 'stack_end' symbol
6023
6024 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
6025
6026         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
6027         without source code but only variable initializers
6028
6029 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
6030
6031         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
6032         external are not declared as extern to reduce overhead while linking
6033
6034 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
6035
6036         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
6037
6038 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
6039
6040         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
6041           Yee Keat for the patch
6042         * src/SDCCast.c (decorateType): fixed bug #979599
6043         * src/ds390/gen.h: removed local fReturnSizeDS390
6044         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
6045         * src/ds390/gen.c (genAnd, genOr, genXor),
6046         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
6047
6048 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
6049
6050         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
6051         add relFilesSet to $3, manipulate $2 to handle linking of object
6052         files without source files in command line,
6053         * device/include/pic16 (all headers): added ID location macros,
6054         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
6055         entries for ID location bytes,
6056         * (pic16_assignIdByteValue): NEW,
6057         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
6058         added field dumpcalltree to pic16_options_t,
6059         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
6060         is used instead of pic16_Gstack_base_addr, check if (ifx) before
6061         emitting rFalseIfx label after check_carry label,
6062         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
6063         pic16_emitDIRegs), NEW
6064         * (pic16glue): dump .calltree file when option --calltree found,
6065         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
6066         * (_pic16_genAssemblerPreamble): emit ID locations after
6067         configuration registers,
6068         * (pic16_linkCmd): modifications of the link command,
6069         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
6070         * (pic16_pCodeInitRegisters): don't init stack registers,
6071         * (pic16_findPrevInstruction): fixed bug,
6072         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
6073         bug with immediate registers,
6074         * (buildCallTree): traces stack push and pop,
6075         * (pct2): dump also stack usage for each function,
6076         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
6077         * (pic16_allocDirReg): various modifications,
6078         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
6079         fixed to 1,
6080
6081 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
6082
6083         * src/pic16/pcode.c: removed buggy double colon
6084
6085 2004-07-01 Borut Razem <borut.razem AT siol.net>
6086
6087         * support/scripts/sdcc.nsi: added include/pic16 to setup
6088
6089 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
6090
6091         * device/lib/Makefile.in: fixed bug in target objects-pic16,
6092         * device/lib/pic16/Makefile: prefixed with dash (-) command under
6093         target 'clean',
6094         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
6095         specific command line arguments. Also added sample lkr script
6096         for placing a variable at a specific memory bank.
6097         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
6098         at a specific memory bank,
6099         * (pic16_dump_isection): fixed bug which caused string literals to
6100         be omitted when dumping idata section,
6101         * (pic16_groupRegistersInSection): added code to handle registers
6102         in specific memory banks,
6103         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
6104         public, all references are renamed too,
6105         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
6106         AOP_DPTR2,
6107         * (pic16_storeForReturn): added case to handle when dest is WREG,
6108         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
6109         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
6110         pic16_rel_udata, check to see if that register is marked as being
6111         a member of a specific memory bank,
6112         * (pic16_printIvalCharPtr): added code to add string literals either
6113         to code or the idata sections,
6114         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
6115         also accept the 'udata' pragma,
6116         * src/pic16/main.h: new structure types sectName and sectSym
6117         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
6118         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
6119         * (pic16_findPrevInstruction): fixed, it returned nothing,
6120         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
6121         instruction combinations,
6122         * (pic16_FixRegisterBanking): heavily reorganised,
6123         * (pic16_AnalyzeBanking): if generating banksel directives is
6124         disabled, then don't call FixRegisterBanking at all,
6125         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
6126         completely removed,
6127         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
6128
6129 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
6130
6131         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
6132         Phuah Yee Keat <yk.phuah AT nestac.com>
6133
6134 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6135
6136         * src/pic16/glue.c (pic16createInterruptVect): function now emits
6137         correctly the IVT even if it is relocated to some other location
6138
6139 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6140
6141         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
6142         * device/include/pic16/pic18f2220.h: NEW,
6143         * device/lib/pic16/libdev/pic18f2220.c: NEW,
6144         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
6145         * src/pic16/device.c (struct Pics16): added info for 18f2220,
6146         * src/pic16/device.h (struct pic16_options): added ivt_loc and
6147         nodefaultlibs, ivt_loc is the location of the interrupt vector
6148         table, and nodefaultlibs signs that default libraries should not be
6149         linked in link stage,
6150         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
6151         according to --ivt-loc argument,
6152         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
6153         when pragma stack is found,
6154
6155 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6156
6157         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
6158         256 (range check), 257 (do while), 258.a-f (bit banging
6159         f.e. on 3-wire SPI bus)
6160
6161 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6162
6163         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
6164         variables used exclusively within a loop
6165
6166 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
6167
6168         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
6169
6170 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6171
6172         * src/SDCClrange.c (computeClash): fixed bug #971834
6173
6174 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6175
6176         * src/mcs51/gen.c (genCmp): fixed bug #975903
6177         * src/hc08/gen.c (operandsEqu),
6178         * src/ds390/gen.c (operandsEqu),
6179         * src/z80/gen.c (operandsEqu),
6180         * src/pic/gen.c (operandsEqu),
6181         * src/pic16/gen.c (operandsEqu),
6182         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
6183         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
6184
6185 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6186
6187         * src/SDCCcse.c (cseBBlock): fixed bug #966963
6188
6189 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
6190
6191         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
6192         default case in switch statement,
6193         * glue.c (pic16_initPointer): expr is initialised via decoarteType
6194         to eliminate problem with initialisation of pointers, but problem
6195         still exists,
6196         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
6197         * (emitStaticSegment): removed various lines emitting debug info,
6198         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
6199         added processor registers for utilizing EEPROM,
6200         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
6201         configurable and set 8
6202
6203 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
6204
6205         * .version: increased version number to 2.4.2,
6206
6207         Cumulative patch for pic16 port
6208         * src/pic16/device.c: changed scheme to dump initial values for
6209         variables in idata segment, all print_idata* functions were removed,
6210         now the pic16_printIval* will be called,
6211         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
6212         * _pic16_printPointerType, pic16_printPointerType,
6213         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
6214         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
6215         NEW, similar to the respective functions in SDCCglue.c,
6216         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
6217         way, emitting hex bytes,
6218         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
6219
6220 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6221
6222         * src/avr/ralloc.c (serialRegAssign),
6223         * src/xa51/ralloc.c (serialRegAssign),
6224         * src/pic/ralloc.c (serialRegAssign),
6225         * src/pic16/ralloc.c (serialRegAssign),
6226         * src/hc08/ralloc.c (serialRegAssign),
6227         * src/z80/ralloc.c (serialRegAssign),
6228         * src/ds390/ralloc.c (serialRegAssign),
6229         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
6230
6231 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6232
6233         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
6234         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
6235
6236 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
6237
6238         Cumulative patch for pic16 port:
6239         * src/pic16/device.h (typedef PIC16_device) modified fields for
6240         defining microcontrollers,
6241         * src/pic16/device.c: added new info for all devices in Pics16 array,
6242         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
6243         to be optimised out by the pCode optimiser,
6244         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
6245         specially, bug reported by G.M. Gallant,
6246         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
6247         as force'd so that cannot be optimised out by pCode optimiser,
6248         * src/pic16/pcode.c,
6249         * src/pic16/pcodepeeph.c,
6250         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
6251         they are disabled by default, but can be enabled explicit with
6252         command argument --denable-peeps, for testing,
6253         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
6254         --pomit-ivt in COMPILE_FLAGS
6255
6256 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6257
6258         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
6259           compilation on MSVC
6260
6261 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6262
6263         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
6264
6265 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6266
6267         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
6268         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
6269
6270 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
6271
6272         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
6273         would only assign 0x300001 register.
6274
6275 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
6276
6277         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
6278         in COMPILE_FLAGS. Thanks to G. Gallant for report.
6279
6280 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6281
6282         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
6283         for ds80c400
6284         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
6285         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
6286         added peephole 254 (left shift), 255 (jump table)
6287
6288 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
6289
6290         * device/lib/Makefile.in: removed comment line with model-pic16,
6291         * (target port-specific-objects-pic16): the libraries and objects
6292         are copied to the build directory form the device/lib/pic16/bin
6293         directory
6294
6295         Cumulative patch concerning pic16 port:
6296         * library directory has been re-organized,
6297         * added support for PIC18F1220,
6298         * added headers and library sources for chips 18f1220,18f6520,
6299         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
6300
6301         * configuration registers setting has changed, now each supported
6302         device has a complete description of the registers it uses,
6303         * all initialisations are moved to idata sections, these section
6304         can be absolute or relocatable,
6305         * fixed initialisation of codespace variables,
6306         * fixed warning about PCLATU and gpsim,
6307         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
6308         * (genAssign): use table reads when assigning from variables in codespace,
6309         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
6310         char/int variables placed in codespace,
6311         * (pic16_emitConfigRegs): NEW, emits a list with configuration
6312         registers set in .asm file, no need for --pomit-config-words anymore,
6313         * (pic16glue): some 8051 legacy segments are commented out
6314         (to be removed completely),
6315         * added support for alternative assembler and linker with --asm=
6316         and --link= command line arguments,
6317         * peepholes are disabled automatically in the port, no need to
6318         specify on command line,
6319         * port supports natively char/int/long multiplication, but converts
6320         all divisions to support functions,
6321         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
6322         to the file set in variable $2,
6323         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
6324         strings in ASCII format and not in hex,
6325         * ralloc.c (serialRegAssign): added a triplet of conditional calls
6326         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
6327         allocate proper register if iCodes aren't temporary,
6328
6329 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
6330
6331         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
6332
6333 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
6334
6335         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
6336         is commented out
6337
6338 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6339
6340         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
6341         computed address is reused
6342         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
6343         multi-byte bitfields
6344
6345 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6346
6347         * src/z80/gen.c: (genArrayInit): must check for pointers too
6348
6349 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6350
6351         * support/regression/tests/zeropad.c: never meant to commit the
6352           nestedstruct test: removed, added check for GCC version
6353
6354 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
6355
6356         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
6357         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
6358         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
6359           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
6360           bugs 928906 and 954082 half-empty initializers
6361         * src/SDCCsymt.h,
6362         * src/SDCCsymt.c (getAllocSize): added for above fix
6363         * src/z80/gen.c (genArrayInit): fixed bug 741044
6364         * support/regression/tests/zeropad.c: added tests
6365
6366 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
6367
6368         * src/pic16/device.c (pic16_dump_section): corrected bug which
6369         caused some symbols of the libraries to be misplaced
6370
6371 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6372
6373         * src/pic16/glue.c,
6374         * src/pic16/ralloc.h,
6375         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
6376         to fix conflict with pic port
6377
6378 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6379
6380         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
6381         externs configuration variables,
6382         * src/pic16/ralloc.h,
6383         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
6384         prototype in header, commented out some debug messages
6385
6386 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
6387
6388         * src/pic16/glue.c,
6389         * src/pic16/main.c,
6390         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
6391         for gpasm COFF object generation. Thanks to D. Hawkins for
6392         his patch info
6393
6394 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6395
6396         * src/ds390/main.c,
6397         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
6398         Brock for spotting this)
6399         * src/ds390/gen.c (genEndFunction),
6400         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
6401         interrupt handler and critical. Disable push/pop optimizations when
6402         peephole optimizations disabled.
6403
6404 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6405
6406         Updated pic16 library sources and headers.
6407         * device/lib/pic16/pic18f*/ ,
6408         * device/include/pic16/*.h: modified to handle structured SFR
6409         definitions
6410
6411 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6412
6413         * src/port.h (PORT structure): added hook initPaths, now each
6414         port can declare its own default search paths,
6415         which can been seen with the --print-search-dirs option,
6416         see pic16 port for example,
6417         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
6418         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
6419         * (doPrintSearchDirs): NEW, replaces in a central manner the
6420         printing of search dirs which was split in set*Paths functions,
6421         * (main): added call to port->initPaths and doPrintSearchDirs,
6422         * src/avr/main.c,
6423         * src/ds390/main.c,
6424         * src/hc08/main.c,
6425         * src/izt/i186.c,
6426         * src/izt/tlcs900h.c,
6427         * src/mcs51/main.c,
6428         * src/pic/main.c,
6429         * src/pic16/main.c: modified port structures to reflect addition of
6430         initPaths hook,
6431
6432         * src/pic16/device.c (regCompare): registers are finally sorted by name,
6433         * (pic16_dump_section): for registers in same address reserve memory once,
6434         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
6435         to no_banksel,
6436         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
6437         result is greater in size than right or left,
6438         * (pic16_genUMult8X8_8): there are some cases where the result can
6439         be 16 bits size, so handle these,
6440         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
6441         * (pic16_outBitC): modified to emit pcodes,
6442         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
6443         or not,
6444         * (genDivOneByte): implemented algorithm to divide 8-bits,
6445         * (genCmp): uncommented goto, but issues still exist,
6446         * (genAnd): fixed a bug with variables >8bits,
6447         * (genPackBits): optimization added that uses BCF/BSF to change a
6448         single bit,
6449         * (genAssign): fixed bug when assigning floating point literals,
6450         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
6451         __sdcc_gsinit_startup label,
6452         * src/pic16/main.c (_pic16_init): removed search directory
6453         initialisations,
6454         * (_pic16_initPaths): NEW, used to initialise search directories,
6455         * (_hasNativeMulFor): support functions for all except char/int
6456         multiplication, and char division,
6457         * (PIC16_port struct): modified entry for native mul support,
6458         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
6459         no_banksel option,
6460         * (buildCallTree): call to register_usage is ifdef'ed out,
6461
6462 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6463
6464         * device/include/string.h: applied Stas Sergeev's patch to make this
6465         header file compatible with the preprocessor -Wundef option
6466         * src/SDCCmain.c (main): abort compilation if preprocessor reports
6467         failure (fixes bug #941458)
6468
6469 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6470
6471         * src/SDCCopt.c (killDeadCode): fixed bug #907733
6472         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
6473         that the variable, not the function, should be static
6474         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
6475         to be consistent with non-literal case
6476
6477 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6478
6479         * src/SDCCast.c (isConformingBody): fixed bug #949967
6480         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
6481         convilong): fixed bug #952086
6482
6483 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6484
6485         * src/SDCCmem.c (allocVariables): fixed bug #955321
6486
6487 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6488
6489         * src/hc08/main.c (_hc08_genAssemblerEnd),
6490         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
6491         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
6492         completely eliminated the use of a temporary file
6493         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
6494         when more than one file linked
6495         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
6496
6497 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6498
6499         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
6500         which fixes bug #543481
6501         * support/regression/tests/bug-751703.c: fixed comments left from a
6502         cut and paste error
6503         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
6504         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
6505         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
6506         scopes
6507         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
6508         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
6509         are now changed to underscores in moduleName
6510
6511 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6512
6513         * as/mcs51/lkmem.c: better fix for bug #954173
6514
6515 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6516         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6517
6518         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
6519         * device/include/c8051f000.h,
6520         * device/include/c8051f120.h,
6521         * device/include/c8051f300.h,
6522         * device/include/c8051f310.h,
6523         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
6524         PWM16) and detab'ed
6525
6526 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6527
6528         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
6529         and mailing lists, doc'ed --no-peep-comments, removed reference
6530         to knoppix (newest version has no LyX/LaTeX), other minor changes
6531         * src/SDCCglue.c (glue): save 2 bytes stack space with
6532         option --main-return. The ljmp could probably be avoided too
6533
6534 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6535
6536         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
6537
6538 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6539
6540         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
6541         * src/SDCCopt.c (isLocalWithoutDef),
6542         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
6543         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
6544         (credit to Maarten Brock for patch #949363, on which this is based)
6545         * support/regression/tests/bug-751703.c: some test cases of extern used
6546         within inner scopes.
6547
6548 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6549
6550         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
6551         SPEC_STRUCT
6552         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
6553         struct definitions
6554         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
6555         dwWriteLabel): fix to create valid debugger symbols even when
6556         the module name has non-alphanumeric symbols in it
6557         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
6558         when a variable's allocation has been optimized away
6559
6560
6561 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6562
6563         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
6564         * src/hc08/main.c,
6565         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
6566         * src/mcs51/main.c,
6567         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
6568         * src/ds390/main.c,
6569         * src/z80/gen.c (z80_emitDebuggerSymbol),
6570         * src/z80/main.c,
6571         * src/pic/gen.c (pic14_emitDebuggerSymbol),
6572         * src/pic/main.c,
6573         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
6574         * src/pic16/main.c,
6575         * src/avr/gen.c (avr_emitDebuggerSymbol),
6576         * src/avr/main.c,
6577         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
6578         * src/xa51/main.c,
6579         * src/SDCCdebug.c (emitDebuggerSymbol),
6580         * src/SDCCdebug.h,
6581         * src/port.h: added a debugger struct to the port struct. Added a
6582         callback for defining debugger symbols
6583
6584         * src/SDCCast.c (createLabel),
6585         * src/SDCC.y (labeled_statement): mark all compiler generated labels
6586         with isitmp = 1
6587         * src/SDCCicode.h,
6588         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
6589         iCode back to the ast for the function
6590
6591         * src/hc08/ralloc.c (hc08_assignRegisters),
6592         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
6593         unneeded fields from the regs struct.
6594         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
6595         pushReg() & pullReg() functions instead of emitcode()
6596
6597         * src/hc08/gen.c (genLabel, genhc08Code),
6598         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
6599
6600         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
6601         debugger hooks
6602
6603         * src/hc08/gen.c (genEndFunction, genhc08Code),
6604         * src/hc08/gen.h,
6605         * src/mcs51/gen.c (genEndFunction, gen51Code),
6606         * src/mcs51/gen.h,
6607         * src/ds390/gen.c (genEndFunction, gen390Code),
6608         * src/ds390/gen.h,
6609         * src/z80/gen.c (genEndFunction, genZ80Code),
6610         * src/z80/gen.h,
6611         * src/z80/z80.h,
6612         * src/pic/gen.c (genEndFunction, genpic14Code),
6613         * src/pic/gen.h,
6614         * src/pic16/gen.c (genEndFunction, genpic16Code),
6615         * src/pic16/gen.h,
6616         * src/avr/gen.c (genEndFunction, genAVRCode),
6617         * src/avr/gen.h,
6618         * src/xa51/gen.c (genEndFunction, genXA51Code),
6619         * src/xa51/gen.h,
6620         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
6621         specific code to cdbFile.c and out of the backend code generators
6622
6623         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
6624         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
6625         starting address is now 0
6626
6627         * as/hc08/asm.h,
6628         * as/hc08/m08pst.c,
6629         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
6630         assembler directive for DWARF support
6631         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
6632
6633         * src/src.dsp,
6634         * src/Makefile.in,
6635         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
6636
6637 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6638
6639         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
6640         and inappropriate peephole optimization in jump tables
6641
6642 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6643
6644         * as/hc08/m08pst.c,
6645         * src/SDCCglue.c: sdccopt works for the hc08 port now
6646
6647 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
6648
6649         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
6650
6651 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6652
6653         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
6654
6655 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6656
6657         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
6658         rules
6659         * src/SDCCmain.c,
6660         * src/SDCCglobl.h,
6661         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
6662         comments from the peephole optimizer replacement rules
6663         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
6664         symbols
6665         * src/SDCCcse.c (updateSpillLocation),
6666         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
6667         equivalents
6668         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
6669         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
6670         objects far pointers
6671
6672 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6673
6674         * src/SDCCsymt.h: a missing part of my last change
6675         * src/pic/ralloc.c (regTypeNum),
6676         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
6677
6678 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6679
6680         * src/SDCCicode.h,
6681         * src/SDCCicode.c (aggrToPtrDclType),
6682         * src/SDCCptropt.h,
6683         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
6684         ptrPseudoSymConvert),
6685         * src/pic/ralloc.c (regTypeNum),
6686         * src/pic16/ralloc.c (regTypeNum),
6687         * src/hc08/ralloc.c (regTypeNum),
6688         * src/ds390/ralloc.c (regTypeNum),
6689         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
6690         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
6691
6692 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6693
6694         * link/z80/lkmain.c (afile),
6695         * as/hc08/lkmain.c (afile),
6696         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
6697         prevent a pointer problem when a filename has no directory and
6698         no extension specified.
6699
6700 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6701
6702         * link/z80/lkmain.c (afile): allow periods in directory names
6703         * link/z80/lkmain.c (afile),
6704         * as/mcs51/lkmain.c (afile),
6705         * as/hc08/lkmain.c (afile): allow linker script file to have an
6706         extension other than ".lnk"
6707         * link/z80/lklex.c (getfid),
6708         * link/z80/lkmain.c (parse),
6709         * as/mcs51/lklex.c (getfid),
6710         * as/mcs51/lkmain.c (parse),
6711         * as/hc08/lklex.c (getfid),
6712         * as/hc08/lkmain.c (parse): Support comments in the linker script
6713         file on lines by themselves and after filenames
6714
6715 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6716
6717         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
6718
6719 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6720
6721         * src/z80/peeph-z80.def: removed some peephole rules that don't
6722         work with multibyte arithmetic (fixed bug #937126)
6723         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
6724         to registers and not global variables
6725         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
6726         geniCodePreInc, geniCodePostDec, geniCodePreDec,
6727         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
6728         checking for assignments not internally generated (fixed bug #931895)
6729         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
6730         structure member (fixed bug #930072)
6731
6732 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6733
6734         * src/SDCCmain.c (linkEdit),
6735         * src/hc08/main.c (_hc08_parseOptions),
6736         * as/hc08/Makefile.in,
6737         * as/hc08/aslink.h,
6738         * as/hc08/asm.h,
6739         * as/hc08/m08pst.c,
6740         * as/hc08/lkrloc.c (relr, rele),
6741         * as/hc08/lkarea.c (lnkarea)
6742         * as/hc08/lkmain.c (afile, parse),
6743         * as/hc08/lkelf.c: support for ELF output
6744         * as/hc08/lks19.c (s19),
6745         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
6746
6747 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6748
6749         * as/mcs51/lkihx.c: Fixed bug #899105.
6750
6751 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6752
6753         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
6754         .dsp files from Unix to DOS.
6755
6756 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6757
6758         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
6759         function pointers; we have been compliant for several months now.
6760         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
6761         change that was accidently commented out
6762         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
6763         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
6764         bug #922319
6765
6766 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6767
6768         * src/hc08/gen.c: output of all of the internal debugging information
6769         is now controlled by the D() macro; it is disabled by default
6770
6771 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6772
6773         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
6774         harder to keep the same registers during a CAST iCode
6775         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
6776         long via int can be done in a single cast, if the signedness is
6777         correct.
6778         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
6779         putchar() in tinibios.c in ds390's library
6780
6781 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
6782
6783         * src/SDCCast.c (decorateType): fixed bug #898889,
6784         cast result of a literal complement too
6785         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
6786         fixed check for bitfields
6787
6788 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
6789
6790         * src/SDCCicode.c (geniCodeLogic): made it static,
6791         (geniCodeLogicAndOr): added in order to fix bug #905492,
6792         (ast2iCode): fixed bug #905492
6793         * support/regression/tests/bug-905492.c: added
6794         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
6795         (processParms): fixed bug #927659: don't copy parms, this will clear
6796         decorated flag
6797         * support/regression/tests/bug-927659.c: added
6798
6799 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
6800
6801         * src/SDCCast.c (addCast): don't cast float to char
6802         * device/lib/libsdcc.lib: added _memmove
6803
6804 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
6805
6806         * device/lib/large/Makefile: fixed parallel execution by
6807         replacing `make` by `$(MAKE)`
6808
6809 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6810
6811         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
6812         offsets (fixes bug #923936)
6813
6814 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
6815
6816         * device/lib/small/Makefile: fixed parallel execution by
6817         replacing `make` by `$(MAKE)`
6818
6819 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
6820
6821         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
6822
6823 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
6824
6825         * src/pic/gen.c (genCpl): multi-byte complements were not working.
6826         * src/regression/Makefile: Regression test was not running.
6827
6828 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
6829
6830         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
6831         complement if possible
6832         * src/SDCCval.c (valComplement),
6833         * src/SDCCicode.c (operandOperation): fixed complement of literal
6834         * support/regression/tests/onebyte.c (testComplement): added
6835
6836 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
6837
6838         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
6839         return an optimized tree; actually replace actParm with the new tree
6840         * src/SDCCast.h: added some parantheses to remove side effects
6841         * support/regression/tests/bug-920866.c
6842
6843 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
6844         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
6845         Bit operands were not being handled properly in the pic14 port.
6846         (now src/regression/add.c passes again).
6847
6848 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6849
6850         * src/SDCC.y (labeled_statement): case and default no longer require
6851         a following statement (RFE #893037)
6852
6853 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6854
6855         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
6856         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
6857         disabled (fixes bug #916294)
6858         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
6859         "mov a,acc"; patch provided by Lenny Story
6860         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
6861
6862 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6863
6864         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
6865         functions
6866         * src/ds390/gen.c (genFunction, genEndFunction),
6867         * src/ds390/ralloc.c (ds390_assignRegisters),
6868         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
6869         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
6870         pushed if there are parameters passed on the stack. Also, a cleaner
6871         way to decide if r0/r1 should be pushed/popped. (Together they fix
6872         bug #918693)
6873
6874 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6875
6876         * doc/sdccman.lyx,
6877         * device/lib/mcs51/crtpagesfr.asm,
6878         * device/lib/mcs51/crtxinit.asm,
6879         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
6880         to avoid confusion with Si Lab's SFRPAGE register.
6881
6882 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6883
6884         * src/SDCCglue.c (emitMaps): allow public sfr variables
6885         * src/SDCCglue.c (initialComments): include compiler build date
6886         with compiler version and put the timestamp of the generated
6887         assembly file on a serperate line to be less confusing.
6888         * src/port.h: added genInitStartup hook
6889         * src/avr/main.c,
6890         * src/ds390/main.c,
6891         * src/hc08/main.c,
6892         * src/pic/main.c,
6893         * src/pic16/main.c,
6894         * src/xa51/main.c,
6895         * src/z80/main.c: genInitStartup initialize as NULL (default to
6896         historical behaviour)
6897         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
6898         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
6899         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
6900         library instead of hard coding it into the compiler.
6901         * support/regression/ports/mcs51-stack-auto/spec.mk,
6902         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
6903         * device/lib/mcs51/Makefile,
6904         * device/lib/small/Makefile,
6905         * device/lib/large/Makefile,
6906         * device/lib/mcs51/crtpagesfr.asm,
6907         * device/lib/mcs51/crtstart.asm,
6908         * device/lib/mcs51/crtxclear.asm,
6909         * device/lib/mcs51/crtxinit.asm,
6910         * device/lib/mcs51/crtclear.asm,
6911         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
6912         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
6913         and into user configurable files.
6914         * device/lib/clean.mk: clean mcs51 directory too
6915         * support/regression/tests/longlit.c: added static to T1 declaration
6916         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
6917         accesses in the initialization code
6918
6919 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6920
6921         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
6922         OSCTRIMVAL as noted in bug #916008
6923
6924 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6925
6926         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
6927         in loops with multiple exits (reported as incorrect registers
6928         used by Martin Helmling in Sdcc-user list)
6929
6930 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6931
6932         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
6933         made ds390 register extensions look less like error messages
6934
6935 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6936
6937         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
6938         reported by Adam Wozniak in Sdcc-user list
6939
6940 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
6941
6942         * src/SDCCast.c (decorateType): fixed with bug and promotion in
6943         arithmetic optimizations, added debug output
6944
6945 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
6946
6947         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
6948         * sdcc.spec: updated and split sdcc into 3 rpms
6949         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
6950         needed for literals of LEFT_OP and '+'
6951         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
6952         introduced RESULT_TYPE_NOPROM
6953         (geniCodeMultiply): fixed logic for decision if mul is optimized to
6954         left shift
6955         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
6956         limited promotion to int only for '*'
6957         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
6958
6959 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
6960
6961         * src/pic16/gen.c (genSkip),
6962         (genc16bit2lit), (gencjneshort): commented out
6963         (is_LitOp): new helper function, checks operand type
6964         (genCmpEq): rewritten
6965
6966 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
6967
6968         * support/regression/tests/bug-908454.c: added
6969
6970 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
6971
6972         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
6973         * src/SDCCicode.c (usualBinaryConversions): op needs int type
6974         (geniCodeCast): cosmetic, don't preserve bit storage class
6975         (geniCodeLeftShift): added promotion
6976         (geniCodeLogic): fixed regression
6977         * src/SDCCsymt.c (computeTypeOr): accept bits too
6978         (compareType): 2nd part of fix for bug #908454, needed for bitfields
6979
6980 2004-03-07  Borut Razem <borut.razem AT siol.net>
6981
6982         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
6983
6984 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
6985
6986         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
6987         version of pic16_genPackRegisters which does not check if ic is a
6988         CAST operator,
6989         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
6990         function cause string1.c regression test fails
6991
6992 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
6993
6994         * sim/ucsim/configure.in,
6995         * sim/ucsim/configure,
6996         * sim/ucsim/doc/Makefile.in: use docdir
6997         * src/SDCC.y: fixed sbit atrributes
6998         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
6999         * src/SDCCast.c (decorateType): |^& need special promotion handling
7000         * src/SDCCast.h,
7001         * src/SDCCsymt.h: moved definition of RESULT_TYPE
7002         * src/SDCCsymt.h (computeType),
7003         * src/SDCCicode.c: computeType() needs op
7004         * src/SDCCsymt.c (checkTypeSanity),
7005         * doc/sddman.lyx: "plain" bitfields are unsigned
7006         * src/SDCCsymt.c (computeTypeOr): added
7007         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
7008         |^& ops
7009         * src/SDCCval.c (val*): computeType() needs op
7010         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
7011         * support/regression/tests/onebyte.c: added tests for |^&
7012
7013 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
7014
7015         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
7016         for writing icode into asm output.
7017
7018 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
7019
7020         * src/pic16/device.c: added some debug lines enabled
7021         with macro DEBUG_CHECK,
7022         * src/pic16/genarith.c: more debug in genPlus,
7023         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
7024         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
7025         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
7026         * (aopForSym): onStack symbols are re-placed in data memspace,
7027         and onStack flag is cleared,
7028         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
7029         copy temporary pcodeop,
7030         * (genPcall): added warning for not updating PCLATU,
7031         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
7032         always true for pic16 port,
7033         * (genMultOneWord): NEW, supports integer multiplication,
7034         * (genMult): modified to call genMultOneWord,
7035         * (ifxForOp): added warning when return NULL,
7036         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
7037         flag is set before call to operandFromSymbol for implicit
7038         added structures,
7039         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
7040         options.intlong_rent are set by default,
7041         * (_hasNativeMulFor): modified to allow port generation of integer
7042         multiplication,
7043         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
7044         set regtype to REG_SFR for all registers, restricting seting the
7045         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
7046
7047 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7048
7049         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
7050         more than 500 times in the regression tests
7051
7052 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7053
7054         * support/Util/SDCCerr.h,
7055         * support/Util/SDCCerr.c,
7056         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7057         enumerator_list),
7058         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
7059         for symbol conflicts.
7060         * support/valdiags/tests/enum.c,
7061         * support/valdiags/tests/tentdecl.c,
7062         * support/valdiags/tests/struct.c: expect possible error messages
7063         referring to original symbol definitions.
7064         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
7065         * src/SDCCsymt.h,
7066         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
7067
7068 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
7069
7070         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
7071
7072 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
7073
7074         * src/pic16/ralloc.c (newReg): fixed bug #908929
7075
7076 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7077
7078         * src/ds390/gen.c: added missing #include "main.h"
7079
7080 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
7081
7082         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
7083         checking if symbol is already in set,
7084         * src/pic16/device.h: prototype for checkAddSym,
7085         * src/pic16/gen.c: (_G): added entry interruptvector,
7086         * (assignResultValue): removed some commented out lines,
7087         * (genFunction): check for ISR via sym->type, absolute section for
7088         interrupt code is created via a new pBlock, the goto instruction is
7089         placed now correctly at the interrupt vector position, changed all
7090         references from ivec to _G.interruptvector,
7091         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
7092         is the interrupt is a high priority one, same for return from ISR,
7093         * src/pic16/glue.c: changed all calls of addSetHead for publics and
7094         externs to calls of checkAddSym,
7095         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
7096         pic16_pcode_verbose flag is set,
7097         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
7098         * src/pic16/pcoderegs.c: message about how many registers are saved
7099         will only be emitted if pic16_pcode_verbose flag is set,
7100
7101 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7102
7103         * src/ds390/ralloc.h,
7104         * src/ds390/ralloc.c (ds390_regWithIdx),
7105         * src/ds390/gen.c (emitcode),
7106         * src/ds390/main.h,
7107         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
7108         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7109         ds390operandCompare, getRegsRead, getRegsWritten,
7110         initializeAsmLineNode): customized instruction size calculation for
7111         ds390, started basis for some register optimizations
7112         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
7113         corresponding assembly output
7114         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
7115         missing push/pop of r0/r1. Optimized push/pops
7116
7117 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7118
7119         * src/mcs51/main.c (instructionSize): fixed ACALL size
7120         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
7121
7122 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
7123
7124         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
7125         the sorting of rlist with NULL elements
7126         * (print_idataType, print_idata): NEW to create idata sections
7127         * src/pic16/device.h: idataSymSet new variable
7128         * src/pic16/gen.c (genFunction): fixed some bugs in string
7129         comparing, improved the absolute section creation for ISRs,
7130         added FSR0L/FSR0H in registers that are saved in an ISR,
7131         * (genInline): fixed the processing of inline snippets,
7132         now they undergo no process by the peephole optimizer
7133         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
7134         are placed in idataSymSet,
7135         * (pic16emitStaticSeg): extern symbols are added in externs,
7136         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
7137         switching when aboslute variables are placed in access bank memory
7138         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
7139         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
7140         commented out with #if,
7141         * (pic16_packRegisters): reintroduce the check for CAST because some
7142         symbols are not correctly handled,
7143         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
7144         pCodeInstruction instead of pCode,
7145         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
7146         pCodeAsmDir definition,
7147         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
7148         directive, then the argument directive is emitted without the leading
7149         tab, hack for inline labels which must be in the first column,
7150         * (compareLabel,pic16_findNextInstruction),
7151         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
7152         * (insertBankSwitch): modified for the new pCodeAsmDir,
7153
7154 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7155         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
7156
7157         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
7158         instance,
7159         * (pushSide): commented out with #if,
7160         * (assignResultValue): fixed some typos in saving
7161         registers,
7162         * (genPcall): FIXED and sync'ed with genCall,
7163         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
7164         * (genNearPointerGet): fixed to handle some more cases,
7165         implementation scheme via table reads,
7166         * (genConstPointerGet): modified to access code memory correct,
7167         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
7168         and improved to handle some cases
7169         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
7170         instead of "RETLW" for init data
7171         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
7172         not IN_DIRSPACE, work around to reduce bank switching when aboslute
7173         variables are placed in access bank memory (<0x80 and >=0xf80),
7174         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
7175         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
7176         TBLWT_POSTDEC,TBLWT_PREINC
7177         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
7178         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
7179         directives
7180         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
7181         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
7182         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
7183         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
7184
7185 2004-02-29  Borut Razem <borut.razem AT siol.net>
7186
7187         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
7188         support/Util/findme.h, support/Util/system.h: enhance binary relative
7189         search for lib and include by using findProgramPath()
7190
7191 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7192
7193         * src/SDCCpeeph.h,
7194         * src/SDCCpeeph.c (pcDistance),
7195         * src/port.h,
7196         * src/mcs51/ralloc.h,
7197         * src/mcs51/ralloc.c (mcs51_regWithIdx),
7198         * src/mcs51/main.h,
7199         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
7200         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7201         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
7202         size calculation port specific, started basis for some register
7203         optimizations
7204         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
7205         missing push/pop of r0/r1. Optimized push/pops
7206         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
7207         * device/lib/_modsint.c (_modsint),
7208         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
7209         and stack version so regression tests pass
7210
7211 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
7212
7213         * src/Makefile.in (dep): include SLIBOBJS in dependency check
7214         * src/SDCCast.c (decorateType): catch another small optimization
7215         with '?' operator
7216         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
7217         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
7218         modified to finally use computeType() all over SDCC,
7219         see Feature Request #877103
7220         * src/SDCCval.h: cosmetic
7221         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
7222         valCompare(); regression tested in muldiv.c
7223         * support/regression/tests/muldiv.c (testMod): mod sign follows
7224         dividend only
7225
7226 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
7227
7228         * src/SDCCast.c (decorateType): fixed bug #902362
7229         * doc/INSTALL.txt: fixed install instructions for win32
7230
7231 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
7232
7233         * device/include/Makefile.in (install): fixed by replacing spaces
7234         by tabs
7235         * doc/README.txt,
7236         * doc/INSTALL.txt: updated for release
7237         * doc/sdccman.lyx: added warning for --xstack being buggy
7238
7239 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
7240
7241         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
7242         to eliminate build warnings.
7243         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
7244
7245 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
7246            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7247
7248         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
7249         removed -penable-stack, added comment for stack pragma, added
7250         warning for not initializing the stack/frame registers, removed
7251         comment at interrupts section
7252
7253         Stack is made permanent, there is no ability to disable stack usage.
7254         * src/pic16/device.h,
7255         * src/pic16/device.c: removed all references to USE_STACK macro,
7256         * src/pic16/device.c (pic16_dump_section): when no elements in
7257         rlist, free rlist before return,
7258         * (pic16_dump_int_registers): NEW, internal registers are a new set
7259         of general purpose registers reused by each function,
7260         * (checkAddReg): returns 1 if registers is added to set,
7261         * (pic16_groupRegistersInSection): when a registers is of type
7262         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
7263         * src/pic16/device.h: memRange and Assigned Memory are deleted,
7264         SRCASECMP macro is moved here from device.c
7265         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
7266         PO_PCLATU, PO_PRODL, PO_PRODH,
7267         * (pic16_pCodeOpType, genMinus,
7268         changed compares to "a" register, with AOP_ACC,
7269         * (pic16_genPlus): fixed some bugs and indented properly,
7270         * (pic16_addSign): changed size to size+offset in the MOVWF
7271         instruction,
7272         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
7273         multiply 8-bit operand by literal, result is 8-bit,
7274         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
7275         multiply 2 8-bit operand, result is 8-bit,
7276         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
7277         genUMult8X*_16,
7278         * src/pic16/gen.c: changed accUse to contain WREG only,
7279         * (pic16_emitcomment): renamed to pic16_emitpcomment,
7280         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
7281         true, do not use immediate addressing any more unless sym is a
7282         pointer in codespace,
7283         * (aopForRemat): do not use immediate addressing when symbol not in
7284         codespace and when symbol's address is requested,
7285         * (aopOp): for-loop in if(sym->accUse) is modified for the new
7286         accUse size (= 1),
7287         * (aopGet): added case for AOP_ACC and don't return "accumulator
7288         bug" but WREG instead,
7289         * (popGetTempReg): pushes contents of temporary register in stack,
7290         * (popReleaseTempReg): pops contents of temporary register from
7291         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
7292         * (pic16_popGet): separated case AOP_ACC to return register WREG
7293         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
7294         or PO_IMMEDIATE and initializes their instance/offset appropriately,
7295         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
7296         the use of immediate pointers to certain cases only.
7297
7298         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
7299         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
7300         * (assignResultValue, genCall, genRet): modified to use the new
7301         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
7302         genPcall is still broken,
7303         * (genFunction): added code to create 'A' type pBlocks when
7304         interrupt functions are generated, code not extensively tested yet,
7305         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
7306         * (genEndFunction): modified so ISRs pop stored registers from stack,
7307         * (genMultOneByte): cleanup,
7308         * (AccRsh): added flag andmask, to and result with appropriate mask,
7309         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
7310         * (genDataPointerGet): fixed and reenabled its use,
7311         * (genNearDataPointerGet): bugs fixed,
7312         * (genDataPointerSet): bugs fixed,
7313         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
7314         pic16_DumpSymbol, pic16_DumpOp,
7315         * src/pic16/genutils.h: function prototypes for the above functions,
7316         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
7317         pointers,
7318         * (pic16emitRegularMap): many many many improvements, but needs a
7319         major cleanup,
7320         * src/pic16/main.c: enable_stack in pic16_options is removed,
7321         * (_pic16_parseOptions): removed command line options -penable-stack,
7322         * (_process_pragma): emit stack symbol only when stack pragma is
7323         processed,
7324         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
7325         redirected to FSR0L/FSR0H pair,
7326         * (pic16_get_op, pic16_get_op2): modifications and improvements,
7327         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7328         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
7329         for immediates,
7330         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
7331         * (dumpPicOptype): NEW,
7332         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
7333         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
7334         with movff instruction,
7335         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
7336         added pic16_int_regs, some packRegsFor* functions are commented out,
7337         because produce errors,
7338         * src/pic16/NOTES: minor modifications
7339
7340 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7341
7342         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
7343         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
7344         --pack-iram.
7345         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
7346         * as/mcs51/lkaomf51.c: fixed bug #895763
7347
7348 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
7349
7350         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
7351
7352 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7353
7354         * doc/sdccman.lyx: added details about the HC08 storage classes and
7355         interrupts, fixed the register usage info for z80 & gbz80
7356
7357 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
7358
7359         * doc/sdccman.lyx: added more pic16 port documentation
7360         * device/include/pic16/: added header pic18fregs.h
7361
7362 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
7363
7364         * doc/sdccman.lyx: added Vangelis' contribution
7365
7366 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7367
7368         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
7369         extend to the next CALL or PCALL, not just to the next CALL.
7370
7371 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
7372
7373         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
7374
7375 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7376
7377         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
7378         bug #895752 and a better fix for bug #716790
7379
7380 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7381
7382         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
7383
7384 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7385
7386         * doc/sdccman.lyx: minor changes, minor changed
7387
7388 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
7389
7390         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
7391         which can't handle SDCC_NEWONEBYTEOPS,
7392         (geniCodeMultiply): removed conversion from mult to shift for pic14
7393         and pic16
7394
7395 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7396
7397         * src/hc08/gen.h,
7398         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
7399         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
7400         thus fixing bug #895406
7401
7402 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
7403
7404         * device/lib/_modsint.c,
7405         * device/lib/_modslong.c: sign follows divisor only
7406         * src/hc08/gen.c (genMultOneByte): if result size is 1,
7407         signs or signedness can be ignored
7408         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
7409         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
7410         added optimization for IFX,
7411         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
7412         arguments;
7413         reenabled optimization for IFX, which was removed on 2004-01-11
7414         * src/SDCCast.h: added return type IFX
7415         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
7416         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
7417         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
7418         SDCC_OLDONEBYTEOPS selects the old behaviour
7419         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
7420         changed again and commented promotion rule
7421         * src/SDCCval.c (valDiv): promotion no longer necessary
7422         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
7423         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
7424         rewritten
7425         * support/regression/tests/onebyte.c: added
7426
7427 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
7428
7429         * gen.c (genInline): reverted to old code for assemnling inline
7430         code because of bug reported James Chadd
7431
7432 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
7433
7434         * ralloc.h: missing declarations from previous patch,
7435         seems that patch for ralloc.h was never applied, fixed
7436
7437 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7438            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7439
7440         * pcode.c,
7441         * pcode.h,
7442         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
7443         indirect addressing. Marked FSR0 as deprecated
7444         * gen.c (pointerCode): commented out, not needed now
7445         (pic16_popGet2p): new MOVFF helper function
7446         (genGenPointerGet),
7447         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
7448         (shiftRLong): removed duplicate debugging info
7449
7450 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7451
7452         * src/ds390/gen.c (genNearPointerGet),
7453         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
7454         optimization with bits, but not bitfields.
7455         * src/ds390/ralloc.c (packRegisters),
7456         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
7457
7458 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
7459
7460         * src/SDCCcse.c (algebraicOpts): copy operands before modification
7461
7462 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7463
7464         * src/SDCCsymt.h,
7465         * src/SDCCicode.c (operandFromSymbol),
7466         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
7467         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
7468         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
7469         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
7470         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
7471         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
7472         bug #892038
7473         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
7474         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
7475         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
7476         * src/SDCCsymt.c (newSymbol),
7477         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7478         enumerator_list),
7479         * src/SDCCval.h,
7480         * src/SDCCval.c (newiList): fixed bug #885705
7481
7482 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7483
7484         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
7485         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
7486
7487 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7488
7489         * device/include/c8051f120.h,
7490         * device/include/c8051f300.h,
7491         * device/include/c8051f310.h: added/updated header files for Silicon
7492         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7493         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
7494         in new section Submitting patches
7495
7496 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7497
7498         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
7499         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7500         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7501         genGenPointerSet),
7502         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
7503         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7504         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7505         genGenPointerSet),
7506         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
7507         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7508         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7509         genGenPointerSet),
7510         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
7511         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7512         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7513         genGenPointerSet): fixed bug #892400
7514         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
7515         to eliminate build warnings.
7516         * src/SDCCast.c (processParms),
7517         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
7518         fixed bug 751859
7519         * support/valdiag/valdiag.py: added GCC to the list of defines active
7520         when compiling with gcc
7521
7522 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7523
7524         * support/Util/SDCCerr.h,
7525         * support/Util/SDCCerr.c,
7526         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
7527         with an incomplete type (fixed bug #883734)
7528         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
7529
7530 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7531
7532         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
7533
7534 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7535
7536         * src/SDCCast.c (decorateType),
7537         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
7538         function pointer implementation
7539         * support/regression/tests/funptrs.c: added tests to verify both forms
7540         of function pointers work correctly. Added tests to verify parameters
7541         are passed in the correct order.
7542
7543 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
7544
7545         * device.c (regCompare): registers are sorted by ascending
7546         address and increasing size,
7547         * main.c (_pic16_finaliseOptions): removed the declaration
7548         of compiler macro MCU. Now a macro of the format pic18fxxxx
7549         will be defined from the command line
7550
7551 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7552             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7553
7554         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
7555         PCOP_RLCF was overwritten!
7556         * gen.c (genSkip): commented out calls to pic16_emitcode,
7557         * (genCmpEQ): fixed "long" compares, only high word did get compared,
7558         * (genlshTwo),
7559         * (genRRC): added debugging info,
7560         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
7561         overwritten while shifting,
7562         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
7563         overwritten while shifting,
7564         * (AccLsh),
7565         * (AccRsh),
7566         * (shiftLLeftOrResult),
7567         * (shiftRLeftOrResult),
7568         * (shiftRLong),
7569         * (shiftLLong): Implemented with pic16_emitpcode
7570         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
7571         * (genLeftShift): Fixed bug, operand for shift by variable always
7572         was "and"ed with 0x0f,
7573         * (genLeftShiftLiteral),
7574         * (genrshTwo),
7575         * (genRightShiftLiteral): added debugging info,
7576         * (genrshFour): added comment,
7577         * (genRightShift): determined signedness from operand "left"
7578         instead of "result"
7579
7580 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7581
7582         * src/SDCCicode.c (geniCodeParms),
7583         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
7584         function pointers, fixed function pointer bugs #861242 and #861896
7585
7586 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7587
7588         * device/include/c8051f000.h,
7589         * device/include/c8051f120.h,
7590         * device/include/c8051f300.h: added header files for Silicon
7591         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7592
7593 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
7594
7595         * src/SDCCast.c (processParams): added new type flow and restructured
7596         (gatherAutoInit): added new type flow
7597         (addCast): cosmetic changes
7598         (getLeftResultType): added new type flow for array indices, patch
7599         provided by Stas, see FR #877103
7600         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
7601         array index patch by Stas
7602         * src/SDCCast.h: added prototype getResultTypeFromType()
7603         * src/SDCCval.h,
7604         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
7605         * src/pic/glue.c (pic14emitStaticSeg),
7606         * src/pic16/glue.c (pic16emitStaticSeg),
7607         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
7608         for initialization of symbols
7609         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
7610         * support/Util/SDCCerr.h:
7611         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
7612         * .version: bumped version number to 2.3.8
7613         * device/include/Makefile.in (install),
7614         * doc/Makefile (install): changed to 'rm `find ...`' construct to
7615         avoid warnings
7616
7617 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
7618
7619         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
7620         Slade Rich fixed an optimization bug
7621         * src/pic/pcodepeep.c,
7622         * src/pic/pcoderegs.c
7623         * doc/Makefile (install): added test for directory
7624
7625 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7626
7627         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
7628         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
7629         * src/pic/ralloc.c (getRegPtr, getRegGpr),
7630         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
7631         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
7632         * as/mcs51/asexpr.c (term),
7633         * as/hc08/asexpr.c (term): fixed bug #887146
7634
7635 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7636
7637         * src/z80/gen.c (genMult): handle single byte result product
7638         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
7639         DUMMY_READ_VOLATILE (fixed bug #886367)
7640
7641 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
7642
7643         * support/regression/tests/libmullong.c: fixed logic, on little endian
7644         hosts we ended without a mullong_wrapper()
7645
7646 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7647
7648         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
7649         virus/worm forged address usage.
7650
7651 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
7652
7653         Fixed promotion, it should be done on AST level:
7654         * src/SDCCast.c (addCast): added promotion to int
7655         (decorateType): updated call to upCast()
7656         * src/SDCCicode.c (geniCodeLeftShift): removed call to
7657         usualUnaryConversions()
7658
7659 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
7660
7661         * support/regression/tests/literalop.c (mulWrapper): Added a
7662         wrapper to remove integer overflow warnings.
7663
7664         * support/regression/tests/float_trans.c: Made work on host.
7665
7666         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
7667         location of sz80.
7668
7669         * support/regression/generate-cases.py (main): Changed from inline
7670         to a main method.
7671
7672         * doc/Makefile (install): Changed to depth first to get rid of
7673         missing directory install warning.
7674
7675         * as/Makefile (install-doc): Made work on Mac.
7676
7677 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
7678
7679         * src/SDCCast.c: added an additional type flow in decorateType() of
7680         opposite direction, see feature request #860006; it's enabled at runtime
7681         by setting the environment variable SDCC_NEWTYPEFLOW
7682         * src/SDCCast.h: changed prototype of decorateType()
7683         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
7684         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
7685         'char' to 'int' can be omitted, if both operands are 'unsigned char';
7686         see feature request #877103
7687         * src/SDCCval.c: updated call of decorateType()
7688         (valBitwise): fixed bug #882876
7689         (valMinus): added promotion
7690         (valLogicAndOr): result is unsigned
7691         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
7692         * src/SDCCsymt.c (computeType),
7693         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
7694         must not cause an unsigned operation
7695         * src/pic/glue (pic14emitRegularMap),
7696         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
7697
7698 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
7699
7700         * src/pic/pcode.c (PCodeID): commented out left over debug code
7701
7702 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
7703
7704         * support/valdiag/tests/overflow.c: added shift tests
7705         * src/pic/device.c,
7706         * src/pic/gen.c,
7707         * src/pic/gen.h,
7708         * src/pic/glue.c,
7709         * src/pic/main.c,
7710         * src/pic/pcode.c,
7711         * src/pic/pcode.h,
7712         * src/pic/pcodepeep.c,
7713         * src/pic/pcoderegs.c,
7714         * src/pic/ralloc.c,
7715         * src/pic/ralloc.h: applied patch from Slade Rich;
7716         added support for multiple code pages and multiple RAM banks on the
7717         PIC 14 port. The ASM files now no longer simply assume all the
7718         code / RAM are in the same page / bank. This means the linker can
7719         safely allocate code/RAM of separate ASM files to different pages/banks.
7720         * doc/sdccman.lyx: added Slade's tips
7721         * src/mcs51/peeph.def: fixed bug #880768
7722
7723 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7724
7725         * src/hc08/ralloc.c (rematStr): fixed bug #879282
7726         * src/SDCCast.c (decorateType): fixed bug #880197
7727
7728 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
7729
7730         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
7731         getopt.h.
7732
7733         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
7734         strtof is not part of C89 and isn't included with Mac OS X.
7735
7736 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7737
7738         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
7739         shiftL2Left2Result): fixed bug #879326
7740         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
7741         (genMultOneByte): fixed bug in signed vs unsigned multiplication
7742         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
7743         address fetch for clr instruction
7744         * device/lib/hc08/_mulint.c: created optimized assembly version
7745         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
7746
7747 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
7748
7749         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
7750         proposed in FR #877103
7751
7752 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
7753
7754         * src/SDCCval.c (cheapestVal): added missing checks
7755         * src/SDCCicode.c (usualBinaryConversions): fixed condition
7756         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
7757
7758 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
7759
7760         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
7761         equal operands
7762
7763 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
7764
7765         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
7766         loaded with the linker search paths (-L arguments) and the libraries
7767         to be linked with the current source (-l arguments). Changes
7768         currently will affect only the pic16 port.
7769         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
7770         include path the port specific paths and port specific libraries,
7771         * gplink command now contains the $3 argument,
7772         * src/pic16/device.h,
7773         * src/pic16/device.c,: structure PIC_device is made public and
7774         renamed to PIC16_device, the same for variable Pics which is renamed
7775         to Pics16. Updated all references to them.
7776         * src/pic16/glue.c (pic16glue): corrected bug with code
7777         initialization which bypassed the variable initializations block.
7778
7779         * device/lib/pic16/Makefile.rules: removed --penable-stack from
7780         COMPILE_FLAGS and added the --nostdinc option
7781
7782 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7783
7784         * device/include/mc68hc908jb8.h: Register defs for another member
7785         of the hc08 family. Contributed by Bjorn Bringert - thanks!
7786
7787 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
7788
7789         Documenting changes from previous commits.
7790         * configure.in (version 1.56),
7791         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
7792         when generating output files to configure the pic16 library,
7793         but now I've commented it out, since gputils aren't installed in the
7794         SF compile farm, so library won't compile
7795
7796         * device/lib/Makefile.in (version 1.56): initially I've added in
7797         target 'all' the prerequestive 'model-pic16' so it compiled the
7798         pic16 library, but now I've commented it out for the same reasons
7799         above,
7800         * added targets 'model-pic16' and 'objects-pic16' to compile the
7801         library
7802         * added target 'port-specific-objects-pic16' to handle the
7803         generated libraries and copy them into the build/ directory
7804         * added target 'clean-intermediate-pic16' to clean intermediate
7805         files into pic16 directory
7806         * in target 'installdirs' added line to create directory pic16 in
7807         the installation path
7808
7809         * device/include/Makefile.in (version 1.11): in target 'install'
7810         added lines to copy all header files to installation path,
7811         * in target 'installdirs' added line create directory for pic16
7812         headers in the installation path
7813
7814 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
7815
7816         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
7817          a function call
7818
7819 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
7820
7821         * configure,
7822         * device/lib/configure.in,
7823         * device/lib/configure: fixed for autoconf 2.57
7824
7825 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7826
7827         * src/z80/main.c (_parseOptions): fixed the portmode= command line
7828         option so that it actually works. Made it specific to the z80, since
7829         the gbz80 doesn't have these kinds of I/O ports.
7830
7831 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7832
7833         * device/include/z180.h,
7834         * device/lib/_memcpy.c,
7835         * device/lib/_memmove.c,
7836         * device/lib/_mulint.c,
7837         * device/lib/ser_ir.c,
7838         * device/lib/ser_ir_cts_rts.c,
7839         * device/lib/_strcmp.c,
7840         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
7841         * src/z80/main.c (_process_pragma): add support for pragmas bank and
7842         portmode; added deprecation warning for bank= and protmode= forms.
7843         Also, guard against buffer overflow.
7844         * src/z80/gen.c (aopGet): generate better code for sfr banked read
7845
7846 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7847
7848         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
7849         changed interrupt vector table generation to only emit declared vectors.
7850         * device/include/Makefile.in: added missing backslash
7851         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
7852
7853 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
7854
7855         Mainly changes to support compilation of the device libraries
7856         * src/pic16/device.c: stack is allocated via symbol and not
7857         via literal number. The symbol is placed in the corresponding
7858         position of the data ram
7859         * (pic16_dump_section): relocatable and absolute uninitialized
7860         data are now emitted in sorted order to reduce section naming,
7861         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
7862         weren't marked as being in the access bank,
7863
7864 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
7865
7866         Added portion of GNU PIC Library under the directory
7867         device/include/pic16 and device/lib/pic16. These files
7868         contain the declarations of SFRs for the PIC18Fxx2 devices.
7869         The directory is initialized via configure from toplevel.
7870
7871 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
7872
7873         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
7874         the spilllocations to be compared correctly
7875
7876 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
7877
7878         * src/SDCCast.c (decorateType): fixed bug introduced today
7879
7880 2004-01-12  Borut Razem <borut.razem AT siol.net>
7881
7882         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
7883         doc/sdccman.lyx: upper case pragmas are deprecated
7884
7885 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
7886
7887         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
7888         in simpler and even better code
7889
7890 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
7891
7892         * src/SDCCicode.c (operandOperation): fixed bug #874819
7893         * src/SDCCast.c (decorateType): fixed
7894         char foo (unsigned long ul) { return ul > 0; }
7895
7896 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7897
7898         * doc/sdccman.lyx: Moved and added some sections, small changes
7899         all over. Telling LaTeX to be less strict with word spacing
7900         to better keep the right margin. Changed some notes about
7901         maintainance of the ports in section 3.2.1 - is it OK like this?
7902
7903 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
7904
7905         SDCC source changes:
7906         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
7907         convilong): modified to inform the pic16 port that builtin functions
7908         are external
7909
7910         PIC16 PORT specific changes:
7911         * src/pic16/device.c pic16_dump_equates() added,
7912         processor registers declared internally by the port are emitted in
7913         the translation as equates,
7914         * src/pic16/gen.c: inline code is passed unprocessed to the
7915         translation,
7916         * (pic16_popGetLit2): fnuction modified to take second operand as
7917         pCodeOp pointer and not as literal,
7918         * (popRegFromIdx): prefixed with pic16_,
7919         * (pic16_popCombine2): modified to receive already allocated pCode
7920         operands,
7921         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
7922         * (genFunction): initializes local stack frame and pushes on stack
7923         all the registers used by this function,
7924         * (genEndFunction): restores all registers from stack and restores
7925         stack frame,
7926         * src/pic16/glue.c (pic16emitRegularMap): various changes and
7927         improvements,
7928         * (pic16glue): changed the program startup sequence,
7929         * added new dbName code 'A' for functions placed in absolute section
7930         * src/pic16/main.c: added function attribute _naked,
7931         * added pragma 'code' to place a fnuction at an absolute address,
7932         * added command line arguments --debug-ralloc and --pcode-verbose,
7933         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
7934         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
7935         * (pic16_newpCodeOpLit2): modified to take the second operand as
7936         pCodeOp pointer,
7937         * (pic16_printpBlock): modified to emit each function in a separate
7938         section,
7939         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
7940         UPPER for immediate operands,
7941         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
7942         instruction,
7943         * src/pic16/peeph.def: all peepholes with movff are commented out,
7944         because there is a problem in the pcode peep optimizer,
7945         * src/pic16/ralloc.c: the register allocator can now reuse local
7946         function symbols for another function. This saves register usage.
7947         * src/pic16/ralloc.h: added flag isLocal in structure regs,
7948
7949         Added file src/pic16/NOTES with information about program writing on
7950         the current port version.
7951
7952 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7953
7954         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
7955         and peephole 252 (array access)
7956
7957 2004-01-09  Borut Razem <borut.razem AT siol.net>
7958
7959         * src/SDCCmain.c : fixed #872250: -l command line defined library
7960           files are scanned before standard library files
7961
7962 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7963
7964         * src/SDCCast.c (decorateType): fixed bug #874046
7965
7966 2004-01-09  Borut Razem <borut.razem AT siol.net>
7967
7968         * support/scripts/sdcc.nsi: remove previous installation
7969
7970 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7971
7972         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
7973         bytes for last interrupt vector (mcs51)
7974         * sdcc.spec: fixed typo
7975
7976 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7977
7978         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
7979         gen51Code): more efficient parameter receive for --model-large
7980         ("bug" #845294)
7981
7982 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7983
7984         * src/ds390/main.c,
7985         * src/z80/main.c: added missed needLinkerScript flags (more than
7986         one port structure defined in these file)
7987         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
7988         bug #795325
7989
7990 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
7991
7992         * src/SDCCmain.c: removed various references to DEFAULT_PORT
7993         * src/port.h: added flag needLinkerScript in port->linker
7994         structure to inform whether to create a .lnk file or not,
7995         * src/avr/main.c,
7996         * src/ds390/main.c,
7997         * src/hc08/main.c,
7998         * src/mcs51/main.c,
7999         * src/pic/main.c,
8000         * src/pic16/main.c,
8001         * src/xa51/main.c,
8002         * src/z80/main.c: changed appropriately to configure
8003         needLinkerScript flag
8004         * src/pic/gen.c,
8005         * src/pic16/gen.c (genAddrOf): fixed bug #863624
8006         * src/pic/glue.c: added variable udata_section_name to
8007         override default uninitialized data segment definition for
8008         devices only with SHAREBANK memory (reported from Erik Epetrich)
8009         * (pic14emitOverlay): modified to emit a commented overlay segment
8010         directive when no overlay data exist
8011         * (picglue): modified to emit uninitialized data segment
8012         according to udata_section_name
8013         * src/pic/main.c (_pic14_parseOptions): added command line
8014         options --udata-section-name=[name] to override default
8015         udata definition name
8016         * modified _linkCmd and _asmCmd to include compiler passed
8017         arguments via -W option
8018         * src/pic16/main.c: added $l in _asmCmd, changed extension for
8019         object file from '.rel' to '.o' in port->linker structure,
8020         changed size of fptr from 2 to 3 in port structure
8021
8022 2004-01-07  Borut Razem <borut.razem AT siol.net>
8023
8024         * support/scripts/sdcc.nsi: update PATH
8025         * support/scripts/sdcc.ico: craeted
8026
8027 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
8028
8029         * device/include/Makefile.in: fix install
8030         * doc/Makefile: fix install
8031
8032 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8033
8034         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
8035         in bug #860505
8036         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
8037         how the function variable allocation summary is displayed; also
8038         include information about variables allocated to the overlay
8039         segment
8040
8041 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8042
8043         * as/mcs51/lkmain.c: Help about -Y option
8044         * as/mcs51/lkarea.c: Fixed gcc warnings
8045
8046 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8047
8048         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
8049         fixed warning
8050         * support/valdiag/tests/overflow.c: added
8051         * src/SDCCast.c (decorateType),
8052         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
8053         LEFT_OP (left shift)
8054
8055 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8056
8057         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
8058         (default behaviour).
8059
8060 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8061
8062         A python script to validate compiler diagnostic messages. It can be
8063         used to verify that sdcc complains about bad c source code and
8064         gives a good location of the error.
8065         * support/valdiag/Makefile,
8066         * support/valdiag/valdiag.py,
8067         * support/valdiag/tests/*
8068
8069 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8070
8071         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
8072         * src/SDCCsymt.c (newEnumType),
8073         * src/SDCCsymt.h
8074         * support/Util/SDCCerr.c,
8075         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
8076         enum related bugs.
8077         * support/regression/tests/enum.c: added test for enum values that
8078         require at least 2 bytes of storage.
8079
8080 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8081
8082         * src/common.h: added ifndef/define/endif macros
8083         around the header file.
8084         Bug reported from Jesus Calvino-Fraga
8085
8086 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8087
8088         * sdcc.spec: updated
8089         * device/include/Makefile.in: don't install CVS directories
8090         * device/lib/Makefile.in: added removal of CVS directories after install
8091         * doc/Makefile: fixed install, added local_icons
8092         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
8093         * src/mcs51/gen.c (genRightShift): fixed bug #870788
8094         * src/ds390/gen.c (genRightShift): fixed bug #870788
8095         * src/SDCCast.c (decorateType): fixed bug #870781
8096
8097 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8098
8099         PIC16 port related changes:
8100         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
8101         added variable stackPos,
8102
8103         * gen.c: genCall, assignResultValue: added support for
8104         pushing/retrieving function parameters to/from stack,
8105         genFunction,genEndFunction: setup stack frame for the
8106         generated function,
8107         genAddrOf: will be changed according to bug 863624
8108
8109         * added files genutils.c and genutils.h which contain gen*
8110         debugged and optimised functions extracted from gen.c
8111
8112         * glue.c: added variable 'externs' which holds extern symbols,
8113         pic16emitRegularMap: is modified to properly handle relocatable
8114          symbols under the new scheme,
8115         pic16createInterruptVect: is modified
8116         pic16printPublics: is modified to emit 'global' assembler directives,
8117         added pic16_printExterns to print extern symbols,
8118         pic16glue: initializes stack/frame pointer in the beginning of
8119         the assembly output. Temporary hack, will be corrected later,
8120         because gplink yet does not support stack and SDCC does not
8121         yet support a type of crt0.o object to create the final binary.
8122
8123         * Removed many lines that contain 8051 legacy code.
8124         * The code is finally placed under a 'code' directive.
8125         * Added port specific options.
8126
8127         * _process_pragma: simplified since now we do not need *special*
8128         include file to define SFR registers. But a separate header
8129         will be needed. This will be developed later.
8130         * _pic16_parseOptions: added, parses port specific options:
8131         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
8132         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
8133         --preplace-udata-with=
8134
8135         * _pic16_setDefaultOptions: modified to initialize section names,
8136         but hack is temporarly out of order since it needs improvement.
8137         * _pic16_genAssemblerPreamble: configuration words are emitted by
8138         their address instead of their name. This part is incomplete and
8139         supports only the 18Fxx2 devices. Other devices will emit an error
8140         during assembly since they do not contain the same set of config
8141         registers
8142         * _pic16_genIVT: is modified,
8143
8144         * pcode.c: added definitions for some hardware registers that are needed
8145         for stack support
8146         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
8147         All PCI entries are updated. Now LFSR is supported.
8148         * Removed pic16_pciTRIS is mentioned by mdubuc in source
8149         * added pic16_newpCodeOpLit2 to support instructions with
8150         two literal arguments
8151         * pic16_pCode2str: corrected code that emits assembler instructions
8152         with two literal operands and those that have an access bit modifier
8153         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
8154         this fixes a bug which caused some labels to be lost, when an
8155         assembler directive was added, i.e. banksel,
8156         * pic16_FixRegisterBanking: improved logic that causes the insertion
8157         of bank switching,
8158         * InlineFunction: functions that are called once, are not any more
8159         inlined. This can be a port option in the future,
8160
8161         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
8162
8163         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
8164         hold the corresponding uninitialized symbols,
8165         * pic16_allocProcessorRegister: registers have explicit marked the
8166         accessBank field,
8167         * pic16_allocInternalRegister: registers are explicit marked as
8168         not used,
8169         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
8170         processing list, so bit registers were lost,
8171         *
8172
8173         * ralloc.h: added field 'accessBank' and original symbol operand
8174         in register definition,
8175         * removed the field isMapped from register definition,
8176
8177         ** Several functions have been removed from various sources:
8178         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
8179         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
8180         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
8181         pic16_assignRelocatableRegisters
8182
8183         ** others have been introduced:
8184         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
8185         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
8186
8187 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
8188
8189         * support/scripts/inc2h.pl: changed definition of BIT_AT
8190         to emit 'sbit at' instead of 'bit at'. This was a request.
8191
8192         PIC16 port related preliminary changes:
8193         * gen.c: prefixed function popRegFromString with
8194         pic16_ and all references to it corrected
8195         * pcode.c: all pic16_pc_* hardware registers prefixed
8196         with underscore (_),
8197         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
8198         * ralloc.c: newReg(): when register is REG_SFR then
8199         set address to rIdx,
8200         pic16_allocProcessorRegister(): marks register wasUsed=0
8201         pic16_writeUsedRegs(): added a call to assign processor
8202         registers via pic16_assignFixedRegisters
8203
8204 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8205
8206         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
8207         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
8208         variables in unused register banks.  Also the SSEG is placed
8209         wherever there is enough space for it, and IDATA can be anywhere
8210         in internal RAM.  For now compile using -Wl-Y[stack_size].
8211         The mem file is different for this option as well, since it
8212         makes no sense of talking about DSEG lenght.
8213
8214 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
8215
8216         * src/SDCClrange.c: fixed bug 869095 that caused segfault
8217         in certain cases, e.g. when ROM assignment, patch provided
8218         from Albert den Haan.
8219
8220 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
8221
8222         Many signedness and type propagation fixes:
8223         * src/SDCCicode.c: made geniCodeCast() static
8224         replaced SPEC_ by IS_ (cosmetic)
8225         (operandOperation): fixed div and mod operation
8226         (usualBinaryConversions): added support for promotion of char
8227         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
8228         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
8229         (geniCodeAdd): an array index will stay unsigned, even if promoted
8230         from char to int
8231         (geniCodeArray): ditto
8232         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
8233         * src/SDCCsymt.c (computeType): added more support for char;
8234         promotion of char is selectable by promoteCharToInt, fixed signedness
8235         for all cases
8236         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8237         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8238         * src/SDCCval (val*): replaced signedness calculation by
8239         computeType()
8240         rearranged if-branches (cosmetic)
8241         (valShift): added warning W_SHIFT_CHANGED
8242         (valCompare): fixed problem with different types
8243         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
8244         * support/regression/tests/literalop.c: added many cases
8245         * support/regression/tests/ast_constant_folding.c: changed finally to
8246         'unsigned int'
8247         * .version: new year, new version: 2.3.7
8248         * src/SDCCmain.c (main): applied patch #866468
8249         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
8250         provided by Scott Bronson
8251         * doc/sdccman.lyx: updated documentation for sdcdb
8252         updated and added chapter tips
8253
8254 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8255
8256         * src/SDCCsymt.h: missing from yesterday's commits
8257
8258 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8259
8260         * src/SDCC.y (struct_or_union_specifier),
8261         * support/Util/SDCCerr.c,
8262         * support/Util/SDCCerr.h: verify that struct & union tags are used
8263         as declared.
8264
8265 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8266
8267         * src/SDCCglobl.h: missing from yesterday's commits
8268
8269 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8270
8271         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
8272         sft_attributes, struct_declaration, parameter_declaration,
8273         type_name, start_block, declaration_list),
8274         * src/SDCC.lex (check_type): support redefinition of typedef names
8275
8276 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8277
8278         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
8279         aligned xdata arrays. Erik helped me with the if clause.
8280
8281 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8282
8283         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
8284         warning
8285
8286 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8287
8288         * src/SDCCast.h,
8289         * src/SDCCast.c (newAst_),
8290         * src/SDCCicode.h,
8291         * src/SDCCicode.c (ast2iCode, newiCode),
8292         * src/SDCCglobl.h,
8293         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
8294         expr, statement, expression_statement, selection_statement,
8295         iteration_statement, expr_opt, jump_statement): foundation for tracking
8296         sequence points
8297         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
8298         point code too)
8299
8300 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8301
8302         * support/Util/SDCCerr.c,
8303         * src/SDCCast.h,
8304         * src/SDCCast.c (createCase, createDefault, decorateType),
8305         * src/SDCClabel.c (labelUnreach),
8306         * src/SDCC.y (labeled_statement, jump_statement): More improvements
8307         to error messages.
8308         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
8309         (with thanks to Stas Sergeev)
8310         * device/include/time.h,
8311         * device/lib/time.c (CheckTime): suppress unreachable code warning
8312
8313 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8314
8315         * src/SDCCast.c (createIvalCharPtr),
8316         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
8317         bug #753752)
8318         * support/regression/tests/nullstring.c: tests for these two bugs
8319
8320 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8321
8322         * support/Util/SDCCerr.h,
8323         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
8324         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
8325         about storage class and 'at' used inside struct or union
8326         * src/SDCCBBlock.c (iCodeFromeBBlock),
8327         * src/SDCCcse.c (ifxOptimize),
8328         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
8329         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
8330         printIval, emitStaticSeg, emitOverlay),
8331         * src/SDCClabel.c (deleteIfx),
8332         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
8333         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
8334         gatherAutoInit, processParms),
8335         * support/Util/SDCCerr.h,
8336         * support/Util/SDCCerr.c (werrorfl): Support for better error location
8337         reporting for post-parse errors.
8338
8339 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8340
8341         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
8342         implicit casts via union; they don't work on big endian systems
8343         (possible fix for bug #861138)
8344
8345 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8346
8347         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
8348         * src/mcs51/main.c: fixed the fix for bug #737001
8349
8350 2003-12-15  Borut Razem <borut.razem AT siol.net>
8351
8352         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
8353
8354 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8355
8356         * support/makebin/makebin.c: put output in binary mode
8357
8358 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8359
8360         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
8361         xdata and data memory on startup. Set the environment variable
8362         SDCC_NOGENRAMCLEAR to disable this.
8363         * src/mcs51/peephole.def,
8364         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
8365         (allows non-interrupt and interrupt code to safely compete for a resource
8366         without the non-interrupt code having to disable interrupts)
8367
8368 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8369
8370         * src/SDCCicode.c (geniCodeAdd),
8371         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
8372         with valFromType if type might be a pointer and host is big endian).
8373         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
8374         types, not just integer types.
8375         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
8376         multiply defined with mismatching "at" address.
8377
8378 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8379
8380         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
8381         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
8382         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
8383         with embedded nulls (fixed bug #753752)
8384
8385 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8386
8387         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
8388         Apparently this did not see much testing (endless loop)
8389
8390 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8391
8392         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
8393
8394 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8395
8396         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
8397         gracefully handle NULL memmap pointers
8398
8399 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8400
8401         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
8402         instead of deleting the iCode when an operand is volatile
8403         * src/z80/gen.c (genDummyRead),
8404         * src/mcs51/gen.c (genDummyRead),
8405         * src/ds390/gen.c (genDummyRead),
8406         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
8407         not just IC_RIGHT
8408         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
8409         * src/SDCC.y: fixed bug #850420
8410
8411 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8412
8413         Applied z80 i/o port patch from Peter Townson and fixed some operators
8414         to better handle operands in A register.
8415         * device/include/z180.h
8416         * src/SDCC.y
8417         * src/SDCCglue.c
8418         * src/z80/gen.c
8419         * src/z80/gen.h
8420         * src/z80/main.c
8421         * src/z80/peeph-z80.def
8422         * src/z80/peeph.def
8423         * src/z80/z80.h
8424
8425 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8426
8427         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
8428
8429 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8430
8431         * device/lib/hc08/_mullong.c: Removed extra #endif
8432
8433 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8434
8435         * sim/ucsim/hc08.src/inst.cc,
8436         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
8437         carries from x to h
8438         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
8439         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
8440         * device/include/stdarg.h: fixed varargs for hc08
8441         * device/lib/Makefile.in,
8442         * device/lib/hc08/Makefile,
8443         * device/lib/hc08/_mulint.c,
8444         * device/lib/hc08/_mullong.c: fixed some endian problems
8445
8446 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8447
8448         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
8449         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
8450         * device/lib/_gptrget.c,
8451         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
8452
8453 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8454
8455         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
8456         * src/SDCCast.c (astErrors): fixed bug #846007
8457         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
8458
8459 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8460
8461         * src/SDCCast.c (decorateType): disabled a transformation I added in
8462         revision 1.188 (access to fields of a structure at an absolute address);
8463         it breaks with bitfields, extern declarations, and gcse analysis.
8464         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
8465         could be assigned through a pointer, so don't complain.
8466         * src/SDCCast.c (astErrors),
8467         * src/SDCCast.h,
8468         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
8469
8470 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
8471
8472         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
8473         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
8474         output of __config directives, since gpasm now supports them
8475         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
8476         pre-processor macro, i.e. -DMCU=p18f452
8477         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
8478         and modified to handle 'cast' icode similarly to '=' icode
8479         * src/pic16/device.h (typedef struct PIC_device): added field
8480         'extMIface' to indicate that chip has external memory interface
8481         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
8482         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
8483         18F8720
8484
8485 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8486
8487         * src/SDCC.y (pointer): fixed bug #846006
8488         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
8489         * src/SDCCast.c (decorateType): fixed bug #846009
8490         * src/ds390/peeph.def,
8491         * src/ds390/gen.c (genAnd, genOr),
8492         * src/mcs51/peeph.def,
8493         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
8494
8495 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8496
8497         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
8498         * src/SDCCdflow.c
8499         * src/SDCCcse.c
8500         * src/SDCCcse.h
8501         * src/SDCCBBlock.h
8502         * src/SDCCBBlock.c
8503
8504 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
8505
8506         fixed bug #845089
8507         * src/SDCCbitv.h,
8508         * src/SDCCbitv.c: added function to free a bitvector
8509         * src/SDCClrange.h,
8510         * src/SDCClrange.c: added function to recompute the liveranges
8511         * src/avr/ralloc.c,
8512         * src/ds390/ralloc.c,
8513         * src/hc08/ralloc.c,
8514         * src/mcs51/ralloc.c,
8515         * src/pic/ralloc.c,
8516         * src/pic16/ralloc.c,
8517         * src/xa51/ralloc.c,
8518         * src/z80/ralloc.c: recompute the liveranges after register packing
8519
8520 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
8521
8522         * src/SDCCloop.c (newInduction): fixed bug #845630
8523
8524 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8525
8526         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
8527         inadvertantly left behind from my 2003-11-12 change
8528
8529 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8530
8531         Updated headers I neglected to commit yesterday.
8532         * src/SDCClrange.h,
8533         * src/SDCCicode.h
8534
8535 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8536
8537         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
8538         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
8539         * src/SDCCopt.c (eBBlockFromiCode),
8540         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
8541         the creation of the key hash table from the sequencing so it can be used
8542         earlier (for some GCSE bug fixes still pending)
8543
8544 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8545
8546         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
8547         * support/regression/tests/addsub.c: testing genPlus shortcut
8548
8549 2003-11-15  Borut Razem <borut.razem AT siol.net>
8550
8551         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
8552
8553 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8554
8555         * src/SDCCcse.c (cseBBlock): fixed bug #527779
8556         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
8557         ordering is immaterial.
8558         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
8559
8560 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8561
8562         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
8563         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
8564         (SIGSEV) of bug #840381
8565         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
8566         unlink new file before rename if new and old filenames are the same)
8567
8568 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8569
8570         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
8571         uninitialized variables) for the mcs51. Set environment variable
8572         SDCC_GENRAMCLEAR to test.
8573         xdata initialization slightly shorter
8574
8575 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8576
8577         * src/SDCCsymt.h,
8578         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
8579         #838241 & 780691 (basicly the same bug)
8580         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
8581         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
8582
8583 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
8584
8585         * src/SDCCmain.c (linkEdit): "fix" #834252
8586
8587 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8588
8589         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
8590         * src/SDCCast.h,
8591         * src/SDCC.y: fixed bug #819403
8592
8593 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8594
8595         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
8596         the reentrant attribute.
8597         * src/hc08/gen.c (genPackBits): added missing stack readjustment
8598         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
8599         simulation
8600         * src/SDCCast.c (decorateType): fixed bug with storage class not being
8601         updated during pointer dereference; f.e. ~(((char *)1)*) was being
8602         erroneously reduced to a literal.
8603         * src/hc08/ralloc.c (packRegisters, rematStr),
8604         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
8605         some cases
8606
8607 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8608
8609         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
8610         * doc/sdccman.lyx: changed from 'article' to 'book'
8611         * doc/Makefile: readded test_suite_spec and cdbfileformat
8612
8613 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
8614
8615         * device/include/stdlib.h: include malloc.h to comply with ANSI
8616         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
8617
8618 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8619
8620         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
8621         * doc/clean.mk: also remove *.out files
8622         * doc/sdccman.lyx: some additions, larger top/bottom margins
8623
8624 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8625
8626         * src/SDCC.y: fixed bug #837365
8627         * support/regression/tests/bitopcse.c
8628         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
8629         a symbol (might be valop instead)
8630         * device/lib/Makefile.in: added errno.c to HC08SOURCES
8631         * device/lib/clean.mk: added hc08 to the cleaning list
8632
8633 2003-11-04  Borut Razem <borut.razem AT siol.net>
8634
8635         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
8636           made 2003-11-04
8637         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
8638           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
8639           malloc is declared in standard stdlib.h
8640
8641 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8642
8643         * device/lib/hc08/Makefile: need to clean .rel not .o files
8644         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
8645
8646 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8647
8648         * src/port.h,
8649         * src/hc08/main.c,
8650         * src/mcs51/main.c,
8651         * src/ds390/main.c,
8652         * src/z80/main.c,
8653         * src/avr/main.c,
8654         * src/pic/main.c,
8655         * src/pic16/main.c,
8656         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
8657         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
8658         tests (which uses the port's oclsExpense function)
8659         * src/SDCC.y,
8660         * src/SDCCast.c,
8661         * src/SDCCicode.c,
8662         * src/hc08/gen.c,
8663         * src/ds390/gen.c,
8664         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
8665
8666 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8667
8668         * src/SDCCcse.c (ifxOptimize),
8669         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
8670         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
8671         deleting the IFX iCode.
8672         * src/hc08/ralloc.c: reduced unneeded slocs
8673         * src/hc08/gen.c: fixed bug in asmopToBoolean
8674
8675 2003-11-04  Borut Razem <borut.razem AT siol.net>
8676
8677         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
8678           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
8679           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
8680           transferred to configure
8681
8682 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
8683
8684         Use headers defined in the C[++] standards:
8685         * sim/ucsim/gui.src/serio.src/fileio.cc
8686         * sim/ucsim/gui.src/serio.src/frontend.cc
8687         * sim/ucsim/gui.src/serio.src/main.cc
8688         * sim/ucsim/gui.src/serio.src/posix_signal.cc
8689         * support/Util/NewAlloc.c
8690         * as/hc08/lklibr.c
8691         * as/mcs51/lklibr.c
8692         * as/z80/aslist.c
8693         * as/z80/assym.c
8694
8695 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8696
8697         * Added MSVC projects for hc08 assembler and linker:
8698         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
8699         /as/hc08/link_hc08.dsp
8700
8701 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
8702
8703         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
8704
8705 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
8706
8707         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
8708
8709 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8710
8711         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
8712
8713 2003-10-31  Borut Razem <borut.razem AT siol.net>
8714
8715         * support/cpp2/cpplib.h,
8716           support/cpp2/cpplib.c,
8717           support/cpp2/cpplex.c,
8718           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
8719           to switch _asm block preprocessing on / off. Default is
8720           #pragma preproc_asm +
8721
8722 2003-10-31  Borut Razem <borut.razem AT siol.net>
8723
8724         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
8725           when outputting comment blocks (when executed with -C option) and
8726           _asm (SDCPP specific) blocks
8727
8728 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8729
8730         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
8731
8732 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
8733
8734         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
8735
8736 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
8737
8738         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
8739         * src/SDCCast.c (decorateType): fixed bug #832664
8740
8741 2003-10-31  Borut Razem <borut.razem AT siol.net>
8742
8743         * support/cpp2/cpplex.c: fixed for SDCPP:
8744           comments(when executed with -C option) and _asm blocks
8745           were included even if they where in skipped #if block.
8746           Applied solution from GCC cpp 3.3.2
8747
8748 2003-10-31  Borut Razem <borut.razem AT siol.net>
8749
8750         * src/SDCC.lex: sdcc now understands both formats:
8751           '# <line_number> <file_name>' and
8752           '#line <line_number> <file_name>'
8753         * support/cpp2/cppmain.c: sdcpp now generates the standard
8754           '# <line_number> <file_name>' instead of former
8755           '#line <line_number> <file_name>'
8756
8757 2003-10-30  Borut Razem <borut.razem AT siol.net>
8758
8759         * support/cpp2/cpphash.h,
8760         * support/cpp2/cpplib.h
8761         * support/cpp2/cpplex.c,
8762         * support/cpp2/cppmain.c,
8763         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
8764
8765 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8766
8767         Fixed a number of problems revealed by bug #827883.
8768         * src/SDCCloop.c (loopInvariants): Spill location of the
8769         result operand should be recomputed if extracted from
8770         a loop. Also, don't extract assignments of an iTemp
8771         from a literal.
8772         * src/SDCCast.c (isConformingBody): loop reversal should
8773         not occur if the control variable is involved with a
8774         relational operator.
8775
8776 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
8777
8778         * .version: bumped to 2.3.6 to reflect the big improvements
8779         made by Erik and Klaus. Thanks!
8780
8781 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
8782
8783         Replaced the livrange code.
8784         * src/SDCClrange.c: added new LR code
8785         * src/SDCCloop.c,
8786         * src/SDCCBBlock.h: removed remainig parts from old LR code
8787         * src/ds390/ralloc.c,
8788         * src/ds390/gen.c: minor fixes to make it work with new code
8789
8790 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8791
8792         * as/hc08/asm.h,
8793         * as/hc08/lkrloc.c,
8794         * src/hc08/gen.c,
8795         * src/hc08/ralloc.c: Fix various warnings related to the hc08
8796         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
8797         (tweaked fix for bug #818696)
8798
8799 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8800
8801         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
8802
8803 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8804
8805         * src/SDCCmain.c,
8806         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
8807         * src/mcs51/gen.c (gencjneshort),
8808         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
8809         more efficient (per Scott Bronson's suggestion)
8810
8811 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8812
8813         Extended the semantics of the critical keyword to include
8814         individual statements. See RFE #827755 and #799831
8815         * src/SDCC.y
8816         * src/SDCCicode.c
8817         * src/SDCCopt.c
8818         * src/SDCCast.c
8819         * support/Util/SDCCerr.c
8820         * support/Util/SDCCerr.h
8821         * src/mcs51/gen.c
8822         * src/ds390/gen.c
8823         * src/hc08/gen.c
8824
8825 2003-10-19  Borut Razem <borut.razem AT siol.net>
8826
8827         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
8828
8829 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8830
8831         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
8832         Fixed bug #818696
8833         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
8834         and predecrement operand is displayed
8835
8836 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
8837
8838         * src/SDCCval.c (valMinus): fixed bug #826041
8839
8840 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8841
8842         Some hc08 related updates that I missed earlier
8843         * sim/ucsim/stypes.h
8844         * support/regression/ports/hc08/spec.mk
8845
8846 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8847
8848         New target "hc08" for the Motorola 68hc08 family of micros
8849
8850         * configure
8851         * configure.in
8852         * Makefile
8853         * src/hc08/*
8854         * src/SDCCmain.c
8855         * src/port.h
8856         * sim/ucsim/hc08.src/*
8857         * sim/ucsim/configure.in
8858         * src/ucsim/configure
8859         * sim/ucsim/packages_in.mk
8860         * as/hc08/*
8861         * as/Makefile
8862         * device/include/mc68hc908qy.h
8863         * device/lib/hc08/*
8864         * device/lib/Makefile.in
8865         * support/regression/ports/hc08/*
8866         * support/regression/Makefile
8867
8868 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8869
8870         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
8871         regression test
8872         * src/ds390/gen.c (genCast): fixed bug #821957
8873
8874 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
8875
8876         * device/lib/logf.c: "fixed" overlay bug
8877         * support/regression/ports/host/spec.mk: added m library
8878         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
8879         * support/regression/tests/float_trans: added (for Eric)
8880
8881 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
8882
8883         * src/mcs51/gen.c (genCpl): fixed bug
8884         http://sf.net/mailarchive/message.php?msg_id=6263915
8885
8886 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
8887
8888         * src/SDCCast.c (decorateType): added extended constant folding
8889         * src/SDCCsymt.c (computeType): cleanup
8890         * src/SDCCval.c (valShift): minor optimization
8891         * support/regression/tests/ast_constant_folding.c: added
8892
8893 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8894
8895         * src/SDCCmain.c: removed some unintended changes
8896
8897 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8898
8899         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
8900         * src/z80/gen.c: fixed part of bug #817589
8901         * src/SDCCsymt.c (checkFunction): fixed bug #817895
8902
8903 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
8904
8905         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
8906         * src/SDCCcflow.c
8907         * src/SDCCcse.c
8908         * src/SDCCdflow.c
8909         * src/SDCClabel.c
8910         * src/SDCClrange.c
8911         * src/SDCCmem.c
8912         * src/SDCCopt.c
8913         * src/SDCCpeeph.c
8914         * src/SDCCset.c
8915         * src/avr/ralloc.c
8916         * src/ds390/ralloc.c
8917         * src/izt/ralloc.c
8918         * src/mcs51/ralloc.c
8919         * src/pic/ralloc.c
8920         * src/pic16/ralloc.c
8921         * src/xa51/ralloc.c
8922         * src/z80/ralloc.c
8923         * src/z80/gen.c: removed unused label "release:"
8924
8925 2003-10-06  Borut Razem <borut.razem AT siol.net>
8926
8927         * src/SDCC.lex: removed definition of unused variables
8928           save_optimize and save_options
8929
8930 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
8931
8932         * clean.mk: removed '=' in "-maxdepth=1"
8933         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
8934         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
8935
8936 2003-10-06  Borut Razem <borut.razem AT siol.net>
8937
8938         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
8939           my_unput() replaced by unput()
8940
8941 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
8942
8943         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
8944         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
8945         type-punned pointer will break strict-aliasing rules"
8946         Old LR behaviour is again default; Klaus' LR can be choosen by
8947         defining the environment variable LRKLAUS
8948         * src/SDCCBBlock.h
8949         * src/SDCCloop.c
8950         * src/SDCClrange.c
8951         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
8952         * clean.mk: fixed removal of files in bin/CVS/
8953         * device/lib/clean.mk: fixed removal of directories small and large
8954         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
8955         * src/SDCCicode.c,
8956         * src/SDCCval.c: removed superflous test for pedantic
8957
8958 2003-10-05  Borut Razem <borut.razem AT siol.net>
8959
8960         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
8961           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
8962           message "unmatched #pragma SAVE and #pragma RESTORE"
8963
8964 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8965
8966         * doc/sdccman.lyx: various additions and updates (interrupts, inline
8967           assembly, critical functions, atomic, nojtbound)
8968
8969 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
8970
8971         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
8972         * src/SDCCBBlock.h
8973         * src/SDCCloop.c
8974         * src/SDCCloop.h
8975         * src/SDCClrange.c
8976
8977 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8978
8979         * src/z80/gen.h,
8980         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8981         * src/mcs51/gen.h
8982         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8983         * src/ds390/gen.h
8984         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8985         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
8986         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
8987
8988 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8989
8990         * src/z80/gen.c (genRet): fixed bug #524753
8991         * src/z80/gen.c (genCast): fixed internal error on cast from
8992         pointer to long
8993         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
8994         fix for bug #477835 to the z80
8995         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
8996         for tracking iCodes in the peephole optimizer for z80
8997
8998 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8999
9000         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
9001         the other part of bug #814548
9002         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
9003
9004 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
9005
9006         * src/SDCCcse.c: fixed part of bug #814548
9007
9008 2003-09-28  Borut Razem <borut.razem AT siol.net>
9009
9010         * src/asm.c: rewrite of printILine() to use temporary file instead
9011           a pipe
9012         * src/xa51/main.c: commented out declaration of int rewinds
9013
9014 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9015
9016         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
9017
9018 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9019
9020         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
9021         * src/asm.c (printILine): Fixed bug #811015
9022
9023 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9024
9025         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
9026         freeing.
9027
9028 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9029
9030         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
9031         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
9032         to correctly handle general case of AOP_PAIRPTR
9033         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
9034
9035 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9036
9037         * src/mcs51/ralloc.c (fillGaps),
9038         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
9039         register positioning bug)
9040
9041 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
9042
9043         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
9044
9045 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9046
9047         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
9048         genCodePointerGet, genGenPointerGet, genFarPointerSet,
9049         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
9050         (ralloc doesn't intentionally do this now, but perhaps later)
9051         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
9052         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
9053         register positioning bugs (Fixed bug #762602 and #795325)
9054         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
9055         (Fixed bug #808779)
9056         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
9057         lines that --i-code-in-asm generates
9058
9059 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9060
9061         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
9062         trying to fclose a FILE* that was already closed.
9063
9064 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9065
9066         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
9067         of const struct should be treated as if const themselves)
9068
9069 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
9070
9071         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
9072
9073 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9074
9075         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
9076         Unix (/n) and DOS (/r/n) line terminations.
9077
9078 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9079
9080         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
9081         bug #613775
9082
9083 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9084
9085         * src/mcs51/gen.c (genFunction, genEndFunction),
9086         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
9087         and restore of EA so that stack offsets to parameters are
9088         correct when using both critical and reentrant/stack-auto.
9089         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
9090         size (can be triggered in error if sloc is shared between
9091         different sized objects)
9092         * device/include/float.h: fixed macros to explicitly use
9093         unsigned long where needed
9094
9095 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
9096
9097         Feature req. 799831: added code to allow nesting of critical functions
9098         * src/mcs51/gen.c (genFunction, genEndFunction)
9099         * src/ds390/gen.c (genFunction, genEndFunction)
9100
9101 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9102
9103         * src/SDCCsymt.c (sclsFromPtr),
9104         * src/SDCCsymt.h,
9105         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
9106         support for standard C idiom of memory mapped variables; for
9107         example, *((xdata int*)0x1234) = 1 is now internally equivalent
9108         to xdata int at 0x1234 tempvar = 1.
9109         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
9110         provided by Akiya ISHIDA
9111
9112 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
9113
9114         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
9115         * src/SDCCval.c (constVal): added reduction from int to char
9116         * src/SDCCval.c (valMult, valDiv): fixed sign handling
9117         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
9118         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
9119         to ignore the sign
9120         * support/regression/tests/shifts.c: fixed
9121
9122 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9123
9124         * src/z80/gen.c (genXor): Fixed bug #805445
9125
9126 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9127
9128         Fixed bug #621531 (const & volatile confusion in the type chain).
9129         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
9130         refer to the const or volatile state of the pointer itself.
9131
9132         * src/SDCCast.c
9133         * src/SDCCglue.c
9134         * src/SDCCicode.c
9135         * src/SDCCsymt.c
9136         * src/SDCCval.c
9137         * src/SDCC.y
9138         * src/SDCCsymt.h
9139         * src/pic/gen.c
9140         * src/pic/ralloc.c
9141         * src/pic16/gen.c
9142         * src/pic16/ralloc.c
9143         * support/regression/tests/const.c
9144
9145 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9146
9147         When checking for duplicated modules, use absolute paths
9148         instead of relative paths.  Files changed:
9149
9150         * as/mcs51/lklib.c
9151         * link/z80/lklib.c
9152
9153 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9154
9155         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
9156
9157 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9158
9159         * device/include/string.h: added size_t typedef, changed
9160         prototypes to use size_t, eliminated separate reentrant and
9161         non-reentrant declarations, added _memmove declaration
9162         * device/lib/_memcpy.c: changed to use size_t instead of int,
9163         changed /4 to >>2 to avoid division library call
9164         * device/lib/_memcmp.c,
9165         * device/lib/_memset.c,
9166         * device/lib/_strncat.c,
9167         * device/lib/_strncpy.c,
9168         * device/lib/_strncmp.c: changed to use size_t instead of int
9169         * device/lib/_memmove.c: new file (fixed bug #772294)
9170         * device/lib/Makefile.in: added _memmove.c
9171         * device/lib/z80/asm_strings.s: fixed bug #772290
9172         * support/regression/tests/bitfields.c: attempt to fix host assertion
9173         failure on amd64-unknown-linux2.2
9174
9175 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9176
9177         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
9178         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
9179         * as/z80/asmain.c (main): fixed bug #801766
9180
9181 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
9182
9183         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
9184         compilers
9185
9186 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9187
9188         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
9189         reported in bug #800609
9190
9191 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
9192
9193         * Top header beautifications in src/pic16 directory:
9194           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
9195           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
9196           pcoderegs.h, ralloc.c, ralloc.h
9197         * main.c: added top header and GPL license notice
9198         * pcode.c: fixed the if-conditional warning
9199
9200 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
9201
9202         * device/lib/_mullong.c: replaced int by short for gcc
9203
9204 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9205
9206         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
9207         and JUMPTABLE iCodes properly now (worked by accident before)
9208         * src/mcs51/gen.c (leftRightUseAcc),
9209         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
9210         iCode properly now. Use getSize instead of nRegs since a & b
9211         aren't part of the nRegs tally.
9212
9213 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
9214
9215         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
9216         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
9217           before instructions that use the _STATUS register
9218
9219 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
9220
9221         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
9222         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
9223         fetching of the pointer
9224         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
9225         copied from genNearPointerSet()
9226         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
9227         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
9228         If they pop r0/r1 they must be called in the opposite order than aopOp().
9229         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
9230         (resp. --stack-auto), prepared for --xstack
9231
9232 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9233
9234         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
9235
9236 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9237
9238         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
9239         these ports have their own __sdcc_external_start()
9240
9241 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
9242
9243         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9244         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
9245         type for bits was changed. It resulted in bit variables becoming
9246         global, which is not permitted in PIC 14 assembly output.
9247
9248 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9249
9250         * doc/sdccman.lyx: various additions and updates. Rearranged sections
9251
9252 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9253
9254         Z80 and MCS51 linkers complaint if a public symbol is defined
9255         in more than one library module:
9256
9257         * as/mcs51/lklib.c
9258         * link/z80/lklib.c
9259         * as/mcs51/Makefile.in
9260
9261 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9262
9263         A few small changes that speed up the peephole optimizer.
9264
9265         * src/SDCCpeeph.c
9266
9267 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9268
9269         Try to make the peephole optimizer smarter by maintaining
9270         an association between the assembly source code and the
9271         iCodes that originated them. Put this information to use
9272         with a new peephole rule condition "notVolatile" so that
9273         the rules can be aggressive yet still safe.
9274
9275         * src/SDCCpeeph.c
9276         * src/SDCCpeeph.h
9277         * src/mcs51/gen.c
9278         * src/mcs51/peeph.def
9279
9280 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9281
9282         Fixed bug #741761
9283
9284         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
9285         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
9286         if the left or right operand symbols have the accuse flag set.
9287
9288 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9289
9290         Changed the type of the result of the ! (NOT) operator to char;
9291         previously it returned the same type as the source. This allows
9292         us to eliminate all the genFloatNot functions (all of its target
9293         implementations were very buggy) since !float can use the same
9294         code as !long now.
9295
9296         * src/SDCCicode.c (ast2iCode): ! returns char
9297         * src/mcs51/gen.c (genNot, genNotFloat),
9298         * src/ds390/gen.c (genNot, genNotFloat),
9299         * src/z80/gen.c (genNot, genNotFloat),
9300         * src/pic/gen.c (genNot, genNotFloat),
9301         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
9302
9303 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
9304
9305         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9306         1. Interrupt would not compile properly. Ensure PCLATH register is saved
9307            during interrupts. Ensure WSAVE is located at a shared bank address.
9308         2. Fixed page selection in some places
9309         3. Fixed BTFSS/C to where necessary use registers directly and not simply
9310            the registers name strings.
9311         4. Fixed "signed / unsigned compare" compiler warnings.
9312         5. The PIC port manages its own allocation of the general purpose
9313            registers, but makes no attempt to reuse them. As a result when
9314            compiling it soon runs out of general purpose registers. Some
9315            additional code was added to the files pcode.c and device.c to walk
9316            through the function call tree and rename the registers so that they
9317            get reused.
9318
9319         * src/pic/device.c
9320         * src/pic/gen.c
9321         * src/pic/glue.c
9322         * src/pic/pcode.c
9323         * src/pic/pcode.h
9324         * src/pic/ralloc.c
9325         * src/pic/ralloc.h
9326         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
9327         genPlus() & genMinus() when the result is the same as left or right
9328
9329 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9330
9331         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
9332
9333 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9334
9335         Made bitfield a distinct type from bit so that bitfields
9336         convert as per ANSI C and bits retain their traditional
9337         boolean style behaviour. Implemented bitfield support in
9338         the z80 port.
9339
9340         * src/SDCCsymt.h,
9341         * src/SDCCsymt.c,
9342         * src/SDCCast.c,
9343         * src/cdbFile.c,
9344         * src/mcs51/gen.c,
9345         * src/ds390/gen.c: bit v bitfield split
9346         * src/z80/gen.c: New support for bitfields
9347         * support/regression/tests/bitfields.c: reenabled z80,
9348         added more tests
9349
9350 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9351
9352         Rules 246.x, 247.x relate to bitfields, the others speed up
9353         access to xdata mapped I/O devices.
9354
9355         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
9356
9357 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9358
9359         Cleaned up genPackBits and genUnpackBits and added two helper
9360         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
9361         for literal assignments in genPackBits (thanks to Frieder for
9362         reminding me).
9363
9364         * src/mcs51/gen.c
9365         * src/ds390/gen.c
9366
9367 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9368
9369         Fixed bug #748310 (pointer to function type mishandled when the
9370         function name is omitted). Also fixed a SIGSEGV when a function
9371         attribute (reentrant, etc) is used on a non-function or on a
9372         function but misplaced before the parameter list.
9373
9374         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
9375         bug #748310
9376         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
9377         * support/Util/SDCCerr.h,
9378         * support/Util/SDCCerr.c: Added func attr misuse error msg
9379
9380 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9381
9382         Fixed bug #787649 by anonymous
9383         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
9384         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
9385
9386 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9387
9388         Fixed numerous bitfield problems.
9389
9390         * src/SDCC.y: More bitfield related error checking
9391         * src/SDCCsymt.h,
9392         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
9393         * support/Util/SDCCerr.h,
9394         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
9395         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9396         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9397         * support/regression/tests/bitfields.c: tests added
9398
9399 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9400
9401         Made the constant following the "interrupt" keyword optional. If
9402         omitted, the function will not automatically be given an entry
9403         in the interrupt vector table (similar to #pragma NOIV, but
9404         less syntacticly kludgy). The interrupt number is also now
9405         range checked. Also fixed a bug in the high order bit example
9406         in the manual.
9407
9408         * src/SDCC.y
9409         * src/SDCCmem.c
9410         * src/SDCCglue.c
9411         * src/SDCCsymt.h
9412         * support/Util/SDCCerr.c
9413         * support/Util/SDCCerr.h
9414         * doc/sdccman.lyx
9415
9416 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9417
9418         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
9419         * src/SDCCicode.c (operandOperation): rewritten some ops
9420         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
9421         * src/SDCCsymt.c (computeType): literals are handled the same way as any
9422         other type
9423         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
9424         be re-activated by defining REDUCE_LITERALS)
9425         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
9426         unsigned, but are signed by default
9427         * src/SDCCval.c (constVal): rearranged
9428         * src/SDCCval.c (valMod): preliminary fix
9429         * src/SDCCval.c (valCastLiteral): use TYPE_* types
9430         * support/regression/literalop.c: added, work in progress
9431
9432 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9433
9434         Generate warnings for useless declarations like "char data;"
9435         that don't do what new users expect.
9436
9437         * src/SDCC.y
9438         * support/Util/SDCCerr.h
9439         * support/Util/SDCCerr.c
9440
9441 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
9442
9443         * src/SDCCval.c (valMult): fix overflow detection of negative int
9444
9445 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9446
9447         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
9448
9449         Changes to support big endian targets:
9450
9451         * src/ports.h
9452         * src/SDCCglue.c
9453         * src/avr/main.c
9454         * src/ds390/main.c
9455         * src/izt/i186.c
9456         * src/mcs51/main.c
9457         * src/pic/main.c
9458         * src/pic16/main.c
9459         * src/xa51/main.c
9460         * src/z80/main.c
9461
9462 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
9463
9464         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
9465         * device/lib/time.c: fixed warning "integer overflow in expression"
9466
9467 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
9468
9469         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
9470         * src/SDCCval.c (constVal): changed default to signed; hex and octal
9471         constants are unsigned; added recognition of "u" flag for unsigned
9472         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
9473         * src/SDCCval.c (valDiv, valMod): fixed signdness
9474         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
9475         signedness of modulo, left and right shift
9476         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
9477         * support/Util/SDCCerr.h: added warning W_INT_OVL
9478         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
9479         * src/SDCCast.c (ast_print): improved output of constants
9480
9481 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9482
9483         Fixed some warnings when building with MSVC:
9484
9485         * as/mcs51/asdata.c
9486         * as/z80/asdata.c
9487         * as/mcs51/asm.h
9488         * as/z80/asm.h
9489         * link/z80/aslink.h
9490         * link/z80/lkdata.c
9491         * link/z80/lkeval.c
9492         * link/z80/lkgb.c
9493         * link/z80/lkihx.c
9494         * link/z80/lks19.c
9495         * link/z80/lksym.c
9496         * support/cpp2/cpplib.c
9497         * src/ds390/gen.c
9498         * src/mcs51/gen.c
9499
9500 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
9501
9502         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
9503
9504 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9505
9506         * support/librarian/clean.mk: Do not remove Makefile.
9507         * support/librarian/Makefile: added.
9508
9509 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9510
9511         Added librarian to MSVC build:
9512         * all.dsp
9513         * sdcc.dsw
9514         * support/librarian/librarian.dsp
9515
9516         'configure' not needed for librarian, removed:
9517         * support/librarian/configure
9518         * support/librarian/configure.in
9519         * support/librarian/config_in.h
9520         * support/librarian/Makefile.in
9521
9522         Hopefully these ones built the librarian and the rest of sdcc properly:
9523         * Makefile
9524         * Makefile.common.in
9525
9526         Messed up 'configure', so revert to previous version:
9527         * configure
9528         * configure.in
9529
9530 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
9531
9532         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
9533         there, while the mantissa of a double is "only" 53 bits wide.
9534
9535 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9536
9537         Adding sdcclib to the build.  MSVC project coming soon.
9538         Files added/changed:
9539
9540         * support/librarian/clean.mk
9541         * support/librarian/configure
9542         * support/librarian/configure.in
9543         * support/librarian/config_in.h
9544         * support/librarian/Makefile.bcc
9545         * support/librarian/Makefile.in
9546         * support/librarian/sdcclib.c
9547         * Makefile.bcc
9548         * Makefile
9549         * Makefile.common.in
9550         * configure
9551         * configure.in
9552
9553 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9554
9555         Linker now complaints if linked modules have conflicting options, for
9556         example, one compiled using --model-large and another one compiled with
9557         --model-small.  The following files were modified:
9558
9559         * as/mcs51/asdata.c
9560         * as/mcs51/aslink.h
9561         * as/mcs51/asm.h
9562         * as/mcs51/asmain.c
9563         * as/mcs51/asout.c
9564         * as/mcs51/i51pst.c
9565         * as/mcs51/lkdata.c
9566         * as/mcs51/lklibr.c
9567         * as/mcs51/lkmain.c
9568         * as/z80/asdata.c
9569         * as/z80/asm.h
9570         * as/z80/asmain.c
9571         * as/z80/asout.c
9572         * as/z80/z80pst.c
9573         * link/z80/aslink.h
9574         * link/z80/lkdata.c
9575         * link/z80/lklibr.c
9576         * link/z80/lkmain.c
9577         * src/SDCCglue.c
9578
9579 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9580
9581         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
9582         as/mcs51/lklibr.c: Generate a warning when a library is not found.
9583
9584 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
9585
9586         * src/z80/mappings.i: fix _mul[us][int,long] entries
9587
9588 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9589
9590         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
9591
9592 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
9593
9594         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
9595         * support/regression/tests/bitopcse.c: added
9596         fixed warning:
9597         * src/avr/gen.c:
9598         * src/pic/gen.c:
9599         * src/pic16/gen.c:
9600         * src/z80/gen.c:
9601         * src/xa51/gen.c:
9602
9603 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9604
9605         added support for new library format to z80, gbz80 linkers:
9606         *link/z80/aslink.h
9607         *link/z80/lklex.c
9608         *link/z80/lklib.c
9609         *link/z80/lklist.c
9610
9611 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
9612
9613         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
9614         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
9615
9616 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
9617
9618         added DUMMY_READ_VOLATILE:
9619         * src/SDCC.y:
9620         * src/avr/gen.c:
9621         * src/xa51/gen.c:
9622         * src/z80/gen.c:
9623         * src/pic/gen.c:
9624         * src/pic16/gen.c:
9625         * src/mcs51/gen.c:
9626         * src/ds390/gen.c:
9627         * src/SDCCcse.c (algebraicOpts): many improvements
9628         * src/SDCCcse.h: removed algebraicOpts()
9629         * src/SDCCicode.c (picDummyRead): added
9630
9631 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9632
9633         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
9634         "Insufficient space in data memory".
9635
9636 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9637
9638         * src/mcs51/gen.c: fixed bug #771358
9639         * src/z80/gen.c: fixed bug #759087
9640
9641 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
9642
9643         * src/pic16/glue.c: minor cleanup by Vangelis
9644
9645 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9646
9647         * device/include/regc515c.h: fixed #758477
9648         * device/lib/_gptrget.c: saving some cycles in generic pointer get
9649         * device/lib/_gptrput.c: saved a few bytes
9650         * my tab spacing is 8, yours too?)
9651         * device/lib/_ser.c: process RX bytes earlier than TX bytes
9652         * device/lib/serial.c: process RX bytes earlier than TX bytes
9653         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
9654
9655 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9656
9657         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
9658
9659 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9660
9661     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
9662
9663 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
9664
9665         * device/lib/Makefile.in: bad fix, reverted to 1.43
9666
9667 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
9668
9669         * device/lib/Makefile.in: added missing z80 object files
9670
9671 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
9672
9673         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
9674         pic16 progress by Vangelis:
9675         * src/SDCCglobl.h:
9676         * src/SDCCmain.c:
9677         * src/pic/Makefile:
9678         * src/pic:
9679         * pic/Makefile:
9680         * pic16/device.c:
9681         * pic16/device.h:
9682         * pic16/gen.c:
9683         * pic16/gen.h:
9684         * pic16/genarith.c:
9685         * pic16/glue.c:
9686         * pic16/main.c:
9687         * pic16/pcode.c:
9688         * pic16/pcode.h:
9689         * pic16/pcodepeep.c:
9690         * pic16/peeph.def:
9691
9692 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9693
9694     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
9695
9696 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9697
9698     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
9699     added gbz80 build to MSVC project.
9700     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
9701     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
9702     from 8051 stuff and setup so it links using a .lnk file.
9703
9704 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9705
9706     * support/librarian/sdcclib.c: sdcc librarian.
9707     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
9708     with sdcclib.
9709
9710 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9711
9712     * as/mcs51/lkmain.c: properly handle extensions in function afile.
9713
9714 2003-07-02  Borut Razem <borut.razem AT siol.net>
9715
9716         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
9717         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
9718         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
9719         src/xa51/main.c, src/z80/main.c:
9720         virtualization of glue() function: each port has it's own glue function,
9721         which is accessed by do_glue function pointer in PORT.general structure
9722
9723 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
9724
9725         * DS800C400 fun, improved ROM interface and tinibios.
9726
9727 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
9728
9729         * More support for DS80C400. Now includes beginning of interface to ROM.
9730
9731 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
9732
9733         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
9734
9735 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9736
9737         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
9738
9739 2003-06-19  Borut Razem <borut.razem AT siol.net>
9740
9741         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
9742
9743 2003-06-19  Borut Razem <borut.razem AT siol.net>
9744
9745         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
9746         fixed Z80 port - crt0.o: cannot open.
9747
9748 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
9749
9750         * support/Util/MySystem.c (merge_command): revert bad fix
9751
9752 2003-06-18  Borut Razem <borut.razem AT siol.net>
9753
9754         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
9755
9756 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9757
9758         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
9759         option --use-stdout sends errors to stdout instead of stderr.
9760
9761 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
9762
9763         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
9764
9765 2003-06-15  Borut Razem <borut.razem AT siol.net>
9766
9767         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
9768         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
9769         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
9770         fixed width array of pointers replaced with sets;
9771         multiple include and lib paths ared transferred to preprocessor and linker
9772         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
9773         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
9774         fixed width array of pointers
9775         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
9776         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
9777         fixupPath(), getPathDifference()
9778         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
9779         fixed width array of pointers
9780
9781 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
9782
9783         * src/pic16/ralloc.c: fix warnings
9784         * src/pic16/pcode.c: fix warning
9785
9786 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
9787
9788          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
9789         know all the details, but essentially this set of changes enable
9790         the pic16 port to generate movff instructions and generate assembler
9791         directives,
9792         * src/SDCCmain.c:
9793         * src/pic16/gen.c:
9794         * src/pic16/glue.c:
9795         * src/pic16/pcode.c:
9796         * src/pic16/device.c:
9797         * src/pic16/main.c:
9798         * src/pic16/pcode.h:
9799         * src/pic16/pcoderegs.c:
9800         * src/pic16/ralloc.c:
9801         * src/pic16/ralloc.h:
9802
9803 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9804
9805         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
9806         added option --vc, so sdcc errors and warnings are compatible with
9807         Microsoft Visual Studio.
9808
9809 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9810
9811         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
9812           device/lib/libfloat.lib: added atof function.
9813
9814 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
9815
9816         * doc/sdccman.lyx: updated to Lyx 1.3
9817         * doc/cdbfileformat.lyx: updated to Lyx 1.3
9818         * doc/test_suite_spec.lyx: updated to Lyx 1.3
9819         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
9820
9821 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
9822
9823         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
9824
9825 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9826
9827         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
9828           additions to the "related tools/documentation" section
9829
9830 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
9831
9832         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
9833
9834 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
9835
9836         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
9837         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
9838
9839 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
9840
9841         * doc/sdccman.lyx: fix double dash and other minor things
9842         * doc/Makefile: fix double dash
9843
9844 2003-05-28  Karl Bongers(patches from Martin Helmling)
9845         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
9846           condition and ignore commands.
9847
9848 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9849
9850         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
9851           is in parts still quite out of date, I did changes as far as I felt makes sense
9852           for a non-native english speaker.
9853           Please feel free to add to the manual or to correct my changes.
9854         * doc/Makefile: undid touching the date of intermediate tex files.
9855
9856 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9857
9858         * doc/sdccman.lyx: Manual has an index now
9859
9860 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
9861
9862         Finalize muluint/mulsint and mululong/mulslong merging:
9863         * device/lib/_mulint.c
9864         * device/lib/_mullong.c
9865         * device/lib/gbz80/mul.s
9866         * device/lib/gbz80/stubs.s
9867         * device/lib/z80/mul.s
9868         * device/lib/z80/stubs.s
9869         * src/SDCCsymt.c (initCSupport)
9870
9871 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9872
9873         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
9874         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
9875           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
9876           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
9877           instead of /Zm500.
9878
9879 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9880
9881         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
9882           the regression tests I'm not brave enough to enable 245.b, 245.c
9883         * doc/sdccman.lyx: added latex preamble for hyperref package.
9884           Using pdflatex this will give you a hyperlinked pdf file with
9885           bookmarks. (prepend '%' before /usepackage if this breaks something)
9886
9887 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9888
9889          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
9890
9891 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
9892
9893         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
9894
9895 2003-05-21    <johan AT balder>
9896
9897         * src/SDCCglue.c (printIval): fixed bug #739934
9898
9899 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
9900
9901         Applied patch from bug 737905 (renamed yylineo to mylineno):
9902         * src/altlex.c
9903         * src/SDCCast.c
9904         * src/SDCglobl.h
9905         * src/SDCC.lex
9906         * src/SDCCsymt.c
9907         * src/SDCCval.c
9908         * src/pic16/pcode.c: Cleaned warnings
9909         * src/pic16/pcodeflow.c: Cleaned warnings
9910         * src/pic16/pcoderegs.c: Cleaned warnings
9911
9912 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
9913
9914         * src/pic16/pcode.c: Cleaned warnings
9915         * src/pic16/pcodepeep.c: Cleaned warnings
9916         * src/pic16/ralloc.c: Cleaned warnings
9917
9918 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
9919
9920         * doc/sdccman.lyx: fixed bug 739745
9921         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
9922
9923 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
9924
9925         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
9926         it can be defined with CFLAGS when running configure
9927         * src/SDCCmain.c: fixed compiling + linking with object files
9928
9929 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
9930
9931         * configure.in: configure for pic16 port,
9932             added --disable-pic16-port
9933         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
9934         * src/SDCCmain.c: linkOptions is changed to set *,
9935             added if/endif conditional macros to remove options help
9936             messages from optionsTable when a port is not configured, added
9937             support for the PIc16 port in the ports table, when executing
9938             the compiler with no port specified on command line, a default
9939             port is selected with the new macro DEFAULT_PORT which is
9940             defined in port.h, in setDefaultOptions() linkOptions is removed
9941             from initialization assignment, since now it is a set,
9942             parseCmdLine uses setParseWithComma for linkOptions, in
9943             linkEdit() linkOptions are accessed with new function indexSet()
9944             which returns the i'th item of a set variable. See SDCCset.c, in
9945             linkEdit() when calling buildCmdLine(), added linkOptions as
9946             last argument. Now users can pass arguments to gplink via the
9947             -Wl option, main() uses pic16glue() to glue up pic16 programs
9948         * src/SDCCpeeph.c: various changes to support pic16
9949         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
9950             return the i'th item of the set
9951         * src/SDCCset.h: added function prototype for indexSet()
9952         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
9953         * src/clean.mk: added pic16 in CLEANALLPORTS variable
9954         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
9955             added macro DEFAULT_PORT
9956         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
9957         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
9958             generated
9959         * src/pic16/glue.c: commented out some error producing lines
9960         * src/pic16/main.c: __config directives are commented out to stop
9961             gpasm complaining and test the linkage with gplink, _linkCmd and
9962             _asmCmd changed to be more gplink and gpasm friendly
9963         * src/pic16/peeph.def: peep rule 3 is commented out, since it
9964             produced an error when parsed, peep rule 12 is added to utilize
9965             movff, but it is commented out since the pCode does not support
9966             yet a command with 2 address arguments
9967
9968 2003-05-18    <johan AT balder>
9969
9970         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
9971         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
9972 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
9973
9974         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
9975   Added feature to script commands from file.
9976
9977 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
9978
9979         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
9980         * src/SDCCutil.c: include ctype.h for win32
9981
9982 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
9983
9984         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
9985
9986 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
9987
9988         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
9989   Fixed so you can set breakpoints prior to run, run does not stop
9990   on entry now.  Add tbreak.  Other enhancements and fixes for use
9991   with ddd.
9992
9993 2003-05-12  Borut Razem <borut.razem AT siol.net>
9994
9995         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
9996
9997 2003-05-11  Borut Razem <borut.razem AT siol.net>
9998
9999         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
10000         the path of bin directory, so that PATH is the only env. variable, which has to be set
10001         in case of standard installation.
10002         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
10003         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
10004         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
10005
10006 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10007
10008         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
10009         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
10010         temp files are in the port dir; clean the gen/test directory when
10011         generating new test.c
10012         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
10013         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
10014         * support/regression/tests/zeropad.c: added
10015
10016 2003-05-09    <johan AT balder>
10017
10018         * src/SDCCglue.c: fixed bug #597940
10019
10020 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
10021
10022         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10023   cache sfr, optimize next,step, fix off by one sourceline,
10024   support ddd list function.
10025         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
10026
10027 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10028
10029         * support/regression/HTMLgen.py: added compare_s2f()
10030         * support/regression/Makefile: redo 1.27
10031         * support/regression/generate-cases.py: redo 1.5
10032
10033 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
10034
10035         * support/regression/tests/float.c: workaround 33 bit hex constant
10036         * support/regression/tests/simplefloat.c: fix division for host
10037
10038 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
10039
10040         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
10041         that tame's the PIC's over-aggressive optimizer.
10042
10043 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10044
10045          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
10046          support for MSVC.
10047
10048 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
10049
10050         Initial support for DS80C400. "Hello world" runs on TINIm400
10051         (with polled I/O).
10052
10053 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
10054
10055          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10056          * Some notes on ddd usage added in debugger/README
10057          Martin Helmling adding more features and fixes for ddd GUI debugger.
10058          Code added for nexti, stepi, up, down, and other adjustments.
10059
10060 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
10061
10062         * src/pic/pCodepeep.c non-wildcard asmops are now handled
10063         * src/pic/peeph.def Added two rules to optimize carry manipulation
10064         * src/pic/* removed debug printfs
10065
10066 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
10067
10068         * debugger/mcs51/cmd.c: added header newalloc.h
10069
10070 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
10071
10072         * as/Makefile: new EXEEXT
10073         * as/z80/Makefile: remove trailing slash of BUILDIR
10074         * as/z80/clean.mk: new EXEEXT
10075         * Makefile.common.in: add to CFLAGS (and others), don't replace it
10076         * support/cpp2/Makefile.in: new EXEEXT
10077         * src/pic/glue.c (pic14emitRegularMap): fixed warning
10078
10079 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
10080
10081         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
10082         EXEEXT was introduced to fix all related problems with targets
10083         "clean", "install" and "uninstall"; a couple of further flaws
10084         especially with "clean" have been fixed too
10085         * as/mcs51/Makefile.in
10086         * as/mcs51/clean.mk
10087         * as/z80/Makefile
10088         * Makefile
10089         * clean.mk
10090         * debugger/mcs51/Makefile.in
10091         * debugger/mcs51/clean.mk
10092         * link/z80/Makefile
10093         * link/z80/Makefile.in
10094         * link/z80/clean.mk
10095         * link/Makefile
10096         * packihx/Makefile.in
10097         * packihx/clean.mk
10098         * sim/ucsim/Makefile
10099         * sim/ucsim/clean.mk
10100         * sim/ucsim/avr.src/Makefile.in
10101         * sim/ucsim/avr.src/clean.mk
10102         * sim/ucsim/s51.src/Makefile.in
10103         * sim/ucsim/s51.src/clean.mk
10104         * sim/ucsim/xa.src/Makefile.in
10105         * sim/ucsim/xa.src/clean.mk
10106         * sim/ucsim/z80.src/Makefile.in
10107         * sim/ucsim/z80.src/clean.mk
10108         * sim/ucsim/main_in.mk
10109         * sim/ucsim/packages_in.mk
10110         * sim/ucsim/gui.src/Makefile.in
10111         * sim/ucsim/gui.src/serio.src/Makefile.in
10112         * sim/ucsim/gui.src/serio.src/clean.mk
10113         * src/Makefile.in
10114         * src/clean.mk
10115         * support/cpp2/Makefile.in
10116         * support/cpp2/clean.mk
10117         * support/makebin/Makefile
10118         * support/makebin/clean.mk
10119         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
10120         * doc/sdccman.lyx: --program-suffix no longer needed
10121
10122 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
10123
10124          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
10125          Martin Helmling added support for ddd GUI debugger.
10126          Code added to display assembly, set variables, and other commands
10127          to interface to ddd.
10128
10129 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
10130
10131         * as/Makefile: fix target clean
10132         * as/clean.mk: fix target clean
10133         * as/z80/clean.mk: fix target clean
10134
10135 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
10136
10137         * Makefile.common.in: added  AT EXEEXT AT
10138         * configure.in: removed all mingw32 stuff
10139         * configure: rebuilt from configure.in
10140         * doc/sdccman.lyx: updated section "installation"
10141         * support/scripts/sdcc_mingw32: adapted to configure
10142         * support/scripts/sdcc_cygwin_mingw32: added
10143
10144 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
10145
10146         * src/pic Added object file support for the PIC port
10147         * src/pic Applied patch from Craig Franklin (this started the object file support)
10148         * src/regression Updated the PIC regression tests for object files
10149
10150 2003-04-20  Borut Razem <borut.razem AT siol.net>
10151
10152         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
10153           lklex.c: In function `getfid':
10154           lklex.c:203: warning: array subscript has type `char'
10155         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
10156           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
10157         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
10158           stack handling macros
10159
10160 2003-04-19  Borut Razem <borut.razem AT siol.net>
10161
10162         * "handling space characters in file path" task:
10163         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
10164         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
10165         * support/Util/MySystem.h: make it self-sufficient
10166         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
10167           src/z80/main.c, sdcc/as/mcs51/lklex.c:
10168           handling space characters in file path
10169         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
10170           (it will be used by assemblers, which have their own includes, e.g. gpasm)
10171         * support/Util/MySystem.c: handling space characters in executable's path
10172
10173 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
10174
10175         * as/z80/Makefile: fix permanent rebuild of z80
10176         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
10177         * support/regression/tests/bitfields.c: added Johan's bitfields.c
10178
10179 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
10180
10181         * src/SDCCopt.c: add special case optimization to replace modulo by
10182           a power of two with a bitwise AND.
10183
10184 2003-04-18    <johan AT balder>
10185
10186         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
10187
10188 2003-04-17    <johan AT balder>
10189
10190         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
10191         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
10192
10193 2003-04-13  Borut Razem <borut.razem AT siol.net>
10194
10195         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
10196         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
10197           fixed mingw problem in adl_NORMALIZE_PATH
10198
10199 2003-04-12  Borut Razem <borut.razem AT siol.net>
10200
10201         * fixed "#pragma SAVE/RESTORE can not be nested":
10202         * src/SDCC.lex: reworked pragma handling functions
10203         * sdcc/src/SDCCglobl.h: reworked stack handling macros
10204         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
10205
10206 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10207
10208         * src/SDCCutil.c (pathEquivalent): defined but not used
10209         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
10210         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
10211         * configure: rebuilt from configure.in
10212         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10213         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10214         * device/include/Makefile.in: replace sdcc_datadir
10215         * device/lib/Makefile.in: replace sdcc_datadir
10216         * Makefile.common.in: add LDFLAGS from configure
10217         * packihx/Makefile.in: use LDFLAGS
10218         * src/Makefile.in: use LDFLAGS
10219         * support/cpp2/Makefile.in: add LDFLAGS from configure
10220         * support/makebin/Makefile: use LDFLAGS
10221         * .version: bumped version number to 2.3.5
10222
10223 2003-04-12  Borut Razem <borut.razem AT siol.net>
10224
10225         * completed "different paths" task:
10226         * src/SDCCmacro.c: fixed bug in handling quotes
10227         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
10228         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
10229
10230 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10231
10232         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
10233
10234 2003-04-11 kevin Vigor <kevin AT vigor.nu>
10235
10236         * ds390/gen.c ds390/peeph.def: fix bug 706781
10237
10238 2003-04-11  Borut Razem <borut.razem AT siol.net>
10239
10240         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
10241
10242 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
10243
10244         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
10245         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
10246          set - this bit used to not be set...).
10247         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
10248           bad code in PIC Port
10249         * src/regression/and2.c added to test bug 609268
10250         * src/regression/Makefile added and2.c to regression test
10251
10252
10253 2003-04-08    <johan AT CP255758-A>
10254
10255         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
10256         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
10257         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
10258
10259 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
10260
10261         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
10262         fix bug #487815
10263         * support/cpp2/Makefile.in: fix bug #487815
10264         * configure: rebuilt from configure.in
10265         * Makefile.common.in: docdir changed, new path suffixes
10266         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10267         * sdcc_vc_in.h: reflect changes from sdccconf.h
10268         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
10269         * src/SDCCutil.h: remove BINDIR hack
10270         * doc/sdccman.lyx: update new path hierarchy
10271
10272 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10273
10274         * src/SDCCpeeph.c: added okToRemoveSLOC test
10275
10276 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10277
10278         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
10279
10280 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10281
10282         * src/SDCCpeeph.c: added labelIsReturnOnly test
10283         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
10284
10285 2003-04-05    <johan AT balder>
10286
10287         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
10288         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
10289         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
10290         * src/SDCCast.c: fixed a warning
10291         * src/SDCCast.h: fixed a warning
10292         * src/SDCCicode.c (operandFromAst): fixed a warning
10293
10294 2003-04-04    <johan AT balder>
10295
10296         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
10297         * src/SDCCast.c (decorateType): fixed bug #715076
10298         * src/SDCC.y: fixed bug #702907
10299
10300 2003-04-03    <johan AT balder>
10301
10302         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
10303         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
10304         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
10305         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
10306         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
10307
10308 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
10309
10310         * _decdptr.c: fix return values
10311         * _gptrget.c: fix return values
10312         * _gptrgetc.c: fix return values
10313         * _gptrput.c: fix return values
10314         * _mulint.c: fix return values
10315         * as/z80/Makefile: fix 'make -j' problem
10316
10317 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
10318
10319         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
10320         * configure.in: big cleanup, updated to autoconf 2.5x
10321         * configure: rebuilt from configure.in
10322         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10323         * sdcc_vc_in.h: reflect changes from sdccconf.h
10324         * doc/Makefile: fixed a flaw in "make install"
10325
10326 2003-04-02    <johan AT balder>
10327
10328         * src/ds390/gen.c (genCmp): no comments
10329         * src/mcs51/gen.c (genCmp): no comments
10330         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
10331         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
10332
10333 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
10334
10335         * support/regression/generate-cases.py: place generated file in given sub directory
10336         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
10337         * support/regression/Makefile: improvements for 'make -j';
10338         side effect: it's simpler and faster now
10339
10340 2003-03-31  Borut Razem <borut.razem AT siol.net>
10341
10342         * src/z80/main.c: link-{port} and as-{port} defined without path
10343         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
10344
10345 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
10346
10347         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
10348
10349 2003-03-30  Borut Razem <borut.razem AT siol.net>
10350
10351         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
10352           changed type of list parameter to set
10353         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
10354         * src/port.h: changed type of do_assemble() parameter to set
10355         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
10356           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
10357           definition of "cppoutfilename" macro with NULL value in preProcess()
10358         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
10359         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
10360         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
10361           replaced with set *binPathSet
10362         * shash_add() deallocates the item, if allready exsists, before adding the new one
10363         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
10364
10365 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
10366
10367         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
10368           a nested for loop bug in the PIC port
10369         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
10370           for loops
10371
10372 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
10373
10374         * support/Util/dbuf.h: remove C++ stuff to make it portable
10375
10376 2003-03-28  Borut Razem <borut.razem AT siol.net>
10377
10378         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
10379           literal strings in stringLiteral()
10380         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
10381         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
10382           to the project
10383
10384 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
10385
10386         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
10387
10388 2003-03-26    <johan AT balder>
10389
10390         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
10391         * src/ds390/gen.c (saveRegisters): catched symbol abuse
10392         * src/SDCCast.c (decorateType): fixed " -v < 3"
10393
10394 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
10395
10396         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
10397         Added Lenny Story's debug infrastructure changes:
10398         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
10399         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
10400         * src/cdbFile.c: added
10401         * src/SDCCdebug.c: added
10402         * src/SDCCdebug.h: added
10403         * src/SDCCast.c (createFunction)
10404         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
10405         * src/SDCCmain.c (parseCmdLine, main)
10406         * src/SDCCmem.c (redoStackOffsets)
10407         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
10408         * src/SDCCsymt.h
10409         * src/common.h
10410         * src/avr/gen.c (genAVRCode)
10411         * src/ds390/gen.c (gen390Code)
10412         * src/mcs51/gen.c (gen51Code)
10413         * src/pic/gen.c (genpic14Code)
10414         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
10415         * src/xa51/gen.c (genXA51Code)
10416         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
10417
10418 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10419
10420         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
10421         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
10422
10423 2003-03-22    <johan AT balder>
10424
10425         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
10426
10427 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
10428
10429         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
10430         * doc/cdbfileformat.lyx: added, written by Lenny Story
10431         * doc/Makefile: added cdbfileformat.lyx
10432         * doc/clean.mk: added cdbfileformat.lyx
10433
10434 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
10435
10436         * src/mcs51/peeph.def: fix bug #705773
10437
10438 2003-03-20    <johan AT balder>
10439
10440         An sfr/sbit can have an "at #" AND an initializer
10441         * src/SDCCsymt.c (checkSClass):
10442         * src/SDCCmem.c (allocGlobal):
10443         * src/SDCCmem.c (allocLocal):
10444         * src/SDCCast.c (createBlock):
10445
10446 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
10447
10448         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
10449
10450 2003-03-16    <johan AT balder>
10451
10452         Undid the hackup of const and volatile, the problem is much bigger
10453         * src/SDCC.y:1.65
10454         * src/SDCCast.c:1.171
10455         * src/SDCCglue.c:1.138
10456         * src/SDCCicode.c:1.146
10457         * src/SDCCsymt.c:1.150
10458         * src/SDCCval.c:1.65
10459
10460 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
10461
10462         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
10463         * src/ds390/gen.c (genAddrOf): fixed bug #704087
10464
10465 2003-03-13    <johan AT balder>
10466
10467         Hackup const and volatile modifiers in type chains a bit:
10468         * src/SDCC.y:1.63
10469         * src/SDCCast.c:1.169
10470         * src/SDCCglue.c:1.136
10471         * src/SDCCicode.c:1.143
10472         * src/SDCCsymt.c1.146
10473         * src/SDCCsymt.h1.59
10474         * src/SDCCval.c:1.63
10475
10476 2003-03-12    <johan AT balder>
10477
10478         * src/SDCCBBlock.h: more LRH debugging junk
10479         * src/SDCCcflow.h: more LRH debugging junk
10480         * src/SDCCloop.c: more LRH debugging junk
10481         * src/SDCC.y (struct_declaration): fixed bug #697590
10482         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
10483         * src/ds390/gen.c (aopForRemat): fixed bug #700031
10484         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
10485
10486 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10487         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
10488         test function names must now match exactly).
10489         * src/SDCCcse.c: added special case in findCheaperOp to allow
10490         extending a short integer. Makes less awful code for bug 700121 test case.
10491
10492 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10493
10494         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
10495         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
10496
10497 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10498
10499         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
10500         actually called (operandsNotEqual() was called for all
10501         operandsNotEqualX tests).
10502
10503 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10504
10505         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
10506         with shorter literals. Fixes bug 700121.
10507
10508 2003-03-11    <johan AT balder>
10509
10510         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
10511
10512 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
10513
10514         * src/SDCCloop.c (mergeRegions): an evil beast is dead
10515         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
10516
10517 2003-03-10  Borut Razem <borut.razem AT siol.net>
10518
10519         * src/SDCCmain.c: pipe preprocessor's output
10520         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10521         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10522         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10523         which closes all pipes in pipeSet set
10524         * src/SDCCset.c: free deleted item in function deleteSetItem()
10525         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10526         moved from z80 to src subproject
10527         * .version: increased version number to 2.3.4
10528
10529 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
10530
10531         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
10532         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
10533         * support/regression/ports/xa51/spec.mk: fix typo
10534
10535 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
10536
10537         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
10538
10539 2003-03-09  Borut Razem <borut.razem AT siol.net>
10540
10541         * src/SDCCmain.c: pipe preprocessor's output
10542         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10543         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10544         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10545         which closes all pipes in pipeSet set
10546         * src/SDCCset.c: free deleted item in function deleteSetItem()
10547         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10548         moved from z80 to src subproject
10549
10550 2003-03-09  Borut Razem <borut.razem AT siol.net>
10551
10552         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
10553         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
10554         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
10555         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
10556         * src/SDCCglobl.h: unification of WIN32 native definitions
10557
10558 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10559
10560         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
10561
10562 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10563
10564         * src/configure.in:   check for endianess (even while cross-compiling)
10565         * src/configure:      check for endianess (even while cross-compiling)
10566         * src/configure_in.h: check for endianess (even while cross-compiling)
10567         * src/avr/gen.c:        remove old endianess stuff
10568         * src/mcs51/gen.c:      remove old endianess stuff
10569         * src/ds390/gen.c:      remove old endianess stuff
10570         * src/pic/gen.c:        remove old endianess stuff
10571         * src/pic/genarith.c:   remove old endianess stuff
10572         * src/pic/glue.c:       fix endianess check
10573         * src/pic16/gen.c:      remove old endianess stuff
10574         * src/pic16/genarith.c: remove old endianess stuff
10575         * src/pic16/glue.c:     fix endianess check
10576         * src/xa51/gen.c:       remove old endianess stuff
10577         * src/z80/gen.c:        fix endianess check
10578         * src/SDCCglue.c:       fix endianess check
10579         * src/ds390/peeph.def: fix bug 700036
10580
10581 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10582
10583         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
10584         * src/configure: find appropriate data-types on host for SDCC's int and long
10585         * src/configure.in: find appropriate data-types on host for SDCC's int and long
10586         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
10587         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
10588
10589 2003-03-07    <johan AT balder>
10590
10591         Just a big NOOP:
10592                 some minor cleanups before the big shot
10593                 OP_DEFS and OP_USES now use Kevin's protection
10594                 new option --nolabelopt
10595
10596         * src/SDCCBBlock.c:
10597         * src/SDCCast.c,:
10598         * src/SDCCcflow.c:
10599         * src/SDCCcse.c:
10600         * src/SDCCicode.c:
10601         * src/SDCCicode.h:
10602         * src/SDCClabel.c:
10603         * src/SDCCloop.c:
10604         * src/SDCCmain.c:
10605         * src/ds390/ralloc.c:
10606         * src/mcs51/ralloc.c:
10607         * src/pic/ralloc.c:
10608         * src/xa51/ralloc.c:
10609         * src/z80/ralloc.c:
10610
10611 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
10612
10613         * src/pic/pcode.c (get_op): fix 64 bit warnings
10614         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
10615         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
10616         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
10617         * support/regression/tests/malloc.c: fix 64 bit warnings
10618
10619 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
10620
10621         * src/mcs51/gen.c (genMinus): fixed bug 696436
10622
10623 2003-03-02  Borut Razem <borut.razem AT siol.net>
10624
10625         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
10626
10627 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
10628
10629         * configure.in: test for mkstemp
10630         * sdccconf_in.h: add HAVE_MKSTEMP
10631
10632 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
10633
10634         * device/include/ctype.h: removed warning while using --stack-auto
10635         * device/include/malloc.h: removed warning while using --stack-auto
10636         * device/include/string.h: removed warning while using --stack-auto
10637
10638 2003-02-23  Borut Razem <borut.razem AT siol.net>
10639
10640         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
10641         because NDEBUG is defined (see man assert)
10642         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
10643
10644 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10645
10646         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
10647         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
10648
10649 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10650
10651         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
10652         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
10653
10654 2003-02-18    <johan AT balder>
10655
10656         * as/mcs51/asmain.c (asmbl): module can start with a digit
10657         * as/z80/asmain.c (asmbl): module can start with a digit
10658
10659 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
10660
10661         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
10662         * src/asm.c: fix pipe() for Mingw32
10663
10664 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
10665
10666         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
10667         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
10668         make -V work again; --c1mode reads now from stdin
10669         * doc/sdccman.lyx: added --c1mode
10670         * support/Util/SDCCerr.c: new messages for c1 mode
10671         * support/Util/SDCCerr.h: new messages for c1 mode
10672         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
10673
10674 2003-02-15    <johan AT balder>
10675
10676         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
10677
10678 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
10679
10680         * doc/sdccman.lyx: Environment variables, -o and other minor things
10681
10682 2003-02-14    <johan AT balder>
10683
10684         * src/xa51/main.c: before anyone really tries to use it :)
10685
10686         * Install doc's in share/sdcc/doc
10687         * removed some obsolete files
10688         * Do a proper make distclean and uninstall
10689         M Makefile.common.in
10690         R sdccbuild.sh
10691         M as/Makefile
10692         M device/include/Makefile.in
10693         M device/lib/Makefile.in
10694         M doc/sdccman.lyx
10695         M link/Makefile
10696         M sim/ucsim/doc/Makefile.in
10697         M src/clean.mk
10698         R src/avr/peeph.rul
10699         R src/xa51/peeph.rul
10700         M support/cpp2/Makefile.in
10701         M support/makebin/Makefile
10702
10703
10704 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
10705
10706         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
10707
10708 2003-02-10  Borut Razem <borut.razem AT siol.net>
10709
10710         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
10711         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
10712         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
10713         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
10714         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
10715         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
10716         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
10717         src/z80/Makefile.bcc: Borland Makefile cleanup
10718         * as/z80/Makefile.bcc: Added Borland Makefile
10719         * support/cpp2/borland.h: Removed
10720
10721 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
10722
10723         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
10724         * src/SDCC.lex: new pragma NOIV
10725         * src/SDCCglobl.h: new pragma NOIV
10726         * src/SDCCmem.c: new pragma NOIV
10727
10728 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
10729
10730         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
10731
10732 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
10733
10734         * src/SDCCmain.c: signal handling is switched off by --debug
10735         * doc/Makefile: small fix for install; use clean.mk again
10736         * doc/clean.mk: clean *.pdf and *.html too
10737
10738 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
10739
10740         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
10741         * device/lib/printfl.c: fix a ds390 bug by making it portable
10742         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
10743         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
10744         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
10745         * debugger/mcs51/cmd.c: converted multi-line string literals
10746         * sim/ucsim/globals.cc: converted multi-line string literals
10747         * src/SDCCmain.c: introduced signal handler to remove temp files
10748         * doc/Makefile: small tweaks, implement clean
10749         * doc: removed generated files
10750
10751 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10752
10753         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
10754         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
10755         Address Record is not correctly generated for DS390."
10756
10757 2003-02-02  Borut Razem <borut.razem AT siol.net>
10758
10759         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
10760         * as/mcs51/asm.h: fixed compilation with Borland C
10761         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
10762         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
10763         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
10764         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
10765         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
10766         src/z80/Makefile.bcc: delete $(LIB) only if exist
10767         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
10768
10769 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
10770
10771         * device/include/malloc.h: introduced NULL
10772         * device/include/string.h: introduced NULL
10773         * device/include/stdlib.h: introduced NULL
10774         * device/lib/_memcpy.c: removed NULL
10775         * device/lib/_strcat.c: removed NULL
10776         * device/lib/_strchr.c: removed NULL
10777         * device/lib/_strcmp.c: removed NULL
10778         * device/lib/_strcpy.c: removed NULL
10779         * device/lib/_strcspn.c: removed NULL
10780         * device/lib/_strlen.c: removed NULL
10781         * device/lib/_strncat.c: removed NULL
10782         * device/lib/_strncmp.c: removed NULL
10783         * device/lib/_strncpy.c: removed NULL
10784         * device/lib/_strpbrk.c: removed NULL
10785         * device/lib/_strrchr.c: removed NULL
10786         * device/lib/_strspn.c: removed NULL
10787         * device/lib/_strstr.c: removed NULL
10788         * device/lib/_strtok.c: removed NULL
10789         * device/lib/malloc.c: removed NULL, include own header
10790
10791 2003-02-02    <johan AT balder>
10792
10793         * 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
10794         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
10795         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
10796         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
10797         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
10798         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
10799
10800 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10801
10802         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
10803         area 'DATA'"
10804
10805 2003-02-01    <johan AT balder>
10806
10807         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
10808
10809 2003-01-31    <johan AT CP255758-A>
10810
10811         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
10812
10813 2003-01-30    <johan AT balder>
10814
10815         * src/SDCCBBlock.c: automatic bug detection
10816         * src/SDCCicode.c: automatic bug detection
10817
10818 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10819
10820         * src/SDCCglobl.h:   now --xram-size 0 works
10821         * src/SDCCmain.c:    now --xram-size 0 works
10822
10823 2003-01-29    <johan AT balder>
10824
10825         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
10826
10827 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10828
10829         * as/mcs51/aslink.h: Added options --xram-size and --code-size
10830         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
10831         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
10832         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
10833         * src/SDCCglobl.h:   Added options --xram-size and --code-size
10834         * src/SDCCmain.c:    Added options --xram-size and --code-size
10835
10836 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
10837
10838         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
10839         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
10840
10841 2003-01-27    <johan AT balder>
10842
10843         * src/SDCC.y: fixed bug #613764
10844
10845 2003-01-26    <johan AT balder>
10846
10847         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
10848         * src/SDCCsymt.h: fixed bug #673374
10849         * src/SDCCglue.c: fixed bug #661910
10850         * src/SDCCast.c: fixed bug #458099 and 673374
10851
10852 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
10853
10854         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
10855         * as/mcs51/strcmpi.h: added
10856         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
10857         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
10858         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
10859         * as/mcs51/assym.c: strcmpi -> as_strcmpi
10860         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
10861         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
10862         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
10863         * as/mcs51/Makefile.aslink: new module strcmpi
10864         * as/mcs51/Makefile.asx8051: new module strcmpi
10865         * as/mcs51/Makefil.bcc: new module strcmpi
10866         * as/mcs51/Makefile.in: new module strcmpi
10867         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
10868
10869 2003-01-26    <johan AT balder>
10870
10871         * src/SDCCglue.c: reverted back to 1.124
10872         * src/SDCCast.c: reverted back to 1.156
10873         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
10874
10875 2003-01-25    <johan AT balder>
10876
10877         * src/SDCCglue.c: A better fix for bug #661910
10878         * src/SDCCast.c: A better fix for bug #661910
10879         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
10880
10881 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
10882
10883         * src/Makefile.in: remove spawn.o
10884         * src/SDCCmain.c: remove spawn.h
10885         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
10886         * src/spawn.c: removed
10887         * src/spawn.h: removed
10888         * support/regression/ports/ds390/spec.mk: link with -r
10889
10890 2003-01-24    <johan AT CP255758-A>
10891
10892         * src/ds390/gen.c (aopOp): fixed bug #667458
10893         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
10894         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
10895         (createIvalCharPtr): an ival doesn't always have a storage class anymore
10896
10897 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
10898
10899         * src/mcs51/peeph.def: better assembler identation by Frieder
10900         * src/mcs51/gen.c: better assembler identation by Frieder
10901
10902 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
10903
10904         * as/z80/string.h: removed for gcc 3.2
10905         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
10906         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
10907
10908 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
10909
10910         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
10911         * src/SDCCpeeph.c (replaceRule): fix bug #663503
10912         * support/regression/Makefile: separate temp files for ports
10913         * support/regression/generate-cases.py: separate temp files for ports
10914         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
10915         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
10916
10917 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
10918
10919         * moved tinitalk to device/examples/ds390
10920
10921 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
10922
10923         * as/mcs51/lkmem.c: rflag is for DS390
10924         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
10925         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
10926                          (linkEdit): move mem- and map-files the same way as ihx-files
10927         * src/z80/main.c (_setDefaultOptions): removed --generic
10928         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
10929         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
10930         * src/pic/glue.c (picglue): --c1mode works again
10931         * src/pic16/glue.c (pic16glue): --c1mode works again
10932         * src/asm.c (printCLine): fix #660034
10933
10934 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
10935
10936         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
10937         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
10938         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
10939         * as/mcs51/lkmem (summary): better fix for sp problem
10940         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
10941         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
10942         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
10943                                               remove --stack-after-data
10944
10945 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
10946
10947         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
10948         * src/SDCCutil.c (join): ugly bug: missing '\0'
10949         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
10950
10951 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
10952
10953         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
10954         * src/port.h: typo
10955         * src/pic/main.c (_asmCmd): gpasm supports -o
10956         * src/z80/main.c: more general macros
10957         * device/lib/Makefile.in: remove intermediate files
10958
10959 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
10960
10961         * .version: Bumped version number to 2.3.3
10962         * src/SDCCBBlock.c: new option -o
10963         * src/SDCCglobl.h: new option -o
10964         * src/SDCCglue.c: new option -o
10965         * src/SDCCmain.c: new option -o
10966         * src/asm.c: new option -o
10967         * src/ds390/main.c: new option -o
10968         * src/pic/glue.c: new option -o
10969         * src/pic/pcode.c: new option -o
10970         * src/pic/ralloc.c: new option -o
10971         * src/pic16/glue.c: new option -o
10972         * src/pic16/pcode.c: new option -o
10973         * src/pic16/ralloc.c: new option -o
10974         * src/z80/main.c: new option -o
10975         * device/lib/Makefile.in: use -o
10976         * support/regression/ports/ds390/spec.mk: use -o
10977         * support/regression/ports/gbz80/spec.mk: use -o
10978         * support/regression/ports/mcs51/spec.mk: use -o
10979         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
10980         * support/regression/ports/z80/spec.mk: use -o
10981         * support/regression/ports/ucz80/spec.mk: use -o
10982         * support/regression/ports/xa51/spec.mk: use -o
10983         * support/regression/fwk/lib/timeout.c: fix usage string
10984
10985 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
10986         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
10987
10988 2003-01-07    <johan AT balder>
10989
10990         * src/SDCCast.c (decorateType): fixed bug #600035
10991
10992 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
10993         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
10994         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
10995         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
10996         * src/pic/pcode.c: outcommented unused variable to remove warnings
10997         * src/pic/ralloc.c: outcommented unused variable to remove warnings
10998
10999 2003-01-06    <karl AT turbobit.com>
11000         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
11001    regression tests.
11002
11003 2003-01-06    <johan AT balder>
11004
11005         * src/SDCCicode.c: fixed array add
11006
11007 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
11008         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
11009         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
11010
11011 2003-01-04    <johan AT balder>
11012
11013         * src/SDCCval.c (getNelements): fixed the initialized array of structures
11014
11015 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11016         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
11017
11018 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11019         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
11020         * support/regression/tests/bug-524697.c: fit mem usage into 8032
11021
11022 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11023         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
11024
11025 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
11026         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
11027
11028 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
11029         * src/mcs51/main.c: removed {bindir}{sep} from aslink
11030
11031 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11032
11033     * in /sdcc/as/mcs51/ changed these files in order to create an
11034     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
11035     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
11036     following files to include the previous two files: aslink.dsp,
11037     Makefile.aslink, Makefile.bcc, and Makefile.in.
11038
11039     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
11040     .adb instead of .cdb
11041
11042 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11043
11044         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
11045         value from option --iram-size.
11046
11047 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11048
11049         * /sdcc/as/mcs51/lklist.c: added boundary check before using
11050         dram[] array.
11051
11052 2002-09-18    <wiml AT hhhh.org>
11053
11054         * SDCClrange.h: exposed setFromRange() and setToRange()
11055         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
11056           packRegsForAccUse() (bug 542397)
11057         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
11058           multiple times and emitting the fetch operations more than once
11059           added aopGetUsesAcc() function to allow binary operators to
11060           fetch their operands in the correct order; made genMinus() emit
11061           compact code for X = LITERAL - Y
11062
11063 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11064         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
11065         sprintf() in line 1267.
11066
11067 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11068         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
11069         like ports.
11070
11071 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11072         Changes to aslink (All the changes are marked with 'JCF'):
11073
11074         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
11075         summary().
11076
11077         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
11078         area BSEG.  Also moves, if possible, the DATA area down into the internal
11079         ram so more space is available.
11080
11081         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
11082         sflag.
11083
11084         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
11085         not bytes.  Function summary() which creates a memory usage summary
11086         file with extension .mem.  Reports of overlaping stack and small stack
11087         size.  If the space for the stack is less than 16 bytes aslink trows a
11088         warning.
11089
11090         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
11091         the 8051.  Option 'y' for memory summary output file.
11092
11093         Changes to sdcc (All the changes are marked with 'JCF'):
11094
11095         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
11096
11097         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
11098         overlaying area for it (uses RegBankUsed[4]).
11099
11100         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
11101         bank zero as used by default.  By default aslink locates the stack
11102         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
11103         the creation of the .mem file.  Delegates the allocation of data area
11104         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
11105         the begining of the stack area to aslink.
11106
11107         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
11108         glue() in SDCCglue.c creates an area for it.
11109
11110 2002-09-03  Borut Razem <borut.razem AT siol.net>
11111         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
11112         sdcc/src/pic/glue.c:
11113         introduced atexit() handler for teporay files removal in case of
11114         errors, assertions, ...
11115
11116 2002-08-29  Borut Razem <borut.razem AT siol.net>
11117         * sdcc/support/cpp2/auto-host_vc_in.h:
11118         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
11119         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
11120         Maybe there is a similar problem with BORLANDC? It should be checked!
11121
11122         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
11123         corrected improper use of assert: the assignment to clr variable was done inside the assert.
11124         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
11125         was not executed, and the compiler (cl) launched a warning:
11126         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
11127
11128 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11129         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
11130
11131 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
11132         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
11133
11134         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11135           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
11136           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
11137           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11138           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
11139           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
11140           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
11141         - added Release configuration in VS projects
11142         - review of compiler an linker options
11143         - VC .exe files are generated in bin_vc directory, not to interfere
11144           with binaries generated from other projects (cygwin, mingw, bcc ...)
11145
11146         * sdcc/src/yacc.dsp: added
11147
11148         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
11149         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
11150         and insert the version number definitions from .version
11151
11152         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
11153
11154         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
11155         added - genarate auto-host.h using auto-host_vc_in.h as template
11156
11157         * sdcc/sdcc_vc.h,
11158         removed from CVS, generated automatically
11159
11160 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
11161         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
11162
11163 2002-08-11  Borut Razem <borut.razem AT siol.net>
11164         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
11165
11166 2002-08-10  Borut Razem <borut.razem AT siol.net>
11167         * src/SDCCmain.c (main):
11168         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
11169         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
11170         The consequence was that some temporary files were not removed.
11171
11172         * src/SDCCglue.c:
11173         unification of code in functions tempfilename() and tempfile():
11174         function tempnam() is defined in Visual Studio 6.0 and .NET
11175
11176         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
11177
11178         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11179           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
11180         - removed compiler command line option /WX: Treats all warnings as errors
11181         - update a list of source files, included into the project
11182
11183         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11184           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
11185         changed project type to Generic Project so that can be correcly converted to VS.NET project
11186
11187         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
11188
11189         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
11190
11191         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
11192
11193         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
11194         added return 0 statements after assert() to make compiler happy
11195
11196         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
11197         added newline in the def file to keep MSC compiler satisfied
11198
11199         * sdcc/src/z80/gen.c:
11200         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
11201           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
11202         - solved MSC error in function aopDump()
11203
11204         * sdcc_vc.h: define PREFIX as "\\sdcc"
11205
11206 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
11207         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
11208
11209 2002-06-22  Scott Dattalo <scott AT dattalo.com>
11210         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
11211         - Rewrote the register banking algorithm.
11212         - Added pCode live-range analysis to registers (for now, only non-used and
11213         singly-used registers optimized away)
11214
11215         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
11216
11217         * 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.
11218
11219 2002-05-10  Scott Dattalo <scott AT dattalo.com>
11220         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
11221
11222 2002-04-22  Michael Hope  <michaelh AT vroom>
11223
11224         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
11225
11226         * configure.in (DD_COPT): Added include support required for gbdk.
11227
11228         * .version: Bumped version number just to increase it.
11229
11230         * src/SDCCmain.c: Added -nostdinc to the default options.
11231
11232 2002-04-15  Michael Hope  <michaelh AT vroom>
11233
11234         * device/lib/z80/printf.c (sprintf): Added.
11235
11236         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
11237
11238         * src/z80/peeph.def: Added transpose redundent load rule.
11239
11240         * src/z80/main.c: Added force callee saves for jaune.
11241
11242         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
11243
11244         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
11245
11246 2002-03-28  Johan Knol  <johan AT balder>
11247
11248         * src/SDCCval.c: fixed bug #532436
11249
11250 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11251         * /src/port.h:
11252         Added "char *Processor" field to the port structure.
11253
11254         * /src/SDCCmain.c:
11255         Added -p option. Allows port dependent processor to be specified.
11256
11257         * all ports:
11258         Initialized the new field char *Processor field to NULL in all ports
11259
11260         * /src/pic/*:
11261         Compiler generated registers for interrupt context saving
11262         were not getting allocated.
11263
11264 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
11265
11266         * /src/SDCCast.c:
11267         Fixed left shift. Will promote the left side of a left shift
11268         if a) left shifting more than size of operand or b) when assigned
11269         to something size > size of left side
11270
11271 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11272         * src/pic/*
11273         tons of changes. Register allocation has been
11274         rewritten. Added customization for the various PICs. Flow
11275         analysis is restructured. ...
11276
11277         * src/pic/device.h:
11278         Added
11279
11280         * src/pic/device.c:
11281         Added. device.c is a PIC port hack to accomodate variations
11282         in PIC devices.
11283
11284 2002-03-13  Michael Hope  <michaelh AT vroom>
11285
11286         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
11287
11288 2002-03-04  johanknol  <johanknol AT manik>
11289
11290         * /src/SDCCval.c: fixed
11291
11292         const unsigned char arr[][2] = { { 0, 1 } };
11293         t18.c:1: error: Initializer element is not constant
11294
11295 2002-03-04  bela  <bela AT manik>
11296
11297         * /device/include/mcs51reg.h:
11298         ds89c420 register definition update
11299
11300 2002-03-03    <johan AT FRIJA>
11301
11302         * support/Util/SDCCerr.c: did something, but don't no why anymore
11303
11304         * support/regression/tests/bug-524691.c: made it a little less shy
11305
11306         * src/SDCCast.c (decorateType): fixed bug #524697
11307
11308         * src/SDCCast.c: made some lineno improvements
11309
11310         * src/SDCCval.c (getNelements): changed warning to error
11311
11312         * src/SDCCglue.c (printIvalArray): changed warning to error
11313
11314         * src/SDCCicode.c: fixed a warning for mingw
11315
11316         * src/SDCCast.c (decorateType): fixed the << promotion for ops
11317
11318         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
11319
11320 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
11321
11322         * src/ds390/peeph.def:
11323         Added some more peephole rules
11324
11325         * src/ds390/gen.c: Various fixes & enhancements
11326
11327         * src/SDCClrange.c, src/SDCClrange.h:
11328         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
11329
11330         * src/ds390/ralloc.c:
11331         various fixes & enhancements (ds390) specific
11332
11333         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
11334         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
11335         from rallocs.
11336
11337         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
11338
11339 2002-03-02    <johan AT FRIJA>
11340
11341         * src/SDCCast.c (decorateType): fixed bug #524708
11342
11343         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
11344
11345         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
11346
11347 2002-03-01  Michael Hope  <michaelh AT vroom>
11348
11349         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
11350
11351         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
11352
11353 2002-03-01    <johan AT FRIJA>
11354
11355         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
11356
11357         * src/SDCCast.c (decorateType): fixed bug #524209
11358
11359         * src/SDCCval.c (valNot): fixed bug #524195
11360
11361 2002-02-26    <johan AT balder>
11362
11363         * src/xa51/gen.c: fixed a warning
11364
11365         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
11366
11367         * src/SDCCast.c (decorateType): fixed bug #522534
11368
11369 2002-02-23    <johan AT balder>
11370
11371         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
11372
11373 2002-02-22    <johan AT balder>
11374
11375         * src/SDCCast.c: fixed bug #514865
11376
11377         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
11378
11379 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
11380
11381         * sdcc/src/SDCCloop.c:
11382         Previous fix was not good. basic blocks that have "break" or "return" are
11383         not really partof a loop , but live ranges used in these blocks should
11384         be live thru the entire loop, so set partOfLoop but don't add them to
11385         loop region
11386
11387 2002-02-21    <johan AT FRIJA>
11388
11389         * src/SDCCcse.c: fixed bug #514308
11390
11391 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
11392
11393         * src/SDCCloop.c:
11394         Fixed BUG #519583. If a conditional block ended in a return/break
11395         statement inside a loop, it was not being considered part of the loop.
11396
11397         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
11398
11399 2002-02-10  Karl Bongers <karl AT turbobit.com>
11400
11401         * debugger/*:
11402         Fixed up SDCDB debugger somewhat.  Updated debugger/README
11403         with lots of comments and notes.
11404
11405         * device/examples/test2.c:
11406         Fix bug, "red" variable not being initialized(compiler complained).
11407
11408         * device/examples/Makefile, examples/test3.c:
11409         Add Makefile in device/examples folder, compiles test3.c
11410         for use as a multiple module SDCDB test case.
11411
11412         * sim/ucsim/cmd.src/cmdset.cc:
11413         Took out debug printfs in ucsim "next" command.
11414
11415         * sim/ucsim/xa.src:
11416         Karl and Johan start ucsim XA support.  Most dissassembly working,
11417         about 75% emulation done(plenty of work remaining).
11418
11419         * sim/ucsim/z80.src:
11420         Add Z80 support to ucsim, add test-ucz80 regression test,
11421         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
11422         Notice z80 compiler fails on examples/test3.c/crc code.
11423
11424 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
11425
11426         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
11427         Added support for --parms-in-bank1
11428
11429         * src/ds390/peeph.def:
11430         added a few more peephole optimzations
11431
11432         * src/ds390/main.c:
11433         1) added __builtin_inp & __builtin_outp used to read in data of given length
11434            from a memory mapped port
11435         2) added __builtin_memcmp
11436         3) added __builtin_swapw swap bytes of a short
11437
11438         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
11439         1) handle multiple send & receives from register bank1
11440         2) ralloc can now allocate DPTR1 to some liveRanges
11441
11442         * src/SDCCsymt.c, src/SDCCsymt.h:
11443         changes to handle multiple sends & receives
11444
11445         * src/SDCCptropt.h:
11446         added some pointer arithmetic optimization
11447
11448         * src/SDCCptropt.c:
11449         added some pointer arithmetic optimizations but not stable yet so not
11450         called from anywhere (will get this working shortly)
11451
11452         * src/SDCCopt.c: fixed for multiple sends & receives
11453
11454         * src/SDCCmain.c:
11455         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
11456         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
11457            set preprocessor defines (depending on options)
11458
11459         * src/SDCCicode.c, src/SDCCicode.h:
11460         changes made to handle multiple sends & receives
11461
11462         * src/SDCCglobl.h:
11463         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
11464
11465         * src/SDCCcse.c, src/SDCCcse.h:
11466         added function findbackward def (to be used in upcoming optimization)
11467
11468         * src/SDCCcflow.c, src/SDCCcflow.h:
11469         added function returnAtEnd - to determine if a basic block terminates with
11470         a RETURN iCode
11471
11472         * src/SDCCast.c, src/SDCCast.h:
11473         added option parms-in-bank1
11474
11475         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
11476         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
11477         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
11478         adjusted for --parms-in-bank1 option
11479
11480         * device/include/string.h:
11481         donot redefine "reentrant" keyword
11482
11483         * device/include/ds80c390.h: Added some more SFRs
11484
11485 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
11486
11487         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
11488
11489 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
11490
11491         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
11492
11493 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
11494
11495         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
11496
11497 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
11498
11499         * Added --xram-movc option
11500
11501 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
11502
11503         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
11504
11505 2002-01-11  Johan Knol
11506
11507         * Added math lib of Jesus Calvino-Fraga
11508
11509 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
11510
11511         * src/SDCCmain.c (processFile): fix processing of ../../src.c
11512         * support/regression/Makefile: new target test-mcs51-stack-auto
11513         * support/regression/ports/mcs51-stack-auto/spec.mk: added
11514
11515 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11516
11517         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
11518
11519 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11520
11521         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
11522
11523 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
11524
11525         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
11526
11527         * src/SDCCglue.h: add definition for printIvalChar()
11528
11529 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11530
11531         * src/SDCCast.c: fix #498138 by Johan
11532
11533         * src/SDCCglue.c: fix #498138 by Johan
11534
11535 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11536
11537         * support/regression/Makefile: fix clean
11538
11539         * support/regression/ports/ds390/support.c: fix transmission of last character
11540
11541 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
11542
11543         * /sdcc/src/ds390/gen.c:
11544         a) improved computing address of stack variable
11545         b) took out some #if 0 code
11546         c) improved parmBytes adjustment
11547         d) improved genPlusIncr & genMinusIncr
11548         e) genCmp could generate bad code (when left assigned to DPTR)
11549         f) Fixed bug in hasInc
11550
11551         * /sdcc/src/ds390/ralloc.c:
11552         a) packRegsForSupport could mess up live information (Fixed)
11553         b) packRegsDPTRuse could be incorrect for left & right shift
11554
11555         * /sdcc/src/mcs51/ralloc.c:
11556         packRegsForSupport could mess up the live information (Fixed)
11557
11558         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
11559
11560         * /sdcc/src/SDCCast.c:
11561         can reverse a loop even if function call is present as long
11562         as the loop control variable is local & is not passed as parameter
11563
11564 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11565
11566         * /sdcc/ChangeLog: *** empty log message ***
11567
11568         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
11569         More builtin function additions for TININative
11570
11571         * /sdcc/src/ds390/ralloc.c:
11572         Had broken the regression testsuite
11573
11574         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
11575
11576         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
11577         Added funcattr hasStackParms will be set for reentrant functions when there
11578         are paramteres on the stack, this helps in minimizing frame pointer generation
11579         typeFromStr can handle function pointers now
11580
11581         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
11582         *** empty log message ***
11583
11584 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11585
11586         * /src/ds390/gen.c, /src/ds390/main.c:
11587         More builtin function additions for TININative
11588
11589         * /src/ds390/ralloc.c:
11590         Had broken the regression testsuite
11591
11592         * /src/SDCCast.c: Fixed a bug in dumptree
11593
11594         * /src/SDCCsymt.c, /src/SDCCsymt.h:
11595         Added funcattr hasStackParms will be set for reentrant functions when there
11596         are paramteres on the stack, this helps in minimizing frame pointer generation
11597         typeFromStr can handle function pointers now
11598
11599         * /doc/builtins.txt, /doc/TININative.txt:
11600         *** empty log message ***
11601
11602
11603 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11604
11605         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
11606         ALPHA version for -mTININative
11607
11608         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
11609         updated to reflect changes in the port structure
11610
11611         * /src/port.h:
11612         added function do_assemble (similar to do_link) if non-null this function
11613         will be called to do assembly (-mTININative) requires a multi command
11614         assembly
11615         added function genAssemblerEnd will be called to generate assembler Epilogue
11616
11617         * /src/SDCCsymt.c:
11618         added _JavaNative to debug info printing
11619
11620         * /src/SDCCmain.c: added option --tini-libid
11621         added port->do_assemble function (-mTININative) has a multi command assemble
11622
11623         * /src/SDCCglue.c: Disabled "constExpr" check
11624         added port->genAssemblerEnd function
11625
11626         * /src/SDCCglobl.h: Added option --tini-libid value
11627
11628         * /src/SDCCast.h:
11629         tookout optimizeCompare from the header (has no external references)
11630
11631         * /src/SDCCast.c: made one more function "static"
11632
11633 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
11634
11635         * src/z80/mappings.i: Added z80asm support.
11636
11637         * src/z80/main.c: Added z80asm support on --asm=z80asm
11638
11639         * src/z80/gen.c: Fixed asm portability issues.
11640
11641         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
11642
11643         * src/SDCCglue.c (printExterns): Added global/extern split.
11644
11645 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
11646
11647         * support/regression/Makefile: added test for mcs51 model large
11648
11649         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
11650
11651         * support/regression/ports/gbz80/spec.mk: added -mgbz80
11652
11653 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
11654
11655         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
11656
11657 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
11658
11659         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
11660
11661         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
11662
11663 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
11664
11665         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
11666
11667         * support/regression/tests/simplefloat.c: Port to mcs51.
11668
11669 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
11670         * support/regression/tests/bug-485362.c: Added.
11671
11672         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
11673
11674         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
11675
11676         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
11677
11678         * src/z80/gen.c (aopDump): Added a dump function.
11679
11680 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
11681         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
11682
11683         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
11684
11685         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
11686
11687         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
11688
11689         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
11690
11691         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
11692
11693         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
11694
11695         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
11696
11697         * support/regression/ports/ds390/support.c: Use tinibios.
11698
11699         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
11700
11701 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
11702
11703         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
11704         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
11705
11706         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
11707
11708         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
11709
11710 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
11711
11712         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
11713
11714         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
11715         (packRegsForIYUse): Created and optimised.
11716
11717 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
11718
11719         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
11720 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
11721
11722         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
11723
11724         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
11725
11726         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
11727
11728 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11729
11730         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
11731
11732         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
11733
11734 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11735
11736         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
11737
11738         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
11739
11740         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
11741
11742 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
11743
11744         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
11745         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
11746         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
11747
11748         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
11749
11750         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
11751         (genNotFloat): Added.
11752         (genUminusFloat): Added.
11753
11754         * device/lib/z80/Makefile: Added floating pt stubs.
11755
11756         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
11757
11758         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
11759
11760         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
11761
11762 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11763
11764         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
11765
11766         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
11767
11768         * sdcc/support/regression/Makefile: Add port ds390.
11769
11770         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
11771
11772         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
11773
11774         * sdcc/support/regression/ports/ds390/spec.mk: Added.
11775
11776         * sdcc/support/regression/ports/ds390/support.c: Added.
11777
11778         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
11779
11780         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
11781
11782         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
11783
11784 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
11785
11786         * device/include/malloc.h: Added z80 and gbz80 support.
11787
11788         * device/lib/gbz80/heap.s: Added.
11789
11790         * device/lib/z80/heap.s: Added.
11791
11792         * device/lib/malloc.c: Added z80 and gbz80 support.
11793
11794         * support/regression/tests/malloc.c (testMalloc): Added.
11795
11796         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
11797
11798         * support/regression/tests/bug-478094.c: Added.
11799
11800         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
11801
11802 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
11803
11804         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
11805
11806         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
11807
11808         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
11809
11810         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
11811
11812         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
11813
11814 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
11815
11816         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
11817
11818 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
11819
11820         * support/regression/tests/bug-477927.c: Added.
11821
11822         * src/z80/peeph.def: Added minor rules.
11823
11824         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
11825
11826         * src/z80/peeph.def: Added jump optimisation modification.
11827
11828 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
11829
11830         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
11831
11832 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
11833
11834         * support/regression/tests/funptrs.c: Added.
11835
11836 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
11837
11838         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
11839
11840 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
11841
11842         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
11843
11844         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
11845
11846         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
11847         (movLeft2ResultLong): Created.
11848
11849         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
11850         (joinPushes): Added.  Joins two char pushes into a word push.
11851
11852 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
11853
11854         * support/cpp2/Makefile.in (install): Added creation of dest dir.
11855
11856         * support/makebin/Makefile (install): Added creation of dest dir.
11857
11858 2001-10-24 Karl Bongers <karl AT turbobit.com>
11859
11860         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
11861
11862 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
11863
11864         * src/z80/ralloc.c: Turned off faulty pack for one use.
11865
11866         * src/z80/peeph-gbz80.def: Removed redundent restart options.
11867
11868         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
11869
11870 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
11871
11872         * support/regression/Makefile: Improved clean
11873
11874         * support/regression/ports/gbz80/spec.mk: Added clean
11875
11876         * support/regression/ports/host/spec.mk: Added clean
11877
11878         * support/regression/ports/z80/spec.mk: Added clean
11879
11880         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
11881
11882         * support/regression/ports/mcs51/timeout.c: little improvements
11883
11884 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
11885
11886         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
11887
11888         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
11889
11890         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
11891
11892 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
11893
11894         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
11895
11896         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
11897
11898 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
11899         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
11900
11901         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
11902
11903         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
11904
11905         * src/mcs51/main.c (_linkCmd): Added bin path to command.
11906
11907         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
11908
11909         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
11910
11911         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
11912
11913         * support/regression/tests/longor.c: Added.
11914
11915 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
11916
11917         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
11918
11919         * as/mcs51/aslink.h: define PATH_MAX
11920
11921         * as/mcs51/asm.h: define PATH_MAX
11922
11923         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
11924
11925         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
11926
11927         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
11928
11929         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
11930
11931         * src/SDCCglobl.h: define PATH_MAX
11932
11933         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
11934
11935         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
11936
11937 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
11938
11939         * src/z80/gen.c (gencjneshort): Fixed
11940
11941         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
11942
11943 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
11944
11945         * support/regression/tests/bug-469671.c: Added.
11946
11947         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
11948
11949 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
11950
11951         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
11952
11953         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
11954
11955 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
11956
11957         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
11958
11959         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
11960
11961         * src/device/lib/_mullong.c : removed hint: nooverlay bug
11962
11963         * src/device/lib/_divuint.c : removed hint: nooverlay bug
11964
11965         * src/device/lib/_divulong.c: removed hint: nooverlay bug
11966
11967         * src/device/lib/_moduint.c : removed hint: nooverlay bug
11968
11969         * src/device/lib/_modulong.c: removed hint: nooverlay bug
11970
11971 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
11972
11973         * 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.
11974
11975         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
11976
11977         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
11978
11979 2001-10-07    <johan AT FRIJA>
11980
11981         * device/lib/gets.c (gets): fixed the return value.
11982
11983 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
11984         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
11985
11986         * 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.
11987
11988         * 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.
11989
11990         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
11991
11992         * src/pic/gen.c: Removed Safe_strdup.
11993
11994         * configure.in: Added option to enable libgc support.
11995
11996         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
11997         (bitVectUnion): Optimised.
11998         (bitVectIntersect): Optimised.
11999         (bitVectBitsInCommon): Optimised.
12000         (bitVectCplAnd): Optimised.
12001
12002         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
12003
12004 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12005
12006         * src/SDCCmain.c: distinguish between assembler debug and plain options
12007
12008         * src/avr/main.c:   remove standard assembler options
12009
12010         * src/ds390/main.c: remove standard assembler options
12011
12012         * src/mcs51/main.c: remove standard assembler options
12013
12014         * src/port.h: removed "PENDING" comment
12015
12016 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12017
12018         * src/device/lib/_mulint.c  : new, with assember functions
12019
12020         * src/device/lib/_mullong.c : new, with assember functions
12021
12022         * src/device/lib/_divuint.c : with assember functions
12023
12024         * src/device/lib/_divsint.c : with assember functions
12025
12026         * src/device/lib/_divulong.c: with assember functions
12027
12028         * src/device/lib/_divslong.c: with assember functions
12029
12030         * src/device/lib/_moduint.c : with assember functions
12031
12032         * src/device/lib/_modsint.c : with assember functions
12033
12034         * src/device/lib/_modulong.c: with assember functions
12035
12036         * src/device/lib/_modslong.c: with assember functions
12037
12038         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
12039
12040         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
12041
12042         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
12043                                       replaced _mululong.c and _mulslong.c by _mullong.c
12044
12045 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12046
12047         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
12048
12049 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12050
12051         * src/SDCCglue.c: test, if win32api is available for MINGW
12052
12053 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12054
12055         * src/SDCCsymt.c: no more _modifier in printTypeChain()
12056         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
12057         * support/regression/ports/gbz80/spec.mk: removed GENERIC
12058         * support/regression/ports/host/spec.mk: removed GENERIC
12059         * support/regression/ports/mcs51/spec.mk: removed GENERIC
12060         * support/regression/ports/z80/spec.mk: removed GENERIC
12061
12062 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
12063
12064         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
12065
12066         * support/regression/tests/bug-467035.c: Created.
12067
12068 2001-10-01    <johan AT FRIJA>
12069
12070         * src/SDCC.y: fixed bug #466586 part 1
12071
12072 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
12073
12074         * SDCCicode.c: z80 has no generic pointers
12075         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
12076
12077 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
12078
12079         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
12080
12081 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
12082
12083         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
12084
12085         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
12086
12087 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
12088
12089         * configure.in: Fixed up so that ucsim is only configured once.
12090
12091         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
12092
12093         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
12094         (getPathDifference): As above.
12095
12096         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
12097
12098         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
12099
12100 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
12101         * .version: Updated to 2.3.1
12102
12103         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
12104         Added copyright header.
12105
12106         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
12107         (assemble): Added support for macro based assembler commands.
12108         (linkEdit): Added support for macro based linker commands.
12109         (preProcess): Changed the pre-processor to use macros.
12110         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
12111         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
12112
12113         * device/lib/z80/crt0.s: Added module name for debugging.
12114
12115 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
12116
12117         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12118
12119         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
12120
12121         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
12122
12123         * src/Makefile.in: Added SDCCmacro and SDCCutil
12124
12125 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
12126
12127         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12128
12129 2001-09-16    <johan AT FRIJA>
12130
12131         * 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.
12132
12133 2001-09-15    <johan AT FRIJA>
12134
12135         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
12136         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
12137
12138 2001-09-11    <johan AT FRIJA>
12139
12140         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
12141
12142 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
12143
12144         * support/regression/tests/bug-460444.c: Added test case.
12145
12146         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
12147         (genCast): Added justification for all of the asserts.
12148
12149 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
12150
12151         * support/regression/support.c: _xdata replaced by xdata
12152
12153         * support/regression/spec.mk: removed _generic
12154
12155 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
12156
12157         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
12158
12159         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
12160         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
12161
12162         * src/z80/peeph.def: Added a rule to optimise shift then compare.
12163
12164         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
12165
12166         * support/regression/tests/bug-460010.c: Added test case.
12167
12168         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
12169
12170 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
12171
12172         * support/regression/Makefile: inter-port-clean adjusted for mcs51
12173
12174         * support/regression/testfwk.c: removed workaround for bug #436344
12175
12176         * support/regression/tests/bp.c: use less memory with mcs51
12177
12178         * support/regression/tests/bug-441448.c: use less memory
12179
12180         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
12181
12182         * support/regression/collate-results.py: typo
12183
12184 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
12185
12186         * support/regression/tests/fetchoverlap.c: Added new test case.
12187
12188         * support/regression/tests/bp.c: Added new test case.
12189
12190         * support/regression/tests/bug-448984.c: Added new test case.
12191
12192         * support/regression/tests/pow2shifts.c: Added new test case.
12193
12194         * src/z80/gen.c: Turned off the noise it normally generates for the release.
12195         (genlshTwo): Fixed right shift for count > 8.
12196
12197         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
12198
12199 2001-09-08    <johan AT FRIJA>
12200
12201         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
12202
12203 2001-09-07    <johan AT FRIJA>
12204
12205         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
12206
12207         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
12208
12209 2001-09-06    <johan AT FRIJA>
12210
12211         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
12212         * bernhard noted me at this: "() equals to (void)" (1.38)
12213
12214 2001-09-05    <johan AT FRIJA>
12215
12216         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
12217
12218 2001-09-04    <johan AT FRIJA>
12219
12220         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
12221
12222
12223 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
12224
12225         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
12226
12227 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
12228
12229         * link/z80/aslink.h: Fixed path for PATH_MAX
12230
12231 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
12232
12233         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
12234
12235         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
12236
12237         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
12238
12239         * 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.
12240
12241 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
12242
12243         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
12244         (genCmp): Fixed up genCmp for the GB with longs.
12245
12246         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
12247
12248         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
12249
12250         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
12251
12252         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
12253
12254 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
12255
12256         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
12257
12258 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
12259
12260         * 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.
12261
12262         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
12263
12264 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
12265
12266         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
12267
12268         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
12269
12270 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
12271
12272   * sim/ucsim/configure:    little improvement of Cygwin-detection
12273   * sim/ucsim/configure.in: little improvement of Cygwin-detection
12274   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
12275   * support/regression/tests/bug-221100.c: small changes for mcs51
12276   * support/regression/tests/bug-221168.c: small changes for mcs51
12277   * support/regression/tests/bug-227710.c: small changes for mcs51
12278   * support/regression/tests/staticinit.c: small changes for mcs51
12279   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
12280   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12281   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12282
12283 $Revision$