* configure.in, configure: support for winsock2
[fw/sdcc] / ChangeLog
1 2006-09-05 Borut Razem <borut.razem AT siol.net>
2
3         * configure.in, configure: support for winsock2
4         * debugger/mcs51/break.h, debugger/mcs51/cmd.c,
5           debugger/mcs51/cmd.h, debugger/mcs51/sdcdb.c,
6           debugger/mcs51/sdcdb.h, debugger/mcs51/simi.c,
7           debugger/mcs51/simi.h, debugger/mcs51/symtab.c,
8           debugger/mcs51/symtab.h: sdcdb WIN32 native port
9
10 2006-09-05 Maarten Brock <sourceforge.brock AT dse.nl>
11
12         * src/SDCCopt.c (cnvToFcall): fixed bug 1551947 by updating OP_USES
13           and OP_DEFS
14         * support/regression/tests/bug1551947.c: new, added
15         * src/SDCCsymt.h: strings are char* not byte*
16
17 2006-09-05 Raphael Neider <rneider AT web.de>
18
19         * device/lib/pic16/libdev/pic18f4550.c,
20           device/include/pic16/pic18f4550.h: added PORTD/TRISD
21             declarations/definitions from patch #1520949
22
23 2006-09-05 Raphael Neider <rneider AT web.de>
24
25         * src/pic16/gen.c (genPackBits): fix assignment to 8-bit,
26           byte-aligned bitfields, fixes #1539278
27
28 2006-09-05 Raphael Neider <rneider AT web.de>
29
30         * src/pic/gen.c (genReceive): skip unreferenced arguments,
31           fixes #1544120
32
33 2006-09-04 Borut Razem <borut.razem AT siol.net>
34
35         * support/scripts/sdcc.nsi: move ucSim executables to a separate section
36         * support/scripts/sdcc_cygwin_mingw32: don't disable ucsim,
37           -mno-cygwin is a part of the compiler name
38         * support/scripts/sdcc_mingw32: don't disable ucsim
39
40 2006-09-03 Borut Razem <borut.razem AT siol.net>
41
42         * sdcc.spec: corrected for 2.6.0. Thanks to Christer Weinigel.
43         * device/lib/Makefile.in device/lib/clean.mk: small but essential corrections
44
45 2006-09-03 Raphael Neider <rneider AT web.de>
46
47         * src/pic/ralloc.c,
48         * src/pic/pcode.c (InitReuseRegs): allocate registers with pseudo
49           indices >= 0x1000 to disambiguate them from fixed regs __at(addr),
50           fixes #1550049
51
52 2006-09-01 Borut Razem <borut.razem AT siol.net>
53
54         * sim/ucsim/cmd.src/cmdutil.cc: #include <sys/time.h> and <unistd.h>
55           to make ppc-osx happy
56
57 2006-08-31 Borut Razem <borut.razem AT siol.net>
58
59         * sim/ucsim/cmd.src/newcmdposix.cc: #include <assert.h>
60         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
61         * sim/ucsim/cmd.src/newcmd.cc: #include <ctype.h>
62         * support/regression/ports/ds390/spec.mk,
63           support/regression/ports/mcs51/spec.mk,
64           support/regression/ports/xa51/spec.mk: introduced DEV_NULL variable.
65           To run regression tests in mingw environment:
66           make DEV_NULL=NUL CC=gcc
67
68 2006-08-30 Borut Razem <borut.razem AT siol.net>
69
70         * sim/ucsim/cmd.src/newcmdposix.cc, sim/ucsim/cmd.src/newcmdposixcl.h,
71           sim/ucsim/cmd.src/newcmdwin32.cc, sim/ucsim/cmd.src/newcmdwin32cl.h,
72           sim/ucsim/app.cc, sim/ucsim/appcl.h, sim/ucsim/configure,
73           sim/ucsim/configure.in, sim/ucsim/ddconfig_in.h, sim/ucsim/error.cc,
74           sim/ucsim/errorcl.h, sim/ucsim/option.cc, sim/ucsim/optioncl.h,
75           sim/ucsim/utils.cc, sim/ucsim/utils.h, sim/ucsim/cmd.src/Makefile.in,
76           sim/ucsim/avr.src/avr.cc, sim/ucsim/avr.src/avrcl.h,
77           sim/ucsim/cmd.src/bp.cc, sim/ucsim/cmd.src/bpcl.h,
78           sim/ucsim/cmd.src/cmdconf.cc, sim/ucsim/cmd.src/cmdgui.cc,
79           sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/cmdset.cc,
80           sim/ucsim/cmd.src/cmdsetcl.h, sim/ucsim/cmd.src/cmdstat.cc,
81           sim/ucsim/cmd.src/cmduc.cc, sim/ucsim/cmd.src/cmduccl.h,
82           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
83           sim/ucsim/cmd.src/command.cc, sim/ucsim/cmd.src/commandcl.h,
84           sim/ucsim/cmd.src/get.cc, sim/ucsim/cmd.src/getcl.h,
85           sim/ucsim/cmd.src/info.cc, sim/ucsim/cmd.src/newcmd.cc,
86           sim/ucsim/cmd.src/newcmdcl.h, sim/ucsim/cmd.src/set.cc,
87           sim/ucsim/cmd.src/show.cc, sim/ucsim/cmd.src/timer.cc,
88           sim/ucsim/hc08.src/hc08.cc, sim/ucsim/hc08.src/hc08cl.h,
89           sim/ucsim/s51.src/Makefile.in, sim/ucsim/s51.src/interrupt.cc,
90           sim/ucsim/s51.src/interruptcl.h, sim/ucsim/s51.src/pca.cc,
91           sim/ucsim/s51.src/pcacl.h, sim/ucsim/s51.src/port.cc,
92           sim/ucsim/s51.src/portcl.h, sim/ucsim/s51.src/serial.cc,
93           sim/ucsim/s51.src/serialcl.h, sim/ucsim/s51.src/timer0.cc,
94           sim/ucsim/s51.src/timer0cl.h, sim/ucsim/s51.src/timer1.cc,
95           sim/ucsim/s51.src/timer1cl.h, sim/ucsim/s51.src/timer2.cc,
96           sim/ucsim/s51.src/timer2cl.h, sim/ucsim/s51.src/uc390.cc,
97           sim/ucsim/s51.src/uc390cl.h, sim/ucsim/s51.src/uc390hw.cc,
98           sim/ucsim/s51.src/uc390hwcl.h, sim/ucsim/s51.src/uc51.cc,
99           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/wdt.cc,
100           sim/ucsim/s51.src/wdtcl.h, sim/ucsim/sim.src/hw.cc,
101           sim/ucsim/sim.src/hwcl.h, sim/ucsim/sim.src/mem.cc,
102           sim/ucsim/sim.src/memcl.h, sim/ucsim/sim.src/obsolete.cc,
103           sim/ucsim/sim.src/obsolete.h, sim/ucsim/sim.src/sim.cc,
104           sim/ucsim/sim.src/simcl.h, sim/ucsim/sim.src/stack.cc,
105           sim/ucsim/sim.src/stackcl.h, sim/ucsim/sim.src/test_mem_speed.cc,
106           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
107           sim/ucsim/xa.src/xa.cc, sim/ucsim/xa.src/xacl.h,
108           sim/ucsim/z80.src/z80.cc, sim/ucsim/z80.src/z80cl.h:
109           ucsim WIN32 native port
110
111 2006-08-30 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
112
113         * doc/sdccman.lyx: added note on dynamic memory heap initialization
114
115 2006-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
116
117         * src/mcs51/gen.c (genAnd, genOr, genXor): fixed bug 1546986
118         * src/ds390/gen.c (aopGetUsesAcc): handle AOP_DPTR2 and AOP_DPTRn too
119
120 2006-08-26 Maarten Brock <sourceforge.brock AT dse.nl>
121
122         * src/ds390/gen.c (genAnd, genOr, genXor): fixed bug 1546986
123         * support/regression/tests/bug1546986.c: new, added
124         * as/mcs51/.cvsignore,
125         * debugger/mcs51/.cvsignore,
126         * src/.cvsignore: deleted
127
128 2006-08-25 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
129
130         * device/include/mcs51/P89c51RD2.h: fixed bug 1546936 (error in sbit
131           definitions)
132
133 2006-08-20 Borut Razem <borut.razem AT siol.net>
134
135         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h:
136           removed cl_listen_console::match(), cl_console::match(),
137           restructured cl_commander::proc_input()
138
139 2006-08-16 Borut Razem <borut.razem AT siol.net>
140
141         * sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/newcmdcl.h,
142           sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/cmdutil.h,
143           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/uc.cc: code cleaning
144
145 2006-08-14 Borut Razem <borut.razem AT siol.net>
146
147         * support/regression/Makefile.in,
148           support/regression/ports/pic14/gpsim.cmd,
149           support/regression/ports/pic14/spec.mk,
150           support/regression/ports/pic14/support.c:
151           added pic14 regression test
152
153 2006-08-14 Maarten Brock <sourceforge.brock AT dse.nl>
154
155         * as/doc/asxhtm.html: documented changed ABS behaviour
156         * as/doc/README: fixed some typos
157
158 2006-08-13 Maarten Brock <sourceforge.brock AT dse.nl>
159
160         * support/regression/tests/float_trans.c: disabled test if __STDC_IEC_559__
161           not defined on host
162
163 2006-08-12 Borut Razem <borut.razem AT siol.net>
164
165         * support/regression/fwk/include/testfwk.h,
166           support/regression/fwk/lib/testfwk.c,
167           support/regression/generate-cases.py,
168           support/regression/Makefile.in:
169           regression test framework does not depend on function pointers and
170           variable arguments
171
172 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
173
174         * device/include/stddef.h: c temporary hack to fix bug 1518273
175
176 2006-08-09 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
177
178         * device/include/mcs51/cc2510fx.h: added
179         * src/z80/z80.dsp, src/gbz80/gbz80.dsp: added support/Util/strcmpi.ch
180           to projects.
181
182 2006-08-09 Maarten Brock <sourceforge.brock AT dse.nl>
183
184         * as/z80/assym.c (mlookup): ignore case when looking up mnemonics
185         * as/z80/Makefile.in: added strcmpi.c
186         * as/z80/z80adr.c: added upper case registers and lower case conditionals
187         * support/Util/strcmpi.ch: added with intention to remove from mcs51/hc08
188
189 2006-08-08 Maarten Brock <sourceforge.brock AT dse.nl>
190
191         * device/lib/gbz80/asm_strings.s,
192         * device/lib/gbz80/crt0_rle.s,
193         * device/lib/gbz80/div.s,
194         * device/lib/gbz80/mul.s,
195         * device/lib/gbz80/shift.s,
196         * device/lib/z80/asm_strings.s,
197         * device/lib/z80/crt0_rle.s,
198         * device/lib/z80/div.s,
199         * device/lib/z80/mul.s,
200         * device/lib/z80/shift.s: changed to all lower case menmonics except the
201           flags which are all upper case
202
203 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
204
205         * as/z80/asm.h: made CASE_SENSITIVE 1
206         * link/z80/aslink.h: made CASE_SENSITIVE 1
207         * src/z80/gen.c (throughout): made all conditionals upper case
208         * support/regression/tests/bug1503067.c: new
209
210 2006-08-07 Maarten Brock <sourceforge.brock AT dse.nl>
211
212         * src/z80/gen.c (aopPut): fixed bug !*ixy should be !*iyx,
213           (shiftIntoPair): added case 2 for PAIR_IY,
214           (setupToPreserveCarry): replaced parameters with iCode and check if
215            PAIR_DE is in use to fix bug 1399290,
216           (genPlus, genMinus): updated call to setupToPreserveCarry
217         * support/regression/tests/bug1399290.c: new
218
219 2006-08-06 Maarten Brock <sourceforge.brock AT dse.nl>
220
221         * device/lib/Makefile.in (Z80SOURCES): enabled float support
222         * sim/ucsim/z80.src/inst.cc (inst_rst): generate breakpoint on RST8,ACC==0
223         * src/ds390/gen.c (shiftRLong),
224         * src/hc08/gen.c (shiftLLong, shiftRLong): fixed bug 1533966
225         * src/mcs51/gen.c (sameReg): changed to sameByte,
226           (xch_a_aopGet): new,
227           (shiftL2Left2Result, shiftR2Left2Result, shiftRLeftOrResult, shiftLLong,
228            shiftRLong): fixed bug 1533966
229         * src/z80/gen.c (shiftR2Left2Result, shiftL2Left2Result, genlshTwo,
230           genLeftShiftLiteral, genrshTwo, genRightShiftLiteral): fixed bug 1533966
231         * support/regression/Makefile.in: disabled z80, enabled ucz80
232         * support/regression/tests/float_trans.c: enabled test for z80 and host
233         * support/regression/tests/shifts2.c: new, for testing bug 1533966
234
235 2006-08-01 Borut Razem <borut.razem AT siol.net>
236
237         * src/mcs51/gen.c, src/dc390/gen.c: fixed warning:
238           comparison is always false due to limited range of data type
239           on PPC64 machine (openpower-linux1) where "char = unsigned char"
240
241 2006-08-01 Maarten Brock <sourceforge.brock AT dse.nl>
242
243         * sim/ucsim/hc08.src/hc08mac.h: removed faulty and unused add_u16_disp
244         * sim/ucsim/hc08.src/hc08.cc: removed faulty and unused int8
245         * sim/ucsim/z80.src/z80mac.h (add_u16_disp): use explicit signed char cast
246         * sim/ucsim/z80.src/z80.cc: removed faulty and unused int8
247
248 2006-07-31 Borut Razem <borut.razem AT siol.net>
249
250         * sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
251           sim/ucsim/cmd.src/newcmd.cc, sim/ucsim/cmd.src/cmdutil.cc,
252           sim/ucsim/z80.src/Makefile.in, sim/ucsim/configure.in,
253           sim/ucsim/hc08.src/Makefile.in, sim/ucsim/hc08.src/hc08.cc,
254           sim/ucsim/ddconfig_in.h, sim/ucsim/s51.src/Makefile.in,
255           sim/ucsim/s51.src/uc51cl.h, sim/ucsim/s51.src/serialcl.h,
256           sim/ucsim/s51.src/uc51.cc, sim/ucsim/s51.src/serial.cc,
257           sim/ucsim/app.cc, sim/ucsim/avr.src/Makefile.in:
258           enable ucsim mingw compilation. Serial port is disabled,
259           since it uses termios.h API, which is not available on native
260           WIN32
261
262 2006-07-31 Borut Razem <borut.razem AT siol.net>
263
264         * Small Device C Compiler 2.6.0 released
265         * support/scripts/sdcc.nsi: added FULL_DOC option
266         * .version, doc/sdccman.lyx: changed sdcc version to 2.6.1
267
268 2006-07-28 Borut Razem <borut.razem AT siol.net>
269
270         * support/scripts/sdcc.nsi: remove $INSTDIR/include/asm/pic16/*.h
271         * doc/INSTALL.txt: updated
272
273 2006-07-27 Borut Razem <borut.razem AT siol.net>
274
275         * device/lib/pic/Makefile.in, device/lib/pic/Makefile.subdir,
276           device/lib/pic/libdev/Makefile.in: fixed bug
277           [ 1438354 ] pic libsdcc: distclean doesn't work
278         * device/lib/pic16/Makefile.in, device/lib/pic16/Makefile.subdir,
279           device/lib/pic16/libio/Makefile.in: fixed bug
280           [ 1438344 ] pic16 lib: clean doesn't work properly
281         * doc/knownbugs.html removed [ 1438354 ] and [ 1438344 ] from the list
282
283 2006-07-26 Maarten Brock <sourceforge.brock AT dse.nl>
284
285         * device/lib/pic/libsdcc/fsdiv.c,
286         * device/lib/pic/libsdcc/fsmul.c,
287         * device/lib/pic16/libsdcc/float/fsdiv.c,
288         * device/lib/pic16/libsdcc/float/fsmul.c,
289         * device/lib/_fsdiv.c,
290         * device/lib/_fsmul.c: bugfix, handle too large and too small numbers
291         * support/regression/tests/bug1520966.c: added
292         * doc/knownbugs.html: removed [ 1520966 ] from the list
293
294 2006-07-25 Borut Razem <borut.razem AT siol.net>
295
296         * configure.in, configure, sdccconf_in.h: fixed bug
297           [ 1519095 ] regression test onebyte.c fails on ppc64 host
298         * doc/knownbugs.html: removed [ 1519095 ] from the list
299
300 2006-07-25 Maarten Brock <sourceforge.brock AT dse.nl>
301
302         * doc/knownbugs.html: added, contains list of known bugs at release
303         * device/include/mcs51/compiler.h: fixed SFR32 for SDCC
304
305 2006-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
306
307         * device/include/mcs51/compiler.h: added SFRX for xdata based special
308           function registers and corrected defaults with additional warning
309         * device/lib/malloc.c: cosmetic changes
310         * device/lib/realloc.c: bugfix for bug #1496907, Thanks Efim Monyak
311         * src/ds390/ralloc.c (getRegBitNoSpil): reenabled,
312           (fillGaps): and used it
313
314 2006-07-20 Raphael Neider <rneider AT web.de>
315
316         * src/pic/device.c (addMemRange,assignRegister): suppress verbose
317           output unless SDCCPICDEBUG is set
318         * device/lib/pic16/Makefile.rules (%.lib target): suppress verbose
319           output if SILENT is set
320
321 2006-07-11 Borut Razem <borut.razem AT siol.net>
322
323         * doc/README.txt: updated
324
325 2006-07-10 Borut Razem <borut.razem AT siol.net>
326
327         * support/scripts/sdcc.nsi: added device/include/asm/pic/features.h and
328           device/lib/src/pic/libm/*.c and device/lib/src/pic16/libsdcc/stack/*.S
329           in WIN32 installation
330         * .version, sdcc.spec, doc/sdccman.lyx: changed sdcc version to 2.6.0 -
331           release candidate 1
332
333 2006-07-08 Maarten Brock <sourceforge.brock AT dse.nl>
334
335         * device/include/mcs51/XC866.h: added sbit definitions for Px_x, P1_x, P2_x
336         * src/pic16/glue.c (initPointer): fixed bug 1496419 for pic16
337
338 2006-07-06 Maarten Brock <sourceforge.brock AT dse.nl>
339
340         * src/hc08/gen.c (genAddrOf): fixed bug when offset on stack is >127
341
342 2006-07-06 Borut Razem <borut.razem AT siol.net>
343
344         * support/regression/tests/bitfields.c:
345           fixed bug [ 1518322 ] regression test bitfields fails on ppc hosts
346         * support/regression/tests/constantRange.c:
347           fixed bug [ 1518317 ] regression test constantRange fails on alpha host
348
349 2006-07-04 Borut Razem <borut.razem AT siol.net>
350
351         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in,
352           src/port.mk,
353           src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
354           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
355           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
356           reverted changes from 2006-07-03
357         * Makefile.common.in: added @CPPFLAGS@ to CPPFLAGS
358         * support/regression/Makefile.in, support/regression/ports/host/spec.mk:
359           added CPPFLAGS, used by the host port
360
361 2006-07-03 Bernhard Held <bernhard AT bernhardheld.de>
362
363         * support/regression/valdiag/tests/switch.c,
364         * support/regression/valdiag/tests/constantRange.c: adapted to gcc 4
365         * support/regression/tests/libmullong.c: fixed for host
366         * support/regression/ports/host/spec.mk: disable all warnings for host,
367         SDCC runs with --less-pedantic too
368
369 2006-07-03 Borut Razem <borut.razem AT siol.net>
370
371         * src/configure.in, src/configure, src/Makefile.in, as/z80/Makefile.in:
372           defined CPPFLAGS
373         * src/port.mk: defined CPPFLAGS, renamed to src/port.mk.in
374         * src/avr/Makefile.in, src/ds390/Makefile.in, src/ds400/Makefile.in,
375           src/hc08/Makefile.in, src/mcs51/Makefile.in, src/pic16/Makefile.in,
376           src/pic/Makefile.in, src/xa51/Makefile.in, src/z80/Makefile.in:
377           include ../port.mk
378         * sim/ucsim/main_in.mk, sim/ucsim/avr.src/Makefile.in,
379           sim/ucsim/gui.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
380           sim/ucsim/s52.src/Makefile.in, sim/ucsim/sim.src/Makefile.in,
381           sim/ucsim/xa.src/Makefile.in: ignore header files for dependencies
382
383 2006-07-02 Raphael Neider <rneider AT web.de>
384
385         * src/pic16/devices.inc,
386         * device/include/pic16/pic18fregs.h,
387         * device/include/pic16/pic18f4550.h,
388         * device/lib/pic16/pics.all,
389         * device/lib/pic16/libdev/pic18f4550.c: added support for 18f4550
390
391 2006-07-01 Bernhard Held <bernhard AT bernhardheld.de>
392
393         * as/hc08/lkaomf51.c (OutputName),
394         * as/mcs51/lkaomf51.c (OutputName),
395         * as/z80/asmain.c (asmbl),
396         * src/ds390/main.c (asmLineNodeFromLineNode),
397         * src/hc08/ralloc.c (hc08_assignRegisters),
398         * src/mcs51/main.c (asmLineNodeFromLineNode),
399         * src/xa51/ralloc.c (checkRegMask),
400         * src/xa51/gen.c (emitcode),
401         * src/z80/gen.c (_emit2),
402         * src/SDCCast.c (searchLitOp),
403         * src/SDCCglobl.h,
404         * support/packihx/packihx.c,
405         * support/Util/MySystem.c (split_command): fix gcc 4 warnings
406         * src/ds390/gen.c (aopPutUsesAcc),
407         * src/ds390/ralloc.c (getRegBitNoSpil): unused, therefore disabled
408         * support/regression/tests/libmullong.c (mullong_wrapper),
409         * src/SDCCsymt.c (powof2),
410         * src/SDCCast.c,
411         * src/SDCCicode.c: renamed TYPE_WORD by TYPE_TARGET_INT and so on
412         * src/SDCCsymt.h: added TYPE_TARGET_*
413         * src/SDCCutil.c (doubleFromFixed16x16, fixed16x16FromDouble),
414         * src/SDCCutil.h (doubleFromFixed16x16, fixed16x16FromDouble): moved to
415         SDCCast because 1) header problems 2) this is the right place
416         * src/SDCCast.c (doubleFromFixed16x16, fixed16x16FromDouble): added
417         * src/SDCCval.h (doubleFromFixed16x16, fixed16x16FromDouble): added
418         prototype
419
420 2006-06-29 Bernhard Held <bernhard AT bernhardheld.de>
421
422         * src/SDCCicode.h: removed buggy semicolon in unused macro
423         * src/SDCClrange.c (findPrevUseSym, rlivePoint): fixed bug #1486853,
424         search for previous definiton of auto symbols too,
425         (findPrevUse): fixed logic of emitWarnings
426
427 2006-06-26 Raphael Neider <rneider AT web.de>
428
429         * src/pic16/gen.c (genFunction, genEndFunction): also preserve
430           PCLATH and PCLATU on interrupts, potentially fixes #1505141
431
432 2006-06-25 Raphael Neider <rneider AT web.de>
433
434         * device/lib/pic/libm: NEW, added math library functions
435         * device/lib/pic/libsdcc: NEW; added float support functions
436         * device/lib/pic/{Makefile.in,configure.in,configure}: added libm/
437         * device/include/pic/{limits.h,errno.h,sdcc-lib.h,float.h,math.h}:
438           NEW, added math related headers
439         * device/include/asm/pic/features.h: NEW
440         * src/pic/gen.c (emitpcode_real): emit warning on NULL pCodeOp,
441           (popGet): allow larger offsets for AOP_PCODE,
442           (genDataPointerSet): handle literals explicitly, more debug output,
443           (genAssign): fixed for float using aopLiteral ;-)
444         * src/pic/glue.c (pic14createInterruptVect): inserted pagesel before
445           GOTO initialisation routine
446         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): set wasUsed
447           flag on registers, fixes #1469043 (local variables do not work)
448         * src/pic/main.c (_pic14_do_link),
449         * src/pic16/main.c (_pic16_linkEdit): use fullDstFileName if
450           available
451
452 2006-06-25 Borut Razem <borut.razem AT siol.net>
453
454         * device/lib/pic16/libc/stdio/sprintf.c: return the number of
455           characters printed (not including the trailing '\0' used to end
456           output to strings). Problem detected in regression test bug-927659.c.
457           NOTE: printf() family functions should return int instead
458           unsigned int!
459         * device/lib/pic16/libc/stdio/vfprintf.c: "%%" prints "%", unknown
460           specifier are printed as themselves
461         * sdcc/support/regression/tests/bug1057979.c: pic16 printf doesn't
462           support flags, width and precision specifiers
463
464 2006-06-24 Borut Razem <borut.razem AT siol.net>
465
466         * sdcc/support/regression/tests/bitvars.c: added gbz80, pic16 and pic16
467           to the list of sdcc tagrets not supporting bit type
468         * sdcc/support/regression/tests/bug-905992.c.c: excluded regression
469           testfor pic16 due to bug:
470           [ 1511794 ] pic16: regression test bug-895992.c fails
471
472 2006-06-24 Maarten Brock <sourceforge.brock AT dse.nl>
473
474         * src/mcs51/gen.c (genCmp): optimization for RFE 1162453
475         * src/SDCCglue.c (initPointer), fixed bug 1496419
476         * support/regression/tests/bug1496419.c: new, added
477
478 2006-06-22 Borut Razem <borut.razem AT siol.net>
479
480         * support/regression/ports/pic16/support.c: use gpsim usart module from
481           libgpsim_modules library
482
483 2006-06-21 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
484
485         * device/include/mcs51/at89c51ed2.h: Fixed bug 1510144 changed
486         IP0H to IPH0.
487
488 2006-06-19 Raphael Neider <rneider AT web.de>
489
490         * src/pic/glue.h,src/pic16/glue.h: added prototypes
491         * src/pic/glue.c,src/pic16/glue.c (pic1x_stringInSet,
492           pic1x_emitSymbolIfNew): NEW, check for a string in a set,
493           (pic14printExterns,pic14printPublics,pic16printPublics,
494           pic16_printExterns): use new functions to emit symbols
495           (picglue,pic16glue): emit publics before emitting externs
496         * src/pic/gen.c,src/pic16/gen.c (genFunction): remember the names of
497           locally defined functions to avoid bug #1443651
498         * support/regression/tests/bug-716242.c: removed pic16 workaround
499         * support/regression/ports/pic16/spec.mk: ignore errors during build
500
501 2006-06-19 Raphael Neider <rneider AT web.de>
502
503         * src/pic/glue.h: added pic14aopLiteral prototype
504         * src/pic/glue.c (pic14aopLiteral): return unsigned int
505         * src/pic/gen.c: removed stdint.h dependency
506           (aopGet): use Safe_strdup()
507           (bitpatternFromVal): removed, replaced use with pic14aopLiteral
508           (genDataPointerSet): use pic14aopLiteral()
509         * src/pic16/glue.h, src/pic16/glue.c, src/pic16/gen.c: similar changes
510           for pic16; thanks to Bernhard and Maarten
511
512 2006-06-18 Borut Razem <borut.razem AT siol.net>
513
514         * support/regression/tests/structflexarray.c: flexible array members
515           not supported by gcc < 3
516         * sim/ucsim/configure, sim/ucsim/configure.in: do not compile serio
517           GUI tool by default
518         * src/pic/gen.c: don't include [p]strdin.h on solaris
519         * support/Util/pstdint.h: addad svn attributes
520         * support/regression/tests/constantRange.c,
521           support/regression/tests/rotate.c: include inttypes.h instead
522           stdint.h on solaris, addad svn attributes
523
524 2006-06-18 Raphael Neider <rneider AT web.de>
525
526         * src/SDCCsymt.c (initCSupport): change return type of divschar to
527           int for PIC16
528         * src/pic16/genarith.c (genAddLit): sign-extend via standard routine
529           (pic16_genMinusBits): simplified sign-extension
530           (pic16_genUMult8XLit_8,pic16_genUMult8X8_8): renamed to
531             pic16_genMult8XLit_n resp. pic16_genMult8X8_n, fixed and
532             adjusted to correctly handle mixed-signed operands, disabled
533             now unused multiplciation routines
534         * src/pic16/gen.c (pic16_pushpCodeOp): fixed to handle literals
535           (assignResultValue): added argument denoting the size of the result
536             as returned by the function (fixes upcasts in assigning from
537             function calls: char foo(); int i = foo();)
538           (genCall,genPcall,genGenPointerGet,genReceive): pass size of
539             function result to assignResultValue
540           (genMult): disabled inlined multiplication code
541           (genDiv): augmented to also handle the modulus operator, fixed to
542             handle mixed-signed operands correctly
543           (genMod): simply call genDiv, disabled unused code
544           (genAssign): fixed missing (sign-)extension on result
545         * src/pic16/main.c (_hasNativeMulFor): accept literals [-128..256) as
546             valid char operands, allow signed operands for native code, added
547             division and modulo operator handling
548         * device/lib/pic16/libsdcc/char/divschar.c: divschar returns an int
549
550         As a consequence, onebyte.c (if split into two files) and muldiv.c
551         pass regression tests.
552
553 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
554
555         * doc/Makefile.in: two runs of makeindex seem needed to get
556         correct page references in the index of sdccman.pdf
557         * doc/sdccman.lyx: mentioned cmon51, added links, small changes
558
559 2006-06-17 Borut Razem <borut.razem AT siol.net>
560
561         * sdcc/device/lib/Makefile.in: corrected PORTINCDIR path
562
563 2006-06-17 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
564
565         * doc/sdccman.lyx: updated, added (porting source code, debugging),
566         mentioned ec2drv and paulmon
567
568 2006-06-16 Maarten Brock <sourceforge.brock AT dse.nl>
569
570         * as/mcs51/lkarea.c (lnkarea2): clear new xdatamap, bugfix for two
571           consecutive abs areas
572           (find_empty_space, allocate_space): added map to handle codemap or
573            xdatamap,
574           (lnksect2): renamed rloc to locIndex, fixed bug 960060 by handling
575            absolute idata and xdata
576         * as/mcs51/lkmem.c (summary2): updated legend
577
578 2006-06-16 Raphael Neider <rneider AT web.de>
579
580         * src/pic16/gen.c (shiftR2Left2Result): fixed bug #1507127
581
582 2006-06-13 Maarten Brock <sourceforge.brock AT dse.nl>
583
584         * debugger/mcs51/cmd.c (cmdListFunctions): fixed bugs 1181163 and
585           1208515
586         * src/SDCClrange.c (findPrevUse): fixed bug 1294475
587
588 2006-06-13 Vangelis Rokas <vrokas AT users.sourceforge.net>
589
590         * src/port.h (struct PORT): added field gp_tags, to hold the tag
591         value of generic pointers,
592         * src/avr/main.c,
593           src/ds390/main.c,
594           src/hc08/main.c,
595           src/izt/i186.c,
596           src/izt/tlcs900h.c,
597           src/mcs51/main.c,
598           src/pic/main.c,
599           src/pic16/main.c,
600           src/xa51/main.c,
601           src/z80/main.c: PORT structure, added elements for gp_tags field,
602         * src/SDCCsymt.h: replaced hardwired values of GPTYPE_* macros with
603         fields in the PORT structure of each port,
604         * src/SDCCast.c (decorateType): allow processing of generic pointers
605         for PIC16 port (FPTRSIZE equals GPTRSIZE), also set GPTYPE_NEAR for
606         S_FIXED symbols
607
608 2006-06-12 Maarten Brock <sourceforge.brock AT dse.nl>
609
610         * link/z80/lkgb.c,
611         * link/z80/lkgg.c,
612         * src/pic16/gen.c,
613         * src/pic16/main.c,
614         * src/pic16/pcode.c,
615         * src/pic/main.c,
616         * src/pic/pcoderegs.c,
617         * src/SDCCicode.c,
618         * src/SDCCmain.c,
619         * src/SDCCsymt.c: replaced all exit(-1) by exit(EXIT_FAILURE) to fix
620           bug 1504689 on minGW
621
622 2006-06-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
623
624         * device/lib/printf_tiny.c: fixed bug #1465675 (%x format specifier)
625
626 2006-06-12 Bernhard Held <bernhard AT bernhardheld.de>
627
628         * src/SDCCast.c (backPatchLabels): fixed bug #1504636
629
630 2006-06-11 Maarten Brock <sourceforge.brock AT dse.nl>
631
632         * device/lib/printf_large.c (OUTPUT_CHAR, _output_char): added and used
633           for optimization
634
635 2006-06-11 Vangelis Rokas <vrokas AT users.sourceforge.net>
636
637         * src/pic16/gen.c (genCast): fixed bug with assignment of a pointer
638         to a char variable. Fixed bug #1504211
639         * device/include/pic16/adc.h,
640         device/include/lib/pic16/libio/adc/adcopen.c: applied patch #1364387
641         and fixed bug #1364390
642
643 2006-06-10 Borut Razem <borut.razem AT siol.net>
644
645         * CVSROOT: removed the CVS left-over
646
647 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
648
649         * as/hc08/asmain.c (asexit),
650         * as/hc08/lkmain.c (lkexit),
651         * as/mcs51/asmain.c (asexit),
652         * as/mcs51/lkmain.c (lkexit),
653         * src/SDCCglue.c (DEFSETFUNC),
654         * src/SDCCmain.c (linkEdit, assemble),
655         * support/librarian/sdcclib.c (AddRel),
656           replaced unlink() by standard C remove()
657         * src/SDCC.y: replaced removePostIncDecOps() by createRMW()
658         * src/SDCCast.c (replaceAstWithTemporary, createRMW,
659           gatherImplicitVariables): new, added to fix bug 608752,
660           (createFunction): added gatherImplicitVariables()
661         * src/SDCCast.h: added createRMW prototype
662         * src/SDCCsymt.h (struct symbol): added infertype
663         * support/regression/tests/bug608752.c: new, added
664
665 2006-06-10 Raphael Neider <rneider AT web.de>
666
667         * src/pic16/gen.c (pic16_aopOp): use WREG as destination even for
668           multibyte dummy reads (fixes #1503234)
669
670 2006-06-10 Maarten Brock <sourceforge.brock AT dse.nl>
671
672         * device/include/mcs51/compiler.h: new, added header file to enable
673           creating common sfr definition header files for different compilers
674
675 2006-06-05 Raphael Neider <rneider AT web.de>
676
677         * src/pic16/{pcode.h,genarith.c}:
678           introduced pCodeOp combining any two pCodeOps (previously only
679           two register operands could be combined), removed pcop2 from
680           pCodepReg, replaced pCodeOpReg2 with pCodeOp2, fixes #1492366
681         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): added case for PO_TWO_OPS
682         * src/pic16/gen.c (pic16_popGet2,pic16_popGet2p,pic16_popCombine2):
683           rewritten to use new PO_TWO_OPS
684         * src/pic16/main.c (_hasNativeMulFor): cover more cases natively,
685         * src/pic16/pcode.c (pic16_newpCodeOpImmd): initialize rIdx field,
686           (pic16_newpCodeOp): catch invalid attempts on PO_TWO_OPS,
687           (pic16_newpCodeOp2): NEW, create combined pCodeOp,
688           (pic16_get_op): embraced return arg to allow #define return(x),
689             added new case for combined opcodes
690           (pic16_get_op2): reduced to use pic16_get_op() on second pCodeOp,
691           (pic16_pCode2str,pic16_getRegFrompCodeOp,
692            pic16_getRegFromInstruction2): fixed/added handling of new pCodeOp
693
694 2006-06-04 Bernhard Held <bernhard AT bernhardheld.de>
695
696         * src/SDCCval.c (checkConstantRange): added
697         * src/SDCCval.h: added checkConstantRange
698         * support/Util/SDCCerr.c,
699         * support/Util/SDCCerr.h: replaced unused W_IF_NEVER_TRUE and
700         W_IF_ALWAYS_TRUE by W_COMP_RANGE and W_LIT_OVERFLOW
701         * src/SDCC.y: moved early 'condition transformations' to SDCCast.c
702         * src/SDCCast.c (decorateType): added checkConstantRange,
703         added 'condition transformations' from SDCC.y so that now W_COMP_RANGE
704         can be emitted with the correct always true/false warning,
705         added optimization for double '!';
706         result of decorateType() must be assigned back to the tree, because
707         decorateType() can change the tree
708         * src/SDCCicode.c (geniCodeLogic),
709         (geniCodeAssign): replaced new checkConstantRange, added warnings,
710         (checkConstantRange): removed, it was only a fragment which never
711         emitted a warning
712         * src/SDCCsymt.c (computeType): fixed promotion for
713         "-1 < (unsigned bit) b"
714         * src/pic/ralloc.c (packRegsForAssign),
715         * src/pic16/ralloc.c (packRegsForAssign),
716         * src/hc08/ralloc.c (packRegsForAssign),
717         * src/z80/ralloc.c (packRegsForAssign): ported fix for bug #930931
718         from mcs51
719         * src/mcs51/ralloc.c (packRegsForAssign): removed outcommented source
720         * support/regression/tests/constantRange.c: added
721         * support/valdiag/tests/constantRange.c: added
722         * support/valdiag/valdiag.py: added -DPORT_HOST=1
723
724 2006-06-02 Borut Razem <borut.razem AT siol.net>
725
726         * support/regression/ports/pic16/support.c: increase stack size
727           to 255 bytes
728         * support/regression/Makefile.in: sort tests by name so that the
729           resutlts can be compared on different machines / platforms
730
731 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
732
733         * device/lib/printf_large.c (output_digit): optimized further, Tnx Frieder
734         * src/ds390/gen.c (emitLabel): new, added,
735           (genDjnz): fixed stack overflow bug,
736           (throughout): cosmetic changes to sync with mcs51/gen.c,
737           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl)
738         * src/mcs51/gen.c (genEndFunction): small optimization,
739           (throughout): cosmetic changes to sync with ds390/gen.c
740
741 2006-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
742
743         * device/lib/printf_large.c (output_digit, calculate_digit): optimized,
744           (_print_format): fixed printing pointers
745         * src/mcs51/gen.c (emitLabel, movb): new, added,
746           (genAssign): small optimization,
747           (genDjnz): fixed stack overflow bug,
748           (throughout): replaced sprintf with SNPRINTF,
749           replaced mcs51_regWithIdx with REG_WITH_INDEX,
750           replaced emitcode("mov", "b,...") with MOVB(...),
751           replaced emitcode("", "%05d$:", lbl->key + 100) with emitLabel(lbl),
752           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
753         * src/mcs51/peeph.def: added rules 140 and 264
754         * src/SDCCmem.c (allocLocal): store register declared locals in DSEG/OSEG
755           so they may get optimized into registers
756
757 2006-05-30 Maarten Brock <sourceforge.brock AT dse.nl>
758
759         * src/SDCCmain.c (optionsTable, parseCmdLine): handle --use-stdout
760           immediately when encountered,
761           (printUsage): always use stderr even on windows
762
763 2006-05-30 Bernhard Held <bernhard AT bernhardheld.de>
764
765         * src/SDCCast.c (isLoopCountable): fixed bug #1478316
766         (processParms): fixed bug #1247551
767         * src/SDCCmain.c (printVersionInfo, printOptions, printUsage,
768         parseCmdLine, main): print '--version' to stdout,
769         print 'help' to stdout if --help is given,
770         print 'help' to stderr and exit with EXIT_FAILURE if no or bad
771         arguments are given; fixed --help
772
773 2006-05-27 Bernhard Held <bernhard AT bernhardheld.de>
774
775         * src/SDCCcse.c (findPointerSet): fixed bug #1493710
776         * support/regression/tests/bug-1493710.c: added
777
778 2006-05-27 Borut Razem <borut.razem AT siol.net>
779
780         * support/regression/fwk/lib/testfwk.c: define array in _printn() as
781           static instead auto
782         * support/regression/ports/pic16/support.c: increase stack size
783           from default 64 bytes to 128 bytes
784         * support/regression/tests/staticinit.c,
785           support/regression/tests/float.c: regression tests fully enabled
786           for pic16 port by putting the initialized data arrays into the code
787           section
788         * support/regression/ports/pic16/spec.mk: don't link default libraries.
789           This was changed by mistake in the previous version.
790
791 2006-05-28 Vangelis Rokas <vrokas AT users.sourceforge.net>
792
793         * src/pic16/gen.c (genFunction, genEndFunction): some
794         beautifications, fixed bug with falsely restoring FSR2 in large
795         stack model, thanks to Beau E. Cox for reporting the bug
796
797 2006-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
798
799         * debugger/mcs51/break.c,
800         * debugger/mcs51/cmd.c (throughout): removed unused variables and labels,
801           use %p to print pointers, made address variables unsigned
802         * debugger/mcs51/cmd.c (infoSymbols): added missing parameter to printf
803         * debugger/mcs51/symtab.c (parseSymbol): must return something
804         * src/mcs51/gen.c (aopForSym): small optimization,
805            moved declarations mcs51_ptrRegReq and mcs51_nRegs to ralloc.h,
806           (freeAsmop): added missing break,
807           (aopPut): removed parameter bvolatile, determine it inside the function,
808           (saveRegisters, unsaveRegisters): small optimization,
809           (genIpush): removed pointless check,
810           (throughout): replaced Safe_calloc, strcpy with Safe_strdup,
811           replaced sprintf with SNPRINTF,
812           replaced strcpy with strncpyz,
813           updated aopPut calls,
814           replaced D(emitcode("; genXXX", "")) with D(emitcode(";", "genXXX"))
815         * src/mcs51/ralloc.h:  added declarations mcs51_ptrRegReq and mcs51_nRegs
816
817 2006-05-24 Borut Razem <borut.razem AT siol.net>
818
819         * support/regression/tests/bug-221100.c: fixed xdata problem caused by
820           modification of test for the pic16 port, put the array to the code
821           memory for pic16port; thanks to Maarten Brock and Frieder Ferlemann
822
823 2006-05-23 Jesus Calvino-Fraga <jesusc at ece.ubc.ca>
824
825         * src/pic/gen.c: MSC 6 does not have <stdint.h>.  Use pstdint.h instead.
826         * support/Util/pstdint.h: added
827
828 2006-05-22 Borut Razem <borut.razem AT siol.net>
829
830         * src/regression/Makefile: removed bool2.c test, added -q linker option
831         * src/regression/add2.c, src/regression/add3.c, src/regression/bool1.c,
832           src/regression/bool3.c, src/regression/nestfor.c, src/regression/ptrfunc.c,
833           src/regression/compare.c, src/regression/or1.c, src/regression/compare2.c,
834           src/regression/while.c, src/regression/compare3.c, src/regression/compare4.c,
835           src/regression/compare5.c, src/regression/sub2.c, src/regression/rotate1.c,
836           src/regression/rotate2.c, src/regression/rotate3.c, src/regression/rotate4.c,
837           src/regression/switch1.c, src/regression/rotate5.c, src/regression/for.c,
838           src/regression/add.c, src/regression/sub.c, src/regression/call1.c:
839           define SUPPORT_BIT_TYPES 0, removed unused bit variables
840
841 2006-05-22 Raphael Neider <rneider AT web.de>
842
843         * src/pic16/gen.c (pic16_storeForReturn): fragile fix for
844           bug #1492360 (problematic due to generic pointers, see code)
845
846 2006-05-22 Borut Razem <borut.razem AT siol.net>
847
848         * support/regression/ports/pic16/specs.mk: removed stack size linker
849           directive
850         * support/regression/tests/array.c,
851           support/regression/tests/bitopcse.c,
852           support/regression/tests/bug-908454.c,
853           support/regression/tests/malloc.c: modified for pic16 regression test
854         * support/regression/tests/bitfields.c:
855           pic16 - excluded bitfileds of size > 8
856         * support/regression/tests/bp.c: pic16 - reduced data size
857         * support/regression/tests/bug-221100.c: pic16 - reduced data size
858         * support/regression/tests/bug-460010.c:
859           pic16 - used the absolute address the fits in memory
860         * support/regression/tests/bug-716242.c:
861           bug [ 1443651 ] pic 16: redefining symbol that cannot be redefined.
862         * support/regression/tests/float.c:
863           pic16 - excluded - data size too big
864         * support/regression/tests/onebyte.c:
865           pic16 - bug [ 1444425 ] onebyte.c regression tes fails on pic16
866         * support/regression/tests/shifts.c:
867           pic16 - function names probably have to differ in first X characters
868           (gpasm limitation?)
869         * support/regression/tests/staticinit.c:
870           pic16 - excluded some tests due error: no target memory available for
871           section ".idata"
872
873 2006-05-22 Borut Razem <borut.razem AT siol.net>
874
875         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
876           second try. Thanks Stas Sergeev once more.
877
878 2006-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
879
880         * src/hc08/gen.c (transferAopAop): aop forced to stack was not restored,
881           (genLeftShift, genRightShift): fixed bug 1491627
882         * src/hc08/peeph.def (rules 7, 8.x): added
883         * support/regression/tests/shifts.c (ShiftLeftByParam,
884           ShiftRightByParam, testShiftByParam): added to test variable shifting
885
886 2006-05-20 Raphael Neider <rneider AT web.de>
887
888         * src/pic/gen.c (bitpatternFromVal): fixed for 64-bit machines
889         * src/pic16/ralloc.c (newReg): use correct name in hashtable,
890           (allocReg): add only new registers to dynAllocRegs,
891           (pic16_assignRegisters): do not reset dynrIdx, fixes bugs
892             #1489055, #1445850, and probably #1483693
893
894 2006-05-19 Vangelis Rokas <vrokas AT users.sourceforge.net>
895
896         * src/pic16/glue.c (pic16_emitConfigRegs, pic16_emitIDRegs): fixed
897         bug in for-loop that didn't emit the last of CONFIG and ID registers
898
899 2006-05-18 Maarten Brock <sourceforge.brock AT dse.nl>
900
901         * src/mcs51/gen.c (genCodePointerGet): inc dptr instead of loading acc
902           with offset
903         * src/mcs51/peeph.def (186.x): updated and reenabled to fix bugs
904           1489016, 1434401 and 1490124
905         * src/ds390/peeph.def (186.x, 227.x): updated and reenabled to fix bugs
906           1489016, 1434401 and 1490124
907
908 2006-05-17 Borut Razem <borut.razem AT siol.net>
909
910         * support/Util/dbuf.c: fixed bug #1489008 fix dbuf_c_str(),
911           thanks Stas Sergeev
912
913 2006-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
914
915         * device/include/mcs51/P89c51RD2.h,
916         * device/include/mcs51/P89LPC901.h,
917         * device/include/mcs51/P89LPC922.h,
918         * device/include/mcs51/P89LPC932.h: added, thanks Omar Espinosa
919
920 2006-05-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
921
922         * device/lib/pic16/libsdcc/stack/{stack.S, Makefile.in}: add workaround
923         to fix missing stack pragma in compiled binary object file,
924
925 2006-05-14 Bernhard Held <bernhard AT bernhardheld.de>
926
927         * support/packihx/configure.in,
928         * support/packihx/configure: removed warning, autoconf >= 2.5x can
929         determine sizeof basic types even while cross compiling
930
931 2006-05-13 Bernhard Held <bernhard AT bernhardheld.de>
932
933         * src/avr/gen.c (aopop),
934         * src/ds390/gen.c (aopOp),
935         * src/hc08/gen.c (aopOp),
936         * src/mcs51/gen.c (aopop),
937         * src/pic16/gen.c (pic16_aopOp),
938         * src/pic/gen.c (aopOp),
939         * src/z80/gen.c (aopop): fix for bug #1479882; use new, exclusive asmop
940         if size of operand is smaller than spill location
941
942 2006-05-12 Borut Razem <borut.razem AT siol.net>
943
944         * *.dsw, *.dsp: changed property svn:eol-style to CRLF since they
945           have to have CR/LF line endings even if they are checked out on *nix
946           or on WIN32 in cygwin binmode
947
948 2006-05-12 Maarten Brock <sourceforge.brock AT dse.nl>
949
950         * doc/sdccman.lyx: documented numeric ranges, WEBDOC #1442369
951         * device/include/ds80c390.h: added sfr16 definitions
952         * src/ds390/gen.c,
953         * src/ds390/gen.h,
954         * src/ds390/main.c,
955         * src/ds390/ralloc.c,
956         * src/ds390/ralloc.h: changes all over the place to sync with mcs51
957           fixing several bugs and adding sfr16/sfr32, reentrant bit params,
958           bit returning functions
959         * support/regression/tests/sfr16.c: enabled test on ds390
960
961 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
962
963         * src/hc08/gen.c (asmopToBool, genIfx): fix for bug #1429722
964         * src/hc08/gen.c (storeRegToAop): fix for bug #1439894
965
966 2006-05-11 Maarten Brock <sourceforge.brock AT dse.nl>
967
968         * sim/ucsim/sim.src/memcl.h: added get_decoder() to cl_address_space
969         * sim/ucsim/sim.src/mem.cc: implemented cl_address_space::get_decoder,
970           (cl_address_space constructor): removed expensive initialization,
971           (cl_address_space::get_cell): extended for late initialization,
972           (cl_address_space::*): use late initialization,
973           (cl_address_decoder::activate): removed expensive initialization,
974           This reduced regression test running time by 25%
975
976 2006-05-11 Bernhard Held <bernhard AT bernhardheld.de>
977
978         * packihx/,
979         * configure.in,
980         * configure,
981         * sdcc.dsw,
982         * Makefile.bcc,
983         * Makefile.in,
984         * support/packihx/Makefile.in,
985         * support/packihx/clean.mk,
986         * support/packihx/Makefile.bcc,
987         * support/packihx/PackIhx.dsp: moved packihx to support/packihx
988
989 2006-05-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
990
991         * src/SDCCval.c (valNot): fix for regression test failure
992           of not.c on big endian hosts
993
994 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
995
996         * device/inlcude/mcs51/msc1210.h: new, added, thanks Philippe Latu
997
998 2006-05-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
999
1000         * device/lib/mcs51/Makefile.in: changed string comparison operator
1001           to = for POSIX compliance; == is bash extension
1002
1003 2006-05-10 Maarten Brock <sourceforge.brock AT dse.nl>
1004
1005         * device/lib/hc08/_mulint.c: applied patch 1485428, thanks
1006           kosmonaut_pirx
1007
1008 2006-05-09 Vangelis Rokas <vrokas AT users.sourceforge.net>
1009
1010         * src/pic16/gen.c (pic16_freeAsmop): release any temp registers
1011         allocated by aopForSym thus fixing bug #1478657 about failed testfwk.c
1012         * src/pic16/main.c (_pic16_keywords): added 'sfr16' keyword,
1013         * src/pic16/ralloc.c (pic16_allocWithIdx): also a fix for bug exposed by
1014         bug report #1478657,
1015
1016 2006-05-05 Borut Razem <borut.razem AT siol.net>
1017
1018         * doc/Makefile.in: remove of WARNINGS and labels.pl immediately after
1019           making the html
1020
1021 2006-05-02 Borut Razem <borut.razem AT siol.net>
1022
1023         * doc/Makefile.in: removed *.ind dependency since there is no rule to
1024           create *.ind, which made make to fail if invoked with -j 2
1025
1026 2006-05-01 Maarten Brock <sourceforge.brock AT dse.nl>
1027
1028         * src/SDCCglue.c (emitRegularMap): partial fix for bug 1477149, thanks
1029           Hubert Sack for patch 1479782
1030
1031 2006-05-01 Vangelis Rokas <vrokas AT users.sourceforge.net>
1032
1033         * src/pic16/glue.c (pic16_printIvalStruct): fixed bug #1445929
1034
1035 2006-05-01 Raphael Neider <rneider AT web.de>
1036
1037         * src/pic/device.c (sanitise_processor_name): only remove p(ic) prefix,
1038           (create_pic): store only prefix-free device name,
1039           (init_pic): check for device names with "16" prefix,
1040           (list_valid_pics),
1041         * src/pic/device.h (struct PIC_device),
1042         * src/pic/main.c (_pic14_genAssemblerPreamble): adapted to single
1043             stored device name,
1044         * device/include/pic/pic12f{635,675,629,683}.h,
1045         * device/lib/pic/libdev/pic12f{635,675,629,683}.c: NEW device libraries
1046         * device/lib/pic/libdev/Makefile.in: allow pic12* devices,
1047         * device/include/pic/pic16f505.h,
1048         * device/lib/pic/libdev/pic16f505.c: removed
1049         * device/include/pic/pic14devices.txt: added support for pic12f
1050             devices, removed unsupported non 16-bit devices
1051             [above changes provided by patch from Zik Saleeba]
1052         * src/pic/*, src/pic16/*, device/include/pic16/*,
1053           device/lib/pic/**, device/lib/pic16/**: obfuscated email address
1054
1055 2006-05-01 Borut Razem <borut.razem AT siol.net>
1056
1057         * configure.in, configure, doc/Makefile.in:
1058           sync with nightly build makefile - latex, dvipdf and dvips
1059           not needed any more
1060
1061 2006-04-30 Bernhard Held <bernhard AT bernhardheld.de>
1062
1063         * support/scripts/sdcc.nsi: removed all Readmes and Makefiles
1064         in the library source
1065
1066 2006-04-30 Maarten Brock <sourceforge.brock AT dse.nl>
1067
1068         * support/regression/ports/hc08/spec.mk: fixed bug 1478892
1069
1070 2006-04-28 Raphael Neider <rneider AT web.de>
1071
1072         * src/pic16/pcode.c (pic16_newpCodeOpLit12),
1073         * src/pic16/gen.c (pic16_popGetLit12): NEW, create 12 bit literal,
1074           (pic16_loadFSR0): handle 12 bit literals correctly, fixes #1440527
1075         * src/pic16/pcode.h: added prototype for pic16_newpCodeOpLit12()
1076
1077 2006-04-28 Bernhard Held <bernhard AT bernhardheld.de>
1078
1079         * device/lib/pic/libdev/Makefile.in,
1080         * device/lib/hc08/Makefile.in,
1081         * device/lib/gbz80/Makefile.in,
1082         * device/lib/z80/Makefile.in,
1083         * device/lib/ds390/Makefile.in,
1084         * device/lib/ds400/Makefile.in: added srcdir to include search path,
1085         thanks to Borut for the bug report
1086         * configure.in,
1087         * configure: always create doc/Makefile independent from --enable-doc
1088         * Makefile.in: always install from directory doc independent from
1089         --enable-doc
1090         * device/lib/pic/Makefile.in: added libdev again, it was erroneously
1091         removed
1092         * device/lib/pic/libdev/Makefile.in: fixed VPATH build
1093         * doc/Makefile.in: install *.txt if present
1094         * device/include/Makefile.in (install): added installation of pic/*.inc
1095         and pic/*.txt files again, they were erroneously removed
1096
1097 2006-04-28 Raphael Neider <rneider AT web.de>
1098
1099         * src/pic/{gen.c,main.h,pcode.c},
1100         * src/pic16/{gen.c,pcode.c}: quietened compiler warnings
1101             concerning signedness with casts
1102
1103 2006-04-28 Raphael Neider <rneider AT web.de>
1104
1105         * src/pic/gen.c (genFunction): set global pic14_hasInterrupt on
1106             definition of an interrupt handler,
1107         * src/pic/glue.c (pic14_emitInterruptHandler): moved output of
1108             interrupt handler stuff from picglue() to separate routine,
1109           (picglue): enabled definition of intr handlers in files w/o main()
1110
1111 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1112
1113         * support/librarian/sdcclib.c: moved include <limits.h> up to enable
1114           compilation with MSVC 2005 Express Edition (VC8)
1115
1116 2006-04-26 Bernhard Held <bernhard AT bernhardheld.de>
1117
1118         * device/lib/Makefile: fixed build of gbz80 lib
1119
1120 2006-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
1121
1122         * support/regression/tests/bug-460010.c,
1123         * support/regression/tests/bug-524691.c,
1124         * support/regression/tests/bug-716242.c: removed conditional defines
1125           that are already in testfwk.h
1126
1127 2006-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
1128
1129         * src/ds390/gen.c (AccAXRrl1, AccAXLrl1): changed to real rotate by 1,
1130           (AccAXRsh1): added, shift right by 1,
1131           (AccAXLsh, AccAXRsh, AccAXRshS): updated for AccAXRrl1, AccAXRsh1 and
1132            AccAXLrl1
1133         * support/regression/tests/rotate.c: use <stdint.h> and enabled ds390
1134
1135 2006-04-25 Bernhard Held <bernhard AT bernhardheld.de>
1136
1137         * src/SDCCast.c (decorateType): partial fix for RFE 1475769,
1138         remove cast to same type
1139         * src/SDCCast.c (decorateType): fix for RFE 1475742,
1140         optimize 'ifx (op == 0)' resp. 'ifx (op != 0)'
1141         * as/z80/Makefile,
1142         * link/z80/Makefile: removed, they have moved to
1143         Makefile.in files
1144         * configure,
1145         * configure.in: replaced duplicate message about ucsim by missing sdcpp
1146         * install-sh: fix bug #1204398 by setting umask 0022
1147         * device/lib/Makefile: separate build of z80 and gbz80 lib
1148
1149 2006-04-24 Bernhard Held <bernhard AT bernhardheld.de>
1150
1151         Enabled VPATH feature: changed nearly all Makefiles (149 files).
1152         See sdccman.lyx '2.4.10 VPATH feature' about how to use it.
1153
1154         One basic decision: e.g. src/clean.mk includes further files. In order
1155         to make this work there are two solutions:
1156         - rename another dozen clean.mk to clean_in.mk, add srcdir to them and
1157           run configure on them. This way they can use
1158           'include $(srcdir)/port-clean.mk'
1159         - always include clean.mk by the Makefile at the same level. To avoid
1160           that `make clean` tries to include and build Makefile.dep the
1161           MAKECMDGOALS are examined (see e.g. src/Makefile.in). This has been
1162           implemented, because now even `make uninstall` doesn't create
1163           Makefile.in. clean.mk could be eliminated by pasting it in
1164           Makefile.in.
1165
1166         * debugger/mcs51/Makefile.in: build own objects from library sources
1167         (SLIB, SDCC) in current directory
1168
1169         * configure, configure.in: renamed --disable-device-lib-build in
1170         --disable-device-lib; added --enable-doc, the required tools are
1171         searched by configure; added result message; the toolchain for the
1172         belonging ports are now only built, if the port is enabled.
1173
1174         * support/regression/*: all output is written in directory gen, because
1175         the fwk and ports directories don't livet in the build tree using vpath
1176
1177         * doc/sdccman.lyx: renamed --disable-device-lib-build to
1178         --disable-device-lib, added --enable-doc, added section VPATH
1179
1180         * sim/ucsim/configure.in,
1181         * sim/ucsim/configure.in: hc08 couldn't be disabled, now hc08 and
1182         z80 are enabled by default
1183
1184 2006-04-24 Raphael Neider <rneider AT web.de>
1185
1186         * src/pic/device.c (pic14_assignConfigWordValue): remember assignments
1187             to config word, "pic14_"-prefixed some extern functions
1188           (pic14_emitConfigWord): emit __config directive(s) if assignment to
1189             config word has been found
1190         * src/pic/device.h: added prototypes
1191         * src/pic/pcode.c: added "pic14_"-prefix where needed
1192         * src/pic/ralloc.c (IS_CONFIG_ADDRESS,pic14_assignRegisters): cosmetic
1193             fixup
1194         * src/pic/glue.c (pic14_constructAbsMap): handle assignments to config
1195             words,
1196           (pic14emitRegularMap): ignore config words,
1197           (pic14createInterruptVect): moved generating __config directives away
1198           (picglue): have __config directives emitted
1199
1200 2006-04-24 Borut Razem <borut.razem AT siol.net>
1201
1202         * doc/Makefile: sync with nightly build makefile
1203
1204 2006-04-24 Raphael Neider <rneider AT web.de>
1205
1206         * src/pic/pcoderegs.c (OptimizeRegUsage): do not optimize
1207             registers that have not been assigned proper liveranges,
1208             fixes #1469504 and #1474602,
1209           (pCodeRegOptimizeRegUsage): fixed typo in comment
1210
1211 2006-04-24 Borut Razem <borut.razem AT siol.net>
1212
1213         * device/examples/main8051.c: deleted - it was removed from CVS
1214           24.mar.2000 and after that modified 18.feb.2001, so it reappered
1215           after the transition to Subversion
1216         * src/SDCCalloc.h: deleted - it was removed  from CVS
1217           3.feb.2001 and after that modified 18.feb.2001, so it reappered
1218           after the transition to Subversion
1219         * sim/ucsim/cpu.gif, sim/ucsim/interrupt.gif, sim/ucsim/new.gif,
1220           sim/ucsim/serial1.gif, sim/ucsim/serial2.gif,
1221           sim/ucsim/term_cpuopt.gif, sim/ucsim/timers.gif, sim/ucsim/wins.gif,
1222           sim/ucsim/post.jpg, sim/ucsim/UCsim.jpg: corrected
1223
1224 2006-04-22 Maarten Brock <sourceforge.brock AT dse.nl>
1225
1226         * as/asx8051.dsp: added mcs51/strcmpi.h
1227         * as/hc08/as_hc08.dsp: added asm.h, m6808.h, strcmpi.h
1228         * as/hc08/aslink.h: updated lnksect prototype
1229         * as/hc08/asm.h,
1230         * as/mcs51/asm.h: added a_addr to struct area and s_org to struct sym
1231         * as/hc08/asmain.c,
1232         * as/mcs51/asmain.c (asmbl): init dot.s_org for S_ORG,
1233           (newdot): handle A_ABS
1234         * as/hc08/asout.c,
1235         * as/mcs51/asout.c (outarea): output address
1236         * as/hc08/lkaomf51.c,
1237         * as/mcs51/lkaomf51.c: disabled unused array UsageType
1238         * as/hc08/m08pst.c,
1239         * as/mcs51/i51pst.c,
1240         * as/z80/z80pst.c: "ABS" is not A_OVR
1241         * as/hc08/lkarea.c (newarea): read a_addr,
1242           (lnkarea): added codemap array, sort absolute areas to the front,
1243            combine all GSINITx/GSFINAL,
1244           (find_empty_space, allocate_space): new functions,
1245           (lnksect): return next address, handle absolute sections
1246         * as/mcs51/lkarea.c (newarea): read a_addr,
1247           lnksect2 prototype changed,
1248           (lnkarea2): define codemap unsigned, combine all GSINITx/GSFINAL,
1249           (find_empty_space, allocate_space): new, factored out of lnksect2,
1250           (lnksect2): return next address, handle absolute sections
1251         * as/hc08/lkhead.c,
1252         * as/mcs51/lkhead.c (newhead): head is absolute but not overlay
1253         * as/hc08/lklibr.c (addfile, fndsym),
1254         * as/mcs51/lklibr.c (addfile, buildlibraryindex, fndsym): prevent
1255           index out of range and detect both '\' and '/'
1256         * device/include/mcs51/c8051f200.h: added _XPAGE, removed bad comment
1257         * device/include/stdbool.h: removed SDCC_ds390 from check to pass
1258           regression tests (ds390 cannot return bool yet)
1259         * doc/sdccman.lyx: changed version number, document changed --no-peep,
1260           document critical interrupts on z80, document changed SDCC define
1261         * src/asm.c (_asxxxx_mapping): fixed .org directive,
1262           (_a390_mapping): added .org directive
1263         * src/hc08/gen.c (transferAopAop): made bytemask log to fix warning,
1264           (genMultOneByte): fixed warnings
1265         * src/hc08/hc08.dsp: lowered warning level to 2 to suppress pedantic
1266           ones
1267         * src/pic16/device.c: removed newReg prototype, removed BYTE_IN_LONG
1268         * src/pic16/gen.c (pic16_popGetLabel): made parameter key signed,
1269           (pic16_genLeftShiftLiteral, genRightShiftLiteral): fixed warnings
1270         * src/pic16/gen.h: changed prototype for pic16_popGetLabel
1271         * src/pic16/main.c: removed newReg prototype
1272         * src/pic16/pcode.c,
1273         * src/pic16/pcode.h (pic16_emitDB): changed parameter c to int to fix
1274           warnings
1275         * src/pic16/pic16.dsp: lowered warning level to 2 to suppress pedantic
1276           ones
1277         * src/pic16/ralloc.c
1278         * src/pic16/ralloc.h (newReg): changed type to int and size to unsigned
1279           to fix warnings
1280         * src/pic/pcode.c (allocInternalRegister): changed parameter optype
1281           from short to PIC_OPTYPE
1282         * src/pic/pic.dsp: lowered warning level to 2 to suppress pedantic ones
1283         * src/pic/ralloc.c (newReg, allocInternalRegister): changed parameter
1284           optype from short to PIC_OPTYPE
1285         * src/port.h: made int_size unsigned to fix warnings
1286         * src/SDCC.y: fixed warning on MSVC
1287         * src/SDCCicode.c (getArraySizePtr): return unsigned int
1288         * src/SDCCopt.c (convertToFcall): fixed warnings
1289         * src/SDCCsymt.h: removed double prototype for genSymName
1290         * src/xa51/ralloc.c (allocReg): made size unsigned int, type int and
1291           offset int to fix warnings
1292
1293 2006-04-22 Borut Razem <borut.razem AT siol.net>
1294
1295         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1296           references to CVS replaced with Subversion
1297
1298 2006-04-21 Borut Razem <borut.razem AT siol.net>
1299
1300         * doc/sdccman.lyx, */Makefile, */Makefile.in:
1301           references to CVS replaced with Subversion
1302
1303 2006-04-19 Borut Razem <borut.razem AT siol.net>
1304
1305         * src/version.awk: adapted for svn
1306         * /asxxxx/asxhtml/*.gif: set property svn:mime-type to image/gif
1307           sim/ucsim/doc/*.gif: set property svn:mime-type to image/gif
1308           sim/ucsim/doc/*.jpg: set property svn:mime-type to image/jpeg
1309           /binutils-avr/etc/*.vi, *.jin: removed all properties
1310           support/scripts/sdcc.ico: set property svn:mime-type to image/x-icon
1311
1312 2006-04-19 Borut Razem <borut.razem AT siol.net>
1313
1314         * CVS to Subversion migration completed
1315
1316 2006-04-18 Borut Razem <borut.razem AT siol.net>
1317
1318         * support/scripts/sdcc.nsi: removed unexisting ${DEV_ROOT}\lib\pic\*.o,
1319           ${DEV_ROOT}\lib\src\pic\libdev\*.S, ${DEV_ROOT}\lib\src\pic\libdev\*.inc
1320
1321 2006-04-17 Borut Razem <borut.razem AT siol.net>
1322
1323         * device/include/Makefile.in: added pic/*.inc to the installation
1324
1325 2006-04-15 Bernhard Held <bernhard AT bernhardheld.de>
1326
1327         * support/regression/collate-results.py: fixed output in case of
1328         a valdiag error
1329         * support/regression/generate-cases.py: fixed splitting of pathnames
1330         with dots
1331         * as/hc08/lklibr.c (addfile),
1332         * as/mcs51/lklibr.c (addfile): fixed off-by-one bug
1333
1334 2006-04-11 Raphael Neider <rneider AT web.de>
1335
1336         * src/pic16/gen.c (getFreePtr, pic16_popRegFromString),
1337         * src/pic16/ralloc.c (pic16_allocregWithName): removed debug output
1338         * src/pic16/pcode.c (assignValnums): fixed #1460578
1339
1340 2006-04-11 Raphael Neider <rneider AT web.de>
1341
1342         * device/lib/pic/libdev/*.c,
1343         * device/include/pic/*.h: replaced sfr and data with __sfr and __data,
1344           fixes #1468739, enables compilation in --std-c99 mode
1345         * support/scripts/inc2h.pl: emit __sfr/__data instead of sfr/data
1346
1347 2006-04-11 Raphael Neider <rneider AT web.de>
1348
1349         * src/pic/device.c (find_device): removed debug output
1350           (list_valid_pics): enabled verbose listing of supported devices
1351         * device/include/stdbool.h: define bool as char for pic14/16 as well
1352
1353 2006-04-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1354
1355         * src/SDCC.y: allow using brackets here: "__interrupt (1) __using (1)"
1356
1357 2006-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
1358
1359         * .version: bumped version to 2.5.6
1360         * src/pic/ralloc.c (newReg): MSVC doesn't support __builtin_return_address
1361
1362 2006-04-06 Raphael Neider <rneider AT web.de>
1363
1364         * .version: bumped version to 2.5.6 (pic14 ABI changed)
1365         * src/SDCCmain.c: add -DSDCC_PROCESSOR=<id> for pic14 port
1366         * src/pic/glue.c (emitSymbolToFile,pic14_constructAbsMap,
1367           pic14emitRegularMap,pic14emitMaps): moved output for absolute symbols to
1368             pic14_constructAbsMap
1369           (pic14printPublics): declare absolute global symbols as global
1370           (pic14createInterruptVect),
1371         * src/pic/ralloc.c (IS_CONFIG_ADDRESS): support second config word,
1372           (newReg): assume new registers unused, use correct name in
1373             hashtable (reg->name instead of name), more debugLog output
1374         * src/pic/device.h (PIC_device): added fields for verbose output
1375         * src/pic/device.c: moved device definition to pic14devices.txt,
1376             added routines for runtime parsing of pic14devices.txt,
1377             added support for second config word
1378         * src/pic/main.c (_process_pragma): removed #pragma maxram,
1379           (_pic14_keywords): no longer accept "bit" and "sbit" keywords
1380           (_pic14_initPaths): add search paths with "pic" suffix (not "pic14")
1381           (_pic14_parseOptions): moved pCodeInitRegisters here
1382           (_pic14_do_link): add "pic$(ARCH).lib" to linker arguments
1383         * src/pic/pcode.c (AnalyzeBanking): bail out on unset processor,
1384           (pCodeInitRegisters): rewrapped comments, perpared new approach to
1385             handling the pseudo stack
1386         * device/lib/Makefile.in: ignore failures in objects-pic16,
1387         * device/lib/pic/{configure,configure.in,Makefile}: added libdev/
1388         * device/lib/pic/NEWS: document new dependency on picXXX.lib
1389         * device/lib/pic/Makefile.subdir,
1390         * device/lib/pic16/Makefile.subdir: improved clean rules
1391         * device/lib/pic/libdev/: NEW, pic14 device libraries
1392         * device/lib/pic/libsdcc/_gptr{get,put}{1,2,3,4}.S: use _X not X
1393         * device/lib/pic/libsdcc/macros.inc: use _X not X, declare default SFRs
1394         * device/include/Makefile.in: create subdir and install pic14 headers
1395         * device/include/pic/p16f_common.inc: removed unused declarations
1396         * device/include/pic/pic16*.h: added header files for 100+ 14 bit
1397             PICs from inc2h.pl v1.6,
1398             replaced BIT_AT macros with struct declarations
1399         * device/include/pic/pic14devices.txt: definition of supported devices,
1400             all above improvements contributed by Zik Saleeba, thanks
1401         * support/scripts/inc2h.pl: removed BIT_AT, replaced with structs
1402         * support/scripts/sdcc.nsi: also install pic14 device libraries and
1403             headers
1404
1405 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1406
1407         * device/include/mcs51/c8051f410.h: added interrupt numbers,
1408         * device/include/mcs51/c8051f200.h: old SiLabs mcu completes the list,
1409           thanks to Charles Olds
1410
1411 2006-04-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1412
1413         * debugger/mcs51/cmd.c (infoRegisters): show return address on stack
1414
1415 2006-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
1416
1417         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug 1464657
1418         * src/mcs51/gen.c (genJumpTab): fixed bug in medium model
1419         * support/regression/bug1464657.c: added, new test
1420
1421 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1422
1423         * src/SDCCmain.c (preProcess): implemented RFE 1449908, define SDCC as the
1424           version number
1425
1426 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1427
1428         * src/SDCCpeeph.c (initPeepHole): implemented RFE 1460196, when both
1429           --no-peep and --peep-file <file> are used don't use default rules but
1430           do use the <file>
1431
1432 2006-04-05 Maarten Brock <sourceforge.brock AT dse.nl>
1433
1434         * src/mcs51/gen.c (genCall): fixed bug 1457608
1435
1436 2006-03-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1437
1438         * doc/sdccman.lyx: reverted to version 1.129 of december as my latest
1439         changes seem to cause (trigger?) problems with the build system.
1440
1441 2006-03-29 Maarten Brock <sourceforge.brock AT dse.nl>
1442
1443         * src/SDCCpeeph.c (operandsLiteral): new, added,
1444           (callFuncByName): inserted operandsLiteral
1445         * src/mcs51/peeph.def: reenabled 132.e, added extra check to 132.x
1446
1447 2006-03-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1448
1449         * doc/sdccman.lyx: added paragraph "Use of SDCC in Education"
1450         * src/mcs51/peeph.def: disabled rule 132.e fixing bug #1453093
1451
1452 2006-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
1453
1454         * src/z80/gen.c (genFunction, genEndFunction): fixed bug 1160666,
1455           implemented patch 1120823 Thanks to Willy De la Court (normal
1456           interrupts need an interrupt number now if they are made critical),
1457           and enabled nesting of critical functions though not for gbz80
1458           (genCritical, genEndCritical): added functions
1459           (genZ80Code): added cases for CRITICAL and ENDCRITICAL
1460         * src/z80/mappings.i: added "ei" to all mappings
1461
1462 2006-03-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1463
1464         * sim/ucsim/cmd.src/newcmdcl.h: applied patch fixing GCC 4.1 build
1465         submitted by the Debian SDCC maintainer Aurelien Jarno:
1466         "Credits goes to Martin Michlmayr, who rebuilt the whole Debian
1467         archive with gcc 4.1 on mips and wrote the patch"
1468
1469 2006-03-16 Raphael Neider <rneider AT web.de>
1470
1471         * src/pic16/genarith.c (genAddLit): simplified and fixed case where
1472           the left operand is shorter than the result (c* = lit-c* + int),
1473           fixes bug #1450796
1474         * src/pic16/gen.c (genRightShift): check IS_SYMOP before accessing
1475           OP_SYMBOL
1476
1477 2006-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
1478
1479         * src/.version: increased version number to 2.5.5
1480         * src/SDCCmain.c (linkEdit): do not test for PIC16 target since, PIC16
1481         linking is done manually in pic16 port's _linkEdit,
1482         * src/SDCCsymt.c (compStructSize): for target PIC16 and shell variable
1483         PIC16_PACKED_BITFIELDS, compact bitfield structures as much as possible,
1484         * src/pic16/gen.c (aopForSym): when direct register name is WREG then
1485         allocate asmop as AOP_ACC,
1486         (aopForRemat): added parameter 'bool result' in function declaration,
1487         (pic16_aopGet): return AOP_ACC when accessing WREG,
1488         (pic16_popGetTempReg): minor modification,
1489         (pic16_popRegFromIdx): first try with 'pic16_regWithIdx' then with
1490         'pic16_allocWithIdx',
1491         (genPcall): removed ftype, usage of OP_SYM_TYPE asserted error when
1492         calling function in absolute addresses,
1493         (genAssign): take into account AOP_ACC asmop,
1494         * src/pic16/pcode.c (pic16_newpCodeOpReg): minor modifications,
1495         * src/pic16/pcoderegs.c: some debug functions and lines added,
1496         * src/pic16/ralloc.c (decodeRegType): added but commented out,
1497         * (pic16_typeRegWithIdx): search 'pic16_dynInternalRegs' for given
1498         register too,
1499         * (pic16_findFreeReg, pic16_findFreeRegNext): allocate new register via
1500         call to allocReg, not by manually allocating a new one,
1501         (pic16_assignRegisters): now before going through the register
1502         allocating functions mark all registers as free. This eliminates some
1503         side effects resulting from peephole parser done earlier in the backbone
1504
1505 2006-03-13 Maarten Brock <sourceforge.brock AT dse.nl>
1506
1507         * src/SDCCicode.c (geniCodeLogic),
1508         * src/SDCCast.c (decorateType): applied patch by Bernhard for rfe 1422617
1509
1510 2006-03-10 Maarten Brock <sourceforge.brock AT dse.nl>
1511
1512         * src/mcs51/gen.c (sameReg): new, checks if two aop regs are the same,
1513           (genSend): bugfix, do not allocate and free twice,
1514           (shiftRLong): handle partially overlapping aops
1515         * support/regression/tests/bitopcse.c: fixed warning redefined idata
1516
1517 2006-03-08 Borut Razem <borut.razem AT siol.net>
1518
1519         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata
1520           for pic16
1521
1522 2006-03-08 Maarten Brock <sourceforge.brock AT dse.nl>
1523
1524         * support/regression/tests/bug1409955.c: new, added
1525         * src/mcs51/gen.h: changed asmop.freed:1 to asmop.allocated for tracking
1526         * src/mcs51/gen.c (newAsmop): set asmop.allocated to 1,
1527           (aopForSym, aopOp): increment asmop.allocated if reused,
1528           (freeAsmop): decrement asmop.allocated and check for zero instead of
1529           using asmop.freed,
1530           (freeForBranchAsmop): use asmop.allocated instead of asmop.freed,
1531           (genNot, genCpl, genUminus, genMinus, genMult, genDiv, genMod, genCmpGt,
1532            genCmpLt, genAndOp, genOrOp, genAnd, genOr, genXor, genRRC, genRLC,
1533            genGetHbit, genGetAbit, genGetByte, genGetWord, genSwap,
1534            genLeftShiftLiteral, genLeftShift, genRightShiftLiteral,
1535            genSignedRightShift, genRightShift, genDataPointerGet,
1536            genPagedPointerGet, genFarPointerGet, genCodePointerGet,
1537            genGenPointerGet, genDataPointerSet, genAssign, genCast): free asmop's
1538             in reverse order from allocation,
1539           (genPlus, genCmpEq): free asmop's in reverse order from allocation and
1540             added swappedLR to keep track
1541         * support/regression/fwk/include/testfwk.h: added defines for xdata, idata,
1542           pdata & code for GCC, z80, gbz80 & hc08
1543         * support/regression/tests/zeropad.c: moved defines to testfwk.h
1544
1545 2006-03-08 Raphael Neider <rneider AT web.de>
1546
1547         * src/pic16/main.c (_hasNativeMulFor): fixed bug #1444425
1548
1549 2006-03-07 Maarten Brock <sourceforge.brock AT dse.nl>
1550
1551         * device/include/mcs51/c8051f410.h: new SiLabs mcu
1552         * src/ds390/peeph.def: disabled 186.d and 227.a as fix for #1434401
1553         * support/regression/tests/array.c: added parenthesis, made arrays unsigned
1554
1555 2006-03-06 Borut Razem <borut.razem AT siol.net>
1556
1557         * support/regression/ports/pic16/spec.mk: link with libm18f.lib,
1558           made the linker quiet
1559
1560 2006-03-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
1561
1562         * src/pic16/gen.c (genPcall): fixed bug #1443644
1563         * src/pic16/device.h (struct pic16_options_t): added 'int CATregs' flag
1564         which dumps before the function entry point a data byte which represents
1565         the number of the local variables used by the specified function, added
1566         'xinst' for initial support for Extended Instruction Support,
1567         * src/pic16/gen.c (aopForSym, pic16_aopGet): beautifications,
1568         (pic16_testStackOverflow): do not prefix GSTACK_TEST_NAME with
1569         port->fun_prefix anymore (may change later),
1570         (genFunction, genEndFunction): do not store/restore local registers for
1571         _main (this should take care the --main-return command line option in
1572         the future),
1573         (genOr): removed some legacy pic-port instructions,
1574         * src/pic16/genarith.c (genAddLit): re-enabled old code because
1575         performing operations with SFR's causes data to be written more than
1576         once to each SFR. Perhaps SFRs should be handled in special cases...
1577         * src/pic16/glue.c: macros BIG_ENDIAN and BYTE_IN_LONG are moved to
1578         pcode.h
1579         * src/pic16/main.c (_process_pragma): stack bound checking did not take
1580         into account for stack starting position,
1581         (struct OPTIONS pic16_optionsTable): added command line argument
1582         --extended or -y for Extended Instruction Support,
1583         * src/pic16/ralloc.c (pic16_decodeOp): added case for FUNCTION,
1584         (deassignLRs): *** perhaps the most important change, old 'for' code
1585         (commented out for reference), didn't account for some registers which
1586         were left marked 'not free' after a pointer operation. The change
1587         reduces register usage a lot in some cases
1588
1589 2006-03-04 Borut Razem <borut.razem AT siol.net>
1590
1591         * support/regression/ports/hc08/spec.mk: remove *.asm in traget
1592           _clean
1593         * support/regression/tests/bug-524697.c: decreased array size for
1594           mcs51 to fit into the internal RAM
1595         * support/regression/Makefile.in: a little bit more verbose
1596
1597 2006-03-03 Borut Razem <borut.razem AT siol.net>
1598
1599         * support/regression/fwk/lib/testfwk.c,
1600           support/regression/fwk/include/testfwk.h: introduced function
1601           _prints(), nonrecursive _printn(), call _initEmu() from main()
1602         * support/regression/ports/gbz80/support.asm,
1603           support/regression/ports/ucz80/support.asm,
1604           support/regression/ports/z80/support.asm,
1605           support/regression/ports/ds390/support.c,
1606           support/regression/ports/hc08/support.c,
1607           support/regression/ports/host/support.c,
1608           support/regression/ports/mcs51/support.c,
1609           support/regression/ports/xa51/support.c: added empty _initEmu()
1610           function
1611         * support/regression/ports/pic16/gpsim.cmd,
1612           support/regression/ports/pic16/spec.mk,
1613           support/regression/ports/pic16/support.c,
1614           support/regression/Makefile.in: added pic16 regression test
1615
1616 2006-03-01 Raphael Neider <rneider AT web.de>
1617
1618         * src/pic16/gen.c (genPcall,pic16_derefPtr,genGenPointerGet,
1619           genConstPointerGet): use safe way of generating MOVFF to cover
1620             literals as well as registers, fixes bug #1440527
1621         * src/pic16/glue.c (pic16_printIvalBitFields): prevent NULL pointer
1622             dereference
1623           (pic16_printIvalUnion,pic16_isUnion): NEW, handle initialized unions
1624             more correctly, fixes bug #1232186
1625           (pic16_printIval): use pic16_printIvalUnion() for initialized unions
1626         * src/pic16/main.c (_pic16_linkEdit): reorder linker arguments to make
1627             gplink guess the correct processor in more cases, applied patch
1628             from Till Riedel attached to and fixing bug #1436552
1629
1630 2006-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1631
1632         * support/regression/tests/array.c: added, contains check for #1434401
1633         * src/mcs51/peeph.def: disabled 186.d as temporary fix for #1434401
1634
1635 2006-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
1636
1637         * device/include/mcs51/at89s8253.h: new, thanks to Krzysztof Polomka
1638         * device/include/mcs51/at89S8252.h: fixed, thanks to Krzysztof Polomka
1639         * device/include/mcs51/c8051f326.h,
1640         * device/include/mcs51/c8051f340.h: new SiLabs mcu's
1641         * device/include/mcs51/c8051f000.h,
1642         * device/include/mcs51/c8051f018.h,
1643         * device/include/mcs51/c8051f020.h: used () with __at, renamed IDLE,STOP to
1644           PCON_IDLE,PCON_STOP and added sfr16 definitions
1645
1646 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1647
1648         * src/mcs51/gen.c (genPlus, genMinus, genMult, genGetAbit, genGetByte,
1649           genGetWord): fixed bug 1409955
1650
1651 2006-02-14 Maarten Brock <sourceforge.brock AT dse.nl>
1652
1653         * device/include/hc08/mc68hc908gp32.h,
1654         * device/include/hc08/mc68hc908jb8.h: removed AWUL, added PTA6 & PTA7
1655
1656 2006-02-13 Maarten Brock <sourceforge.brock AT dse.nl>
1657
1658         * src/SDCCast.c (constExprValue): return NULL if not a value
1659         * src/SDCCglue.c (printIvalArray): fixed bug 1225568
1660         * src/hc08/gen.c(genUnpackBits, genUnpackBitsImmed): fixed bug 1019480
1661         * support/regression/tests/bitfields.c: enabled signed bitfield for all
1662
1663 2006-02-13 Borut Razem <borut.razem AT siol.net>
1664
1665         * src/regression/ptrarg.c: added, fails due to bug #1430967
1666         * src/regression/Makefile: ptrarg.c added, ...
1667
1668 2006-02-12 Maarten Brock <sourceforge.brock AT dse.nl>
1669
1670         * src/z80/gen.c (genUnpackBits): fixed bug 1019480
1671         * support/regression/tests/bitfields.c: enabled signed bitfield for z80
1672
1673 2006-02-11 Borut Razem <borut.razem AT siol.net>
1674
1675         * src/SDCCmain.c: Added "sdcc: Calling linker..." if --verbose,
1676           print "Processor: xxx" message to stdout only if --verbose
1677
1678 2006-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
1679
1680         * src/SDCCglue.c (printIvalStruct): fixed bug 1426356 union initializer
1681         * support/regression/tests/bug1426356.c: added
1682         * support/regression/tests/bitfields.c: removed 2 tests
1683
1684 2006-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
1685
1686         * device/include/mcs51/at89c51snd1c.h: updated comments, see patch 1428901
1687         * device/include/mcs51/c8051f330.h,
1688         * device/include/mcs51/c8051f350.h: used () with __at, renamed IDLE,STOP to
1689           PCON_IDLE,PCON_STOP and added sfr16 definitions
1690         * device/lib/_divsint.c,
1691         * device/lib/_divuint.c,
1692         * device/lib/_divulong.c,
1693         * device/lib/_divulong.c: renamed a,b to x,y to avoid confusion, fixed
1694           register bank bug for small stackauto
1695
1696 2006-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
1697
1698         * support/regression/fwk/lib/timeout.c: include <stdlib.h> for exit()
1699
1700 2006-02-08 Maarten Brock <sourceforge.brock AT dse.nl>
1701
1702         * support/regression/ports/mcs51-xstack-auto/spec.mk: forgot -I(...)/mcs51
1703         * all.dsp: corrected several bin paths
1704         * device/include/mcs51/c8051f120.h,
1705         * device/include/mcs51/c8051f300.h,
1706         * device/include/mcs51/c8051f310.h: used () with __at and renamed IDLE,STOP
1707           to PCON_IDLE,PCON_STOP
1708         * device/include/mcs51/c8051f320.h: see above, also added sfr16 definitions
1709         * device/lib/printf_large.c (output_float): fixed bug 1388703
1710         * support/regression/tests/bug1057979.c: added test for bug 1388703
1711
1712 2006-02-08 Raphael Neider <rneider AT web.de>
1713
1714         * src/pic/pcode.c (pciTRIS): fixed typo,
1715           (BuildFlow,LinkFlow_pCode): added (disabled) debug output,
1716           (LinkFlow): fixed handling of flows that end in a call,
1717           (ReuseReg): perform safety check earlier
1718         * src/pic/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed
1719             to work with flows at the beginning of a pBlock,
1720             fixes #1426557 (Symbol not previously defined),
1721           (pic14_ReMapLiveRanges): NEW, destroy and rebuild register
1722             usage information
1723           (RemoveUnusedRegisters): update register usage info
1724         * src/pic/ralloc.c (newReg): prevent duplicate registers from being
1725             created, reuse existing ones instead
1726         * src/pic/gen.c (genPcall): fixed #1424719
1727
1728 2006-02-07 Bernhard Held <bernhard AT bernhardheld.de>
1729
1730         * link/z80/lkmain.c,
1731         * link/z80/lklex.c,
1732         * link/z80/lkdata.c,
1733         * link/z80/aslink.h: fixed build on current cygwin:
1734         replaced getline() by lk_getline()
1735
1736 2006-02-01 Borut Razem <borut.razem AT siol.net>
1737
1738         * src/regression/add.c, src/regression/add2.c, src/regression/add3.c,
1739           src/regression/add4.c, src/regression/and1.c, src/regression/and2.c,
1740           src/regression/arrays.c, src/regression/b.c, src/regression/bank1.c,
1741           src/regression/bool1.c, src/regression/bool2.c,
1742           src/regression/bool3.c, src/regression/call1.c,
1743           src/regression/compare.c, src/regression/compare10.c,
1744           src/regression/compare2.c, src/regression/compare3.c,
1745           src/regression/compare4.c, src/regression/compare5.c,
1746           src/regression/compare6.c, src/regression/compare7.c,
1747           src/regression/compare8.c, src/regression/compare9.c,
1748           src/regression/configword.c, src/regression/for.c,
1749           src/regression/inline.c, src/regression/mult1.c,
1750           src/regression/nestfor.c, src/regression/or1.c,
1751           src/regression/pointer1.c, src/regression/ptrfunc.c,
1752           src/regression/rotate1.c, src/regression/rotate2.c,
1753           src/regression/rotate3.c, src/regression/rotate4.c,
1754           src/regression/rotate5.c, src/regression/rotate6.c,
1755           src/regression/rotate7.c, src/regression/string1.c,
1756           src/regression/struct1.c, src/regression/sub.c,
1757           src/regression/sub2.c, src/regression/switch1.c,
1758           src/regression/while.c, src/regression/xor.c,
1759           src/regression/create_stc, src/regression/simulate,
1760           src/regression/rt.sh, src/regression/Makefile: reenabled Scott's PIC14
1761           regression tests
1762         * src/regression/gpsim_assert.h: added
1763
1764 2006-01-28 Bernhard Held <bernhard AT bernhardheld.de>
1765
1766         * src/ds390/gen.c (unsaveRegisters): fixed literal function pointer
1767         ((void (code *) (void)) 0) ();
1768         * as/hc08/aslex.c,
1769         * as/hc08/aslink.h,
1770         * as/hc08/asm.h,
1771         * as/hc08/asmain.c,
1772         * as/hc08/lkdata.c,
1773         * as/hc08/lklex.c,
1774         * as/hc08/lkmain.c,
1775         * as/mcs51/aslex.c,
1776         * as/mcs51/aslink.h,
1777         * as/mcs51/asm.h,
1778         * as/mcs51/asmain.c,
1779         * as/mcs51/lkdata.c,
1780         * as/mcs51/lklex.c,
1781         * as/mcs51/lkmain.c,
1782         * as/z80/aslex.c,
1783         * as/z80/asm.h,
1784         * as/z80/asmain.c: fixed build on current cygwin:
1785         replaced getline() by as_getline()
1786
1787 2006-01-27 Bernhard Held <bernhard AT bernhardheld.de>
1788
1789         * src/SDCC.y: fixed bug #716242, exchanged pointer and function
1790         declarator in the symbol chain
1791         * src/SDCCsymt.h,
1792         * src/SDCCsymt.c (processFuncPtrArgs): added, removes "(void)"
1793         parameter list for function pointers
1794         * src/SDCCast.c (decorateType): added call of processFuncPtrArgs()
1795         * support/regression/tests/bug-716242.c: added
1796
1797 2006-01-20 Bernhard Held <bernhard AT bernhardheld.de>
1798
1799         * src/SDCCicode.c (geniCodeAdd, geniCodeArray): use char for array
1800         offset if possible
1801         * src/SDCCast.c (getLeftResultType): 255 fits in char, not 256
1802
1803 2006-01-18 Bernhard Held <bernhard AT bernhardheld.de>
1804
1805         * src/SDCCast.c (backPatchLabels): fixed bug #1408066: made it
1806         inifinitely recurseable, added static
1807         * support/regression/tests/bug-1408066.c: added
1808
1809 2006-01-17 Bernhard Held <bernhard AT bernhardheld.de>
1810
1811         * src/SDCCicode.h,
1812         * src/SDCCicode.c (newiTempPreheaderLabel, newiTempLoopHeaderLabel):
1813         renamed, added possibility to create "postLoopLbl"-labels
1814         * src/SDCCBBlock.c (iCodeBreakDown): renamed newiTempPreheaderLabel to
1815         newiTempLoopHeaderLabel
1816         * src/SDCCloop.c (newInduction, newRegion, backEdges, insertIntoLoop,
1817         isNotInBlocks, addToExitsMarkDepth, createLoop, dominatedBy,
1818         addDefInExprs, assignmentsToSym, isOperandInvariant, pointerAssigned,
1819         hasNonPtrUse, loopInvariants, addressTaken, findInduction,
1820         findDefInRegion, mergeRegions, ifMerged, mergeInnerLoops): made static,
1821         (pinduction, pregion, hasIncomingDefs, findLoopEndSeq): disabled,
1822         (basicInduction): fixed bug #136564, made static,
1823         (loopInduction): changed parameter of basicInduction, made static,
1824         (addPostLoopBlock): added
1825         * src/SDCCloop.h: removed backEdges, pregion, pinduction,
1826         loopOptimizations, addressTaken, findDefInRegion, hasIncomingDefs,
1827         findLoopEndSeq
1828         * support/regression/tests/bug-136564.c: added
1829         * support/regression/ports/mcs51-xstack-auto/spec.mk: added
1830         --std-sdcc99 to LIBSDCCFLAGS
1831
1832 2006-01-16 Bernhard Held <bernhard AT bernhardheld.de>
1833
1834         * src/SDCCicode.c (geniCodeIfx): fix bug 1406131: always false
1835         while loop
1836         * support/regression/tests/bug-1406131.c: added
1837
1838 2005-12-31 Bernhard Held <bernhard AT bernhardheld.de>
1839
1840         * src/SDCCast.c (decorateType): fix promotion of unary minus
1841         * src/SDCCsymt.c (computeType): beautified
1842         * src/SDCCval.c (cheapestVal): beautified, old non-Ansi version removed,
1843         (valUnaryPM, valComplement): fix sign and promotion,
1844         (valNot): ANSI: result type is int (SDCC: unsigned char)
1845         * support/regression/tests/uminus.c: speedup by removing superflous
1846         test case 'int'
1847         * support/regression/tests/onebyte.c: added promotion and signedness
1848         tests for unary minus
1849         * support/regressions/tests/bug-477927.c: disable warning about
1850         uninitialized variables
1851         * support/regression/tests/not.c: added
1852
1853 2005-12-28 Bernhard Held <bernhard AT bernhardheld.de>
1854
1855         * device/lib/Makefile.in: added --std-sdcc99 to CFLAGS
1856         * src/mcs51/gen.c (gen51Code): show final register usage after
1857         fillGaps in asm with --i-code-in-asm
1858         * src/SDCClrange.c (sequenceiCode, setLiveFrom, setLiveTo,
1859         markLiveRanges, markAlive, findNextUseSym, findNextUse, unvisitBlocks,
1860         incUsed, rliveClear, adjustIChain): made static,
1861         (setFromRange): excluded because it's unused,
1862         (findPrevUseSym, markWholeLoop): added,
1863         (findPrevUse): rewritten; fixes bug 895992; now a complete search
1864         through all branches of predecessors enables sdcc to emit the warning
1865         W_LOCAL_NOINIT, marking of outermost loop was incomplete,
1866         (rlivePoint): made static, added parameter emitWarnings which is only
1867         true during the first run out of two,
1868         (findRecursiveSucc, findRecursivePred): removed,
1869         (computeLiveRanges): made static, added parameter emitWarnings,
1870         (dumpIcRlive): added for debugging only
1871         * src/SDCClrange.h: added boolean parameter to computeLiveRanges(),
1872         removed prototype of setFromRange()
1873         * src/SDCCopt.c (eBBlockFromiCode): added new parameter emitWarnings
1874         in call of computeLiveRanges()
1875         * support/regression/tests/bug-895992.c: added
1876         * support/regression/tests/bug-971834.c: added
1877         * support/valdiag/tests/bug-895992.c: added
1878         * support/valdiag/tests/bug-971834.c: added
1879
1880 2005-12-18 Raphael Neider <rneider AT web.de>
1881
1882         * src/pic16/gen.c: added IS_DIRECT macro for "direct" operands,
1883           (genUnpackBits): improved code for direct operands,
1884           (genPackBits): improved code for literal assignment to bitfields
1885             and for direct destination operands (no FSR indirection),
1886             prevented redundant AND, fixes #1362800,
1887           (AccLsh): added parameter to disable masking of the result
1888         * src/pic16/pcode.c (pic16_safepCodeUnlink): fixed to work with
1889           skip instructions with side-effects (like incfsz),
1890           (pic16_pCodeIsAlive): suppress verbose output unless pcode_verbose,
1891         * src/pic16/pcoderegs.c (RemoveRegsFromSet): removed annoying warning
1892         * device/lib/pic16/Makefile.common.in: added --asm=@GPASM@ to CC,
1893           fixes #1375263
1894
1895 2005-12-11 Bernhard Held <bernhard AT bernhardheld.de>
1896
1897         * src/SDCCicode.c (geniCodeAssign): fixed bug 11369874, don't use
1898         volatile variables as spill location
1899
1900 2005-12-10 Bernhard Held <bernhard AT bernhardheld.de>
1901
1902         * src/SDCCcse.c (findCheaperOp): fixed bug 1376320, copy signedness to
1903         replacing literals
1904         * support/regression/tests/bug-1376320.c: added
1905
1906 2005-12-08 Raphael Neider <rneider AT web.de>
1907
1908         * src/pic/device.c: renamed is_shared to pic14_is_shared
1909         * src/pic/gen.c (genIfx): re-enabled handling of sbits
1910         * src/pic/glue.c (emitSymbolToFile): added workaround for sbits,
1911           (is_valid_identifier): added for above workaround
1912
1913 2005-12-07 Maarten Brock <sourceforge.brock AT dse.nl>
1914
1915         * device/lib/Makefile.in: fixed to enable port-specific-objects
1916         * device/lib/ds390/i2c390.c (BitOutI2C): optimized by making bout unsigned
1917           char, thanks Hubert Sack
1918         * doc/sdccman.lyx: documented --xstack-loc,
1919           elaborated a bit more on interrupts and pitfalls,
1920           removed "setjmp/longjmp unsupported",
1921           documented some unsupported C99 features
1922         * src/SDCCmain.c (linkEdit): adapted default lib path for --stack-auto
1923         * src/SDCCpeeph.c (readRules): inserted patch 1367130 for finding missing
1924           if, thanks Hubert Sack
1925         * src/mcs51/gen.c (genEndFunction): enabled "pop psw" for regbank 0 isr
1926         * support/regression/Makefile.in: test-mcs51-stack-auto no longer needs to
1927           make make_library
1928         * support/regression/get_ticks.py: new, get cpu cycles and code size, so
1929           regression tests can report resource usage (rfe 700441)
1930         * support/regression/collate-results.py: report resource usage
1931         * support/regression/ports/ds390/spec.mk,
1932         * support/regression/ports/hc08/spec.mk,
1933         * support/regression/ports/mcs51/spec.mk,
1934         * support/regression/ports/ucz80/spec.mk: run sim output through get_ticks
1935         * support/regression/ports/ds390/uCsim.cmd,
1936         * support/regression/ports/hc08/uCsim.cmd,
1937         * support/regression/ports/mcs51/uCsim.cmd,
1938         * support/regression/ports/ucz80/uCsim.cmd: inserted "state" to report time
1939         * support/regression/ports/mcs51-stack-auto/spec.mk: no need to build the
1940           library, use the default one
1941         * support/regression/ports/mcs51-xstack-auto/spec.mk: inserted rules for
1942           building the library
1943
1944 2005-12-06 Maarten Brock <sourceforge.brock AT dse.nl>
1945
1946         * config.dsp: added dependency on .version and configure_vc.awk
1947         * device/include/setjmp.h: updated for --stack-auto and --xstack
1948         * device/include/mcs51/at89c51snd1c.h: corrected line endings
1949         * device/include/mcs51/XC866.h: added, thanks Llewellyn van Zyl
1950         * device/lib/_setjmp.c: updated for --stack-auto and --xstack
1951         * device/lib/libsdcc.lib: added _setjmp
1952         * src/SDCCast.c (createIvalCharPtr): fixed warnings,
1953           (decorateType): fixed bug 1372851,
1954           (optimizeGetHbit): fixed warning
1955         * src/SDCCglue.c (printIvalChar, printIvalArray): adapted for flexible
1956           array initialisation
1957         * support/regression/tests/bug1057979.c: added test for bug 1358192
1958         * support/regression/tests/setjmp.c: added, test for setjmp/longjmp
1959
1960 2005-12-03 Borut Razem <borut.razem AT siol.net>
1961
1962         * support/scripts/sdcc.nsi: added /SOLID option to "SetCompressor lzma"
1963           command since the NSIS was upgraded to version 2.11 on CF x86-linux2
1964
1965 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
1966
1967         * src/SDCCast.c (createIvalStruct, createIvalArray, createIvalPtr,
1968         createIval): implement symbol independant "flexible array member",
1969         (createIvalCharPtr): implemented flexible array initialisation with a
1970         string
1971         * src/SDCCsymt.c (copyStruct): removed,
1972         (getSize): fixed misleading comment,
1973         (getAllocSize): removed, the additional allocation size is now in
1974         sym->flexArrayLength,
1975         (checkStructFlexArray): new, syntax checks for flexible array members,
1976         (compStructSize): added syntax checks for "flexible array members"
1977         (copyStruct): removed,
1978         (copyLinkChain): removed inefficient fix for bug 770487
1979         * src/SDCCglue.c (emitRegularMap): getAllocSize has been removed
1980         * src/SDCCsymt.h: added structdef.b_flexArrayMember and
1981         symbol->flexArrayLength
1982         * src/SDCCerr.c,
1983         * src/SDCCerr.h: added W_INVALID_FLEXARRAY, W_C89_NO_FLEXARRAY,
1984         E_FLEXARRAY_NOTATEND and E_FLEXARRAY_INEMPTYSTRCT
1985         * support/regression/tests/structflexarray.c: added
1986         * support/valdiag/tests/structflexiblearray.c: added
1987
1988 2005-11-29 Bernhard Held <bernhard AT bernhardheld.de>
1989
1990         * src/SDCCast.c (decorateType): fixed bug 1368489
1991         * support/Util/SDCCerr.c,
1992         * support/Util/SDCCerr.h: added warning W_CMP_SU_CHAR
1993
1994 2005-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
1995
1996         * device/include/mcs51/at89c51snd1c.h: added file submitted by
1997           Weston T. Schmidt <schmidtw AT users.sourceforge.net>, patch #1368001
1998
1999 2005-11-27 Borut Razem <borut.razem AT siol.net>
2000
2001         * support/cpp2/cppinit.c, support/cpp2/cpplib.h, support/cpp2/mkdeps.c,
2002           support/cpp2/mkdeps.h: added command line option
2003           -obj-ext=<extension> to SDCPP to define object file externion, used
2004           for generation of make dependencies (-M)
2005         * src/SDCCmain.c: pass -obj-ext=<extension> to SDCPP
2006
2007 2005-11-26 Borut Razem <borut.razem AT siol.net>
2008
2009         * support/scripts/sdcc.nsi: added small-stack-auto libraries,
2010           added missing device/lib/mcs51/crt*.asm, pic and pic16 sources,
2011           added pic and pic16 libraries
2012
2013 2005-11-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2014
2015         * device/include/float.h: Corrected typo in prototype of __fsgt
2016
2017 2005-11-25 Borut Razem <borut.razem AT siol.net>
2018
2019         * sdcc/device/lib/Makefile.in, sdcc/device/lib/incl.mk:
2020           added creation of model-mcs51-stack-auto libraries
2021
2022 2005-11-24 Bernhard Held <bernhard AT bernhardheld.de>
2023
2024         * src/SDCCsymt.c (copyLinkChain): fixed bug 770487, copy structdef
2025         and fields-list too
2026         * src/SDCCast.c (createIvalArray): removed obsolete comment
2027
2028 2005-11-24 Borut Razem <borut.razem AT siol.net>
2029
2030         * sdcc/device/lib/Makefile.in: remove all unnecessary files, 2nd try...,
2031           added missing device/lib/mcs51/crt*.asm sources
2032
2033 2005-11-23 Bernhard Held <bernhard AT bernhardheld.de>
2034
2035         * src/SDCCast.c (createIvalCharPtr): fixed bug 1348271
2036
2037 2005-11-22 Maarten Brock <sourceforge.brock AT dse.nl>
2038
2039         * device/lib/_fs2schar.c,
2040         * device/lib/_fs2sint.c,
2041         * device/lib/_fs2slong.c: optimized inline asm
2042
2043 2005-11-21 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2044
2045         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2046           Better handling of floats between -1.0 and 0.0.
2047
2048 2005-11-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2049
2050         * src/mcs51/peeph.def: added missing "if"s as noted by Hubert Sack.
2051           (the missing "if"s prohibited removal of redundant labels)
2052
2053 2005-11-19 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2054
2055         * device/lib/_fs2slong.c, device/lib/_fs2sint.c, device/lib/_fs2char.c:
2056           Properly convert floats between -1.0 and 0.0 to long, int, and char
2057           types (max integer value of negative floats tends to zero).
2058         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2059           Removed changes made so to work properly with floats between
2060           -1.0 and 0.0, as the problem is fixed in _fs2slong.c, _fs2sint.c,
2061           and _fs2char.c
2062
2063 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2064
2065         * src/SDCCcse.c (ReplaceOpWithCheaperOp): minor fix for debugging only
2066         * src/mcs51/gen.c (genUnpackBits): better code and a fix,
2067         (genCast) cosmetic change
2068         * src/ds390/gen.c (genUnpackBits, ): ported from mcs51
2069         * src/ds390/ralloc.c (packRegsForAssign): ported fix for bitfields
2070         from mcs51
2071         * support/regression/tests/bitfields (testSignedBitfields): added
2072
2073 2005-11-18 Borut Razem <borut.razem AT siol.net>
2074
2075         * sdcc/device/lib/Makefile.in: remove all unnecessary files
2076         * device/lib/pic/Makefile.rules, device/lib/pic16/Makefile.subdir:
2077           introduced SILENT option to make building of pic16 libraries less
2078
2079 2005-11-18 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2080
2081         * device/lib/modff.c, device/lib/ceilf.c, device/lib/floorf.c:
2082           Now they work properly with floats between -1.0 and 0.0
2083         * device/lib/printf_large.c: Removed temporary patch for bug 1358192
2084
2085 2005-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
2086
2087         * src/SDCCicode.c (printOperand): added missing else
2088
2089 2005-11-18 Bernhard Held <bernhard AT bernhardheld.de>
2090
2091         * src/SDCCsymt.c (computeType): fixed bug 1358192: added missing else,
2092         reformatted for better readability
2093         * src/mcs51/gen.c (genUnpackBits): initial, incomplete support for
2094         signed bitfields
2095
2096 2005-11-17 Borut Razem <borut.razem AT siol.net>
2097
2098         * device/lib/pic16/Makefile.rules, device/lib/pic16/Makefile.subdir:
2099           introduced SILENT option to make building of pic16 libraries less
2100           verbose - used for nightly snapshot build
2101         * doc/sdccman.lyx: documented that SDCDB and ucSim are currently not
2102           available on Win32 platforms.
2103         * sdcc/device/lib/Makefile.in: added library sources for mcs51, small,
2104           medium, large, pic and pic16
2105
2106 2005-11-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2107
2108         * device/lib/printf_large.c: Temporary patch for bug 1358192:
2109           printf("%f"...) sets fraction to zero.
2110
2111 2005-11-16 Raphael Neider <rneider AT web.de>
2112
2113         * src/pic/pcode.c (LinkFlow): handle empty flows correctly,
2114           fixes #1357221
2115         * src/pic/gen.c (genIfx): implemented for CARRY bit
2116         * src/pic16/gen.c (genAssign,genCast): fixed assigning/casting
2117           to generic pointers, fixes #1357332,
2118           (pic16_movLit2f): NEW,
2119           (pic16_storeForReturn,genDataPointerSet): use pic16_movLit2f
2120
2121 2005-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
2122
2123         * src/SDCCmain.c (parseCmdLine): fixed bug 1356800, thanks rsudjian
2124
2125 2005-11-11 Raphael Neider <rneider AT web.de>
2126
2127         * src/pic/gen.c: handle FPOINTERS like POINTERS everywhere
2128         * src/pic16/gen.c (pic16_derefPtr): now works for non-pointers as well,
2129           compute pointer's type from operand,
2130           (genUnpackBits,genPackBits): handle FPOINTERS correctly, re-indented,
2131           improved single bit reads, fixes bug #1353379
2132
2133 2005-11-09 Borut Razem <borut.razem AT siol.net>
2134
2135         * support/scripts/sdcc.nsi: added lib/pic to the package
2136
2137 2005-11-08 Maarten Brock <sourceforge.brock AT dse.nl>
2138
2139         * src/SDCCval.c (valUnaryPM): fixed bug 1350699
2140
2141 2005-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
2142
2143         * support/regression/tests/bug1348008.c: added
2144         * src/mcs51/gen.c (saveRBank, unsaveRBank): fixed bug 1348008
2145         * support/regression/tests/bug1337835.c: updated comment
2146
2147 2005-11-06 Borut Razem <borut.razem AT siol.net>
2148
2149         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2150           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2151           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2152           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2153           sim/ucsim/cmd.src/set.cc, sim/ucsim/cmd.src/show.cc:
2154           dynamic construction of cl_error_class and derivates - 2.nd try
2155
2156 2005-11-05 Borut Razem <borut.razem AT siol.net>
2157
2158         * sim/ucsim/sim.src/error.cc: fixed uninitialized class member variable
2159           bug, which caused Bus Errors on sparc solaris
2160
2161 2005-11-04 Borut Razem <borut.razem AT siol.net>
2162
2163         * sim/ucsim/error.cc, sim/ucsim/errorcl.h,
2164           sim/ucsim/sim.src/stack.cc, sim/ucsim/sim.src/stackcl.h,
2165           sim/ucsim/sim.src/uc.cc, sim/ucsim/sim.src/uccl.h,
2166           sim/ucsim/sim.src/mem.cc, sim/ucsim/sim.src/memcl.h,
2167           sim/ucsim/cmd.src/cmdconf.cc: dynamic construction of cl_error_class
2168           and derivates to resolve the initialization problem on OSX
2169
2170 2005-11-02 Borut Razem <borut.razem AT siol.net>
2171
2172         * sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2173           corrected typo - #include <winsock2.h>
2174
2175 2005-11-02 Maarten Brock <sourceforge.brock AT dse.nl>
2176
2177         * src/asm.c (printILine): always close tmpFile, thanks Beau E. Cox,
2178           (_asxxxx_mapping): added org directive for future enhancements
2179
2180 2005-11-01 Borut Razem <borut.razem AT siol.net>
2181
2182         * sim/ucsim/app.cc, sim/ucsim/cmd.src/cmdutil.cc, sim/ucsim/cmd.src/newcmd.cc:
2183           enabled sockets on WIN32
2184         * sim/ucsim/cmd.src/newcmd.cc: fixed bug with uninitialized variables
2185
2186 2005-10-31 Borut Razem <borut.razem AT siol.net>
2187
2188         * support/regression/generate-cases.py: escape backslashes in {testcase}:
2189           WIN32 backslash path delimiters should be escaped when used in C strings
2190         * support/regression/tests/bitfields.c: exclude failing assertions for
2191           __CYGWIN32__ and __MINGW32__ hosts
2192
2193 2005-10-30 Borut Razem <borut.razem AT siol.net>
2194
2195         * src/SDCCutil.c: corrected double comparison typo
2196
2197 2005-10-30 Maarten Brock <sourceforge.brock AT dse.nl>
2198
2199         * device/lib/medium/Makefile: added for new memory model medium
2200         * device/include/asm/mcs51/features.h: updated for medium/pdata
2201         * device/include/mcs51/c8051f120.h: added sfr16/sfr32 definitions,
2202           added Multiply & Accumulate sbit's and MAC0_PAGE define
2203         * device/include/mcs51/c8051f300.h: added sfr16 definitions
2204         * device/include/mcs51/c8051f310.h: added sfr16 definitions
2205         * device/lib/_mullong.c: update for medium model
2206         * device/lib/incl.mk: added medium model
2207         * doc/sdccman.lyx: documented medium model
2208         * src/SDCCast.c (isBitAndPow2): simplified using updated powof2
2209         * src/SDCCicode.c (geniCodeMultiply, geniCodeDivision): use updated powof2
2210         * src/SDCCmain.c (optionsTable, linkEdit): enabled medium model
2211         * src/SDCCmem.c (allocIntoSeg): set iaccess for pdata symbols,
2212           (allocParms): set SCLS and OCLS to pdata for medium model
2213         * src/SDCCsymt.c (processFuncArgs): use default_local_map and set iaccess
2214           for pdata,
2215           (powof2): return <0 if not power of 2
2216         * src/avr/gen.c (genBitWise): use updated powof2
2217         * src/mcs51/gen.c (genMinusDec): use acc if necessary,
2218           (shiftR2Left2Result): small optimization in setup, save acc when storing,
2219           (shiftLLeftOrResult): use B if necessary
2220         * src/mcs51/main.c (_mcs51_finaliseOptions, mcs51_port): added medium model
2221         * src/mcs51/peeph.def: renamed 226 to 226.b, added 226.a
2222         * src/pic/main.c (_pic14_do_link): made void parameter list explicit
2223         * support/regression/Makefile.in: added test-mcs51-medium
2224         * support/regression/ports/mcs51-medium/spec.mk: added to test medium model
2225
2226 2005-10-28 Bernhard Held <bernhard AT bernhardheld.de>
2227
2228         * src/SDCCsymt.c (compStructSize): make bitfields without (un)signed
2229         specifier unsigned
2230         * device/lib/time.c (mktime): fixed bug 1334315
2231
2232 2005-10-28 Raphael Neider <rneider AT web.de>
2233
2234         * device/include/pic/p16f_common.inc: added common declarations
2235         * src/pic/ralloc.c (initStack): moved regs *r to block start for Alpha
2236
2237 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2238
2239         * src/mcs51/gen.c (getTempRegs): return 0 if not enough registers found,
2240           (aopPutUsesAcc): added to predict accumulator use,
2241           (assignResultValue): save acc if necessary,
2242           (genMinusDec): store result if indirectly addressed,
2243           (genDivOneByte):  save acc if necessary,
2244           (movLeft2Result): bugfix if left already in acc,
2245           (genAnd, genOr, genXor, shiftL2Left2Result, shiftR2Left2Result): pay more
2246             attention to accumulator use (esp. pdata),
2247           (genReceive): receive pdata correctly
2248         * src/SDCCicode.c (isOperandInPagedSpace): added to detect pdata operands
2249         * src/SDCCicode.h: added isOperandInPagedSpace prototype
2250
2251 2005-10-27 Raphael Neider <rneider AT web.de>
2252
2253         * doc/sdccman.lyx: corrected version (should be 2.5.4 not 2.5.5)
2254
2255 2005-10-27 Raphael Neider <rneider AT web.de>
2256
2257         * .version: changed version to 2.5.4
2258         * doc/sdccman.lyx: changed version to 2.5.4, added some remarks to PIC14
2259         * device/lib/pic/libsdcc/{_mulint.c,_mullong.c}: use unsigned literals,
2260           (_divschar.c,divuchar.c,_mulchar.c,_modschar.c,_moduchar): NEW,
2261             arithmetics support routines
2262         * device/lib/pic/Makefile.rules: have assembler sources preprocessed
2263         * device/lib/Makefile.in: also create installdir for pic
2264
2265         * src/SDCCopt.c (cnvToFcall): mark support routines `extern' for
2266           pic14 port as well
2267         * src/pic/device.c (dump_sfr): rewritten to delegate register
2268           placement to the linker (use `extern sym' rather than sym EQU addr),
2269           (validAddress): fixed to check last specified address
2270         * src/pic/gen.c (aopForSym): added code to deal with array (useless?),
2271           (popGetLit): truncate literal value to 8 bit,
2272           (popGet): moved assert to more appropriate place
2273           (popGetExternal): create pCode operand from and mark the according
2274             symbol as being `extern'
2275           (popGetAddr): added sanity check on immediate's offset, provide
2276             GPOINTER tag on demand
2277           (aopPut): fixed for immediates,
2278           (mov2w_op): move operand's address or contents to WREG (depending on
2279             operand type), safer variant of mov2w,
2280           (movwf,call_libraryfunc): NEW, handy abbreviations,
2281           (get_argument_pcop,get_return_val_pcop,pass_argument,
2282           get_returnvalue): interface for accessing function parameters and
2283             return values,
2284           (assignResultValuei,genRet): use new parameter/return value interface
2285           (pic14_getDataSize): back to old version handling generic pointers,
2286           (pic14_toBoolean,genNot,genCpl,genCmpEq,genOrOp): heavily rewritten,
2287             provided implementation and/or fixed old one,
2288           (genMultOneByte,genDivOneByte,genModOneByte): implemented as library
2289             calls, removed legacy 8051 reference code
2290           (AccLsh,AccRsh): rewritten and fixed to deal with signed operands
2291           (loadSignToC): NEW, move the operands sign bit to CARRY,
2292           (genGenericShift): NEW, replaces genLeftShift, genRightShift and
2293             genRightShiftSigned, accepts negative shift counts,
2294           (setup_fsr): load FSR and adjust IRP (indirect memory access),
2295           (emitPtrByteGet,emitPtrByteSet): rewritten, now works with
2296             generic pointers, __data pointers and __code pointers,
2297           (genUnpackBits,genPackBits): rewritten to work with generic pointers
2298             and signed bitfields, limit bitfields to 8 bit,
2299           (genDataPointerGet): fixed number of bytes read,
2300           (genGenPointerGet,genConstPointerGet): fixed bitfield access,
2301           (genPointerGet,genPointerSet): fixed handling of __code pointers,
2302             pointers to constant data are no longer assumed to point to __code
2303             space, removed invalid pointer types,
2304           (bitpatternFromVal): retrieve the PICs representation of an integer
2305             or float literal,
2306           (genDataPointerSet): fixed assigning to po_immediate operands,
2307           (genGenPointerSet): implemented as library call,
2308           (genIfx): fixed incorrect condition,
2309           (genAddrOf): limit generic pointers' addresses to 2 bytes,
2310             provide GPOINTER tag according to destination's storage class,
2311           (genCast): added code to handle casting to generic pointers, added
2312             sign-/zero extension of the result
2313           (aop_isLitLike,op_isLitLike): fixed handling of immediates
2314         * src/pic/gen.h: added macros to access IRP bit in STATUS register
2315         * src/pic/genarith.c (genAddLit): use min(result's,left's) size, sign
2316           extend the result
2317         * src/pic/glue.c (is_shared_address,is_shared): check whether a given
2318           address/register resides in the shared banks
2319           (emitSymbolToFile): improved to handle global and `pinned' symbols,
2320             put all variables into separate sections (have the linker arrange
2321             them)
2322           (picglue): put init code and interrupt handlers in separate sections
2323         * src/pic/main.c: added port specific options table, modified to PORT
2324           structure to make GPOINTERs 3 byte, added pic14_options
2325           (_pic14_do_link): private linking routine (update paths to libraries,
2326             add libsdcc.lib by default)
2327         * src/pic/main.h: declare pic14_options
2328         * src/pic/pcode.c: fixed instructions i/o relations,
2329           (RegCond): reverted to correct version,
2330           (newpCodeOpLit): truncate literals to 8 bit,
2331           (genericPrint): added debug output,
2332           (getRegFromInstruction): fixed for various operand types, simplified
2333           (BuildFlow): fixed broken handling of isntructions with labels
2334           (LinkFlow): start at last instruction in flow (skip trailing comments),
2335             pass the flow on to the next instruction after CALL
2336           (pCodeReplace): NEW, replace a pCode and move meta data to the new one
2337           (insertPCodeInstruction): fixed inserting after a skip instruction,
2338           (DoBankSelect): fixed for labeled instructions
2339           (OptimizepBlock): honor --nopeep switch
2340           (AnalyzeFlow,ReuseReg): prevent crash on source files with no function
2341         * src/pic/pcodepeep.c (pCodePeepMatchRule): prevent NULL pointer accesses
2342         * src/pic/pcoderegs.c (regIsLocal): NEW, check visibility of a register
2343           (pCodeOptime2pCodes): allow disabling this optimization via
2344             --no-pcode-opt due seldomly occuring bugs, fixed some conditions
2345             but is still buggy), started implementation of a dataflow based
2346             pCode optimization (CSE + dead code elimination)
2347           (pCodeRegMapLiveRangesInFlow): removed bogus inCond
2348         * src/pic/ralloc.c (initStack): renamed stack registers to STK%d, the new
2349           names are independant of the stack location and therefore portable across
2350           devices
2351
2352 2005-10-27 Maarten Brock <sourceforge.brock AT dse.nl>
2353
2354         * src/mcs51/ralloc.c (bitType): added to detect bit variables,
2355           (selectSpil): fixed bug 1337835 by not spilling bit variables
2356         * support/regression/tests/bug1337835.c: added test for this bug
2357         * src/mcs51/peeph.def: restart after rule 3.c,
2358           addded rules 263.x to optimize loading constants
2359
2360 2005-10-26 Raphael Neider <rneider AT web.de>
2361
2362         * src/SDCCsymt.c (compStructSize): allow signed bitfields for PIC ports
2363         * src/pic16/gen.c (genUnpackBits): support signed bitfields,
2364           (genAssign): emit warning when casting literals to generic pointer
2365             type, also applies when taking the address of a fixed variable,
2366           (genCast): improved casting to generic pointers
2367         * src/pic16/glue.c (pic16emitStaticSeg): fixed(?) handling of fixed
2368           extern variables, added verbose error message
2369         * device/include/pic16/{string.h,errno.h}: added #pragma library c
2370
2371 2005-10-26 Bernhard Held <bernhard AT bernhardheld.de>
2372
2373         * src/mcs51/gen.c (genMinus): fixed bug 1270906: reverse subtraction,
2374         carry must be complemented too
2375         * src/mcs51/peeph.def: addded rule 262 to remove double cpl c, which
2376         could be emitted by genMinus
2377         * src/SDCCval.c (constVal): fixed bug 1305065
2378
2379 2005-10-25 Bernhard Held <bernhard AT bernhardheld.de>
2380
2381         * src/SDCCast.c (addCast): added promotion for bit variables
2382         (decorateType): emit W_COMPLEMENT before the problem vanishes behind
2383         promotion casts + optimisation
2384         (optimizeGetWord): fix warning 'i' might be used uninitialized
2385         * src/mcs51/gen.c (genCpl): removed W_COMPLEMENT
2386         * src/ds390/gen.c (genCpl): removed W_COMPLEMENT
2387
2388 2005-10-24 Bernhard Held <bernhard AT bernhardheld.de>
2389
2390         * src/SDCCicode.c (ast2iCode): reverted to 1.224 because of regression:
2391         all chars are promoted to int; promotion should be handled in SDCCast.c
2392
2393 2005-10-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2394
2395         * device/lib/_strcmp.c: Fixed bug 1326457
2396
2397 2005-10-11 Raphael Neider <rneider AT web.de>
2398
2399         * device/lib/pic16/libio/i2c.ignore: added 1320, fixes broken builds
2400         * device/lib/pic16/libdev/pic18f1320.c: added 1320's device library
2401
2402 2005-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
2403
2404         * src/SDCC.y (AT): fixed bug with sfr32 addresses when built with GCC
2405         * support/regression/tests/sfr16.c: added test for the sfr32 bug
2406
2407 2005-10-04 Raphael Neider <rneider AT web.de>
2408
2409         * device/include/pic16/pic18fregs.h, src/pic16/devices.inc,
2410           device/lib/pic16/pics.all: added pic18f1320
2411         * src/pic16/pcode.c (mnem2key): fixed prototype's argument mismatch
2412
2413 2005-09-30 Raphael Neider <rneider AT web.de>
2414
2415         * src/pic16/device.c (Pics16[]): moved device descriptions to devices.inc
2416         * src/pic16/devices.inc: NEW, provides device descriptions
2417         * src/pic16/gen.c (genInline): fixed handling of ';'-comments
2418
2419 2005-09-26 Maarten Brock <sourceforge.brock AT dse.nl>
2420
2421         * src/SDCCicode.c (operandOperation): added GETABIT, GETBYTE, GETWORD and
2422           GETHBIT
2423
2424 2005-09-25 Maarten Brock <sourceforge.brock AT dse.nl>
2425
2426         * doc/sdccman.lyx: updated Highest Order Bit documentation,
2427           documented Any Order Bit, Higher Order Byte and Higher Order Word
2428         * src/SDCC.y: added tokens GETABIT, GETBYTE, GETWORD
2429         * src/SDCCast.c (optimizeGetHbit): updated to also accept bool=expr&(1<<n),
2430           (optimizeGetAbit): new, to get any bit, not only the high bit,
2431           (optimizeGetByte): new, to get a byte from a (long) int: expr>>(8*n),
2432           (optimizeGetWord): new, to get a word from a long int: expr>>(8*n),
2433           (isConformingBody): also check GETABIT, GETBYTE, GETWORD,
2434           (decorateType): '&': also try GETABIT, GETBYTE, GETWORD optimization,
2435             RIGHT_OP: also try GETBYTE, GETWORD optimization,
2436             GETABIT, GETBYTE, GETWORD: decorate them,
2437           (isShiftRightLitVal, isBitAndPowOf2): new helper functions,
2438           (ast_print): added GETABIT, GETBYTE, GETWORD
2439         * src/SDCCcse.c (isSignedOp): added GETABIT, GETBYTE, GETWORD
2440         * src/SDCCicode.c (codeTable): added GETABIT, GETBYTE, GETWORD,
2441           (geniCodeBinary): new generic binary icode,
2442           (ast2iCode): added GETABIT, GETBYTE, GETWORD
2443         * src/port.h: updated comment for PORT.hasExtBitOp
2444         * src/mcs51/gen.c (genGetAbit): new, to get any single bit,
2445           (genGetByte): new, to get a single byte,
2446           (genGetWord): new, to get a word from a long,
2447           (gen51Code): added GETABIT, GETBYTE, GETWORD
2448         * src/mcs51/main.c (hasExtBitOp): added GETABIT, GETBYTE, GETWORD
2449
2450 2005-09-23 Raphael Neider <rneider AT web.de>
2451
2452         * configure.in, configure: have device/lib/pic configured
2453         * device/lib/Makefile.in: added model-pic14
2454         * device/lib/clean.mk: added pic/ to clean rule
2455         * device/lib/pic: added rudimentary pic14 library providing support
2456           functions for multiplication/division/generic pointer access
2457         * src/SDCCopt.c (convilong): mark support functions as extern
2458           for pic14 port as well
2459         * src/pic/gen.c (genMult): added assertions,
2460           (genpic14Code): emit warning on unhandled iCodes
2461         * src/pic/main.c (_hasNativeMulFor): return true only for 8x8 bit
2462         * src/pic/pcode.c (pCodeOpCopy),
2463         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed handling of various
2464           pCodeOpReg-subtypes (PO_{STATUS,INTCON,PCL,PCLATH,PCLATU,BSR,
2465           SFR_REGISTER}), made safe for future extensions
2466         * src/pic16/pcode.c (pic16_safepCodeUnlink): allow for removal of
2467           instructions even if preceeded by SKIP instructions (also remove
2468           them); removed unused code
2469         * src/pic16/pcode.h: added arg2 to pCodeOpLit to match pCodeOpLit2,
2470           prevents leaving parts of the structure uninitialized after copying
2471
2472 2005-09-22 Maarten Brock <sourceforge.brock AT dse.nl>
2473
2474         * src/mcs51/gen.c (genMinus): fix for undetected bug introduced 3 months
2475           ago by me
2476         * support/regression/tests/addsub.c: added test for the bug
2477
2478 2005-09-21 Raphael Neider <rneider AT web.de>
2479
2480         * device/include/pic16/pic18f1220.h,
2481           device/lib/pic16/libdev/pic18f1220.c: added ECCPAS sfr and bitfield
2482         * device/lib/pic16/Makefile.rules: added missing opening paren
2483         * src/pic16/gen.c (pic16_genNot,pic16_genCpl): removed as these
2484           are provided in genutils.c,
2485           (genUminusFloat,genUminus,genCmpEq): added asserts on different
2486           operand/result sizes,
2487           (genCmp): assert on NULL pointers first, then check deref'ed values
2488         * src/pic16/genutils.c (pic16_genCpl): fixed for different operand/
2489           result size
2490
2491 2005-09-18 Raphael Neider <rneider AT web.de>
2492
2493         * src/pic16/gen.c (genFarPointerGet,genFarPointerSet): removed
2494           as these are now unused,
2495           (genPointerGet,genPointerSet): handle FPOINTERs like POINTERs
2496         * src/pic16/pcode.c (pic16_symIsSpecial): assume REG_TMPs to be
2497           local, avoids uninitialized pointer dereference on r->name
2498         * src/pic16/ralloc.c (newReg): fixed indentation
2499
2500 2005-09-13 Maarten Brock <sourceforge.brock AT dse.nl>
2501
2502         * src/SDCCval.c (constVal): fixed bug 730366
2503         * support/Util/SDCCerr.c,
2504         * support/Util/SDCCerr.h: added warning W_INVALID_INT_CONST
2505
2506 2005-09-10 Maarten Brock <sourceforge.brock AT dse.nl>
2507
2508         * as/mcs51/lkmem.c (summary2): fixed report for absolute areas (bug 1210220)
2509
2510 2005-09-09 Maarten Brock <sourceforge.brock AT dse.nl>
2511
2512         * src/mcs51/peeph.def (241.x): fixed bug when comparing generic pointers
2513
2514 2005-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
2515
2516         * as/hc08/lkaomf51.c (OutputName): made name unsigned char,
2517           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2518         * as/mcs51/lkaomf51.c (OutputName): made name unsigned char,
2519           (hex2dec): made hex_digit unsigned char, removed ascii dependance
2520         * as/mcs51/lkarea.c (lnkarea2): sort absolute areas to the front
2521         * packihx/packihx.c (hexDigit): made c unsigned char
2522         * as/mcs51/lklibr.c (fndsym),
2523         * link/z80/lkgb.c (gb),
2524         * link/z80/lklibr.c (fndsym),
2525         * link/z80/lkrloc.c (relr),
2526         * sim/ucsim/libltdl/ltdl.c (load_deplibs, try_dlopen),
2527         * src/SDCC.lex (checkCurrFile, process_pragma),
2528         * src/SDCCglue.c (spacesToUnderscores),
2529         * src/SDCCmain.c (setParseWithComma, processFile),
2530         * src/asm.c (tvsprintf, printCLine),
2531         * src/avr/gen.c (emitcode, aopPut),
2532         * src/ds390/gen.c (emitcode),
2533         * src/hc08/gen.c (emitcode, emitinline),
2534         * src/mcs51/gen.c (emitcode, genInline),
2535         * src/pic/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2536           tokenizeLineNode),
2537         * src/pic/ralloc.c (debugLog),
2538         * src/pic16/pcodepeep.c (cvt_extract_destination, cvt_extract_status,
2539           tokenizeLineNode),
2540         * src/pic16/ralloc.c (debugLog),
2541         * src/z80/main.c (_process_pragma):
2542            made all ctype.h function calls safe
2543         * src/SDCCopt.c: include math.h for fabs
2544         * src/SDCCpeeph.c: added macros ISCHARDIGIT, ISCHARSPACE and ISCHARALNUM
2545           and used them throughout the code to make ctype.h function calls safe
2546         * src/ds390/main.c (asmLineNodeFromLineNode),
2547         * src/mcs51/main.c (asmLineNodeFromLineNode): made p unsigned char*
2548         * src/pic/gen.c (DEBUGpic14_emitcode, pic14_emitcode): made lbp
2549            unsigned char*
2550         * src/pic/pcode.c (mnem2key): made mnem unsigned char*,
2551           (newpCodeAsmDir): made ctype.h function calls safe
2552         * src/pic16/gen.c (pic16_emitpcomment, DEBUGpic16_emitcode,
2553           pic16_emitcode):  made lbp unsigned char*
2554         * src/pic16/pcode.c (mnem2key): made mnem unsigned char*,
2555           (pic16_newpCodeAsmDir): made ctype.h function calls safe
2556         * src/xa51/gen.c (emitcode),
2557         * src/z80/gen.c (_emit2): made lbp unsigned char*
2558         * support/Util/MySystem.c (split_command): made cmd_line and p unsigned
2559            char*
2560
2561 2005-09-05 Raphael Neider <rneider AT web.de>
2562
2563         * src/pic16/ralloc.c (pic16_allocDirReg): use device specific
2564           access bank splitpoint
2565
2566 2005-09-05 Raphael Neider <rneider AT web.de>
2567
2568         * device/lib/pic16/libc/Makefile: added (missing) string to SUBDIRS
2569
2570 2005-09-03 Maarten Brock <sourceforge.brock AT dse.nl>
2571
2572         * .version: changed to version 2.5.3
2573         * doc/sdccman.lyx: changed version to 2.5.3,
2574           documented --codeseg and --constseg and pragma codeseg and constseg,
2575           documented bit parameters (reentrant) and bit returning
2576         * src/SDCCicode.c (geniCodeReceive): fixed (possible) bug generating
2577            currFunc->recvSize, but is this ok for all ports?
2578           (ast2iCode): result of ~ on unsigned char must be cast to int for
2579            bool to work
2580         * src/SDCCmem.c (allocGlobal, allocLocal): don't put bit returning
2581           function pointers in bit space
2582         * src/SDCCsymt.c (checkSClass): allow bit returning function pointers,
2583           (processFuncArgs): call port.reg_parm() with reentrancy info
2584         * src/port.h,
2585         * src/avr/main.c,
2586         * src/ds390/main.c,
2587         * src/hc08/main.c,
2588         * src/pic/main.c,
2589         * src/pic16/main.c,
2590         * src/xa51/main.c,
2591         * src/z80/main.c: port.reg_parm prototype extended with
2592           "bool reentrant" parameter
2593         * src/mcs51/main.c (_mcs51_regparm): use parameter reentrant instead of
2594           options.stackAuto for allocating bit register parameters
2595         * src/mcs51/gen.c (genNot): optimized complementing direct bit,
2596           (genSend): set BitBankUsed if it is,
2597           (selectRegBank): factored out of genCall for use in genPcall,
2598           (genCall): removed redundant dtype assignmen, use selectRegBank,
2599           (genPcall): handle returning in Carry properly, save in F0 if needed,
2600           (genReceive): handle bit register parameters
2601         * src/mcs51/ralloc.c (updateRegUsage): update BitBankUsed along the way,
2602           (mcs51_assignRegisters): enable bit registers for all reentrant
2603            functions and don't set BitBankUsed unconditionally
2604         * src/mcs51/peeph.def (177.d): fixed bug if %2==%3
2605         * support/regression/tests/bitvars.c: enable tests for SDCC_STACK_AUTO
2606         * support/regression/tests/funptrs.c: added tests for BOOL and for return
2607
2608 2005-08-27 Borut Razem <borut.razem AT siol.net>
2609
2610         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) and on
2611         ppc-osx (Darwin) does not support -u option. It seems that it is
2612         supported only on Linux - GNU cp
2613
2614 2005-08-25 Borut Razem <borut.razem AT siol.net>
2615
2616         * sim/ucsim/gui.src/serio.src/Makefile.in,
2617           sim/ucsim/s51.src/Makefile.in, sim/ucsim/avr.src/Makefile.in,
2618           sim/ucsim/z80.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2619           sim/ucsim/xa.src/Makefile.in: install -s changed to 2 steps:
2620           install and strip, since the strip at /usr/ccs/bin should be used
2621           on solaris
2622
2623 2005-08-24 Borut Razem <borut.razem AT siol.net>
2624
2625         * clean.mk, device/lib/clean.mk: find on sparc-solaris does not support -maxdepth option
2626
2627 2005-08-23 Bernhard Held <bernhard AT bernhardheld.de>
2628
2629         * src/SDCCopt.c (convertToFcall): fixed modulus with divisors 1 and
2630         ffffffffu
2631
2632 2005-08-23 Maarten Brock <sourceforge.brock AT dse.nl>
2633
2634         * as/mcs51/aslink.h: completed lkrloc.c prototypes
2635         * as/mcs51/lkmain.c (link_main): fixed warning
2636         * device/include/stdbool.h: ds390 has no advanced bit support yet
2637         * src/SDCC.y: use SPEC_SHORT and renamed _signed to b_signed
2638         * src/SDCCsymt.c: use SPEC_SHORT and renamed _signed to b_signed
2639         * src/SDCCsymt.h (struct specifier): renamed _xxx bitfields to b_xxx
2640           and updated their macros
2641         * src/SDCCval.c (constVal): updated comment for renamed b_long
2642
2643 2005-08-22 Maarten Brock <sourceforge.brock AT dse.nl>
2644
2645         * as/mcs51/asdata.c: changed ctype['['] to BINOP
2646         * as/mcs51/asexpr.c (expr): added case '[' for bit access in bdata,
2647           (term): abused bit 15 of s_addr to indicate bit-addressable bytes,
2648           (oprio): set priority for '['
2649         * as/mcs51/aslink.h: added define R_BIT, and prototypes for adb_bit
2650            and adb_24_bit
2651         * as/mcs51/asm.h: added defines R_BIT and S_BIT
2652         * as/mcs51/lkarea.c (lnksect2): use T for seg BIT_BANK and overlay it
2653         * as/mcs51/lkdata.c: changed ctype['['] to BINOP
2654         * as/mcs51/lkmain.c (Areas51): rel2 contains 12 (=C) areas now,
2655           added overlayable BIT_BANK area
2656         * as/mcs51/lkmem.c (summary): add BIT_BANK to BSEG_BYTES in the report,
2657           (summary2): explain 'T' in legenda
2658         * as/mcs51/lkrloc.c: replaced old K&R style,
2659           (relr): added R_BIT processing,
2660           (errmsg): added "Bit-addressable relocation error",
2661           (adb_bit): added for converting from byte- to bit-addressable space,
2662           (adb_24_bit): added for converting from byte- to bit-addressable space
2663         * device/include/stdbool.h: changed BOOL to __bit for mcs51 as it can be
2664            used in reentrant functions now even as return value
2665         * device/lib/_gptrput.c (_gptrput): removed obsolete code
2666         * src/SDCCast.c (resultTypePropagate): also propagate AND_OP and OR_OP,
2667           (decorateType): case '!', GETHBIT, AND_OP, OR_OP: result in bool or char
2668         * src/SDCCglobl.h: added indicator BitBankUsed
2669         * src/SDCCglue.c (glue): emit area BIT_BANK with byte 'bits' and equ's for
2670            the bit registers b0-b7
2671         * src/SDCCicode.c (operandFromSymbol): removed IS_BITVAR check,
2672           (geniCodeCast): fixed bug 1263853,
2673           (geniCodeLogicAndOr): put result in bool or char,
2674           (geniCodeReceive): added parameter func for accessing the return type,
2675           (geniCodeFunctionBody): pass func to geniCodeReceive
2676         * src/SDCCmain.c: added indicator BitBankUsed
2677         * src/SDCCmem.c (allocLocal): explicitly set sclass for V_BIT
2678         * src/SDCCsymt.c (newBoolLink): added for creating a bool/bit,
2679           (checkSClass): don't put automatic bool/bit on stack,
2680           (checkFunction): removed check on function cannot return bit
2681         * src/SDCCsymt.h: added newBoolLink prototype
2682         * src/mcs51/gen.c (rb1regs): added bit registers,
2683           (movc): created for assigning to carry,
2684           (pushReg, popReg): created for pushing registers,
2685           (sameRegs): check both AOP_REG and AOP_CRY types,
2686           (aopOp): handle bit registers,
2687           (aopPut): optimization no self-assign,
2688           (saveRegisters): push reg->base (bits) only once for bit registers,
2689            and use pushReg,
2690           (unsaveRegisters): pop reg->base only once and use popReg,
2691           (assignResultValue): added parameter func and return in carry for bits,
2692           (genIpush): optimization no reload in A if not changed,
2693           (genSend): bit parameters in reentrant functions are passed in bit
2694            registers by first assigning to bits in B, then save registers and
2695            copy B to bits,
2696           (genCall): handle returning in Carry properly, save it in F0 if needed,
2697           (genPcall): updated assignResultValue call, this is not safe yet for bit
2698            returning function !!!
2699           (genFunction): don't generate equ's for bit registers and use pushReg,
2700           (genEndFunction): take care of bit returning functions and use popReg,
2701           (genRet): return bit in Carry,
2702           (genIfx): optimize bit registers and other directly addressable bits,
2703           (genReceive): updated assignResultValue call
2704         * src/mcs51/main.c (_mcs51_reset_regparm): added regBitParmFlg,
2705           (_mcs51_regparm): allow passing of upto 8 bit parameters in bit
2706            registers when using stack-auto
2707         * src/mcs51/ralloc.c (_G): added allBitregs,
2708           (regs8051): added the bit registers,
2709           (createStackSpil): use macro IS_BIT,
2710           (getRegBit): added to allocate a bit register, else spill,
2711           (getRegBitNoSpil): added to allocate a bit register, else a gpr,
2712           (updateRegUsage): factored out to ease stepping while debugging,
2713           (serialRegAssign): use updateRegUsage, only spill bits if necessary,
2714            also allocate bit registers,
2715           (fillGaps): handle bit registers,
2716           (findAllBitregs): added to create bit vector with all bit registers,
2717           (mcs51_allBitregs): returns this bit vector,
2718           (mcs51_assignRegisters): when using stack-auto use bit registers for
2719            passing parameters and creating local variables
2720         * src/mcs51/ralloc.h: added B0_IDX..B7_IDX and prototype mcs51_allBitregs
2721
2722 2005-08-22 Borut Razem <borut.razem AT siol.net>
2723
2724         * device/lib/Makefile.in: replaced find option -or with -o
2725           to make it run on solaris
2726
2727 2005-08-22 Raphael Neider <rneider AT web.de>
2728
2729         * src/pic16/gen.c (pic16_loadFromReturn): added check for AOP_PCODE,
2730           fixes #1265442 (crash on Solaris)
2731
2732 2005-08-20 Borut Razem <borut.razem AT siol.net>
2733
2734         * configure, configure.in: added tests for libsocket and libnsl libraries,
2735           requred by sdcdb on sparc-solaris; generate support/regression/Makefile
2736           from support/regression/Makefile.in
2737         * support/regression/Makefile.in: added
2738         * device/lib/pic16/Makefile.common.in: force make to use bash shell
2739         * sim/ucsim/libtool: regenerated on sparc-solaris
2740         * sim/ucsim/avr.src/Makefile.in, sim/ucsim/hc08.src/Makefile.in,
2741           sim/ucsim/s51.src/Makefile.in, sim/ucsim/xa.src/Makefile.in,
2742           sim/ucsim/z80.src/Makefile.in: removed GNU ld specific linker options
2743           -Wl,--start-group and -Wl,--end-group to enable ucsim compilation on
2744           sparc-solaris, which doesn't use GNU ld linker
2745         * device/lib/Makefile.in: cp on sparc-solaris (SunOS) does not support -u option
2746         * as/Makefile: find on sparc-solaris does not support -maxdepth option
2747
2748 2005-08-19 Maarten Brock <sourceforge.brock AT dse.nl>
2749
2750         * src/mcs51/peeph.def: updated comments
2751
2752 2005-08-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
2753
2754         * device/lib/_gptrget.c,
2755         * device/lib/_gptrput.c: slightly shorter
2756         * doc/sdccman.lyx: incremented version
2757         * src/mcs51/peeph.def: moved peephole comments to the line of first
2758           change to better keep line correlation, reanimated 186.e
2759         * src/mcs51/peeph.def: renamed similar peepholes by using suffixes
2760
2761 2005-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
2762
2763         * src/pic/pcode.c : Pasted ".line" assembly directives patch from
2764           David Saxton with quotes around file name.
2765
2766 2005-08-15 Borut Razem <borut.razem AT siol.net>
2767
2768         * support/regression/tests/bitfields.c, support/regression/tests/bitvars.c,
2769           support/regression/tests/bitwise.c, support/regression/tests/literalop.c,
2770           support/regression/tests/rotate.c, support/regression/tests/zeropad.c:
2771           make tests run on x86_64 platform
2772
2773 2005-08-13 Raphael Neider <rneider AT web.de>
2774
2775         * device/lib/pic16/Makefile.subdir: weakened clean-intermediate rule
2776           as it might be executed DURING a build (parallel make is wonderful)
2777
2778 2005-08-13 Raphael Neider <rneider AT web.de>
2779
2780         * device/lib/Makefile.in (port-specific-objects-pic16):
2781           revert to cp $(PORT)/bin/*.* $(PORTDIR)
2782         * device/lib/pic16/Makefile: added .PHONY targets, removed builddir
2783           dependency
2784         * device/lib/pic16/Makefile.rules: build subdirs before creating
2785           the library, removed builddir rule, create $(builddir) early in
2786           recurse rule, use empty recurse rule for leaf directories
2787         * device/lib/pic16/Makefile.subdir: added phony targets, ignore
2788           mkdir errors (race condition), removed duplicate suffix "hex"
2789           from clean rules
2790         * device/lib/pic16/libdev/Makefile: recursive make via + and $(MAKE)
2791         * device/lib/pic16/libio/Makefile: create sub-make's builddir early,
2792           prevents mkdir -p from aborting on Alpha
2793
2794 2005-08-12 Raphael Neider <rneider AT web.de>
2795
2796         * src/pic16/glue.c (pic16_print(G)PointerType): do not flush
2797           db-statements in order to allow for arrays of pointers in code
2798           sections to be placed without interspersed 0-padding, fixes
2799           bug #1256215
2800         * (emitStatistics): fixed division by zero for pic18f1220
2801         * src/pic16/pcode.c: buffer (up to) 12 DB directives to allow for
2802           unpadded writing of 8-bit, 16-bit, 24-bit and 32-bit values
2803         * (pic16_emitDS): respect DB_ITEMS_PER_LINE
2804         * (pic16_pCodeConstString): keep track of already emitted string
2805           literals to prevent "duplicate definitions of symbol _str_NR"
2806         * src/pic16/ralloc.c (pic16_allocRegByName): removed not so helpful
2807           debug message
2808         * device/lib/Makefile.in: ignore failing PIC16 library builds
2809         * device/lib/pic16/Makefile: do not build if gputils are missing
2810         * device/lib/pic16/Makefile.common.in: do not enforce MAKEFLAGS=-s
2811
2812 2005-08-10 Raphael Neider <rneider AT web.de>
2813
2814         * device/lib/Makefile.in: fixed copying pic16 libraries (broken by
2815           my last commit)
2816
2817 2005-08-10 Raphael Neider <rneider AT web.de>
2818
2819         * src/*.c, src/pic16/{gen.c,glue.c,main.c}: applied Vangelis
2820           Rokas' patch to add the new fixed point type "__fixed16x16"
2821         * device/lib/pic16/libsdcc/fixed16x16: added Vangelis' support
2822           functions for __fixed16x16 arithmetics
2823         * device/lib/pic16: reimplemented the build system to support
2824           a separate build directory, better handling of libio (create
2825           the library in a separate subdir for each architecture) and
2826           easier configuration (centralized in Makefile.common)
2827
2828 2005-08-07 Raphael Neider <rneider AT web.de>
2829
2830         * src/pic16/gen.c (genrshTwo): fixed sign extension
2831         * src/pic16/device.c: added pic18f2320, 4220 and 4320
2832         * device/include/pic16/pic18f2220.h: changed some bit definitions,
2833           added T0CONbits
2834         * device/include/pic16/pic18f4220.h: NEW, header for
2835           pic18f4220 and pic18f4320
2836         * device/include/pic16/pic18fregs.h: added new devices,
2837           embraced Nop(), ClrWdt(), Sleep() and Reset() with do {} while(0)
2838         * device/include/pic16/signal.h: resolved name clashes
2839           on bit definitions, added DEF_HANDLER2(sig1,sig2,handler)
2840           to also allow testing for interrupt enable bits, added
2841           comments on how to use the macros
2842         * device/lib/pic16/libdev/pic18f2220.c: added T0CONbits
2843         * device/lib/pic16/libdev/pic18f{2320,4220,4320}.c: NEW,
2844           register definitions for the devices
2845         * device/lib/pic16/pics.all: added new devices
2846         * device/lib/pic16/libc/stdlib/calloc.c: fixed zeroing
2847           allocated memory
2848         * device/lib/pic16/libc/stdlib/memfree: do not count
2849           the block header as free memory
2850         * device/lib/pic16/libc/stdlib/memmisc.c (_initHeap):
2851           simplified and added missing end-of-blocklist-marker
2852           (reported by Peter Onion, fixes #1252814)
2853         * (_mergeHeapBlock): fixed loop condition
2854         * device/lib/pic16/libc/stdlib/realloc.c: return NULL for
2855           len==0, restructured code
2856         * device/lib/pic16/libc/stdlib/{malloc,memfreemax}.c: cleaned
2857           up a bit, reduced bitfield accesses, prevent endless loops
2858           in case of heap corruption
2859         * device/lib/pic16/libc/stdlib/x_ftoa.c: disabled
2860           "unreferenced arguments/must return a value" warnings
2861         * device/lib/pic16/libio/usart/ubaud.c (usart_baud):
2862           replaced BAUDREG with SPBRG
2863         * device/lib/pic16/libsdcc/lregs/{lrrest.c,lrst.c},
2864           device/lib/pic16/debug/gstack/gstack.c: replaced
2865           _naked, _asm, _endasm with __naked, __asm, __endasm
2866
2867 2005-08-05 Raphael Neider <rneider AT web.de>
2868
2869         * src/pic16/gen.c (pic16_aopGet): fixed handling of offsets in
2870           AOP_PCODE operands, fixes multibyte union-bitfield-accesses
2871
2872 2005-08-05 Borut Razem <borut.razem AT siol.net>
2873
2874         * device/lib/Makefile.in: added missing ';'
2875         * configure: removed ^M characters
2876
2877 2005-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2878
2879         * device/include/mcs51/at89c51ed2.h, device/include/mcs51/p89v51rd2.h,
2880           device/include/mcs51/at89s53.h: changed to GNU Lesser General Public
2881           License
2882
2883 2005-08-04 Borut Razem <borut.razem AT siol.net>
2884
2885         * configure.in: pic16 libraries build 2nd try - enable running
2886           configure in device/lib/pic16
2887         * configure: regenerated from configure.in
2888         * device/lib/Makefile.in: create $(PORT)/bin directory
2889
2890 2005-08-03 Raphael Neider <rneider AT web.de>
2891
2892         * src/pic16/gen.c (pic16_derefPtr): NEW, single place
2893           to get/set values via pointers
2894         * (genUnpackBits,genPackBits): changed detection of
2895           ptr->bitfield vs. sym.bitfield, fixed access via generic
2896           pointers, removed dead (wrong) code for multibyte bitfields
2897         * (genNearPointerGet, genGenPointerGet): removed useless code,
2898           fixed bitfield detection, fixes #1250594
2899         * (genNearPointerSet): removed useless code
2900         * src/pic16/gen.h: renamed pic16_emitpcode to pic16_emitpcode_real
2901           and introduced macro pic16_emitpcode that conditionally emits
2902           the origin of the following pCode (useful for debugging SDCC)
2903         * src/pic16/pcode.c: changed (and disabled) some debug outputs
2904         * (createDefmap): fixed handling of LFSR for --optimize-df
2905
2906 2005-08-02 Borut Razem <borut.razem AT siol.net>
2907
2908         * device/lib/Makefile.in: pic16 libraries build enabled since
2909           gputils-0.13.2 are now localy installed at sourceforge's compile farm
2910
2911 2005-08-02 Raphael Neider <rneider AT web.de>
2912
2913         * src/pic16/gen.c (genPackBits): removed deprecated warning
2914         * (genGenPointerSet): fixed bitfield detection
2915
2916 2005-08-02 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2917
2918         * device/include/mcs51/msm8xc154s.h: Removed PT2 definition, now in 8052.h.
2919
2920 2005-07-31 Raphael Neider <rneider AT web.de>
2921
2922         * device/lib/pic16/libdev/pic18f458.c,
2923           device/include/pic16/pic18f458.h: added missing T0CONbits
2924
2925 2005-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
2926
2927         * device/include/mcs51/msm8xc154s.h: added, thanks to Matthias Arndt
2928
2929 2005-07-28 Maarten Brock <sourceforge.brock AT dse.nl>
2930
2931         * src/mcs51/gen.c (operandsEqu): fixed bug 1246687
2932
2933 2005-07-23 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
2934
2935         * device/include/mcs51/at89c51ed2.h: added.
2936
2937 2005-07-23 Raphael Neider <rneider AT web.de>
2938
2939         * src/pic/gen.h: added emitpcode macro for debugging
2940         * src/pic/gen.c (emitpcode): renamed to emitpcode_real
2941           and replace by macro adding debug information on demand
2942         * (genNot): fixed to C semantics (!0 = 1; !x = 0 iff x != 0)
2943         * (gencjne): tried to fix; replaced with correct (slower) code
2944         * (gen{Unp,P}ackBits): fixed single bit access
2945         * src/pic/pcode.c (AnalyzepCode): fixed DFPRINTF argument
2946         * src/pic/pcodepeep.c (pCodeSearchCondition): fixed finding
2947           previous instruction
2948         * src/pic/pcoderegs.c (regIsSpecial): NEW, check whether a
2949           register has to be handled with care (forbidding movement
2950           of assignments/uses, removing assignments completely, ...)
2951         * (pCodeOptime2pCodes): make use of regIsSpecial
2952         * added lots of debugging output (commented out)
2953         * src/pic/rallloc.c (deassignLRs): prevent operand registers
2954           from being reused as result UNLESS it is known to work
2955
2956 2005-07-23 Maarten Brock <sourceforge.brock AT dse.nl>
2957
2958         * support/Util/dbuf.h: include <stddef.h> for size_t
2959         * .version: changed to version 2.5.2
2960
2961 2005-07-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2962
2963         * src/SDCCloop.c (loopInvariants): fixed bug #1234048
2964
2965 2005-07-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
2966
2967         * src/hc08/gen.c (genMinus): fixed bug #1241835,
2968           (genModOneByte): removed needless psha/pula
2969
2970 2005-07-22 Raphael Neider <rneider AT web.de>
2971
2972         * src/SDCCmain.c (linkEdit): initialized linkerScriptFileName,
2973           have PIC14 handled like PIC16, fixes broken pic14 linker calls
2974         * src/pic/gen.c (resolveIfx): do not "invent" labels
2975         * (genSkipc): changed to positive logic
2976         * (genSkipCond): removed as no longer needed
2977         * (pic14_mov2w_regOrLit,genCmp): NEW, replacement for buggy version,
2978           backport from PIC16
2979         * (genLeftShift): check operands are in different registers
2980         * src/pic/genarith.c (genPlus): replaced INCF with ADDLW as
2981           INCF does not update CARRY...
2982         * src/pic/main.c: fixed _linkCmd
2983         * src/pic/pcode.c (unlinkpCode): added inactive code
2984         * src/pic/ralloc.c (deassignLRs): keep arguments to shift operations
2985           alive (do not assign result and operand overlapping registers)
2986
2987 2005-07-22 Raphael Neider <rneider AT web.de>
2988
2989         * src/pic/device.c (dump_sfr): replaced register declaration with
2990           call to emitSymbolToFile() to avoid duplicate symbols
2991         * (assignRelocatableRegisters): do not declare external symbols
2992         * src/pic/ralloc.c (allocNewDirReg): fixed to get size of arrays
2993           right (take size of type, not etype)
2994         * (allocDirReg): fixed call to allocNewDirReg() to pass OP_SYM_TYPE
2995         * (writeUsedRegs): also dump dynDirectRegs (e.g. local variables)
2996         * (packRegsForAccUse): disabled assignment of WREG as
2997           the result reg to prevent occurence of just fixed #1235003,
2998           fixes #1242954
2999         * src/pic/glue.c (emitSymbolToFile): NEW, central place to declare
3000           symbols (avoids duplicate symbols in .asm file)
3001         * (pic14emitRegularMap): use emitSymbolToFile()
3002         * src/pic/gen.c (aopOp): fixed spillLocation handling
3003         * (gen{Unp,P}ackBits): fixed acquiring bit-operands
3004         * (genDataPointerSet): removed unneccessary variables/output
3005
3006 2005-07-22 Maarten Brock <sourceforge.brock AT dse.nl>
3007
3008         * as/mcs51/lkarea.c: enlarged codemap for banked memory
3009         * device/lib/mcs51/crtbank.asm: added # to 0x0F
3010
3011 2005-07-21 Raphael Neider <rneider AT web.de>
3012
3013         * src/pic/gen.c (aopOp): do not generate AOP_ACC operands as pic14
3014           architecture cannot handle them efficiently, fixes bug #1235003
3015         * src/pic16/device.c (pic16_dump_{u,i}section,pic16_dump_int_registers):
3016           check for empty sets before using them (fixes bug #1232190)
3017
3018 2005-07-19 Maarten Brock <sourceforge.brock AT dse.nl>
3019
3020         * as/mcs51/lkarea.c (lnkarea, lnkarea2): improved BSEG size calculation,
3021           (lnksect2): generate warnings for memory overlap
3022         * src/SDCC.lex (doPragma, process_pragma): added pragma's codeseg and
3023           constseg to set the name of these segments so you can instruct the linker
3024           to place them in banks
3025         * src/SDCCast.c (decorateType): use new macro IS_FUNCPTR()
3026         * src/SDCCglobl.h: added MODEL_HUGE to enum,
3027           added code_seg and const_seg to options
3028         * src/SDCCglue.c (emitMaps): use options.const_seg,
3029           (createInterruptVect): put interrupt vectors in segment HOME,
3030           (glue): put HOME before static segment and put the main glue in HOME,
3031           (glue): use options.code_seg
3032         * src/SDCCicode.c (geniCodeCall): use new macro IS_FUNCPTR()
3033         * src/SDCCmain.c: added option --codeseg and --constseg to set the name of
3034           these segments so you can instruct the linker to place them in banks
3035           (linkEdit): use code_loc for HOME segment which should be the first
3036           segment in code memory now
3037         * src/SDCCmem.c: fixed more stuff like bug 1238386
3038         * src/SDCCsymt.c (getSize): use generic pointer size for banked functions,
3039           (changePointer): don't change function pointers to code pointers for
3040           banked functions,
3041           (compareType): added exceptional check for banked function pointers
3042         * src/SDCCsymt.h: changed IFFUNC_ISBANKEDCALL, added IS_FUNCPTR
3043         * src/hc08/main.c (_hc08_genAssemblerPreamble): put HOME first, put CSEG
3044           after static in code memory
3045         * src/mcs51/gen.c: added aopLiteralLong prototype,
3046           (aopForSym): use getSize for functions,
3047           (genCall): generate banked calls over one trampoline __sdcc_banked_call
3048           in HOME with lsb of address in r0, msb in r1 and bank in r2, use
3049           -Wl-bBANKSEG=0xbbaaaa option to set the address (aaaa) and bank (bb) of
3050           the segment,
3051           (genPcall): use call for literal function pointers and generate banked
3052           calls over the one trampoline so there's only one place for the user to
3053           modify according to his/hers hardware,
3054           (genEndFunction): jump to __sdcc_banked_ret in HOME for banked functions,
3055           (genPlusIncr): moved check icount>4 beyond inc dptr optimization
3056         * src/mcs51/main.c: added keyword banked,
3057           (_mcs51_genExtraAreas): put HOME first followed by GSINIT, STATIC and CSEG
3058         * support/Util/SDCCerr.c,
3059         * support/Util/SDCCerr.h: added E_BANKED_WITH_CALLEESAVES, registers are
3060           needed for passing the bank and address to the trampoline
3061         * device/lib/mcs51/crtbank.asm: added for bankswitching
3062         * device/lib/mcs51/Makefile: added crtbank
3063
3064 2005-07-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3065
3066         * src/SDCCcse.c (algebraicOpts): fixed loss of volatility
3067           for fields at offset 0 of a struct or union as reported
3068           on 2005-07-07 in the developer mailing list.
3069
3070 2005-07-15 Maarten Brock <sourceforge.brock AT dse.nl>
3071
3072         * src/SDCCmem.c: fixed bug 1238386
3073
3074 2005-07-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3075
3076         * src/mcs51/peeph.def: added labelrefcounting for peepholes
3077           (patch #1144962), added peephole 300, enabled 259.x
3078         * doc/sdccman.lyx: removed screenshot and provided link instead
3079
3080 2005-07-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3081
3082         * doc/sdccman.lyx: added section about debugging with ddd
3083         * doc/figures/ddd_example.eps: screenshot of debugging session
3084
3085 2005-07-04 Raphael Neider <rneider AT web.de>
3086
3087         * src/pic/gen.c (genPointerGet): handle pointers to CONST values
3088           like CODE pointers, fixes #1115683
3089         * src/pic/pcode.c (DoBankSelect): forget LastRegIdx during function
3090           call, fixes bugs #1232211, #1228110,
3091           fixed wrong casts to pCodeFlow from pCodeInstructions
3092
3093 2005-07-04 Raphael Neider <rneider AT web.de>
3094
3095         * src/pic/gen.c (popGet): changed assert to allow for
3096           bit operands
3097         * (popGetAddr): changed signature to provide
3098           an additional index, patched all call sites
3099         * (genCmpEq): handle literal-like operands correctly
3100         * (genAddrOf): added sanity checks on __code/__data pointers
3101         * (genAssign): added handling of symbols from __code section
3102         * (gencjne): do not generate code for comparisons whose result
3103           is neither stored nor used, fixes bug #1171114
3104         * (AccLsh, AccRsh): operate on operand instead of WREG
3105         * (shift{Left,Right}_Left2ResultLit): NEW, size independant
3106           replacement for Shift{LR}{12}Left2Result; shift (byte/int/long)
3107           by known count
3108         * rewrote complete shift-by-literal logic, commented unused
3109           functions out
3110         * (genConstPointerGet): get multiple bytes (if result size > 1),
3111           fixed handling of non-immediate addresses
3112         * (genPointerGet): handle CODE pointers like CONST pointers
3113         * (genpic14Code): insert C-SRC lines as Cource-pCodes
3114         * ({aop,op}_isLitLike): NEW, single place to decide whether an
3115           operand is to be treated as a literal or not
3116         * (mov2w,genPcall,genCmpEq),
3117           src/pic/genarith.c: use aop_isLitLike() to decide between
3118           literal/register contents
3119         * (addSign): added missing offset
3120         * src/pic/gen.h: remove newline after FENTRY/FEXIT comments,
3121           only emit comment in debug-mode,
3122           use {aop,op}_isLitLike throughout the file
3123         * src/pic/glue.c: fix initializers for pointers (work in progress)
3124         * src/pic/pcode.c (get_op): honor index on _const symbols
3125         * ({reset,dump}pCodeStatistics): NEW, estimate code size
3126         * (dumppBlock): added pCode size estimation
3127         * src/pic/ralloc.c (deassignLRs,serialRegAssign,packRegisters):
3128           check for IS_SYMOP before OP_SYMBOL'ing
3129         * fixed indentation, compacted switch-statements
3130         * (allocReg): find free register and allocate it instead of
3131           allocating new registers all the time
3132         * (deassignLRs): prevent POINTER_GET's from being assigned the same
3133           registers as its operands (necessary only for multibyte GETs)
3134
3135 2005-07-01 Raphael Neider <rneider AT web.de>
3136
3137         * src/pic/gen.h: added prototypes emitpComment, popGetAddr and
3138           debugging .asm-output macros FENTRY + FEXIT
3139         * src/pic/gen.c (Safe_vsnprintf): NEW, is there a more generic
3140           way... I wonder...
3141         * (emitpComment): NEW, printf to pCode
3142         * (popGet): added assert on too large offsets, fixed PO_IMMEDIATE's
3143           offset handling
3144         * (popGetAddr): NEW, variant of popGet to access an immediates
3145           high(er) bytes instead of the n'th byte of memory they reference,
3146           replaced popGet with popGetAddr where neccessary
3147         * (genDataPointerGet): reactivated and fixed implementation
3148         * (genNearPointerGet): enabled call to genDataPointerGet, fixes array-
3149           accesses
3150         * (genDataPointerSet): fixed multibyte assignments
3151         * (genpic14Code): fixed --i-code-in-asm handling
3152         * src/pic/genarith.c: fixed PO_IMMEDIATE issue using popGetAddr,
3153         * (genPlus): fixed index-out-of-bounds error
3154         * src/pic/pcode.c (get_op): fixed PO_IMMEDIATE's index/offset handling
3155         * src/pic/ralloc.c: added debugging output macro FENTRY2
3156         * (spillThis): fixed indentation, enbraced for-body for clarity
3157         * (rematStr): commented out as now unused
3158         * (regTypeNum): commented out special spill case (overwrites
3159           arbitrary values)
3160         * fixes bugs #1229346, #1216476 (both arrays) and #1115667 (SIGSEGV)
3161
3162 2005-06-30 Maarten Brock <sourceforge.brock AT dse.nl>
3163
3164         * doc/sdccman.lyx: documented sfr16/sfr32,
3165           added example for using storage class with function pointers
3166         * src/mcs51/gen.c (genPlusIncr): optimized small offsets from dptr
3167
3168 2005-06-28 Maarten Brock <sourceforge.brock AT dse.nl>
3169
3170         * device/lib/_gptrget.c: also push/pop _PSBANK, added # to 0x03
3171         * device/lib/_itoa.c,
3172         * device/lib/_ltoa.c: optimized codesize
3173         * src/SDCCsymt.c (checkSClass): added sanity check for sfr at addresses,
3174           but don't know how to suppress the double warning.
3175         * src/mcs51/gen.c (genPlusIncr): fixed bug when incrementing volatile int's
3176         * support/Util/SDCCerr.c,
3177         * support/Util/SDCCerr.h: added warning W_SFR_ABSRANGE for sanity check
3178
3179 2005-06-27 Maarten Brock <sourceforge.brock AT dse.nl>
3180
3181         * as/mcs51/asexpr.c (expr): disabled warning "not in .flat24 mode",
3182           fixed old K&R prototypes
3183         * as/mcs51/asout.c (outrb): always output as if generating 24bit addresses
3184         * device/lib/_gptrget.c,
3185         * device/lib/_gptrgetc.c,
3186         * device/lib/_gptrput.c: changed versions for new memory indicator values,
3187           also new versions for small generic pointers and banked generic pointers
3188         * src/port.h: added const_name
3189         * src/SDCC.lex: added keywords sfr16, __sfr16, sfr32, __sfr32
3190         * src/SDCC.y: added tokens SFR16, SFR32 and their sfr_attributes
3191         * src/SDCCcse.c (findPrevIc): check all associative operators
3192         * src/SDCCglue.c (emitMaps): use CONST_NAME if defined
3193         * src/SDCCicode.h: added macro IS_ASSOCIATIVE
3194         * src/SDCCmem.c: updated comments,
3195           set far-space to 0 for pdata, results in optimized code
3196         * src/SDCCmem.h: added macro CONST_NAME
3197         * src/SDCCsymt.h: renumerated generic pointer types GPTYPE_... thereby
3198           moving the info into the highest bits, see also gptrget/gptrput
3199         * src/src.dsp: added sdcc.ico to project files
3200         * src/avr/gen.c (genCast): fixed bug 0x%d
3201         * src/avr/main.c (avr_port): added "CONST (CODE)" for const_name
3202         * src/ds390/gen.c (aopForRemat, adjustArithmeticResult): disconnected direct
3203           relation between ptr_type and DCL_TYPE,
3204           (genCast): fixed bug 0x%d
3205         * src/ds390/main.c (ds390_port, tininative_port, ds400_port): added "CONST
3206           (CODE)" for const_name
3207         * src/hc08/gen.c (genCast): fixed bug 0x%d
3208         * src/hc08/main.c (_hc08_genAssemblerPreamble): added .area ...const_name,
3209           (hc08_port): added "CONST (CODE)" for const_name
3210         * src/mcs51/gen.c (aopForSym): optimized pushing ACC,
3211           (aopForRemat, adjustArithmeticResult): disconnected direct relation
3212           between ptr_type and DCL_TYPE,
3213           (aopGetUsesAcc, aopGet, aopPut): changed first parameter from asmop* to
3214           operand* and took AOP() inside function so sfr-ness can be checked,
3215           (all over): repaired calls to aopGetUsesAcc, aopGet, aopPut to comply with
3216           new prototype,
3217           (genFunction, genEndFunction): optimized stack setup,
3218           (genMinus): optimized for literals with ending zeroes (in bytes),
3219           (genCast): fixed bug 0x%d
3220         * src/mcs51/main.c (_mcs51_keywords): added sfr16 and sfr32,
3221           (mcs51_port): added "CONST (CODE)" for const_name
3222         * src/mcs51/peeph.def: made rule 226 more generic
3223         * src/pic/main.c (pic_port): added "CONST (CODE)" for const_name
3224         * src/pic16/main.c (pic16_port): added "CONST (CODE)" for const_name
3225         * src/xa51/main.c (xa51_port): added "CONST (CODE)" for const_name
3226         * src/z80/main.c (z80_port): added NULL for const_name,
3227           (gbz80_port): added NULL for const_name
3228         * support/regression/tests/bug663539.c,
3229         * support/regression/tests/sfr16.c: new tests
3230
3231 2005-06-25 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3232
3233         * device/include/mcs51/p89v51rd2.h, device/include/mcs51/at89s53.h: added.
3234
3235 2005-06-24 Raphael Neider <rneider AT web.de>
3236
3237         * device/lib/pic16/libdev/pic18f[68][567]20.c:
3238           corrected typos...
3239         * device/include/pic16/signal.h: added USBIF
3240           and SIG_USB
3241
3242 2005-06-24 Raphael Neider <rneider AT web.de>
3243
3244         * device/lib/pic16/libdev/pic18f2455.c,
3245           device/include/pic16/pic18f2455.h: NEW
3246         * device/include/pic16/pic18fregs.h,
3247           device/lib/pic16/pics.all,
3248           src/pic16/device.c: added 18f2455
3249         * device/lib/pic16/libdev/pic18f[68][567]20.c,
3250           device/include/pic16/{pic18f[68][567].h,usart.h}:
3251           replaced MULTIPLE_USARTS define with more relaible
3252           compatibility sfrs (for USART access)
3253
3254 2005-06-20 Slade Rich <slade_rich AT users.sourceforge.net>
3255
3256         * src/pic/pcode.c : Fixed problem when a string constant contains a "\r\n"
3257           and the output asm file line is printed on two lines.
3258
3259 2005-06-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3260
3261         * sim/ucsim/hc08.src/inst.cc (inst_condbranch): fixed simulation of
3262           BGT, BLE, BHI, and BLS instructions
3263         * src/hc08/gen.c (outAcc, outBitC, outBitNV, genCmpLt, genCmpGt,
3264           genCmpEq): removed
3265         * src/hc08/gen.c (genCmpEQorNE, genCmp, branchopCmp, nameCmp,
3266           negatedCmp, exchangedCmp, genhc08Code): rewrite of comparison handling,
3267           fixes bug #1216342
3268         * src/hc08/peeph.def: added rules 2g - 2l for new conditional branches
3269
3270 2005-06-15 Raphael Neider <rneider AT web.de>
3271
3272         * src/pic16/NOTES: moved Vangelis from active developers to people to contact
3273         * device/include/pic16/{6520.h,8520.h}: fixed configuration bits
3274         * src/pic16/gen.c (): prevent iTemps from being considered to be in CODESPACE,
3275           fixes bug #1221120; for symbols in CODESPACE get number of bytes to read from
3276           OP_SYM_TYPE() instead of OP_SYM_ETYPE()
3277
3278 2005-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3279
3280         * device/include/mcs51/reg764.h: Changed PB0 to PBO as requested by
3281           Marcel Telka in bug #1215704
3282
3283 2005-06-02 Slade Rich <slade_rich AT users.sourceforge.net>
3284
3285         * src/pic/pcode.c : Changed pseudo stack size to 15 to allow WSAVE to be
3286           located in shared memory bank.
3287
3288 2005-05-31 Raphael Neider <rneider AT web.de>
3289
3290         * src/pic16/{gen.c,genarith.c}: replaced sign-extension
3291           "CLRF, BTFSC <signbit>, DECF/COMF" with side-effect-free
3292           "CLRF, BTFSC <signbit>, SETF"; fixes "long>>9"
3293
3294 2005-05-27 Maarten Brock <sourceforge.brock AT dse.nl>
3295
3296         * device/lib/_strncpy.c: fixed the fix
3297
3298 2005-05-26 Raphael Neider <rneider AT web.de>
3299
3300         * src/pic16/glue.c (pic16_printIvalChar): fixed _constant_ string
3301           initializers with \0, bug #1208187
3302         * src/pic/glue.c (printIvalChar): fixed (non- and constant) string
3303           intializers with \0, bug #1208187
3304
3305 2005-05-26 Raphael Neider <rneider AT web.de>
3306
3307         * src/pic16/glue.c (pic16_printIvalChar): fixed string
3308           initializers with \0, bug #1208187
3309         * src/pic16/main.c (_process_pragma): added sanity checks
3310           for stack position and size, emit warnings when appropriate
3311
3312 2005-05-26 Maarten Brock <sourceforge.brock AT dse.nl>
3313
3314         * device/lib/_strncpy.c: fixed not filling with \0
3315
3316 2005-05-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3317
3318         * src/SDCCast.c (funcOfType, funcOfTypeVarg, stringToSymbol,
3319           createFunction),
3320         * src/SDCC.y (external_definition, enumerator, parameter_declaration,
3321           compound_statement),
3322         * src/SDCCsymt.h,
3323         * src/SDCCsymt.c (addSymChain, processFuncArgs): fixed bug #1159134
3324
3325 2005-05-24 Raphael Neider <rneider AT web.de>
3326
3327         * src/pic16/glue.c (pic16_printGPointerType): fixed #1207796
3328
3329 2005-05-24 Raphael Neider <rneider AT web.de>
3330
3331         * device/include/pic16/pic18f{442,452,458}.h: fixed wrong
3332           TRISE definitions, closes bug #1162453
3333
3334 2005-05-22 Raphael Neider <rneider AT web.de>
3335
3336         * src/pic16/main.c (_process_pragma): check for missing
3337           arguments to pragmas code and udata
3338         * device/include/pic16/pic18f{2550,4331,4455,4520}.h:
3339           consistency fixes to match other headers (thanks to Jim Paris)
3340         * device/lib/pic16/libio/i2c.ignore: 18f4331 provides no I2C
3341
3342 2005-05-21 Maarten Brock <sourceforge.brock AT dse.nl>
3343
3344         * src/SDCCicode.c (isOperandEqual): fixed missing ;
3345
3346 2005-05-19 Maarten Brock <sourceforge.brock AT dse.nl>
3347
3348         * support/regression/tests/bug1198642.c: new test
3349         * src/SDCCicode.c (isOperandEqual): fixed bug 1198642
3350         * src/SDCCcse.c (findPrevIc): added comment, please have a look
3351         * support/scripts/resource.h,
3352         * support/scripts/resource.rc,
3353         * src/src.dsp: added sdcc.ico to project as icon for sdcc.exe
3354         * support/scripts/sdcc.ico: added 32x32 icon
3355
3356 2005-05-18 Raphael Neider <rneider AT web.de>
3357
3358         * device/lib/pic16/libdev/pic18f*.c,
3359         * device/include/pic16/pic18f*.h: updated "sfr" and "at X"
3360           keywords to "__sfr" and "__at (X)"
3361         * device/include/pic16/pic18fregs.h: added pic18f4520
3362         * src/pic16/pcode.c (pic16_pCode2str): fixed (?) bug
3363           #1203088 (MPLAB compatibility)
3364
3365 2005-05-17 Raphael Neider <rneider AT web.de>
3366
3367         * device/include/pic16/pic18f{2550,4331,4455,4520}.h: NEW
3368         * device/lib/pic16/libdev/pic18f{2550,4331,4455,4520}.c: NEW
3369         * device/lib/pic16/pics.all: added new devices
3370         * src/pic16/device.c: added support for pic18f4520
3371
3372 2005-05-16 Raphael Neider <rneider AT web.de>
3373         * src/pic16/gen.{c,h}: s/mov2f/pic16_mov2f made public
3374         * src/pic16/genarith.c (genAddLit): fixed bug 1202480
3375         * src/pic16/pcode.{c,h} (pic16_newpCodeOpBit_simple): NEW
3376           convenience function for bit access
3377
3378 2005-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
3379
3380         * device/lib/printf_large.c: fixed bug 1193299
3381         * support/regression/tests/bug1057979.c: added test %3.3s
3382
3383 2005-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3384
3385         * device/include/mcs51/8051.h,
3386         * device/include/mcs51/8052.h: made parseable with lint
3387         * device/include/mcs51/lint.h: added include file for (sp)lint
3388         * doc/sdccman.lyx: added doc about use of splint (syntax checking tool)
3389         * doc/cdbfileformat.lyx,
3390         * doc/test_suite_spec.lyx: hardcoded date to the date of last text change
3391
3392 2005-05-14 Raphael Neider <rneider AT web.de>
3393
3394         * device/lib/pic16/Makefile.common.in: add --optimize-df to OPT_FLAGS
3395         * device/lib/pic16/libc/stdlib/itoa.c (new)
3396         * device/lib/pic16/libc/stdlib/Makefile: have itoa.c built
3397         * device/lib/pic16/libio/Makefile: exclude subdir according to
3398           ${subdir}.ignore for certain PICs (lacking e.g. i2c)
3399         * device/lib/pic16/libio/i2c.ignore (new): pic18f1220 has no I2C support
3400         * src/pic16/gen.c (genFunction): prevent annoying warning
3401         * src/pic16/pcode.c: renamed stack_t to dynstack_t to prevent
3402           nameclashes on BeOS
3403         * support/cpp2/cppmain.c (cpp_output_string): new
3404         * support/cpp2/cpplib.c (_cpp_do__Pragma): fixed _Pragma(""),
3405           fixes bug 1116802
3406
3407 2005-05-13 Borut Razem <borut.razem AT siol.net>
3408
3409         * src/SDCCmain.c (linkEdit): fixed bug 1195202
3410
3411 2005-05-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3412
3413         * .version: changed to version 2.5.1; back to bleeding edge development
3414
3415 2005-05-11 Borut Razem <borut.razem AT siol.net>
3416
3417         * doc/sdccman.lyx doc/cdbfileformat.lyx doc/test_suite_spec.lyx:
3418           generate PDF version 1.3 documents
3419
3420 2005-05-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3421
3422         * .version: changed to version 2.5.0
3423
3424 2005-04-27 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
3425
3426         * doc/sdccman.lyx: updated weblinks, index and smaller updates
3427
3428 2005-04-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3429
3430         * doc/sdccman.lyx: changed version 2.5.0, documented --std-c89,
3431         --std-sdcc89, --std-c99, --std-sdcc99, and the corresponding #pragmas, as
3432         well as many smaller updates.
3433         * .version: changed to version 2.5.0-pre1
3434
3435 2005-04-26 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
3436
3437         * src/SDCCmain.c (setIncludePath): added port->target to SDCC_INCLUDE_NAME
3438
3439 2005-04-26 Maarten Brock <sourceforge.brock AT dse.nl>
3440
3441         * support/regression/tests/bug1185672.c: added
3442         * src/mcs51/gen.c (aopGetUsesAcc, genCpl, genAnd, genOr, genXor): fixed
3443           bug 1185672
3444         * src/mcs51/gen.c (genCall): added comments, made it look safer
3445         * src/mcs51/gen.c (genEndFunction): simplified
3446
3447 2005-04-25 Maarten Brock <sourceforge.brock AT dse.nl>
3448
3449         * src/mcs51/ralloc.c (serialRegAssign): fixed bug 1189609
3450
3451 2005-04-14 Borut Razem <borut.razem AT siol.net>
3452
3453         * fixed bug 1045046 - SIGSEGV with really simple code?:
3454           src/pic/pcode.c (pCodeInitRegisters)- pseudo stack size increased to 16
3455           src/pic/ralloc.c (typeRegWithIdx) - error message on pseudo stack overflow
3456
3457 2005-04-14 Borut Razem <borut.razem AT siol.net>
3458
3459         * src/pic16/gen.c (genInline), src/pic16/main.c (_process_pragma),
3460           src/pic16/device.h: temporarily disabled experimental #inline pragma
3461           for 2.5.0 release
3462
3463 2005-04-14 Maarten Brock <sourceforge.brock AT dse.nl>
3464
3465         * device/include/z80/stdio.h,
3466         * device/include/z80/string.h: removed these highly incomplete files so
3467           SDCC can use the default ones in device/include/
3468
3469 2005-04-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3470
3471         * src/mcs51/gen.c (genEndFunction): removed unused variable to fix
3472         gcc warning.
3473         * device/lib/Makefile.in: default PORTINCDIR to the mcs51 subdir to
3474         fix sdcpp warnings.
3475
3476 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3477
3478         * device/include/malloc.h: removed redundant __reentrant prototypes
3479         * device/lib/_mullong.c: added working xstack variant in asm (C version
3480           doesn't pass regression tests)
3481         * device/lib/bpx.c: used __data and made bpx char for mcs51
3482         * src/SDCCast.c (decorateType): removed unused GPTYPE_IDATA,
3483           (createFunction): fixed bug with xstackPtr
3484         * src/SDCCcse.c: corrected comments
3485         * src/SDCCopt.c (convertToFcall): fixed warning in MSVC,
3486           (killDeadCode, eBBlockFromiCode): removed unused code
3487         * src/SDCCsymt.h: removed unused GPTYPE_GPTR and GPTYPE_IDATA,
3488           corrected comments
3489         * src/mcs51/gen.c (aopForSym, aopPut, toBoolean, unsaveRegisters,
3490           assignResultValue, genCall, genFunction, genEndFunction, genAnd,
3491           genOr, genXor, genAddrOf): fixed several bugs concerning xstack
3492           (genModOneByte): fixed warning in MSVC
3493         * src/mcs51/main.c (): added comments
3494         * src/mcs51/peeph.def: changed 129 to 129.a, added 129.b, 129.c & 129.d
3495
3496 2005-04-12 Maarten Brock <sourceforge.brock AT dse.nl>
3497
3498         * src/SDCCmain.c (linkEdit): oops, changed one line too many
3499
3500 2005-04-11 Maarten Brock <sourceforge.brock AT dse.nl>
3501
3502         * src/SDCCmain.c (linkEdit): fixed bug with finding crt0.o for z80
3503
3504 2005-04-10 Vangelis Rokas <vrokas AT users.sourceforge.net>
3505
3506         * src/pic16/glue.c (printIvalChar): fixed bug when emitting
3507         characters arrays of larger size than the declared one.
3508
3509 2005-04-10 Borut Razem <borut.razem AT siol.net>
3510
3511         * src/pic/gen.c (genInline),
3512           src/pic/pcode.c (newpCodeAsmDir), (pCode2str),
3513           (genericPrint), (unlinkpCodeFromBranch), (compareLabel),
3514           (findNextInstruction), (findPrevInstruction),
3515           (findInstructionUsingLabel),
3516           src/pic/pcode.h: fixed bug #1164907 - Labels not being recognized
3517         * src/pic/pcode.c (findLabel): added missing '\n'
3518         * src/src.dsp: added SDCCdwarf2.c to the project
3519
3520 2005-04-09 Borut Razem <borut.razem AT siol.net>
3521
3522         * support/scripts/sdcc.nsi: added include/hc08/* h to NSIS setup
3523
3524 2005-04-08 Raphael Neider <rneider AT web.de>
3525
3526         * src/pic16/pcode.c: added helpers defmapInsertAfter (insert a new item
3527           into the chain after a given one) and mergeDefmapSymbols (combine
3528           defmap entries for each symbol per pcode)
3529         * (createDefmap): have defmap entries merged in the end
3530         * (defmapReplaceSymRef): split defmap entries covering two accesses to
3531           a symbol before replacing one access type's symbol, merge symbols in
3532           the end (replacement symbol might already have an entry)
3533         * (assignValnums): keep reference to written WREG intact
3534
3535 2005-04-08 Raphael Neider <rneider AT web.de>
3536
3537         * src/pic16/pcode.c (struct defmap_s): named anonymous union (for
3538           Alpha)
3539
3540 2005-04-08 Vangelis Rokas <vrokas AT users.sourceforge.net>
3541
3542         * src/pic16/pcode.c (pic16_get_op2): enlarged size of array b to 128
3543         bytes
3544
3545 2005-04-07 Raphael Neider <rneider AT web.de>
3546
3547         * device/include/pic16/usart.h: added compatibility defines for
3548           devices with more than one USART
3549         * device/include/pic16/pic18f[68][567]20.h: activated above defines
3550
3551 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3552
3553         * device/lib/Makefile.in: updated for port specific include
3554
3555 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3556
3557         * support/regression/ports/mcs51/spec.mk: added mcs51 include
3558
3559 2005-04-07 Maarten Brock <sourceforge.brock AT dse.nl>
3560
3561         * device/include/8051.h,
3562         * device/include/8052.h,
3563         * device/include/at89S8252.h,
3564         * device/include/at89c55.h,
3565         * device/include/at89x051.h,
3566         * device/include/at89x51.h,
3567         * device/include/at89x52.h,
3568         * device/include/mcs51reg.h,
3569         * device/include/reg51.h,
3570         * device/include/reg764.h,
3571         * device/include/regc515c.h,
3572         * device/include/sab80515.h: (re)moved these 12 files
3573         * device/include/mcs51/8051.h,
3574         * device/include/mcs51/8052.h,
3575         * device/include/mcs51/at89S8252.h,
3576         * device/include/mcs51/at89c55.h,
3577         * device/include/mcs51/at89x051.h,
3578         * device/include/mcs51/at89x51.h,
3579         * device/include/mcs51/at89x52.h,
3580         * device/include/mcs51/mcs51reg.h,
3581         * device/include/mcs51/reg51.h,
3582         * device/include/mcs51/reg764.h,
3583         * device/include/mcs51/regc515c.h,
3584         * device/include/mcs51/sab80515.h: and added them here
3585
3586 2005-04-06 Maarten Brock <sourceforge.brock AT dse.nl>
3587
3588         * device/include/stdarg.h: changed SDCC specific keywords to double
3589           underlined form.
3590         * device/include/stdint.h: changed intptr_t and uintptr_t for others than
3591           mcs51 and ds390.
3592         * device/include/hc08/mc68hc908gp32.h,
3593         * device/include/hc08/mc68hc908jb8.h,
3594         * device/include/hc08/mc68hc908jkjl.h,
3595         * device/include/hc08/mc68hc908qy.h: fixed comments
3596         * device/include/mcs51/README: updated
3597         * device/include/mcs51/c8051f120.h: added PINRSF
3598         * device/lib/pic16/libc/stdlib/crc16.c: fixed comments
3599         * src/pic16/pcode.c: MSVC6 doesn't accept declaring new variables
3600           amidst code. Also inline is not supported.
3601
3602 2005-04-06 Raphael Neider <rneider AT web.de>
3603
3604         * src/pic16/pcode.c (pic16_pCodeReplace): also update pcflow->end
3605         * (createDefmap): fixed CALLs to depend on FSR1 and RETLW to restore
3606           callers stack/frame pointers
3607
3608 2005-04-06 Vangelis Rokas <vrokas AT users.sourceforge.net>
3609
3610         * device/include/pic16/usart.h: added, missing in previous commit,
3611         * device/include/pic16/adc.h: fixed typo,
3612         * device/lib/pic16/libc/utils/cvtdec.S: added missing in previous
3613         commit,
3614         * device/lib/pic16/libc/stdlib/g_ftoa.S: modified to include
3615         <p18fxxx.inc>
3616         * device/lib/pic16/libc/stdio/streams.c: leave stdin, stdout
3617         uninitialized because a bug appears with gplink
3618         * device/lib/pic16/{some makefiles}: moved $(CSTD) from CFLAGS to
3619         COMPILE_FLAGS and added CPPFLAGS with -nostdinc because sdcpp
3620         complains for unrecognised option
3621
3622 2005-04-05 Raphael Neider <rneider AT web.de>
3623
3624         * src/pic16/gen.c (pic16_popCopyReg): made copying work for extended
3625           structs as well (using memcpy)
3626         * (genFunction): fixed comparison, used pCodeOpLabel to reduce warning
3627           on ISRs (GOTO has no label)
3628         * src/pic16/device.h: added OF_OPTIMIZE_DF
3629         * src/pic16/main.c: added compiler switch --optimize-df to enable the
3630           new data flow analysis/optimization
3631         * src/pic16/pcode.c: added (prototypes for and implementation of)
3632           dataflow analysis functions, fixed pCodeInstructions' inCond and
3633           outCond values, made RCALL a branch instruction
3634         * (pic16_unlinkpCode): keep C line if possible
3635         * (pic16_pCodeUnlink): removed cast on left side of assignment, have
3636           C line moved if possible
3637         * (pic16_getRegFrompCodeOp): NEW, improved version of...
3638         * (pic16_getRegFromInstruction,pic16_getRegFromInstruction2): changed
3639           to use new pic16_getRegFrompCodeOp (works for more SFRs)
3640         * (pic16_BuildFlow): fixed skip instructions with label (did not start
3641           new flow)
3642         * (pic16_getJumptabpCode): NEW, needed in...
3643         * (LinkFlow): fixed handling of jumptables, calls and conditional
3644           branches
3645         * (pic16_InsertCommentAfter): NEW
3646         * (pic16_pCodeReplace): made verbose and flow preserving
3647         * (AnalyzeFlow): added call to data flow analysis
3648         * src/pic16/pcode.h: added defmaps to pCodeFlow struct
3649         * src/pic16/pcodeflow.h: added PCC_STATUS to mean all STATUS bits
3650         * src/pic16/ralloc.c (packRegsForAssign): added return 1 in the end
3651
3652 2005-04-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3653
3654         * src/SDCCast.c (decorateType): fixed bug #1105626
3655
3656 2005-04-02 Vangelis Rokas <vrokas AT users.sourceforge.net>
3657
3658         * device/include/asm/pic16/features.h,
3659         * pic18f*.h headers,
3660         * device/include/pic16/adc.h,
3661         * device/include/pic16/delay.h,
3662         * device/include/pic16/i2c.h,
3663         * device/include/pic16/malloc.h,
3664         * device/include/pic16/stdio.h,
3665         * device/include/pic16/stdlib.h,
3666         * device/include/pic16/string.h,
3667         * device/lib/pic16/libc/stdio/printf_tiny.c,
3668         * device/lib/pic16/libc/stdio/printf_small.c,
3669         * device/lib/pic16/libc/stdio/strmgpsim.c,
3670         * device/lib/pic16/libc/stdio/strmmssp.c,
3671         * device/lib/pic16/libc/stdio/strmusart.c,
3672         * device/lib/pic16/libc/stdio/vfprintf.c,
3673         * device/lib/pic16/libc/stdlib/ltoa.c,
3674         * device/lib/pic16/libc/stdlib/putchar.c,
3675         * device/lib/pic16/libc/stdlib/x_ftoa.c,
3676         * device/lib/pic16/libc/stdlib/memchrpgm.c,
3677         * device/lib/pic16/libc/stdlib/memchrram.c,
3678         * device/lib/pic16/libc/stdlib/memcpypgm2ram.c,
3679         * device/lib/pic16/libc/stdlib/memcpyram2ram.c,
3680         * device/lib/pic16/libio/adc/adcbusy.c,
3681         * device/lib/pic16/libio/adc/adcread.c,
3682         * device/lib/pic16/libio/adc/adcsetch.c,
3683         * device/lib/pic16/libio/usart/ubaud.c,
3684         * device/lib/pic16/libio/usart/ubusy.c,
3685         * device/lib/pic16/libio/usart/udrdy.c,
3686         * device/lib/pic16/libio/usart/uopen.c,
3687         * device/lib/pic16/libio/usart/uputc.c,
3688         * device/lib/pic16/libsdcc/gptr/gptrget1.c,
3689         * device/lib/pic16/libsdcc/gptr/gptrget2.c,
3690         * device/lib/pic16/libsdcc/gptr/gptrget3.c,
3691         * device/lib/pic16/libsdcc/gptr/gptrget4.c,
3692         * device/lib/pic16/libsdcc/gptr/gptrput1.c,
3693         * device/lib/pic16/libsdcc/gptr/gptrput2.c,
3694         * device/lib/pic16/libsdcc/gptr/gptrput3.c,
3695         * device/lib/pic16/libsdcc/gptr/gptrput4.c: modified all SDCC
3696         specific keywords to double underlined form,
3697         * device/lib/pic16/libc/Makefile.rules,
3698         * device/lib/pic16/libsdcc/Makefile.rules,
3699         * device/lib/pic16/libm/Makefile,
3700         * device/lib/pic16/libio/Makefile.rules: added CSTD macro in CFLAGS
3701         to compile with C standard set in Makefile.common
3702         * device/lib/pic16/libc/stdlib/Makefile: added new C sources
3703         rand.c and crc.c in compilation process,
3704         * device/lib/pic16/libsdcc/int/divuint.c,
3705         * device/lib/pic16/libsdcc/long/divulong.c: changed declaration of
3706         `c' from signed to unsigned,
3707         * device/lib/pic16/startup/crt0.c,
3708         * device/lib/pic16/startup/crt0i.c,
3709         * device/lib/pic16/startup/crt0iz.c: adopted to all SDCC specific
3710         keywords to double underlined form, bug fixes in _do_cinit function
3711         which prevented the correct initialization of the .idata segment,
3712         * src/pic16/pcoderegs.c (insideLRBlock): fixed a bug that caused the
3713         core to enter a infinite loop
3714         * device/lib/pic16/libc/stdlib/rand.c, crc.c: new files
3715
3716 2005-04-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3717
3718         * src/SDCCicode.c (getArraySizePtr): fixed bug #1122171
3719
3720 2005-04-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3721
3722         * device/include/Makefile.in: add support for hc08 subdirectory
3723         * device/include/hc08/: new subdirectory
3724         * device/include/hc08/mc68hc908jkjl.h: new header contributed by
3725         Lucas Loizaga, thanks!
3726         * device/include/hc08/mc68hc908qy.h,
3727         * device/include/hc08/mc68hc908gp32.h,
3728         * device/include/hc08/mc68hc908jb8.h: moved hc08 register defs to
3729         their own directory. Changed internal macro names to use the compiler
3730         reserved namespace. Changed SDCC specific keywords to double
3731         underlined form.
3732         * device/include/math.h,
3733         * device/include/malloc.h,
3734         * device/include/stdarg.h,
3735         * device/include/stdbool.h
3736         * device/include/string.h,
3737         * device/include/tinibios.h,
3738         * device/include/ds400rom.h,
3739         * device/include/8051.h,
3740         * device/include/8052.h,
3741         * device/include/80c51xa.h,
3742         * device/include/at89c55.h,
3743         * device/include/at89S8252.h,
3744         * device/include/at89x51.h,
3745         * device/include/at89x52.h,
3746         * device/include/ds80c390.h,
3747         * device/include/reg764.h,
3748         * device/include/regc515c.h,
3749         * device/include/sab80515.h,
3750         * device/include/mcs51/c8051f000.h,
3751         * device/include/mcs51/c8051f018.h,
3752         * device/include/mcs51/c8051f020.h,
3753         * device/include/mcs51/c8051f040.h,
3754         * device/include/mcs51/c8051f060.h,
3755         * device/include/mcs51/c8051f120.h,
3756         * device/include/mcs51/c8051f300.h,
3757         * device/include/mcs51/c8051f310.h,
3758         * device/include/mcs51/c8051f320.h,
3759         * device/include/mcs51/c8051f330.h,
3760         * device/include/mcs51/c8051f350.h,
3761         * device/include/z180.h: Changed SDCC specific keywords to double
3762         underlined form.
3763
3764 2005-03-31 Vangelis Rokas <vrokas AT users.sourceforge.net>
3765
3766         * src/pic16/device.c (Pics16[]): added devices 18F2550, 18F4331,
3767         18F4455,
3768         * (pic16_assignConfigWordValue): disable testing of configuration
3769         register value with config mask,
3770         * src/pic16/gen.c (pic16_testStackOverflow): prefix stack test
3771         function with port->fun_prefix,
3772         * (genFunction): when generating a naked interrupt function never
3773         create an absolute segment placed in interrupt vector address, place
3774         the actual interrupt function at IVA instead, when an interrupt
3775         function is generated with unspecified interrupt then do not create
3776         the absolute section,
3777         * (genGenPointerGet, genGenPointerSet, genPackBits): replace all
3778         code for generating a call to generic pointer get/put function with
3779         a call to function pic16_callGenericPointer(),
3780         * src/pic16/genutils.c (pic16_callGenericPointerRW): NEW, generates
3781         the call to the generic pointer get/put functions with prefixing the
3782         function name with port->fun_prefix,
3783         * src/pic16/glue.c (pic16glue): ifdef-out test of OF_LR_SUPPORT,
3784         * src/pic16/main.c (_process_pragma): prefix function with
3785         port->fun_prefix,
3786         * (_pic16_finaliseOptions): define macro __18Fxxxx macro when
3787         calling assembler, old 18Fxxxx macro is deprecated,
3788         * src/pic16/pcode.c (unlinkpCodeFromBranch): added PC_INLINE and
3789         PC_ASMDIR in while condition,
3790         * (findInstruction): add PC_ASMDIR in while condition,
3791         * (buildCallTree): prefix main with port->fun_prefix,
3792         * (pic16_pCode2str): fixed bug that didn't emit the memory access
3793         identifier for variable with banked access in instructions BTFSS,
3794         BTFSC, BCF, BSF, BTG
3795         * (AnalyzeFlow): moved call to OptimizepCode to pic16_AnalyzeBanking,
3796         * src/pic16/pcodepeep.c (pCodeOpCompare): increase size of b to 1024,
3797         * src/pic16/pcoderegs.c (pic16_pCodeRegoptimizeRegUsage): don't
3798         perform optimization when enviroment variable NO_REG_OPT is set,
3799         * (insideLRBlock): NEW, return 1 if register is inside an
3800         INF_LOCALREGS block,
3801         * (RemoveRegFromLRBlock): remove a register that is completely
3802         eliminated by register optimization, but it is still left in local
3803         register store/restore in/from stack block,
3804         * (Remove2pcodes): after removing register, check to see if it
3805         should be removed from local register store/restore in/from stack
3806         block,
3807         * src/pic16/ralloc.c (pic16_decodeOp): added decode for
3808         DUMMY_READ_VOLATILE,
3809
3810         * device/include/pic16/adc.h: minor prototype modifications and
3811         update,
3812         * device/include/pic16/malloc.h: added GPL notice various
3813         modifications,
3814         * device/include/pic16/stdint.h: NEW, standard header for ints
3815         * device/include/pic16/delay.h: NEW, header for delay functions,
3816         delay10tcy, delay100tcy, delay1ktcy, delay10ktcy, delay100ktcy,
3817         delay1mtcy,
3818         * device/include/pic16/signal.h: NEW, header providing helper macros
3819         for implementing signal handlers,
3820         * device/include/pic16/stdio.h: added prototypes for functions,
3821         printf, vprintf, sprintf, vsprintf, fprintf, vfprintf. Added
3822         prototypes for stdin and stdout, added macro PUTCHAR to
3823         automatically implement putchar function prototype,
3824         * device/include/pic16/usart.h: modified and updated USART library,
3825         * device/lib/pic16/libio/adc/,
3826         * device/lib/pic16/libio/i2c: some modifications to improve library
3827         performance,
3828         * device/lib/pic16/libc/stdio/: modifications for the new printf*
3829         family of functions,
3830         * device/lib/pic16/libc/stdlib/: various modifications in the malloc
3831         family of functions and other sources,
3832         * device/lib/pic16/libio/usart/: NEW, c sources for the usart module
3833         of the PIC18Fxx[28] devices,
3834         * device/lib/pic16/libc/delay/: NEW, c sources for the delay functions,
3835         * device/lib/pic16/libc/utils/: minor modifications in the .S sources,
3836         * device/lib/pic16/startup/{crt0i.c, crt0iz.c}: redesign of the
3837         _do_cinit function, because the previous failed when local variables
3838         where not placed in the same memory bank,
3839         * device/lib/pic16/libsdcc/char/: various modifications to improve
3840         library performance,
3841         * doc/sdccman.lyx: some reorganization of the PIC16 part, added many
3842         information on the new functions of the c library and more...
3843
3844 2005-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3845
3846         * src/SDCCBBlock.c (iCodeBreakDown): fixed bug #1170212
3847
3848 2005-03-26 Raphael Neider <rneider AT web.de>
3849
3850         * src/pic16/gen.c (genSkipc): fixed semantics (execute branch
3851           if condition == CARRY)
3852         * (genCmp): adapted to new genSkipc semantics
3853         * src/pic16/genutils.c (pic6_genCmp_special): removed side effect
3854           on rIfx (genCmp was broken)
3855
3856 2005-03-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3857
3858         * src/SDCCmain.c (setDefaultOptions, optionsTable[], parseCmdLine),
3859         * src/z80/main.c (_keywords[]),
3860         * src/SDCCglobal.h (struct options),
3861         * src/SDCC.y,
3862         * src/SDCC.lex (isTargetKeyword, doPragma, pragma_tbl[]): new pragmas
3863         to enable/disable SDCC and C99 extensions/keywords (std_c89, std_sdcc89,
3864         std_c99, std_sdcc99). Also, equivalent command line options (--std-c89,
3865         --std-sdcc89, --std-c99, --std-sdcc99). SDCC specific keywords are
3866         always available in leading double underscore form. The C99 support is
3867         mostly missing, but it's a start.
3868         * support/regression/tests/bug-227710.c: fixed nonconforming use of
3869         reserved identifier "__data".
3870
3871 2005-03-24 Maarten Brock <sourceforge.brock AT dse.nl>
3872
3873         * src/mcs51/peeph.def: fixed bug 1170013
3874
3875 2005-03-22 Maarten Brock <sourceforge.brock AT dse.nl>
3876
3877         * device/include/mcs51reg.h: fixed bug 842007
3878
3879 2005-03-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3880
3881         * src/SDCCcflow.c (dfNumCompare): committed the wrong version of this
3882         last time.
3883
3884 2005-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3885
3886         * src/port.h (struct PORT),
3887         * src/avr/ralloc.c (avr_assignRegisters),
3888         * src/avr/main.c,
3889         * src/ds390/ralloc.c (ds390_assignRegisters),
3890         * src/ds390/main.c,
3891         * src/hc08/ralloc.c (hc08_assignRegisters),
3892         * src/hc08/main.c,
3893         * src/mcs51/ralloc.c (mcs51_assignRegisters),
3894         * src/mcs51/main.c,
3895         * src/pic/ralloc.c (pic14_assignRegisters),
3896         * src/pic/main.c,
3897         * src/pic16/ralloc.c (pic16_assignRegisters),
3898         * src/pic16/main.c,
3899         * src/xa51/ralloc.c (xa51_assignRegisters),
3900         * src/xa51/main.c,
3901         * src/z80/ralloc.c (z80_assignRegisters),
3902         * src/z80/ralloc.h,
3903         * src/SDCCopt.c (eBBlockFromiCode, replaceRegEqv, killDeadCode),
3904         * src/SDCCcse.c (ifxOptimize, cseBBlock, cseAllBlocks),
3905         * src/SDCCcse.h,
3906         * src/SDCCdflow.c (computeDataFlow),
3907         * src/SDCCdflow.h,
3908         * src/SDCCloop.c (addDefInExprs, loopInvariants, loopOptimizations),
3909         * src/SDCCloop.h,
3910         * src/SDCCcflow.c (*),
3911         * src/SDCCcflow.h,
3912         * src/SDCCBBlock.c (iCodeBreakDown, dumpEbbsToFileExt, eBBWithEntryLabel),
3913         * src/SDCCBBlock.h (struct ebbIndex): new struct that keeps two copies
3914         of the eBBlock list, sorted by both bbnum and dfnum. (fixes bug with
3915         immedDom() returning wrong block; probably fixes bug #1160833)
3916
3917 2005-03-20 Borut Razem <borut.razem AT siol.net>
3918
3919         * support/scripts/inc2h.pl: WIN32 port
3920
3921 2005-03-19 Maarten Brock <sourceforge.brock AT dse.nl>
3922
3923         * device/lib/makefile.in: added abs.c and labs.c
3924
3925 2005-03-17 Maarten Brock <sourceforge.brock AT dse.nl>
3926
3927         * device/include/stdint.h: added
3928         * device/lib/abs.c: added
3929         * device/lib/labs.c: added
3930         * device/include/stdlib.h: added abs() and labs() prototypes
3931         * device/lib/libsdcc.lib: added abs and labs
3932         * device/include/float.h,
3933         * device/lib/_fsmul.c,
3934         * device/lib/printf_fast.c,
3935         * device/lib/printf_tiny.c: updated comments
3936
3937 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3938
3939         * src/SDCCicode.c (geniCodeSwitch, geniCodeJumpTable): fixed
3940         bug #1164313
3941
3942 2005-03-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
3943
3944         * src/SDCCcse.c (cseBBlock): retain assignment to self when volatile
3945         * src/SDCCast.c (isLoopCountable): fixed bug #1161985
3946
3947 2005-03-15 Maarten Brock <sourceforge.brock AT dse.nl>
3948
3949         * device/lib/printf_large.c: removed inline assembly for portability and
3950           readability. Use printf_fast if speed or size are more important.
3951         * src/pic16/gen.c: removed conditions around use of DEBUGpc
3952         * src/pic16/genutils.h: added define for DEBUGpc for MSVC
3953
3954 2005-03-15 Vangelis Rokas <vrokas AT users.sourceforge.net>
3955
3956         * src/pic16/genutils.c (pic16_genCmp_special): initialized offs to
3957         prevent compiler warning
3958
3959 2005-03-14 Vangelis Rokas <vrokas AT users.sourceforge.net>
3960
3961         * device/lib/pic16/startup/crt0i.c (_cinit): local variables where
3962         moved to level 0 and declared as static. Also they are explicit
3963         placed in access bank. This was necessery because some times they
3964         might cross memory bank boundaries. crt0iz.c is *NOT* updated!!!
3965         * src/pic16/device.h: added flag OPTIMIZE_CMP to enable some compare
3966         optimizations. Currently only compare to unsigned char is implemented,
3967         * src/pic16/gen.c: added fReturnIdx array,
3968         * (struct resolvedIfx) is moved to gen.h and made public,
3969         * (struct _G): added sregsAlloc and sregsAllocSet fields,
3970         * (aopForSym): added an optimization to directly store in stack of
3971         the operand of a SEND iCode,
3972         * (pic16_aopOp): don't return return registers as strings (AOP_STR)
3973         but as registers instead (AOP_REG) using the fReturnIdx array,
3974         * (pic16_freeAsmop): remove the freed register from the
3975         _G.sregsAlloc field,
3976         * (pic16_aopGet): in case AOP_STR, the compare to 'a' is changed to
3977         a compare of 'WREG',
3978         * (pic16_popGetTempRegCond): changed function prototype, now
3979         function takes also a bitVector argument v which holds the current
3980         set of registers that are allocated for stack access by aopForSym,
3981         registers allocated in aopForSym for accessing stack symbols are not
3982         any more part of the functions usedRegs field,
3983         * (genCall): some times aopOp is called for a stack variable to be
3984         send, aopForSym might perform the push, if this is true make sure
3985         that genCall doesn't push the variable twice by testing _G.resDirect,
3986         * (genFunction): changed testing for unspecified interrupt number
3987         from 256 to INTNO_UNSPEC,
3988         * modified selection scheme of frame pointer generation. Previously
3989         if function did use local registers a frame pointer was generated,
3990         now a frame pointer is generated only if function has arguments
3991         (that need PLUSW2 register access), or has stack arguments, or the
3992         compiler is not instructed to omit the frame pointer,
3993         * (genEndFunction): before restoring local registers that were saved
3994         in the function preamble, also restore the registers that *might*
3995         have been allocated for stack access,
3996         * (genRet): removed some old comments,
3997         * (genCmp, the active (RN's) version): added a call to the
3998         pic16_genCmp_special function to perform the compare with a more
3999         robust and optimized way,
4000         * (genInline): a feature has been added in inline code generation,
4001         which allows a wildcard variable substitution when writing inline
4002         assembly. Code is incomplete and experimental therefore undocumented,
4003         * (genCast): changed order of aopOp for result and right to allow
4004         aopForSym to directly load the result if possible,
4005         * src/pic16/genutils.c (selectCompareOp, pic16_genCmp_special): NEW,
4006         perform an optimized compare on some selected special occasions,
4007         * src/pic16/genutils.h: declaration of resolvedIfx structure from gen.c,
4008         * src/pic16/glue.c (pic16createInterrupVect): make sure we never
4009         generate an IVT any more,
4010         * src/pic16/main.c (pic16_optionsTable): added command line option
4011         --optimize-cmp,
4012         * (_pic16_initPaths): when calling C preprocessor define pic18fXXXX
4013         macro too, when calling assembler define pic18fXXXX *and* __18Fxxxx
4014         macros,
4015         * src/pic16/NOTES: Raphael Neider added in list of active developers
4016         * src/pic16/pcode.c (OPT_TYPE_STR): added strings jumptable_begin and
4017         jumptable_end to prevent bug #,
4018         * (pic16_pciADDWFC, ADDFWC, COMF, CLRF): added some missing flags in
4019         inCond and outCond fields,
4020         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): add a fix for bug #,
4021         * src/pic16/ralloc.c (serialRegAssign): explicit set willCS to 0 to
4022         turn off register spilling,
4023         * (packRegsForOneUse): synced with other ports' versions although it
4024         is not used currently,
4025         * (pic16_packRegisters): added an optimization while reading
4026         structure bitfields, some registers may be saved (malloc code is
4027         decreased by 80 bytes)
4028
4029 2005-03-12 Vangelis Rokas <vrokas AT users.sourceforge.net>
4030
4031         * src/SDCCcse.c (cseBBlock): inside 'do operand lookup' loop test if
4032         left is a bitfield, if yes, then don't optimize assignment. Perhaps
4033         this can be optimized more?
4034
4035 2005-03-10 Raphael Neider <rneider AT web.de>
4036
4037         * src/pic16/gen.c (pic16_loadFSR0, genPackBits, genUnpackBits,
4038           genNearPointerGet): (hopefully) fixed access to bitfields via
4039           pointers (p->bitN = x; and x = p->bitN; failed)
4040
4041 2005-03-09 Paul Stoffregen <paul AT pjrc.com>
4042
4043         * device/lib/printf_fast.c: fix leading zero format, eg "%02d"
4044
4045 2005-03-09 Raphael Neider <rneider AT web.de>
4046
4047         * src/SDCCopt.c (killDeadCode): fixed bug #1156016
4048
4049 2005-03-06 Maarten Brock <sourceforge.brock AT dse.nl>
4050
4051         * src/SDCCicode.h: moved CRITICAL and ENDCRITICAL from SKIP_IC2 to SKIP_IC
4052         * src/mcs51/ralloc.c (willCauseSpill): added check for REG_BIT type,
4053           (regTypeNum): set REG_BIT type if necessary
4054         * src/mcs51/ralloc.h: added define REG_BIT, used to fix bug 1144613
4055         * support/regression/tests/critical.c: check bug 1144613
4056
4057 2005-03-02 Raphael Neider <rneider AT web.de>
4058
4059         * src/pic16/gen.c (genRightShiftLiteral): fixed bug #1154256
4060
4061 2005-02-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4062
4063         * src/avr/ralloc.c (serialRegAssign),
4064         * src/ds390/ralloc.c (serialRegAssign),
4065         * src/hc08/ralloc.c (serialRegAssign),
4066         * src/mcs51/ralloc.c (serialRegAssign),
4067         * src/pic/ralloc.c (serialRegAssign),
4068         * src/pic16/ralloc.c (serialRegAssign),
4069         * src/xa51/ralloc.c (serialRegAssign),
4070         * src/z80/ralloc.c (serialRegAssign): fixed bug #1105154
4071
4072 2005-02-22 Maarten Brock <sourceforge.brock AT dse.nl>
4073
4074         * src/SDCCast.c (decorateType): fixed bug 1124787
4075
4076 2005-02-20 Hubert Sack <sack AT digiplan.de>
4077         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4078
4079         * src/mcs51/peeph.def: added peepholes 3.h-k and 132.a-f from
4080         patch #1121755
4081
4082 2005-02-20 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4083
4084         * src/SDCCpeeph.def: new keyword "labelRefCountChange" which allows peepholes
4085         to keep the correct label reference count when adding/removing references
4086         to labels. A peephole file using this is appended to patch #1144962.
4087
4088 2005-02-14 Raphael Neider <rneider AT web.de>
4089
4090         * device/lib/pic16/libc/string/memccpy.c: changed 3rd argument to char
4091         * src/SDCC.lex (process_pragma): fixed to make disable_warning work for PIC16
4092         * src/pic16/gen.c (aopForSym, calls to pic16_aopOp): prevent unneccessary
4093           retrievals of result operand's value on assignment
4094
4095 2005-02-13 Vangelis Rokas <vrokas AT otenet.gr>
4096
4097         * device/include/pic16/string.h: modified prototype for memccpy()
4098         to memccpy(void *, void *, char, size_t)
4099         * src/pic16/gen.c (genFunction, genEndFunction): reenable if-case to
4100         check whether to omit frame pointer or not,
4101         * (genInline): convert all occurences of "\n" to LF in inline
4102         assembler blocks, this helps formatting the inline text,
4103         * (pic16_loadFSR0): modified prototype,
4104         * (genNearPointerGet, genNearPointerSet): reorganization of code,
4105         removed some 8051 legacy code,
4106         * (genPackBits): enabled handling bitfields exceeding one byte in size,
4107         * src/pic16/ralloc.c (pic16_assignRegisters): clear dynrIdx variable
4108         before allocating temporary registers in functions,
4109
4110 2005-02-11 Maarten Brock <sourceforge.brock AT dse.nl>
4111
4112         * support/regression/tests/bitvars.c: corrected the "fix"
4113
4114 2005-02-10 Maarten Brock <sourceforge.brock AT dse.nl>
4115
4116         * support/regression/tests/bitvars.c,
4117         * support/regression/tests/bitwise.c,
4118         * support/regression/tests/rotate.c: "fixed" problems on Alpha
4119
4120 2005-02-10 Raphael Neider <rneider AT web.de>
4121
4122         * src/pic16/pcode.c (assignToSameBank) : fixed cast to pointer of
4123           different size for Alpha
4124         * src/pic16/gen.c (genCmpEq) : improved compare with 0
4125
4126 2005-02-09 Raphael Neider <rneider AT web.de>
4127
4128         * src/SDCC.lex(doPragma) : save and restore warning options as well
4129           (also added new stack plus clone- and copyAndFreeSDCCERRG())
4130         * have #pragma less_pedantic set the errorlevel to WARNING
4131           (fixes #1117001)
4132         * (cloneOptimize) : fixed wrong malloc's size
4133         * support/Util/SDCCerr.[ch] : made SDCCERRG globally accessible to
4134           facilitate correct handling of #pragma (save|restore)
4135
4136 2005-02-09 Maarten Brock <sourceforge.brock AT dse.nl>
4137
4138         * src/mcs51/gen.c: removed non-standard C nameless struct/union
4139
4140 2005-02-04 Slade Rich <slade_rich AT users.sourceforge.net>
4141
4142         * src/pic/gen.c : Fix for bugs #1080519 & #1115662.
4143
4144 2005-02-03 Maarten Brock <sourceforge.brock AT dse.nl>
4145
4146         * device/include/mcs51/c8051f120.h: added declarations for sbit port 2,3&4
4147
4148 2005-02-02 Raphael Neider <rneider AT web.de>
4149
4150         * src/SDCCast.c (processParms): disabled W_NONRENT_ARGS for pic16 port
4151         * src/pic16/gen.c (aopForSym): reenabled special case for function pointers
4152         * (pic16_storeForReturn): fixed to allow returning function pointers
4153         * (genPackBits): improved accessing full bytes, implemented for GPOINTERs
4154         * device/include/pic16/{stddef.h,stdbool.h}: added
4155
4156 2005-02-02 Maarten Brock <sourceforge.brock AT dse.nl>
4157
4158         * device/include/mcs51/c8051f040.h: added define CPT2_PAGE
4159
4160 2005-02-01 Slade Rich <slade_rich AT users.sourceforge.net>
4161
4162         * src/pic16/pic16.dsp : Added file graph.c to make it compile under windows
4163         * src/pic16/Makefile.bcc : Do not use this file but added file graph.c as it
4164          appeared to be required
4165
4166 2005-01-31 Borut Razem <borut.razem AT siol.net>
4167
4168         * support/scripts/sdcc.nsi: added include/asm/ds390, include/asm/mcs51,
4169           include/mcs51 and include/z80 directories to the package
4170
4171 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4172
4173         * src/hc08/gen.c (genFunction): fixed bug #1112752
4174
4175 2005-01-30 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4176
4177         * src/mcs51/peeph.def: adapted peephole 258.x to changed gen.c (genAnd)
4178
4179 2005-01-29 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4180
4181         * src/mcs51/gen.c (genAnd): accessing LSB/MSB by rotating acc
4182
4183 2005-01-29 Maarten Brock <sourceforge.brock AT dse.nl>
4184
4185         * device/include/Makefile.in: create/copy mcs51 and z80 include subdirs
4186
4187 2005-01-27 Maarten Brock <sourceforge.brock AT dse.nl>
4188
4189         * device/include/c8051fxxx.h: removed these 6 files
4190         * device/include/mcs51/c8051fxxx.h: added these 11 new files
4191
4192 2005-01-26 Raphael Neider <rneider AT web.de>
4193
4194         * src/pic16/gen.c (genAssign): fixed assignment from longs
4195           in codespace (were cut to three bytes)
4196         * (genDummyRead): implemented (except for CODESPACE...),
4197           fixed bug #1108575
4198         * src/pic16/glue.c (emitStatistics): beautified
4199         * device/lib/pic16/libm/Makefile: added include path
4200
4201 2005-01-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4202
4203         * src/z80/gen.c (aopPut): fixed bug #1103902
4204
4205 2005-01-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4206
4207         * device/lib/expf.c: fixed bug #1095792
4208
4209 2005-01-24 Vangelis Rokas <vrokas AT otenet.gr>
4210
4211         * device/lib/pic16/libm: added Math library sources
4212
4213 2005-01-24 Raphael Neider <rneider AT web.de>
4214
4215         * src/pic16/pcode.h: added second memory operand to pCodeOpReg
4216           to enable upcast to pCodeOpReg2 (there is no type tag to
4217           differenciate the two and pic16_popGet2p cast into PCOR2)
4218         * src/pic16/main.c (_process_pragma): fixed another malloc bug
4219           (sizeof(sectNames) changed to sizeof(sectName))
4220           Both patches fix segfaults under MinGW.
4221
4222 2005-01-23 Raphael Neider <rneider AT web.de>
4223
4224         * src/pic16/{device.c,pcode.c}: s/free/Safe_free/g for
4225           Safe_[mc]?alloc()'ed variables
4226         * src/pic16/gen.c (pic16_aopOp,pic16_popGet): added handling
4227           of (byte sized) temporaries (assign them to WREG for now)
4228         * src/pic16/main.c (_process_pragma): fixed nasty malloc bug
4229           (used sizeof(set *sectSyms) instead of sizeof(struct sectSym)),
4230           this might fix SIGSEGVs on MinGW...
4231         * src/SDCCopt.c (killDeadCode): restored original behaviour
4232           (volatile operands might get thrown away though)
4233
4234 2005-01-23 Vangelis Rokas <vrokas AT otenet.gr>
4235
4236         * src/pic16/gen.c: fixed bug #1106975,
4237         * src/pic16/gen.c: fixed possible bug #1102572, now during TOS
4238         pointer update, INTCON is saved, global interrupts are disabled and
4239         restored after updateing TOS.
4240         * src/SDCC.y, src/SDCC.lex, src/SDCCsymt.c, src/SDCCsymt.h:
4241         * added function attribute 'shadowregs' to take advantage of shadow
4242         registers,
4243         * added function attribute 'wparam' as an alternative to the wparam
4244         pragma,
4245         * support/Utils/SDCCerr.[ch]: added error E_SHADOWREGS_NO_ISR when
4246         user declares a non-ISR function as 'shadowregs',
4247         * doc/sdccman.lyx: updated to reflect recent changes of pic16 port
4248
4249 2005-01-22 Vangelis Rokas <vrokas AT otenet.gr>
4250
4251         * .version: bumped version number to 2.4.8
4252         * device/lib/pic16/pics.all: list of PIC18F devices supported by
4253         pic16 port,
4254         * device/lib/pic16/libio/i2c/: I2C module support library,
4255         * device/include/pic16/i2c.h: I2C support library header,
4256         * device/lib/pic16/libc/stdio/: standard IO support sources,
4257         * (printf_small.c): printf_small() source, supports float print,
4258         * (printf_tiny.c): printf_tiny() source, does not support floats,
4259         * device/lib/pic16/Makefile.common.in: added OPT_FLAGS macro to
4260         enable global optimizations for entire library source, other
4261         Makefiles in the source tree are also modified to reflect this,
4262         * device/lib/pic16/libc/stdlib/putchar.c (putchar): dummy putchar()
4263         function,
4264         * doc/sdccman.lyx: updated to reflect new changes,
4265         * src/pic16/gen.c (aopForSym): don't handle sym->iaccess in
4266         sym->onStack if-case,
4267         * src/pic16/main.c (_pic16_keywords): commented out keywords bit,
4268         sbit, idata, _idata, xdata, _xdata,
4269         * added pragma library, to link an external library, (see doc),
4270         * removed command line options, --pomit-config-words, --pomit-ivt,
4271         --pleave-reset-vector,
4272         * (pic16_finaliseOptions): when define macro SDCC_MODEL_{SMALL/LARGE}
4273         when calling assembler to reflect memory model used, also define
4274         macro STACK_MODEL_{SMALL/LARGE} when compiling and assembling to
4275         reflect stack model used,
4276         * src/pic16/ralloc.c (pic16_allocDirReg): when operand is allocated
4277         on stack return NULL,
4278
4279 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4280
4281         * src/SDCCopt.c (killDeadCode): do not throw iCodes away if one
4282           of the operands is volatile. Fixes #1020220
4283
4284 2005-01-22 Daniel Winkler <post AT danielwinkler.de>
4285
4286         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): reenabled optimization
4287         * (OptimizeRegUsage): make sure that there is really no other flow where
4288           the first pCode is used
4289
4290 2005-01-22 Raphael Neider <rneider AT web.de>
4291
4292         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): disabled optimization
4293           to fix #1106967 (pCode->seq are not set up correctly)
4294
4295 2005-01-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4296
4297         * src/SDCCglue.c (glue): make sure code area is declared before the
4298         static initialization area.
4299
4300 2005-01-21 Raphael Neider <rneider AT web.de>
4301
4302         * device/lib/Makefile.in: fixed test for pic16 install dir
4303         * device/lib/pic16/*/Makefile*: modified compile flags to enable
4304           optimizations
4305         * doc/sdccman.lyx: updated banksel optimization, removed --flr-support and
4306           added --optimize-goto compiler switch and pragma wparam documentation
4307         * src/pic16/pcode.c (pic16_OptimizeBanksel): removed statistics dump
4308         * src/pic16/pcodepeep.c (pic16_pCodeOpCopy): fixed copying of WREG, PRODL
4309           and PRODH closing bug #1071770 (peephole optimizer)
4310
4311 2005-01-19 Raphael Neider <rneider AT web.de>
4312
4313         * src/SDCCglobl.h: ensure that PATH_MAX >= 2048 to guarantee
4314           cmdLine buffers (used when calling sdcpp...) are large enough
4315           (MAX_PATH=256 truncates arguments leading to system halts when
4316           used in MinGW...)
4317         * src/pic16/gen.c (pic16_sameRegs): relaxed size criterion
4318         * (genUminus): rewritten to for efficiency
4319         * (genNearPointer[GS]et): enforce reloading of FSR0 (was still
4320           used uninitialized in some cases)
4321         * (genCast): upcasting a 16bit int to a 24bit GPOINTER may not
4322           copy the third byte from the int -- now assumes 0x80 (data memory)
4323         * src/pic16/genarith.c (pic16_genPlus): fixed bug when swapping
4324           operands (genAddLit expects the iCode's operands to swapped as
4325           well), fixed leftover bytes (crashed for short left operands)
4326         * (pic16_genMinusDec): performance improvements, removed false
4327           PIC14 emitSKPNCs
4328         * (pic16_genMinus): fixed to cope with differently sized operands
4329         * src/pic16/glue.c (pic16_glue): added new banksel optimization
4330           for --obanksel > 1
4331         * src/pic16/pcode.c: implemented (first phase of) banksel optimization
4332         * src/pic16/graph.[ch]: implementation of directed graphs, used by
4333           new banksel optimization
4334         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): prevented
4335           analysis for temporary registers (segfaults...)
4336         * src/pic16/peeph.def: added rule
4337
4338 2005-01-18 Vangelis Rokas <vrokas AT otenet.gr>
4339
4340         * device/lib/pic16/libc/stdlib/x_ftoa.c: it defines x_ftoa function
4341         which converts a float number to its ASCII representation
4342         * device/lib/pic16/libc/utils/cnvfrac.S,cnvint.S: support
4343         functions to convert the fractional and integer part of a float to ASCII,
4344         * device/lib/pic16/libc/stdlib/(calloc.c,free.c, malloc.c,
4345         realloc.c): added _MALLOC_SPEC to explicit place variables in data
4346         ram
4347         * device/include/asm/pic16/features.h: added _CODE, _DATA, _AUTOMEM,
4348         _STATMEM macros,
4349         * device/include/pic16/adc.h: added GPL info,
4350         * src/pic16/gen.c (genIfxpCOpJump): perform an genIfxJump but using
4351         a pCodeOp as tested operand,
4352         * (genNearPointerGet): optimized bit testing, does not use
4353         intermediate register for bit value, test directly instead with
4354         BTFSS, BTFSC, works only for single bits,
4355         * (genpic16Code): dump the name of the iCode in the asm,
4356         * src/pic16/ralloc.c (decodeOp): removed static declaration and
4357         renamed to pic16_decodeOp,
4358         * (serialRegAssign): do not allocate a temporary register for iCode
4359         sequences that test a single bit for 1/0
4360
4361 2005-01-12 Vangelis Rokas <vrokas AT otenet.gr>
4362
4363         * src/pic16/pcode.[ch]: introduced pic16_stackpnt_*,
4364         pic16_framepnt_*, pic16_stack_*, pic1_frame_* pointer variables to
4365         access stack and frame pointers. They are initially assigned to
4366         point at pic16_pc_fsr1[lh] and pic16_pc_fsr2[lh] variables and other
4367         accessing SFRs. Updated all occurences of modification of stack or
4368         frame pointer in gen.c and pcode.c,
4369         * src/pic16/ralloc.c (serialRegAssign): fixed two bugs with
4370         assigning of a literal value to pointers,
4371         * src/pic16/main.c (pic16_finiliseOptions): set pre-processor define
4372         flag STACK_MODEL_SMALL or STACK_MODEL_LARGE according to the model
4373         selected
4374
4375 2005-01-11 Vangelis Rokas <vrokas AT otenet.gr>
4376
4377         * doc/sdccman.lyx: update documentation about stack pragma, added
4378         some info for stack memory models
4379
4380 2005-01-08 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
4381
4382         * src/pic16/gen.c (DEBUGpc): MSVC 6 does not support macro variable arguments
4383
4384 2005-01-08 Raphael Neider <rneider AT web.de>
4385
4386         * src/pic16/device.c (pic16_dump_usection): changed naming scheme for
4387           udata sections to fix bug #1097823
4388
4389 2005-01-05 Raphael Neider <rneider AT web.de>
4390
4391         * src/pic16/gen.c (genGenericShift): added handling of differently
4392           sized left operand and result
4393
4394 2005-01-04 Raphael Neider <rneider AT web.de>
4395
4396         * src/pic16/gen.c (genIfxJump): fixed inverted skips on CARRY
4397         * (genIfx): fixed (?) read from uninitialized SPIL_LOC (now assumes CARRY
4398           to hold the condition bit)
4399         * added new version of genCmp (old code available via #define)
4400         * added new version of genShiftLeft/genShiftRight in a generic
4401           way, now supports shifting by negative values
4402         * (genLeftShiftLiteral, genRightShiftLiteral): use absolute value of
4403           shiftCount (expected by genGenericShift)
4404         * src/pic16/genarith.c (genPlus): added code for adding CARRY+literal
4405         * src/pic16/pcode.c (pic16_OptimizeJumps): removed annoying statistics
4406           dump
4407         * (pic16_newpCodeOpLit): changed to cast to unsigned char (as e.g. -32766
4408           is an invalid literal too...)
4409
4410 2005-01-04 Vangelis Rokas <vrokas AT otenet.gr>
4411
4412         * src/pic16/gen.c (aopForSym, genEndFunction): applied some fixes
4413         from Raphael Neider,
4414         * src/pic16/pcode.c (pic16_newpCodeOpLit): removed casting to char
4415         for 8-bit literals. This fixes some literal operands which are sign
4416         extended to 16-bits ints when instruction needs only 8-bits.
4417
4418 2004-12-31 Paul Stoffregen <paul AT pjrc.com>
4419
4420         * device/lib/logf.c: added mcs51 assembly version
4421         * device/lib/expf.c: added mcs51 assembly version
4422         * device/lib/_logexpf.c: new shared asm code for expf and logf
4423         * device/include/math.h: add defines for assembly math library
4424         * device/lib/Makefile.in: build new _logexpf.c
4425         * device/lib/libfloat.lib: use new _logexpf.c
4426
4427 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4428
4429         * src/pic/device.c
4430         * src/pic/pcode.c : adjusted internal stack and pre-allocated registers for
4431           device types which have less than 0x7f registers.
4432
4433 2004-12-29 Slade Rich <slade_rich AT users.sourceforge.net>
4434
4435         * src/pic/genarith.c : Fixed problem with subtraction where the result would not be updated when borrowing.
4436
4437 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4438
4439         * device/lib/printf_fast.c: only build on supported arch.
4440         * device/lib/printf_tiny.c: only build on supported arch.
4441         * device/lib/printf_fast_f.c: only build if asm float lib
4442         * device/lib/_fsget1arg.c: only build if asm float lib
4443         * device/lib/_fsget2args.c: only build if asm float lib
4444         * device/lib/_fsnormalize.c: only build if asm float lib
4445         * device/lib/_fsreturnval.c: only build if asm float lib
4446         * device/lib/_fsrshift.c: only build if asm float lib
4447         * device/lib/_fsswapargs.c: only build if asm float lib
4448         * device/include/stdio.h: don't provide print_fast,
4449           print_fast_f, print_tiny prototypes if --xstack used
4450
4451 2004-12-28 Maarten Brock <sourceforge.brock AT dse.nl>
4452
4453         * device/lib/sincosf.c (sincosf): don't invert bit/bool by ~
4454         * support/regression/ports/mcs51-stack-auto/spec.mk: added new _fs.. files
4455           to the SOURCES
4456
4457 2004-12-28 Paul Stoffregen <paul AT pjrc.com>
4458
4459         * device/lib/printf_fast_f.c: same as printf_fast, but
4460           with floating point enabled
4461         * device/lib/printf_fast.c: minor tweaks
4462         * device/include/stdio.h: add printf_fast_f
4463
4464 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4465
4466         * src/SDCCmain.c: make --float-reent default for mcs51
4467         * device/lib/_fsadd.c: added mcs51 assembly version
4468         * device/lib/_fssub.c: added mcs51 assembly version
4469         * device/lib/_fsmul.c: added mcs51 assembly version
4470         * device/lib/_fsdiv.c: added mcs51 assembly version
4471         * device/lib/_fseq.c: added mcs51 assembly version
4472         * device/lib/_fsneq.c: added mcs51 assembly version
4473         * device/lib/_fsgt.c: added mcs51 assembly version
4474         * device/lib/_fslt.c: added mcs51 assembly version
4475         * device/lib/_fscmp.c: shared code for fseq,fsgt,fslt,fsneq
4476         * device/lib/Makefile.in: add _fscmp to build
4477         * device/lib/libfloat.lib: add _fscmp to build
4478
4479 2004-12-27 Paul Stoffregen <paul AT pjrc.com>
4480
4481         * device/lib/_fs2slong.c: added mcs51 assembly version
4482         * device/lib/_fs2sint.c: added mcs51 assembly version
4483         * device/lib/_fs2schar.c: added mcs51 assembly version
4484         * device/lib/_fs2ulong.c: added mcs51 assembly version
4485         * device/lib/_fs2uint.c: added mcs51 assembly version
4486         * device/lib/_fs2uchar.c: added mcs51 assembly version
4487         * device/lib/_slong2fs.c: added mcs51 assembly version
4488         * device/lib/_sint2fs.c: added mcs51 assembly version
4489         * device/lib/_schar2fs.c: added mcs51 assembly version
4490         * device/lib/_ulong2fs.c: added mcs51 assembly version
4491         * device/lib/_uint2fs.c: added mcs51 assembly version
4492         * device/lib/_uchar2fs.c: added mcs51 assembly version
4493         * device/include/float.h: added #define to select asm vs c
4494
4495 2004-12-26 Paul Stoffregen <paul AT pjrc.com>
4496
4497         * device/lib/printf_fast.c: improvements to float output
4498         * device/include/float.h: add defines for assembly float library
4499         * device/lib/_fsget1arg.c: receive 1 float arg
4500         * device/lib/_fsget2args.c: receive 2 float args (reentrant)
4501         * device/lib/_fsnormalize.c: normalize a float
4502         * device/lib/_fsreturnval.c: return float, various helper routines
4503         * device/lib/_fsrshift.c: right shift a float's mantissa
4504         * device/lib/_fsswapargs.c: swap 2 floats
4505         * device/lib/Makefile.in: build these 6 new files for mcs51
4506         * device/lib/libfloat.lib: add these 6 files to the library
4507
4508 2004-12-26 Borut Razem <borut.razem AT siol.net>
4509
4510         * sim/ucsim/avr.src/arith_inst.cc: fixed bug #1088372- savr is not
4511           built by gcc 3.4.2
4512
4513 2004-12-25 Paul Stoffregen <paul AT pjrc.com>
4514
4515         * device/lib/printf_tiny.c: printf for mcs51 in only 267 bytes,
4516           and fully reentrant and register bank neutral.
4517         * device/lib/printf_fast.c: added float (not enabled by default),
4518           added compact/slower integer (also not enabled by default),
4519           improved size/speed of fast integer code, other minor changes
4520         * device/include/stdio.h, device/lib/Makefile.in,
4521           device/lib/libsdcc.lib: integrate printf_tiny into mcs51 build
4522
4523 2004-12-24 Maarten Brock <sourceforge.brock AT dse.nl>
4524
4525         * src/pic16/pcode.c: declaring variables other than at the start of a
4526           block is not supported in C by VC6.
4527
4528 2004-12-22 Vangelis Rokas <vrokas AT otenet.gr>
4529
4530         * applied a previous patch from Raphael Neider that wasn't included
4531         in the previous commits, which fixes infinite loops within jumptable
4532         improvements,
4533         * made some fixes that previous patches introduced
4534
4535 2004-12-21 Vangelis Rokas <vrokas AT otenet.gr>
4536
4537         * src/pic16/gen.c (pic16_aopGet): applied fix from Raphael Neider
4538         that fixes an issue with AOP_PCODE asmop's offset,
4539         * (pic16_popCopyReg): update instance field too,
4540         * (mov2w): modified to pic16_mov2w because it conflicts with mov2w
4541         function of pic port,
4542         * (genCmp, genAnd, genAssign),
4543         * src/pic16/genarith.c (genAddLit): some fixes from Raphael Neider,
4544
4545 2004-12-20 Vangelis Rokas <vrokas AT otenet.gr>
4546
4547         * src/SDCCast.c (gatherAutoInit): allow pic16 to emit static
4548         variables initial values to idata section,
4549         * src/SDCCicode.c (geniCodeCall): patch from ### to fix unreferenced
4550         variables in some functions. This utilizes parmBytes field of iCode
4551         structure to hold the offset of the variable in stack. (might be
4552         able to use the stack field too?)
4553         * applied patch from Raphael Neider # ### , # ###
4554         * src/pic16/glue.c (pic16emitRegularMap): fix to print static
4555         variable initial values in idata section,
4556         * src/pic16/ralloc.c (pic16_allocDirReg): don't allocate register
4557         for static variables with initial value
4558         * src/device/lib/pic16/libsdcc/float/ulong2fs.c (__ulong2fs):
4559         applied fix in while loop from Raphael Neider.
4560
4561 2004-12-19 Maarten Brock <sourceforge.brock AT dse.nl>
4562
4563         * src/ds390/gen.c (genCpl): fixed bit=~(char/bit) bugs, added warning
4564         * src/ds390/main.c (_ds390_regparm): don't pass bit params in registers
4565         * src/ds390/ralloc.c (serialRegAssign): spill bits
4566         * src/mcs51/gen.c (genCpl): fixed bit=~(char) bugs, added warning
4567         * support/Util/SDCCerr.c,
4568         * support/Util/SDCCerr.h: added warning W_COMPLEMENT for using bit=~(bit)
4569         * support/regression/tests/bitvars.c: added tests for bitwise complement(~)
4570         * support/regression/tests/bitwise.c: added test for bitwise complement(~)
4571
4572 2004-12-09 Maarten Brock <sourceforge.brock AT dse.nl>
4573
4574         * device/include/sdcc-lib.h: inserted LGPL, added includes
4575           asm/ds390/features.h and asm/mcs51/features.h
4576         * device/include/asm/default/features.h,
4577         * device/include/asm/gbz80/features.h,
4578         * device/include/asm/z80/features.h: added empty _AUTOMEM
4579           and _STATMEM
4580         * device/include/asm/ds390/features.h,
4581         * device/include/asm/mcs51/features.h: added files with defines for
4582           _AUTOMEM and _STATMEM indicating automatic and static storage class
4583         * device/lib/printf_large.c (_print_format): optimized & used _AUTOMEM
4584         * doc/sdccman.lyx: version 2.4.7, updated xstack documentation
4585         * src/SDCCicode.c (geniCodeCast),
4586         * src/SDCCsymt.c (compareType): allow cast of data-ptr to idata-ptr
4587         * src/SDCCloop.c (loopInduction): removed unused variable lr
4588         * src/SDCCopt.c (convilong, convertToFcall): moved "easy special case"
4589           to convertToFcall to include char modulo (RFE 1065037), added check
4590           if left operand is unsigned and use abs of literal value
4591         * src/SDCCpeeph.c (setFromConditionArgs): removed double quotes option
4592           as it doesn't work after conversion from peephole.def to peephole.rul
4593         * src/mcs51/gen.c (toBoolean): added check for size,
4594           (genModOneByte): optimized code for signed char modulo a literal
4595           power of 2 (thanks to Hubert Sack),
4596           (genRRC): removed unnecessary "clr c",
4597           (genRLC): replaced "add a,acc" with cheaper "rlc a"
4598         * src/mcs51/peeph.def: renamed 115 to 115.a, added rule 115.b: another
4599           jump optimization,
4600           swapped rules 256.c and 256.d,
4601           extended 256.d by using new multiple checks (thanks Erik),
4602           added rules 256.e and 256.f,
4603           updated rule 261.a and 261.b to new generated code
4604         * support/regression/tests/muldiv.c: added test div/mod by a power of 2
4605
4606 2004-12-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4607
4608         * src/SDCCloop.c (basicInduction, loopInduction): fixed several
4609           induction related bugs, including first part of bug #1074377
4610
4611 2004-12-05 Vangelis Rokas <vrokas AT otenet.gr>
4612
4613         * applied patch from bug-report #1076292,
4614         * applied patches for genAnd and Goto-optimizations for Raphael
4615         Neider,
4616         * src/SDCCicode.c (printOperand): fixed !REGA source to compile and
4617         dump a less iCode information,
4618         * src/pic16/device.h (pic16_options_t): added field debgen,
4619         * src/pic16/gen.h: added macros DUMP_FUNCTION_ENTRY,
4620         DUMP_FUNCTION_EXIT, FENTRY, FENTRY2,
4621         * src/pic16/gen.c (my_powof2): renamed to pic16_my_powof2 and made
4622         puclic,
4623         * (various functions): added macros FENTRY and FENTRY2 to functions,
4624         to emit function prologue,
4625         * (various functions): fixed indentation,
4626         * (genNearPointerGet): fixed loading of FSR0,
4627         * (genPackBits): applied patch from Raphael Neider to fix updating
4628         of FSR0 and touching only the modified bits,
4629         * src/pic16/genarith.c (various functions): added macros FENTRY to
4630         emit function prologue in comments,
4631         * src/pic16/pcode.h: added functions debugf2, debugf3,
4632         * src/pic16/ralloc.c: partial fix for packForPush caused
4633         segmentation fault,
4634
4635 2004-12-04 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4636
4637         * src/mcs51/peeph.def: added 261.a,b (16 bit rotate) by Stas Sergeev
4638           <stsp AT users.sourceforge.net> with reversed byte order
4639         * support/regression/tests/rotate.c: added (ds390 skips some tests)
4640
4641 2004-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4642
4643         * src/z80/gen.c (genLeftShift, genRightShift): fixed second part of
4644           bug #1074377
4645         * src/hc08/gen.c (genrshFour, shiftRLong, shiftLLong),
4646         * src/mcs51/gen.c (shiftLLong): Fixed some shifting bugs Frieder found
4647
4648 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
4649
4650         * src/pic/pcode.c : fixed a problem where banksel was not being inserted.
4651
4652 2004-12-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4653
4654         * src/SDCCpeeph.c (callFuncByName): support combined peephole rule
4655           conditions,
4656           (setFromConditionArgs): friendly operand parser for peephole rules,
4657           (operandBaseName, operandsNotRelated): new peephole condition
4658           "operandsNotRelated" -- similar to "operandsNotSame", but takes
4659           architecture specific register naming into account, handles n-way
4660           comparisons, and supports quoted literals
4661         * src/mcs51/peeph.def: restored rule 177.d with an extra condition
4662
4663 2004-12-02 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4664
4665         * src/mcs51/peeph.def: fixed bug #1076940
4666
4667 2004-12-02 Slade Rich <slade_rich AT users.sourceforge.net>
4668
4669         * device/include/pic/pic16f877.h : added an include file for the PIC16F877 device.
4670
4671 2004-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4672
4673         Adding support for replacing ljmps with sjmps in jumptables
4674         generated for switch statements. For now you need to set the
4675         environment variable SDCC_SJMP_JUMPTABLE to enable this.
4676         Now 4 algorithms for mcs51 jumptable generation are used:
4677         ljmp or sjmp jumptables for up to 16 cases, stack-pushing target
4678         addresses loaded pc-relative for up to 112 cases and stack-pushing
4679         target addresses loaded with offset from dptr for up to 256 cases.
4680
4681         * src/SDCCpeeph.c: added peephole conditional labelJTInRange
4682         * src/mcs51/main.c: adapted constants for switch table generation
4683         * src/mcs51/peeph.def: added 260.x for replacing ljmp with sjmp
4684
4685 2004-11-26 Maarten Brock <sourceforge.brock AT dse.nl>
4686
4687         * device/lib/printf_large.c (_print_format): fixed bug 1073386
4688         * support/regression/tests/bug1057979.c: added test for bug 1073386
4689
4690 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
4691
4692         * src/pic16/pcode.c: fixed bug which may produce error in non-GNU
4693         compilers
4694
4695 2004-11-25 Vangelis Rokas <vrokas AT otenet.gr>
4696
4697         * src/pic16/device.h,
4698         * src/pic16/genarith.c,
4699         * src/pic16/glue.c,
4700         * src/pic16/main.c,
4701         * src/pic16/pcode.c: applied patches #1068154 and #1070213
4702
4703 2004-11-24 Vangelis Rokas <vrokas AT otenet.gr>
4704
4705         Large cummulative patch for pic16 port.
4706         * device/lib/pic16/gstack.h: NEW, user can specify its own handler
4707         to call when a stack overflow occurs,
4708         * (malloc.h): added CVS Id tag,
4709         * (pic18f{242,252,442,452}.h): added T0CONbits structure and
4710         variable,
4711         * added libc directory. The current version of LibC contains string
4712         functions, ctype functions and macros and some functions of the
4713         stdlib set (like malloc/free/atof/atoi etc...). All functions are to
4714         be extensively tested in the future. Standard disclaimer here.
4715         Library is not automatically build yet. But one can build it by
4716         invoking 'make' inside the libc directory.
4717         * added ADC library under libio. Preliminary version yet.
4718
4719         * src/pic16/gen.h: added emitTOGC macro, to toggle Carry flag,
4720         * src/pic16/gen.c (aopForRemat): asmop size is filled by
4721         aopForRemat() now and not by pic16_aopOp(),
4722         * (pic16_popGetTempReg): removed warning messgae when allocating
4723         temporary registers, its a buggy feature and will be removed,
4724         * (pic16_popGet): set register instance field in AOP_CRY,
4725         * (pic16_outBitC): fixed for results in size greater than 1,
4726         * (genUminusFloat): fixed for pic16, ported code from mcs51,
4727         * (pic16_storeForReturn): optimized return of 0,
4728         * (genCmp): experimental code for new genCmp which uses PIC18's
4729         special compare&skip instructions. Initial tests fail some times
4730         with variables grater than 1 byte in size, so new code is disabled,
4731         * (genUnpackBits, genPackBits): more optimizations in reading/writing,
4732         a single bit,
4733         * (genCast): began a fix to optimize the casting of a bit to another
4734         bit, now assigning a bitfield to another bitfield will fail, sorry,
4735         * src/pic16/main.c: disabled the use of lr-support feature,
4736         * src/pic16/pcode.h: renamed PCASMDIR to PCAD,
4737         * added some function prototypes, added function _debugf prototype,
4738         * src/pic16/pcode.c: (pic16_get_op): fixed emitting operands of register
4739         bits with offset (case PO_GPR_BIT),
4740         * (genericPrint): don't emit INFO pcode when --pcode-verbose not in
4741         command line,
4742         * (isBankInstruction): modified to return 0 for no banking instruction,
4743         and 1 for banking instruction,
4744         * (pic16_isPCinFlow): check for PCAD (assembler directives) too,
4745         caused stop processing pCodes after a inline assembly block,
4746         * (pic16_popCopyGPR2Bit): updated to match bitfields with offset,
4747         * src/pic16/pcoderegs.c: fixed a bug with eliminating some temporary
4748         registers when it shouldn't,
4749         * src/pic16/ralloc.c (allocReg): add preliminary support for
4750         supporting a limited set of temporary registers,
4751
4752 2004-11-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4753
4754         * src/hc08/gen.c (genAssign, genPointerGetSetOfs, genDataPointerGet,
4755           genDataPointerSet): ensure assignments always copy in MSB to LSB
4756           order,
4757           (loadRegFromAop): recognize CLRH optimization,
4758           (genFunction): optimize RECEIVE iCodes in reentrant functions
4759
4760 2004-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4761
4762         * src/SDCCmain.c (parseCmdLine, optionsTable[]): fixed bug with
4763           --out-fmt-s19 turning into --out-fmt-elf if s19 was already
4764           selected.
4765         * src/SDCCmain.c (linkEdit): don't define SSEG for HC08
4766         * src/hc08/main.c (_hc08_setDefaultOptions): default xdata to be
4767           contiguous with data
4768
4769 2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4770
4771         * device/lib/_gptrget.c (_gptrget),
4772         * device/lib/_gptrgetc.c (_gptrgetc),
4773         * device/lib/_gptrput.c (_gptrput): _naked allows to use ret
4774           instead of sjmp to ret
4775         * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
4776           by Hubert Sack <hsack2002 AT arcor.de> in RFE #1067986, thanks
4777
4778 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
4779
4780         * .version: bumped version to 2.4.7
4781         * device/lib/_gptrget.c (_gptrget): is now _naked
4782         * device/lib/_gptrgetc.c (_gptrgetc): is now _naked
4783         * device/lib/_gptrput.c (_gptrput): is now _naked
4784         * src/SDCCast.c (createBlock): removed ridiculous self-assignment,
4785           (createFunction): fixed xstack
4786         * src/SDCCglue.c (emitMaps): set allocation required for bit area
4787         * src/SDCCicode.c (geniCodeCast): don't change SPEC_OCLS for literal
4788           or bit either,
4789           (geniCodeCritical): store original interrupt state in an iTemp bit
4790           var unless stack-auto
4791         * src/SDCCicode.h: added CRITICAL and ENDCRITICAL to SKIP_IC2
4792         * src/SDCCmain.c (setIncludePath): added include/target to search path
4793         * src/SDCCmem.c (allocParms): store bit vars in bit space, not overlay
4794         * src/SDCCsymt.c (checkFunction): don't check regbank for isr's against
4795           prototype,
4796           (processFuncArgs): put bit vars in bit area
4797         * src/mcs51/gen.c (saveRegisters, unsaveRegisters, genXpush, saveRBank,
4798           unsaveRBank): fixed xstack,
4799           (genFunction): bugfix: replaced (global!) reentrant with fReentrant,
4800           (genFunction, genEndFunction): fixed xstack,
4801           (genAssign): optimization don't walk backwards through mem
4802         * src/mcs51/main.c (_mcs51_regparm): don't pass bit params in registers
4803         * src/mcs51/ralloc.c (createStackSpil): spill bits to bit area
4804         * support/regression/Makefile: also make library (for stack-auto) when
4805           making "all" and added "test-mcs51-xstack-auto"
4806         * support/regression/fwk/lib/testfwk.c: added T2_isr prototype for mcs51
4807         * support/regression/ports/mcs51/T2_isr.c: added this file as a stub
4808         * support/regression/ports/mcs51/fwk.lib: added to link T2_isr stub
4809         * support/regression/ports/mcs51/spec.mk: added rules for fwk.lib
4810         * support/regression/ports/mcs51-stack-auto/spec.mk: replaced
4811           make-library by MAKE_LIBRARY
4812         * support/regression/ports/mcs51-xstack-auto/spec.mk: file added to run
4813           regression tests for xstack
4814         * support/regression/tests/bitvars.c: test for bit vars (bug 938782)
4815         * support/regression/tests/critical.c: test for critical on mcs51
4816
4817 2004-11-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4818
4819         * support/regression/ports/ucz80/spec.mk: use include and lib files from
4820           built version of sdcc instead of installed version
4821
4822 2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
4823
4824         * src/mcs51/gen.c (toBoolean): fixed bug 1065458
4825         * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
4826           vprintf.c now
4827         * device/lib/printf_large.c (calculate_digit): fixed bug 1057979
4828         * device/lib/z80/Makefile: don't use printf.c as it fails bug 1057979
4829           WARNING: remove device/lib/build/z80/printf.o by hand when
4830           updating from previous build!
4831         * device/lib/z80/printf.c: updated comment
4832         * support/regression/tests/bug1057979.c: test all ports now
4833         * support/regression/tests/bug1065458.c: file added
4834
4835 2004-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4836
4837         * src/z80/gen.c (genFunction, genEndFunction): avoided generating
4838           *_start and *_end symbols for static functions
4839
4840 2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
4841
4842         * src/SDCCmain.c (linkEdit): don't suppress crt0 if --nostdlib is used
4843           and search crt0.o in all library paths,
4844           (setIncludePath): proper handling of --nostdinc,
4845           (setLibPath): proper handling of --nostdlib
4846         * support/regression/Makefile,
4847         * support/regression/ports/ds390/spec.mk,
4848         * support/regression/ports/gbz80/spec.mk,
4849         * support/regression/ports/hc08/spec.mk,
4850         * support/regression/ports/mcs51/spec.mk,
4851         * support/regression/ports/mcs51-large/spec.mk,
4852         * support/regression/ports/mcs51-stack-auto/spec.mk,
4853         * support/regression/ports/z80/spec.mk: use include and lib files from
4854           built version of sdcc instead of installed version
4855         * doc/sdccman.lyx: fixed typo in --nostdinc
4856
4857 2004-11-10 Slade Rich <slade_rich AT users.sourceforge.net>
4858
4859         * src/pic/pcode.c,
4860         * src/pic/device.c,
4861         * src/pic/ralloc.c,
4862         * src/pic/gen.c : added support to generate code for struct bit fields.
4863
4864 2004-11-06 Maarten Brock <sourceforge.brock AT dse.nl>
4865
4866         * as/xa51/xa_version.h,
4867         * device/include/errno.h,
4868         * device/include/regc515c.h,
4869         * device/lib/_itoa.c,
4870         * device/lib/_ltoa.c,
4871         * device/lib/ser_ir_cts_rts.c,
4872         * sim/ucsim/xa.src/glob.cc,
4873         * sim/ucsim/xa.src/inst_gen.cc,
4874         * sim/ucsim/xa.src/xa_bit.cc,
4875         * sim/ucsim/xa.src/xa_sfr.cc,
4876         * sim/ucsim/z80.src/inst_dd.cc,
4877         * sim/ucsim/z80.src/inst_fdcb.cc,
4878         * support/scripts/keil2sdcc.pl,
4879         * src/pic16/pic16.dsp,
4880         * src/pic16/pic16a.dsp: corrected cvs line endings
4881         * device/lib/printf_large.c: fixed bug 1057979
4882         * src/pic16/gen.c: fixed non-C standard code
4883         * src/SDCCmain.c: made --pack-iram default, added --no-pack-iram
4884         * src/SDCCglobl.h: changed pack_iram to no_pack_iram
4885         * support/regression/ports/mcs51/support.c: reload T1 asap
4886         * doc/sdccman.lyx: updated for options --pack-iram and --no-pack-iram,
4887           pdata use and clear idata startup behaviour
4888         * support/regression/tests/bug1057979.c: added
4889
4890 2004-11-04 Maarten Brock <sourceforge.brock AT dse.nl>
4891
4892         * device/examples/ds390/ow390/ad26.h,
4893         * device/examples/ds390/ow390/cnt1d.h,
4894         * device/examples/ds390/ow390/crcutil.c,
4895         * device/examples/ds390/ow390/ownet.h,
4896         * device/examples/ds390/ow390/owsesu.c,
4897         * device/examples/ds390/ow390/swt12.h,
4898         * device/examples/ds390/ow390/swtoper.c,
4899         * device/examples/ds390/ow390/temp10.h,
4900         * device/examples/ds390/ow390/thermodl.c,
4901         * device/examples/ds390/tinitalk/tinitalk.dsp,
4902         * device/examples/ds390/tinitalk/tinitalk.dsw,
4903         * device/examples/mcs51/clock/hw.h,
4904         * device/examples/mcs51/simple2/go.bat,
4905         * device/examples/serialcomm/windows/serial.h,
4906         * device/examples/xa51/dummy.c,
4907         * device/examples/xa51/hello.c,
4908         * device/include/80c51xa.h,
4909         * device/include/at89x051.h: corrected cvs line endings
4910
4911 2004-11-04 Vangelis Rokas <vrokas AT otenet.gr>
4912
4913         * src/pic16/main.c (options): added command line --gstack, to trace
4914         stack over/under flows,
4915         * added pragma 'wparam' to allow passing first byte of function
4916         parameters via WREG, syntax is #pragma wparam my_function[, func2...]
4917         * src/pic16/gen.c (pic16_testStackOverflow): function which emits a
4918         call to __gstack_test function and sets up the symbol as extern,
4919         * (pic16_pushpCodeOp, pic16_poppCodeOp, pushw, pushaop, popaopidx,
4920         * popaop): added call to pic16_testStackOverflow,
4921         * (wParamCmp, inWparamList): NEW, test existence of a symbol in
4922         wparamList list,
4923         * (genCall, genPcall): now all parameters are passed via stack
4924         except in functions that are pass to wparam pragma in which WREG is
4925         used too,
4926         * (genPcall): REENTRANT flag is checked to see if variable prototype
4927         contains reentrant keyword, don't call a non-reentrant function, via
4928         a reentrant function pointer or vice versa, functions are never
4929         passed via WREG,
4930         * (genJumpTab): applied patch from bug #1057478 by R.Neider and
4931         D.Winkler,
4932         * src/pic16/glue.c (pic16emitRegularMap): fixed bug which caused a
4933         SIGSEGV when accessing a NULL register stucture,
4934         * (pic16_printGPointerType): modified to handle UPPER modifier for
4935         function initializers, changed prototype of function to simpler one,
4936         * (pic16_printIvalFuncPtr): check to see if function is already
4937         added in externs list,
4938         * src/pic16/pcoderegs.c (pCodeOptime2pCodes): fixed bug which
4939         optimized a move from W to SFR with a move to the same register
4940         later after a CALL,
4941         * device/lib/pic16/debug: NEW directory, contains debug features
4942         which are enabled when linking with libdebug.lib, currently command
4943         line option --gstack enables stack pointer tracing for over/under
4944         flow, corresponding sources are in debug/gstack
4945
4946 2004-10-30 Vangelis Rokas <vrokas AT otenet.gr>
4947
4948         * doc/sdccman.lyx: updated SDCC version,
4949         * (PIC16 port): update list of command line options,
4950         * src/pic16/device.h (structure pic16_options_t): added field gstack
4951         to enable stack overflow tracing on push/pops,
4952         * src/pic16/device.c (statistics structure): added statistics
4953         structure,
4954         * (pic16_dump_access, pic16_dump_usection, pic16_dump_gsection,
4955         pic16_dump_int_registers): increase statistics counters for each
4956         * variable which is encountered
4957         * (pic16_dump_usection): emit each .udata variable to its own udata
4958         section,
4959         * src/pic16/gen.c (assignResultValue, genCall, genPcall, genFunction):
4960         when macro USE_WREG_IN_FUNC_PARAMS is set to 0 pass all function
4961         parameters via stack, otherwise use old scheme,
4962         * src/pic16/glue.c (pic16_emitStatistics): dump statistics in
4963         assembler output file,
4964         * src/pic16/main.c: added command line options --gstack to enable
4965         push/pop tracing for stack overflow,
4966         * src/pic16/pcode.c (all pCodeInstruction records for PIC18F
4967         instructions): added size of each instruction,
4968         * (pic16_countInstruction): estimate size of instructions in
4969         the_pFile list, inline assembly blocks are not counted,
4970         * (pic16_FixRegisterBanking): trace previous register usage, when
4971         banksel optimizations is greater than 0, don't emit a redudant
4972         banksel directive,
4973
4974 2004-10-26 Slade Rich <slade_rich AT users.sourceforge.net>
4975
4976         * src/pic/ralloc.c : fixed inefficient code produced when compiling a complimented bit operation.
4977         * src/pic16/ralloc.c : applied same fix for pic16.
4978         * src/pic/gen.c : tidied it up a little.
4979
4980 2004-10-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4981
4982         * src/mcs51/peeph.def: disabled 259.a,b for removing redundant ret,
4983         thanks to Martin Helmling for reporting (mail on sdcc-devel 2004-10-25)
4984
4985 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
4986
4987         * src/SDCCast.c (reverseParms): fixed bug #1040577 (part 2)
4988
4989 2004-10-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
4990
4991         * device/lib/ser_ir_cts_rts.c: integer promotion caused a call to the
4992         non-reentrant function __modsint in the interrupt function (thus
4993         corrupting math operations during serial I/O)
4994         * device/lib/ser_ir.c: as above, changed buffersize
4995         * src/mcs51/peeph.def: added 259.a,b for removing redundant ret,
4996         256.c,d for zeroing
4997         * doc/Makefile: added option -t for rsync
4998
4999 2004-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5000
5001         * src/SDCCast.h (struct ast),
5002         * src/SDCCast.c (reverseParms, copyAst): fixed bug #1040577 (part 1)
5003
5004 2004-10-20 Borut Razem <borut.razem AT siol.net>
5005
5006         * support/scripts/sdcc.nsi: added include/pic16/*.h to the setup
5007         package
5008
5009 2004-10-20 Vangelis Rokas <vrokas AT otenet.gr>
5010
5011         * device/lib/pic16/libsdcc/Makefile: added lregs directory in
5012         makefile targets,
5013         * device/lib/pic16/libsdcc/lregs/{Makefile,lrst.c,lrrest.c}: NEW
5014         support functions to replace long sequences of MOVFF's from access
5015         bank registers to stack and vice versa,
5016         * src/pic16/device.h: added new field opt_flags, where optimization
5017         flags can be set to enable certain features,
5018         * src/pic16/gen.c (pic16_emitpinfo): NEW to add PC_INFO pCode in
5019         * pBlock, (genFunction, genEndFunction): surroung loop for
5020         saving/loading used registers in stack with PC_INFO pCodes,
5021         INF_LREGS. Code in between can then be optimized by pCode optimizer
5022         to support function calls,
5023         * (genDataPointerSet): fixed bug which loaded float fields in
5024         structures with corrupt data,
5025         * src/pic16/genutils.c (debugf, _debugf): macro/function which emits
5026         in a standard way debug info on stderr. Feature used for developing
5027         and debugging only,
5028         * src/pic16/glue.c (pic16glue): reformatted, deleted some old and
5029         obsolete chunks of code,
5030         * if optimization flag OF_LR_SUPPORT was set, call pic16_OptimizeLocalRegs,
5031         * src/pic16/main.c (_pic16_parseOptions): added handler for --flr-support,
5032         * pic16/src/pcode.c (pic16_newpCodeInfo,
5033         * (pic16_newpCodeOpLocalRegs),
5034         * (pic16_convertLocalRegs2Support): NEW, to support new optimization
5035         feature,
5036         * (pic16_pCodeConstString): printing of the initial value of a
5037         symbol as a comment is inhibited since parsing was already done by
5038         copyStr and output is corrupt,
5039         * (pic16_pCode2str, genericPrint): handle PC_INFO pCode,
5040
5041 2004-10-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5042
5043         * src/mcs51/ralloc.c (packRegisters): fixed bug #1044601
5044
5045 2004-10-19 Maarten Brock <sourceforge.brock AT dse.nl>
5046
5047         * as/mcs51/lkarea.c: removed old K&R style,
5048           (lnksect): changed check on boundary error,
5049           (lnksect2): changed check on boundary error,
5050           (lnksect2): extend XSTK to end of page if size = 1
5051         * as/mcs51/lkmain.c: removed old K&R style,
5052           (Areas51): create l_IRAM symbol
5053         * as/mcs51/lkmem.c (summary2): added report on PSEG and XSTK
5054         * device/lib/Makefile.in: renamed model-mcs51-reentrant to
5055           model-mcs51-stack-auto, added model-mcs51-xstack-auto
5056         * device/lib/_mullong.c: added version to be compiled with xstack
5057         * device/lib/mcs51/crtclear.asm: clear only upto --iram-size
5058         * device/lib/mcs51/crtxclear.asm: clear pdata as well
5059         * device/lib/mcs51/crtxstack.asm: fixed comment
5060         * src/SDCCglue.c: maxInterrupts defaults to 0,
5061           (emitMaps): added pdata,
5062           (createInterruptVect): (re)moved default,
5063           (glue): added pdata,
5064           (glue): moved __start__xstack to XSTK with default size 1
5065         * src/SDCCmain.c (parseCmdLine): automatically set options.intlong_rent
5066           and options.float_rent when options.stackAuto is set,
5067           (linkEdit): only write XDATA_NAME if provided on command line
5068         * src/SDCCmem.h,
5069         * src/SDCCmem.c: added pdata
5070         * src/port.h: added pdata_name to PORT
5071         * src/mcs51/gen.c (toBoolean): fixed for Acc use of aopGet,
5072           (saveRegisters, unsaveRegisters): removed usage of B,
5073           (genMinus): fixed accumulator clash,
5074           (genJumpTab): added comment, this needs another look
5075         * src/mcs51/gen.c: added check for "B in use" paranoia,
5076           added pushB() and popB()
5077         * src/mcs51/peeph.def: restart after 177.c so 177.a can get a second
5078           chance
5079         * src/avr/main.c,
5080         * src/ds390/main.c,
5081         * src/hc08/main.c,
5082         * src/mcs51/main.c,
5083         * src/pic/main.c,
5084         * src/pic16/main.c,
5085         * src/xa51/main.c,
5086         * src/z80/main.c: (reset_regparms) made void parameter explicit and
5087           added PSEG (PAG,XDATA) or NULL to port specifier
5088         * src/ds390/main.c (_ds390_genIVT): moved implemented default in here
5089         * src/mcs51/main.c (_mcs51_genIVT): moved implemented default in here,
5090           (_mcs51_genInitStartup): removed __start__xstack equ,
5091           (mcs51_port): moved xstack from XSEG (XDATA) to XSTK (PAG,XDATA)
5092         * src/pic16/device.c (pic16_dump_usection, pic16_dump_isection),
5093         * src/z80/gen.c (_rleAppend): fixed warnings
5094         * support/regression/tests/zeropad.c: added pdata test
5095         * .version: bumped to 2.4.6
5096
5097 2004-10-17 Borut Razem <borut.razem AT siol.net>
5098
5099         * support/scripts/sdcc.nsi: cross compiling of WIN32 setup.exe on Linux
5100         as a part of nightly build
5101
5102 2004-10-16 Vangelis Rokas <vrokas AT otenet.gr>
5103
5104         * src/pic16/gen.c (struct _G): added field useWreg, is set to 1 when
5105         WREG holds the first byte function parameters,
5106         * (aopForSym): take special case for symbols which are in FARSPACE
5107         but in CODESPACE too,
5108         * (assignResultValue): modified to take into account _G.useWreg,
5109         * (genCall): don't use wreg for parameter passing when function is
5110         declared as reentrant, too, added optimization INCF to stack
5111         pointer when stack parameter count is 1,
5112         * (genFunction, genEndFunction): refurnished and fixed to not using
5113         wreg for passing parameters when function has varargs or is
5114         reentrant, fixed bug with symbol name compare for generating
5115         functions in absolute address,
5116         * (pic16_storeForReturn): refurnished,
5117         * (genCmp): began writing a new version of the function, not ready
5118         yet, therefore it is disabled,
5119         * (genAssign): do not read code memory when assigning a function to
5120         a pointer function,
5121         * src/pic16/glue.c (pic16emitStaticSeg): abSym->name is defined an
5122         array of characters, not pointer,
5123         * (pic16initialComments): in debug mode emit an .ident directive for
5124         the assembler,
5125         * (_process_pragma): emit a new warning type (internal to pic16)
5126         when setting stack to default length, emit a similar warning when
5127         placing a function at absolute address and address is not word aligned
5128         * (_pic16_parseOptions): added 'return TRUE' statement,
5129         * (_pic16_linkEdit): if compiling a source, then add the source's
5130         file object, first in the list of objects to link,
5131
5132 2004-10-13 Slade Rich <slade_rich AT users.sourceforge.net>
5133
5134         * src/pic/pcoderegs.c : increased count on regUsedinRange to prevent unnecessary warning.
5135         * src/pic/main.c : removed VC warning.
5136         * src/pic/gen.c : changed comment.
5137
5138 2004-10-12 Vangelis Rokas <vrokas AT otenet.gr>
5139
5140         * device/lib/pic16/libsdcc/gptr/gptrput[234].c: an external
5141         reference to a deprecated symbol _GPTRREG was causing failure to
5142         link. Thanks G. M. Gallant for the info.
5143
5144 2004-10-12 Slade Rich <slade_rich AT users.sourceforge.net>
5145
5146         * src/pic/pcode.c : Applied a code patch supplied by Paul Ashmore in
5147         comments for Bugs item #954788.
5148
5149 2004-10-10 Vangelis Rokas <vrokas AT otenet.gr>
5150
5151         * src/pic16/device.c (pic16_dump_gsection,
5152         * pic16_groupRegistersInSection): handle symbols declared to be in
5153         access bank differently,
5154         * src/pic16/gen.c (struct _G): added field resDirect,
5155         * (aopForSym): if symbol on stack and iCode is '=' and result exists,
5156         send values read from stack directly to result and don't allocate
5157         temporary values,
5158         * (pic16_sameRegs): fixed bug that allowed MOVFF to move between
5159         same registers,
5160         * (pic16_sameRegsOfs): NEW,
5161         * (freeAsmop): if _G.resDirect is set then do not mark registers as
5162         free because they were not allocated from temporary pool,
5163         * pic16_popRegFromString): workaround to fix a problem with
5164         allocating variables twice or never,
5165         * (genGenPointerGet): using PRODL instead of FSR0H,
5166         * (genGenPointerSet): using POSTDEC1 (that is a stack location)
5167         instead of FSR0H,
5168         * (genAssign): take advantage of the _G.resDirect flag,
5169         * (genCast): around line 11844, use mov2f instead of directly
5170         MOVFF'ing between operands to account for literal values,
5171         * src/pic16/genutils.c: some new debug functions for gpsim have been
5172         added,
5173         * src/pic16/glue.c (pic16_printIvalType): fixed bug that initialized
5174         float with integer part only,
5175         * src/pic16/main.c (_process_pragma): handle pragma udata access to
5176         place variables in access bank
5177         * device/lib/pic16/libsdcc/gptr/gptr*.c: using BRA instead of GOTO,
5178         updated sources to reflect recent changes in gen.c
5179
5180 2004-10-06 Vangelis Rokas <vrokas AT otenet.gr>
5181
5182         * device/lib/pic16/libsdcc/Makefile.rules: fixed bug concerning
5183         sources that searched for headers in installation path, now the
5184         device/include/pic16 is used,
5185         * src/pic16/glue.c (pic16glue),
5186         * src/pic16/pcode.c (pCode2str, genericPrint): don't print .file or
5187         .line directives if not in debug mode, this suppresses assembler's
5188         warnings for ignored directives
5189
5190 2004-10-05 Maarten Brock <sourceforge.brock AT dse.nl>
5191
5192         * src/port.h: made reset_regparms prototype void parameter explicit.
5193         * src/SDCCsymt.c (processFuncArgs): removed argument "func".
5194         * src/mcs51/ralloc.c (packRegisters): new fix for bugs 898889 & 979599.
5195         * doc/sdccman.lyx: documented warning disabling and how to use
5196           printf_large to make it print floats.
5197         * device/include/stdbool.h: NEW
5198         * device/lib/_atof.c,
5199         * device/lib/_divuint.c,
5200         * device/lib/_divulong.c,
5201         * device/lib/expf.c,
5202         * device/lib/printf_large.c,
5203         * device/lib/sincosf.c,
5204         * device/lib/sincoshf.c: used stdbool.h, all compile with stack-auto now
5205         * device/lib/Makefile.in: added target for model-mcs51-reentrant to build
5206           a completely reentrant lib.
5207
5208 2004-10-05 Vangelis Rokas <vrokas AT otenet.gr>
5209
5210         * device/lib/pic16/libsdcc/gptr/gptr*.c: added return statements
5211         * device/include/pic16/stdio.h: fixed bug with colon
5212
5213 2004-10-03 Vangelis Rokas <vrokas AT otenet.gr>
5214
5215         * device/include/pic16/stdio.h,
5216         * device/include/pic16/stdlib.h,
5217         * device/include/pic16/math.h: NEW
5218         * device/lib/pic16/libsdcc/gptr/*.c (gptrget*, gptrput*): functions
5219         declared as _naked to reduce overhead
5220         * device/lib/Makefile.in (target port-specific-objects-pic16):
5221         changed * to *.* so to ignore the CVS directory,
5222         * src/pic16/gen.c (pic16_freeAsmop): added code to store result of
5223         stacked variables back in stack,
5224         * (genEndFunction): fixed bug reported by G.M. Gallant with stack
5225         corruption
5226
5227 2004-10-01 Vangelis Rokas <vrokas AT otenet.gr>
5228
5229         * .version: bumped version number to 2.4.5
5230         * support/Util/SDCCerr.h: added warning W_POSSBUG2.
5231         * support/Util/SDCCerr.c (messages structure): added entry for
5232         W_POSSBUG2
5233
5234         Large cumulative patch for pic16 port and libraries.
5235         * device/include/pic16/sdcc-lib.h,
5236         * device/include/pic16/stdarg.h,
5237         * device/include/asm/pic16/features.h,
5238         * device/include/lib/pic16/libsdcc/gptr/{*.c, Makefile}: NEW,
5239         * device/include/pic16/float.h: changes reentrant keyword with
5240         _FS_REENTRANT, added prototype for __fsneq, included sdcc-lib.h
5241         * device/lib/pic16/libsdcc/Makefile: added target directory gptr,
5242         updated target build-libraries to include objects from gptr,
5243         * device/lib/pic16/libsdcc/{char,int,long}/*.c: added macro
5244         _IL_REENTRANT to all function headings, included sdcc-lib.h header,
5245         * device/lib/pic16/libsdcc/float/*.c: added macro _FS_REENTRANT to
5246         all function headings,
5247         * src/SDCCmain.c: added global parameter userIncDirsSet,
5248         * (parseCmdLine): when option -I is encountered add directory to
5249         userIncDirsSet too,
5250         * src/version.awk: added space between control and long,
5251         * src/pic16/NOTES: added some notes for the port,
5252         * src/pic16/gen.c: added prototype for mov2fp function,
5253         * (fReturnpic16[]): properly named return value registers,
5254         * (_G structure): added fields stackRegSet, fregsUsed, stack_lat,
5255         * (aopForSym): added code to handle symbols with onStack flag set,
5256         symbols onStack are allocated PTRSIZE bytes,
5257         * (aopFreeAsmop): handles special case where asmops are stack objects,
5258         * (aopGet, pic16_popGet): adde cod to handle new asmop AOP_STA,
5259         * (pic16_popGetTempReg, pic16_popGetTempRegCond, pic16_popReleaseTempReg):
5260         added argument lock to trace flaws in allocating temporary registers
5261         when developing port,
5262         * (pic16_popGetLit, pic16_popGetLit2): changed lit from unsigned to signed
5263         * (pic16_popRegFromString): reenabled allocating a direct register
5264         from string,
5265         * (assignResultValue): various beautifications,
5266         * fixed bug #1037717 (patch from R. Neider & D. Wrinkler) with mistaken
5267         referenced function argument,
5268         * (genIpush): reenabled to allow stacked arguments, handles only
5269         ic->parmPush iCodes,
5270         * (genCall, genPcall): major changes to allow for variable argument
5271         functions, fixed a bug with falsely restoring stack pointer after
5272         returning from call,
5273         * (genFunction): pending code for critical function,
5274         * (shiftR1Left2ResultSigned, shiftR1Left2Result, shiftL2Left2Result,
5275         * (shiftR2Left2Result, shiftLLong) applied patch #1032155 from R.Neider,
5276         * (genNearPointerGet): fixed bug with indirect reading, was always
5277         reading from INDF0
5278         * (genGenPointerGet, genGenPointerSet): rewrote to support generic
5279         pointers,
5280         * (genAddrOf): rewrote code to take address of a stacked function parameter
5281         * (genCast): fixed casting to generic pointer type,
5282         * src/pic16/gen.h: added AOP_STA,
5283         * (struct asmop): added field stk,
5284         * src/pic16/genarith.c (pic16_AopType): handle AOP_STA,
5285         * (pic16_genPlusIncr): changed emitSKPNZ to emitSKPNZ,
5286         * (pic16_genAddLit, pic16_genPlus): applied patch #1034042 by tecodev,
5287         * (pic16_genMinus): fixed bug #1035119 with patch submitted by tecodev,
5288         * src/pic16/genutils.c (pic16_genNot): removed symbol *tlbl,
5289         * src/pic16/glue.c (pic16_printGPPointerType): fixed to support new
5290         generic pointers,
5291         * src/pic16/main.c (_pic16_initPaths): ignores default SDCC include
5292         and library paths,
5293         * (pic16_port structure): generic pointer size is set to 3,
5294         * src/pic16/pcode.c (pic16_newpCodeOpLit): correctly print literal integer,
5295         * (insertBankSwitch): cast to (char *) to prevent 64bit CPUs'
5296         compiler warning,
5297         * src/pic16/ralloc.c (allocReg): prevent allocating register when
5298         operand is an iTemp,
5299
5300 2004-09-24 Martin Helmling <mh AT octo-soft.de>
5301
5302         * debugger/mcs51/cmd.c: set PC if a symbol at pc reg is set
5303         * debugger/mcs51/simi.c: addapt new syntax of s51
5304
5305 2004-09-23 Vangelis Rokas <vrokas AT otenet.gr>
5306
5307         * src/pic16/genutils.c (pic16_genNot): fixed bug #1032265,
5308         * src/pic16/pcode.c: commented out some calls to free() in order to
5309         fix bug #989576,
5310
5311 2004-09-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5312
5313         * src/SDCCicode.h,
5314         * src/SDCCicode.c (isiCodeInFunctionCall),
5315         * src/avr/ralloc.c (selectSpil),
5316         * src/pic/ralloc.c (selectSpil),
5317         * src/pic16/ralloc.c (selectSpil),
5318         * src/ds390/ralloc.c (selectSpil),
5319         * src/hc08/ralloc.c (selectSpil),
5320         * src/xa51/ralloc.c (selectSpil),
5321         * src/mcs51/ralloc.c (selectSpil): Don't use remainSpil to spill to the
5322         stack in the middle of a function call sequence (fixes bug #1020268)
5323         * src/SDCCicode.c (geniCodeJumpTable): fixed error in computing the
5324         costs associated with the minimum switch case.
5325
5326 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5327
5328         * src/SDCC.lex: fixed bug #1030549
5329
5330 2004-09-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5331
5332         * src/SDCCcse.h (struct cseDef),
5333         * src/SDCCcse.c (cseBBlock, newCseDef, ifFromAddrTaken): purge CSEs
5334         over a function call if the CSE is derived from a symbol whose
5335         address has been taken (fixes bug #1029883)
5336         * support/regression/tests/bug-1029883: a new regression test for
5337         this bug
5338
5339 2004-09-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5340
5341         * src/hc08/gen.c (emitinline): fixed bug #1029778
5342         * src/SDCC.y (assignment_expr): fixed the grammer so that assignment
5343         to a cast object is no longer a syntax error ("fixes" bug #1030006,
5344         and starts toward RFE #905167)
5345
5346 2004-09-17 Vangelis Rokas <vrokas AT otenet.gr>
5347
5348         * src/pic16/gen.c (mov2f): New function to move an operand to
5349         another without considering if it is a literal or a register,
5350         * (pic16_sameRegs): don't check if they are both AOP_REG,
5351         * (AccRsh): removed andmask=0 lines,
5352         * (genLeftShift): duplicated to be improved in future versions,
5353         * src/pic16/main.c (_process_pragma): emit stack default size in hex,
5354         * src/pic16/pcode.c: added POC_INFSNZW, updated inverted_op fields
5355         in POC_INCFSZ, POC_INCFSZW, POC_INFSNZ,
5356         * (pic16initMnemonics): added initialization for POC_INFSNZW,
5357         * (insertBankSwitch): fixed inserting banksel directives algorithm
5358         for instructions that follow a skip instruction, this fixes a report
5359         for broken subtraction code generation,
5360         * src/pic16/ralloc.c (deassignLRs): do not free register if current
5361         iCode is a left op, just in case result and right share the same
5362         registers
5363
5364 2004-09-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5365
5366         * src/hc08/main.c,
5367         * src/hc08/gen.c (genJumpTable): more efficient jump table, supports
5368         preservation of HX
5369         * src/hc08/gen.c (pullRegs): fixed order of HX & XA pairs
5370         * src/mcs51/ralloc.c (packRegisters): removed the patch applied
5371         on 2004-09-12; it was buggy
5372
5373 2004-09-15 Bernhard Held <bernhard AT bernhardheld.de>
5374
5375         * src/SDCCsymt.h: removed RESULT_CHECK
5376         * src/SDCCast.c,
5377         * src/SDCCglue.c,
5378         * src/SDCCval.c,
5379         * src/pic/glue.c,
5380         * src/pic16/glue.c: replaced RESULT_CHECK with RESULT_TYPE_NONE
5381
5382 2004-09-15 Vangelis Rokas <vrokas AT otenet.gr>
5383
5384         * src/SDCCicode.c (piCode): applied patch from Raphael Neider,
5385         * src/pic16/device.c (pic16_assignConfigWordValues): wrong
5386         configuration values no more rejected by compiler, they are assigned
5387         to configuration registers with a warning message instead,
5388         * src/pic16/glue.c (pic16_emitConfigRegs): added +1 at top-limit of
5389         the for-loop so last conf register is emitted too,
5390         * (_pic16_initPaths): link library libsdcc.lib by default,
5391         * (_hasNativeMulFor): modified test for multiplication according to
5392         Raphael Neider's remarks. Integer multiplication is also done with
5393         support functions,
5394         * device/include/pic16/pic18fregs.h: corrected type error in while
5395         testing and including 18f6720 header file
5396
5397 2004-09-14 Vangelis Rokas <vrokas AT otenet.gr>
5398
5399         * src/pic16/device.h (pic16_options): removed field use_crt,
5400         * src/pic16/gen.c (genUnpackBits): added call to pic16_loadFSR0
5401         until an optimization to handle single bits is added,
5402         * (pic16_loadFSR0): moved before genUnpackBits,
5403         * (genAnd): some white lines removed,
5404         * src/pic16/main.c (_pic16_finaliseOptions): set omit_ivt and clear
5405         leave_reset flags in pic16_options when using crt modules,
5406
5407 2004-09-12 Maarten Brock <sourceforge.brock AT dse.nl>
5408
5409         * src/mcs51/ralloc.c (packRegisters): applied fix by Bernhard Held
5410           for bugs 898889 & 979599. Also used some safer print instructions.
5411
5412 2004-09-12 Vangelis Rokas <vrokas AT otenet.gr>
5413
5414         * src/pic16/device.h (pic16_options_t): added field use_crt,
5415         crt_name, no_crt,
5416         * src/pic16/genarith.c (pic16_genPlus): added an assert(0) line to
5417         catch a probable future bug,
5418         * src/pic16/gen.c: aopIdx function commented out,
5419         * (genAssign): commented out old code which used aopIdx,
5420         * src/pic16/glue.c (pic16glue): removed some legacy fragments of
5421         code, added if conditionals to take into account the --use-crt
5422         command line options,
5423         * src/pic16/main.c (pic16_optionsTable): added new command line
5424         options, --use-crt= and --no-crt,
5425         * (_pic16_linkEdit): now the proper crt object is added in the
5426         linker command line except than when --no-crt is specified,
5427         * src/pic16/pcode.c,
5428         * src/pic16/pcode.h: added some structures and functions for a new
5429         optimization scheme to compansate for instruction overhead between
5430         same iCodes, this scheme is currently under development and is not
5431         working in any way,
5432         * src/pic16/gen.c (genAnd): added patch provided by Aaron Collwell
5433         to && operator,
5434         * device/lib/pic16/startup/crt0i.c,
5435         * device/lib/pic16/startup/crt0iz.c: added global char variable
5436         __uflags to force the generation of an idata section
5437
5438 2004-09-12 Bernhard Held <bernhard AT bernhardheld.de>
5439
5440         * doc/Makefile,
5441         * doc/clean.mk: added support for easy creation of sdcc-doc.tar.bz2
5442         * doc/sdccman.lyx: updated sdcc version to 2.4.4
5443
5444 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5445
5446         * doc/sdccman.lyx: fixed a problem with my new index entries (thanks
5447         Frieder) and clarified the default code optimization mode
5448
5449 2004-09-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5450
5451         * src/SDCC.lex (doPragma, process_pragma),
5452         * src/SDCCglobl.h (struct optimize): added pragmas "opt_code_speed",
5453         "opt_code_size", and "opt_code_balanced"
5454         * src/SDCCmain.c (optionsTable[], printOptions, scanOptionsTable):
5455         regrouped options by category, added support for category headers
5456         * src/SDCCmain.c (parseCmdLine): added options "--opt-code-speed"
5457         and "--opt-code-size"
5458         * doc/sdccman.lyx: documented these new options and pragmas
5459         * src/hc08/gen.c (AccLsh, AccRsh): take speed/size optimization
5460         preference into account
5461
5462 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5463
5464         * src/SDCCicode.c (geniCodePostInc, geniCodePreInc, geniCodePostDec,
5465           geniCodePreDec): Fixed bug 904237 by generating a warning
5466         * src/SDCCerr.h,
5467         * src/SDCCerr.c: added warning W_SIZEOF_VOID
5468
5469 2004-09-09 Slade Rich <slade_rich AT users.sourceforge.net>
5470
5471         * src/pic/device.c : When no max ram set validate full memory range.
5472         * src/pic/pcode.c,
5473         * src/pic/pcodepeep.c : Copy C code comments to optimised replacement code.
5474
5475 2004-09-08 Maarten Brock <sourceforge.brock AT dse.nl>
5476
5477         * device/lib/_gptrget.c,
5478         * device/lib/_gptrput.c: updated comment
5479         * device/lib/calloc.c,
5480         * device/lib/free.c,
5481         * device/lib/malloc.c,
5482         * device/lib/realloc.c: added LGPL, made them reentrant-safe
5483         * src/SDCCcse.c (cseBBlock),
5484         * src/SDCCicode.c (printOperand, geniCodeArray),
5485         * src/SDCCicode.h (struct operand): fixed bug 868103
5486         * support/regression/tests/bug-868103.c: added
5487         * src/SDCCast.c (searchLitOp),
5488         * src/SDCCcse.h (struct cseDef),
5489         * src/SDCCglue.c (printIvalArray, spacesToUnderscores),
5490         * src/SDCCicode.h (struct operand),
5491         * src/SDCCsymt.h (struct sym_link),
5492         * src/avr/gen.c (hasInc),
5493         * src/ds390/gen.c (hasInc),
5494         * src/hc08/gen.c (genPlusIncr, hasInc),
5495         * src/mcs51/gen.c (hasInc),
5496         * src/pic16/glue.c (pic16_printIvalChar),
5497         * src/pic16/ralloc.c (regWithIdx),
5498         * src/xa51/gen.c (hasInc) : removed warnings
5499         * src/SDCCast.c (createBlock): added comment ???
5500         * src/hc08/ralloc.c: updated comments
5501
5502 2004-09-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5503
5504         * doc/sdccman.lyx: updated section on switch statements, added
5505         section about semaphore locking
5506         * doc/Makefile: added option -info for latex2html
5507         * device/lib/_gptrget.c,
5508         * device/lib/_gptrput.c: __XPAGE instead of P2 in outcommented code
5509
5510 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5511
5512         * src/pic/device.h,
5513         * src/pic/device.c,
5514         * src/pic/port.c : Changed PIC14 code to not set bit RP1 when
5515          maxram is less than 0x100.
5516
5517 2004-09-06 Slade Rich <slade_rich AT users.sourceforge.net>
5518
5519         * Bug fixes for PIC14 - signed RSHIFT problem. Patch supplied by Allen(agschrum).
5520
5521 2004-09-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5522
5523         * src/port.h,
5524         * src/mcs51/main.c,
5525         * src/ds390/main.c,
5526         * src/z80/main.c,
5527         * src/hc08/main.c,
5528         * src/pic/main.c,
5529         * src/pic16/main.c,
5530         * src/avr/main.c,
5531         * src/xa51/main.c
5532         * src/SDCCicode.c (geniCodeJumpTable): Better logic to determine if a
5533         a jump table is the best form for a switch statement, including
5534         automatic insertion of missing cases to make the case range
5535         continuous. Developed in collaboration with Frieder Ferlemann.
5536
5537 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5538
5539         * src/hc08/ralloc.c (canDefAccResult): multi-byte shift is unsafe for
5540         accumulator result if it needs sign extension
5541
5542 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5543
5544         * src/hc08/ralloc.c (canUseAccOperand): fixed comparison bug
5545
5546 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5547
5548         * device/lib/gbz80/printf.c,
5549         * device/lib/z80/printf.c: removed define for NULL
5550
5551 2004-09-02 Maarten Brock <sourceforge.brock AT dse.nl>
5552
5553         * as/xa51/xa_link.c,
5554         * device/examples/ds390/ow390/ad26.c,
5555         * device/examples/ds390/ow390/cnt1d.c,
5556         * device/examples/ds390/ow390/counter.c,
5557         * device/examples/ds390/ow390/ds2480.h,
5558         * device/examples/ds390/ow390/ds2480ut.c,
5559         * device/examples/ds390/ow390/findtype.c,
5560         * device/examples/ds390/ow390/gethumd.c,
5561         * device/examples/ds390/ow390/owllu.c,
5562         * device/examples/ds390/ow390/ownetu.c,
5563         * device/examples/ds390/ow390/swt12.c,
5564         * device/examples/ds390/ow390/swtloop.c,
5565         * device/examples/ds390/ow390/temp.c,
5566         * device/examples/ds390/ow390/temp10.c,
5567         * device/examples/ds390/ow390/thermo21.c,
5568         * device/examples/ds390/ow390/tinilnk.c,
5569         * device/examples/ds390/ow390/tstfind.c,
5570         * device/examples/serialcomm/windows/serial.cpp,
5571         * device/examples/serialcomm/windows/test_serialcomm.cpp,
5572         * device/include/reg51.h: fixed line endings for cvs
5573
5574 2004-09-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5575
5576         * src/hc08/ralloc.c (canDefAccResult, canUseAccOperand,
5577         packRegsForAccUse, packRegisters): new accumulator register
5578         packing algorithm
5579         * support/regression/ports/hc08/support.c (_putchar): suppress
5580         warning of unused variable
5581         * src/SDCCicode.c: added SWAP entry to codeTable
5582
5583 2004-09-01 Maarten Brock <sourceforge.brock AT dse.nl>
5584
5585         * device/lib/sprintf.c: forgot to add this file before previous commit
5586
5587 2004-09-01 Vangelis Rokas <vrokas AT otenet.gr>
5588
5589         * src/pic16/gen.c (genPackBits): added operand right in function
5590         parameters, load result directly if p_type is POINTER (that is
5591         called by genNearPointerSet)
5592         * (genUnPackBits): added operand left in function parameters,
5593         * (genNearPointerGet, genNearPointerSet): prevent the loading of
5594         FSR0 if accessing bitfields,
5595
5596 2004-08-31 Maarten Brock <sourceforge.brock AT dse.nl>
5597
5598         * device/include/stdio.h: added NULL, size_t, typedef pfn_outputchar,
5599           _print_format; updated printf, sprintf, vsprintf
5600         * device/include/asm/default/features.h: corrected comment/define
5601         * device/lib/Makefile.in: added sprintf.c
5602         * device/lib/libsdcc.lib: added sprintf module
5603         * device/lib/printf_large.c,
5604         * device/lib/vprintf.c,
5605         * device/lib/sprintf.c: totally refactored printf_large and vprintf
5606           into these 3 files
5607         * support/regression/Makefile: changed ALL_PORTS into a usefull default
5608         * support/regression/ports/mcs51-stack-auto/spec.mk: added sprintf
5609         * support/regression/tests/bug-927659.c: removed dummy putchar, enabled
5610           hc08 test
5611         * support/regression/tests/zeropad.c: define idata as data for hc08
5612
5613 2004-08-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5614
5615         * src/SDCCpeeph.c (labelIsReturnOnly): support hc08 rts opcode also
5616         * src/SDCCpeeph.c (buildLabelRefCountHash): assume function entry point
5617         labels are referenced at least once (even if a reference is not found)
5618         * src/hc08/gen.c (emitcode): set isComment flag for comments
5619         * src/hc08/peeph.def: added rules 5a..5f (optimize redundant immediate
5620         loads), rules 6a..6b (optimize jumps to return)
5621
5622 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5623
5624         * device/lib/acosf.c (acosf),
5625         * device/lib/asinf.c (asinf),
5626         * device/lib/atanf.c (atanf),
5627         * device/lib/ceilf.c (ceilf),
5628         * device/lib/cosf.c (cosf),
5629         * device/lib/coshf.c (coshf),
5630         * device/lib/cotf.c (cotf),
5631         * device/lib/fabsf.c (fabsf),
5632         * device/lib/floorf.c (floorf),
5633         * device/lib/log10f.c (log10f),
5634         * device/lib/logf.c (logf),
5635         * device/lib/sinf.c (sinf),
5636         * device/lib/sinhf.c (sinhf),
5637         * device/lib/sqrtf.c (sqrtf),
5638         * device/lib/tanf.c (tanf),
5639         * device/lib/tanhf.c (tanhf),
5640         * device/include/math.h: defined _FLOAT_FUNC_REENTRANT macro and
5641         replaced all instances of "reentrant" in the library functions
5642         defined in math.h with this macro.
5643         * support/regression/tests/float_trans.c: reenabled test for hc08
5644
5645 2004-08-30 Bernhard Held <bernhard AT bernhardheld.de>
5646
5647         * device/lib/pic16/Makefile.common.in: added MODELFLAGS again, it was
5648         erroneously deleted
5649
5650 2004-08-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5651
5652         * src/hc08/gen.c (loadRegFromAop): better use of clra & clrx
5653         * src/hc08/gen.c (genAnd, genOr): fixed bug with conditional when
5654         multi-byte volatile operands are used
5655         * src/hc08/gen.c (shiftRLong): fixed bug with wrong rotate direction
5656         * src/hc08/main.c (_hc08_genAssemblerPreamble): moved the built-in
5657         initialization to area GSINIT0 so that it would always precede
5658         any static initializers in GSINIT
5659         * support/regression/tests/zeropad.c: fixed idata define for hc08
5660         * support/regression/tests/bug-927659.c,
5661         * support/regression/tests/float_trans.c: disabled tests for hc08
5662         pending missing library routines
5663         * .version: increased version number to 2.4.4 - hc08 port now passes
5664         regression tests
5665
5666
5667 2004-08-29 Bernhard Held <bernhard AT bernhardheld.de>
5668
5669         * device/lib/pic16/Makefile.common.in: added $(MM) to fix `make clean`
5670         * Makefile.common.in,
5671         * as/Makefile,
5672         * as/hc08/Makefile.in,
5673         * as/mcs51/Makefile.in,
5674         * as/z80/Makefile.in,
5675         * debugger/mcs51/Makefile.in,
5676         * device/include/Makefile.in,
5677         * device/lib/Makefile.in,
5678         * doc/Makefile,
5679         * link/Makefile,
5680         * link/z80/Makefile.in,
5681         * packihx/Makefile.in,
5682         * sim/ucsim/main_in.mk,
5683         * sim/ucsim/avr.src/Makefile.in,
5684         * sim/ucsim/doc/Makefile.in,
5685         * sim/ucsim/gui.src/serio.src/Makefile.in,
5686         * sim/ucsim/hc08.src/Makefile.in,
5687         * sim/ucsim/s51.src/Makefile.in,
5688         * sim/ucsim/xa.src/Makefile.in,
5689         * sim/ucsim/z80.src/Makefile.in,
5690         * src/Makefile.in,
5691         * support/cpp2/Makefile.in,
5692         * support/librarian/Makefile,
5693         * support/makebin/Makefile: added DESTDIR to the install path proposed
5694         by "Maciej 'Agaran' Pijanka" <agaran AT pld-linux.org>
5695         * doc/sdccman.lyx: added DESTDIR documentation
5696
5697 2004-08-29 Vangelis Rokas (vrokas AT otenet.gr>
5698
5699         * src/pic16/gen.c (genFunction, genEndFunction): fixed return
5700         instruction for interrupt handlers, use fast returns when returning
5701         from high priority interrupts
5702
5703 2004-08-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5704
5705         * src/hc08/gen.c (genAnd, genOr, transferAopAop, rmwWithAop): optimized
5706         code generation
5707         * src/hc08/gen.c (genrshFour, genCpl): fixed bugs
5708         * src/hc08/gen.c (genMultOneByte, genDivOneByte, genModOneByte): fixed
5709         bugs, ported much of Bernhard's code from mcs51
5710         * src/mcs51/gen.c (genSend),
5711         * src/hc08/gen.c (genSend): fixed bug with lost SEND iCodes if more
5712         than one when calling a reentrant function
5713         * device/lib/_mullong.c: defined an alternate struct layout for big
5714         endian ports (hc08)
5715
5716 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5717
5718         * src/hc08/gen.c (shiftL2Left2Result): fix for bug-500536 regression
5719         test
5720
5721 2004-08-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5722
5723         * src/SDCCsymt.c (processFuncArgs): make sure parameter types
5724         are sane and complete before asking the port its prefered parameter
5725         passing method (fixes bug #1017633)
5726         * device/lib/hc08/_ret.c: added "data" storage class to _ret2
5727         and _ret3
5728
5729 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5730
5731         * src/hc08/gen.c (genPackBitsImmed, genUnpackBitsImmed): fix offset
5732         problem in bitfields >= 8 bits.
5733
5734 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5735
5736         * src/SDCCsymt.c: undid changes that were not meant to be committed
5737
5738 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5739
5740         * support/regression/ports/hc08spec.mk: REENTRANT must be reentrant
5741
5742 2004-08-27 Maarten Brock <sourceforge.brock AT dse.nl>
5743
5744         * src/hc08/gen.c (genUminusFloat): fixed bug where only 3 bytes were
5745           copied and wrong bit got inverted
5746
5747 2004-08-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5748
5749         * src/hc08/gen.c (genPointerSet, genFarPointerSet): moved code from
5750         genFarPointerSet into genPointerSet; eliminated genFarPointerSet
5751         * src/hc08/gen.c (genPointerGet, genFarPointerGet): moved code from
5752         genFarPointerGet into genPointerGet; eliminated genFarPointerGet
5753         * src/hc08/gen.c (genPackBitsImmed): generate optimized code for
5754         assignments to bitfields at known addresses
5755         * src/hc08/gen.c (genUnpackBitsImmed): generate optimized code for
5756         reads from bitfields at known addresses
5757         * src/hc08/ralloc.c (packRegisters),
5758         * src/hc08/gen.c (genPointerGet, genUnpackBits, genUnpackBitsImmed,
5759         genhc08Code): optimize pointer get values used as conditionals
5760         * src/hc08/peeph.def: added rules 2e & 2f to optimize bit test
5761         and branch
5762
5763 2004-08-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5764
5765         * src/mcs51/gen.c (genPointerGet, genNearPointerGet, genPagedPointerGet,
5766         genFarPointerGet, genCodePointerGet, genGenPointerGet, genUnpackBits),
5767         * src/mcs51/ralloc.c (packRegisters): optimize pointer get values used
5768         as conditionals
5769
5770 2004-08-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5771
5772         * src/mcs51/peeph.def: peepholes 248.i-m for xdata bitfields
5773
5774 2004-08-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5775
5776         * src/mcs51/ralloc.c (packRegsForOneuse): fixed bug #1012650 and some
5777         related problems
5778
5779 2004-08-21 Bernhard Held <bernhard AT bernhardheld.de>
5780
5781         * sim/ucsim/cmd.src/Makefile.in: run lex only if $(PRJDIR)/devel exists
5782
5783 2004-08-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5784
5785         * src/z80/ralloc.c (packRegsForAssign): ported some bug fixes from the
5786         mcs51 port
5787
5788 2004-08-16 Slade Rich <slade_rich AT users.sourceforge.net>
5789
5790         * src/pic/gen.c: Restored fn genRet as previous fix was incorrect.
5791
5792 2004-08-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5793
5794         * src/mcs51/gen.c (genJumpTab): jumptables for more than 16 switch
5795         cases use more compact code.
5796
5797 2004-08-13 Slade Rich <slade_rich AT users.sourceforge.net>
5798
5799         * src/pic/gen.c: Fixed problem with fn returning a variable bigger than a char.
5800
5801 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5802
5803         * src/SDCClrange.c (findPrevUse): fixed bug #1007371
5804
5805 2004-08-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5806
5807         * src/SDCCsymt.h,
5808         * src/SDCCsymt.c (changePointer, checkDecl, addSymChain): changed
5809         parameter of changePointer() from symbol* to sym_link*
5810         * src/SDCCast.c (decorateType): call changePointer() for CAST op
5811         * src/SDCCsymt.c (compareType): void* type is castable to other
5812         pointers, but not necesarily an exact match.
5813         * src/SDCCicode.c (geniCodeCast): allow void* casting here since it
5814         is no longer blindly treated as an exact match.
5815         * src/SDCCval.c (valCastLiteral): treat missing type as cast to void
5816
5817 2004-08-12 Slade Rich <slade_rich AT users.sourceforge.net>
5818
5819         * src/pic/glue.c: Added struct initialisation fn printIvalStruct.
5820
5821 2004-08-11 Slade Rich <slade_rich AT users.sourceforge.net>
5822
5823         * src/pic/gen.c,
5824         * src/pic/pcode.c,
5825         * src/pic/ralloc.h,
5826         * src/pic/ralloc.c: Printing rIdx on internal verbose debug.
5827
5828 2004-08-10 Slade Rich <slade_rich AT users.sourceforge.net>
5829
5830         * src/pic/device.c,
5831         * src/pic/device.h,
5832         * src/pic/device.c: Will no longer exit if #pragma maxram has not been defined.
5833
5834 2004-08-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5835
5836         * src/mcs51/gen.c (emitcode): fixed bug #992819
5837
5838 2004-08-05 Maarten Brock <sourceforge.brock AT dse.nl>
5839
5840         * src/pic/ralloc.c (deassignLR): allthough pic port is buggy already,
5841           there's no need to make it worse
5842
5843 2004-08-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5844
5845         * src/mcs51/ralloc.c (deassignLR),
5846         * src/ds390/ralloc.c (deassignLR),
5847         * src/hc08/ralloc.c (deassignLR),
5848         * src/z80/ralloc.c (deassignLR),
5849         * src/pic/ralloc.c (deassignLR),
5850         * src/pic16/ralloc.c (deassignLR),
5851         * src/avr/ralloc.c (deassignLR),
5852         * src/SDCClrange.c (findRecursiveSucc, findRecursivePred, findPrevUse,
5853         rlivePoint): fixed another part of bug #971834
5854
5855 2004-08-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
5856
5857         * src/z80/main.c: enabled "critical" keyword
5858         * src/z80/mappings.i,
5859         * src/z80/gen.c (genFunction, genEndFunction): support for interrupt
5860         functions (fixes bug #979646)
5861         * doc/sdccman.lyx: added a subsection explaining z80 interrupt support
5862
5863 2004-08-04 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
5864
5865         * src/mcs51/gen.c (genInline): Add \n for labels, not DOS/WIN dirs
5866           such as c:\mydir.
5867
5868 2004-08-03 Maarten Brock <sourceforge.brock AT dse.nl>
5869
5870         * src/SDCCloop.c (loopInvariants): fixed bug 983545, hope this
5871           doesn't disable too much optimizations
5872
5873 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
5874
5875         * src/pic/glue.c Disabled "WARNING: function 'main' undefined" when -S option is used.
5876
5877 2004-08-02 Maarten Brock <sourceforge.brock AT dse.nl>
5878
5879         * src/SDCClrange.c (rlivePoint): fixed bug 988568, thanks to anonymous
5880
5881 2004-08-02 Slade Rich <slade_rich AT users.sourceforge.net>
5882
5883         * src/pic/gen.c tidied up tabs
5884         * src/pic/genarith.c tidied up tabs and fixed bug with literal multiple where same register was used for hi and low byte
5885         * src/pic/main.c tidied up tabs
5886         * src/pic/pcode.c tidied up tabs and disabled verbose code generation
5887         * src/pic/pcoderegs.c tidied up tabs
5888         * src/pic/ralloc.c tidied up tabs
5889
5890 2004-07-30 Vangelis Rokas <vrokas AT otenet.gr>
5891
5892         * src/SDCCmem.c (allocGlobal): don't turn S_REGISTER storage class
5893         to S_FIXED for pic16 port and when symbol is not in level 0,
5894         allocate for S_REGISTER storage class and pic16 port, too,
5895         * src/pic16/device.h: prototype for checkSym,
5896         * src/pic16/device.c (pic16_dump_access, checkSym): NEW,
5897         * (pic16_assignConfigWordValue): test the value and the mask to
5898         validate that the value is suitable for the configuration word,
5899         * src/pic16/glue.c (pic16_printIvalFuncPtr): use 'externs' to
5900         collect extern declared symbols, don't emit symbol twice, check
5901         first if symbol is in publics set first,
5902         * src/pic16/main.c (_pic16_keywords[]): added keyword 'register',
5903         * added command line '--fstack' which enables an experimental
5904         feature for stack access, too buggy to be used yet...
5905         * src/pic16/ralloc.c (pic16_accessregWithName): NEW,
5906         * (pic16_allocDirReg): when register has storage class S_REGISTER
5907         allocate in pic16_dynAccessRegs,
5908         * device/include/pic16/pic18f????.h: modified configuration word
5909         naming convention, words started as CONFIG0H but should be CONFIG1H
5910
5911 2004-07-29 Maarten Brock <sourceforge.brock AT dse.nl>
5912
5913         * device/include/mcs51reg.h: fixed bug 970993
5914
5915 2004-07-27 Maarten Brock <sourceforge.brock AT dse.nl>
5916
5917         * added lib/calloc.c, lib/free.c, lib/realloc.c, include/stddef.h
5918         * updated lib/malloc.c, lib/libsdcc.lib, lib/Makefile.in, include/malloc.h
5919         * src/SDCC.lex (doPragma): added pragma disable_warning <nnn>
5920         * src/SDCCmain.c (parseCmdLine): added option --disable-warning <nnn>
5921         * src/ds390/gen.c (genPlusIncr): fixed bug when incrementing generic pointers
5922         * support/Util/SDCCerr.c (vwerror): suppress disabled warnings and output
5923           error/warning numbers,
5924           added function setWarningDisabled()
5925         * support/Util/SDCCerr.h: added setWarningDisabled() and MAX_ERROR_WARNING
5926         * support/regression/ports/mcs51-stack-auto/spec.mk: added dependencies
5927           _memcmp.c _memmove.c calloc.c realloc.c free.c
5928         * support/regression/tests/malloc.c: added tests for new functionality
5929         * support/regression/tests/zeropad.c: added tests for truncated initializers
5930           and initialized char arrays starting with '\x0'
5931         * src/mcs51/peeph.def: fixed regression, added peephole 177.f
5932
5933 2004-07-26 Bernhard Held <bernhard AT bernhardheld.de>
5934
5935         * support/valdiag/tests/overflow.c: fixed warning on (1 >> 40)
5936
5937 2004-07-26 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
5938
5939         * doc/sdccman.lyx: updated example in section "Absolute Addressing"
5940         * src/mcs51/peeph.def: added contributed fix for "bug" #995347 as
5941         peephole 177.e. Thanks to anonymous
5942
5943 2004-07-25 Vangelis Rokas <vrokas AT otenet.gr>
5944
5945         * src/pic16/glue.c (pic16_printIvalFuncPtr): when an extern
5946         function isn't used in the source but referenced as a
5947         variable initializer then declare it as extern in .asm file
5948
5949 2004-07-24 Vangelis Rokas <vrokas AT otenet.gr>
5950
5951         * .version: increased version number to 2.4.3
5952
5953         Adding version extension according to ChangeLog CVS revision
5954         * src/Makefile.in (target all): added dependency 'version.h'
5955         * (rule version.h): added rule to create version.h from ChangeLog,
5956         * (rule dep): added dependency version.h,
5957         * src/version.awk: AWK script to create version.h
5958         * src/SDCCdwarf2.c (dwWriteModule),
5959         * src/SDCCglue.c (initialComments),
5960         * src/SDCCmain.c (printVersionInfo): modified to write after
5961         version string the version extension number,
5962         * src/SDCCutil.c: included "version.h"
5963         * (getBuildNumber): NEW, returns SDCC's ChangeLog minor revision
5964         number,
5965         * src/SDCCutil.h: added prototype for getBuildNumber
5966
5967         * src/SDCCmain.c (parseCmdLine): when sOpt is 'I' add rest in
5968         includeDirsSet, too,
5969         * src/SDCCsymt.c (checkSClass): don't emit error when a variable,
5970         const char [] is found in function prototype...
5971
5972         * src/pic16/genarith.c (pic16_genUMult8XLit_8): optimization to omit
5973         moving to WREG with source is already in WREG,
5974         * src/pic16/gen.h: added AOP_FSR0 and AOP_FSR2 in enum,
5975         * src/pic16/gen.c (getFreePtr): updated to look for FSR0 and FSR2,
5976         * (aopForSym): stack'ed symbols are partially supported, added
5977         if-clause to support symbols in FARSPACE,
5978         * (sameRegs): added test for AOP_ACC to see if registers are same,
5979         * (pic16_freeAsmop): added case for AOP_FSR0 and AOP_FSR2,
5980         * (pic16_aopGet): added case for AOP_FSR0 and AOP_FSR2,
5981         * (pic16_popRegFromString): will not allocate a new register if it
5982         doesn't find one by name, bug may have introduced...
5983         * (pic16_popGet): added case for AOP_FSR0 and AOP_FSR2,
5984         * (genIpush): revived to use pic16 port's stack,
5985         * (genAddrOf): added incomplete case for stack'ed operand,
5986         * (genCast): optimized a pair of MOVFW,MOVWF to MOVFF
5987         * src/pic16/genutils.c (pic16_genNot): almot new vesrion for NOT,
5988         can handle multibyte operands,
5989         * src/pic16/glue.c (pic16_printIval*): some debug info added,
5990         * (pic16initialComments): added message for MPLAB compatibility
5991         mode enabled,
5992         * src/pic16/main.h: prototype for pic16_mplab_comp,
5993         * src/pic16/main.c (pic16_optionsTable): new option --mplab-comp,
5994         which enabled MPLAB compatibility mode (i.e. no #LINE/#FILE, BANKED)
5995         * (_pic16_linkEdit): NEW, handles link stage, transferred here
5996         because of increased complexity of procedure,
5997         * (_process_pragma): stack pragma changed to format 'stack pos len',
5998         emit symbol '_stack_end' to conform with gplink,
5999         * src/pic16/pcode.c (pic16_newpCodeOpBit): using pic16_regWithName
6000         to search for register,
6001         * (pic16_get_op, pic16_get_op2): added case for PO_W, PO_WREG and
6002         PO_GPR_REGISTER,
6003         * (pic16_pCode2str): when in MPLAB compatibility mode, comment out
6004         #LINE directives and replace 'B' with 'BANKED' in instruction opcodes
6005         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
6006         case for PO_GPR_REGISTER,
6007         * (pic16_AnalyzeBanking): removed the old message for inc2h.pl, past
6008         dies, the new era is ahead !...
6009         * src/pic16/ralloc.c: added hash reposits pic16_dynAllocRegNames and
6010         pic16_dynInternalRegs,
6011         * (pic16_allocregWithName, pic16_procregWithName, pic16_regWithname): NEW,
6012         * (pic16_allocDirReg): minor optimizations and bug fixes,
6013         * (pic16_allocWithIdx): when searching pic16_dynProcessorRegs use fixed,
6014
6015         * device/lib/pic16/startup/crt0*.c: extern definition of stack_end,
6016         load stack and frame pointer with address of 'stack_end' symbol
6017
6018 2004-07-23 Vangelis Rokas <vrokas AT otenet.gr>
6019
6020         * src/pic16/glue.c (pic16emitStaticSeg): fixed bug with files
6021         without source code but only variable initializers
6022
6023 2004-07-20 Vangelis Rokas <vrokas AT otenet.gr>
6024
6025         * src/pic16/glue.c (pic16emitRegularMap): unused functions marked as
6026         external are not declared as extern to reduce overhead while linking
6027
6028 2004-07-20 Maarten Brock <sourceforge.brock AT dse.nl>
6029
6030         * src/SDCCast.c (decorateType): removed buggy fix for bug #979599
6031
6032 2004-07-11 Maarten Brock <sourceforge.brock AT dse.nl>
6033
6034         * src/SDCCglue.c (printIvalArray): fixed bug #984229, thanks to Phuah
6035           Yee Keat for the patch
6036         * src/SDCCast.c (decorateType): fixed bug #979599
6037         * src/ds390/gen.h: removed local fReturnSizeDS390
6038         * src/ds390/gen.c: made fReturnSizeDS390 signed short to remove a warning
6039         * src/ds390/gen.c (genAnd, genOr, genXor),
6040         * src/mcs51/gen.c (genAnd, genOr, genXor): generate better optimized code
6041
6042 2004-07-04 Vangelis Rokas <vrokas AT otenet.gr>
6043
6044         * src/SDCCmain.c (linkEdit): modifications only for pic16 port,
6045         add relFilesSet to $3, manipulate $2 to handle linking of object
6046         files without source files in command line,
6047         * device/include/pic16 (all headers): added ID location macros,
6048         * src/pic16/device.c (struct PIC16_device Pics16[]): added field
6049         entries for ID location bytes,
6050         * (pic16_assignIdByteValue): NEW,
6051         * src/pic16/device.h: new structures idRegInfo_t and idBytesInfo_t,
6052         added field dumpcalltree to pic16_options_t,
6053         * src/pic16/gen.c (genCmp): fixed bug case so a temporary register
6054         is used instead of pic16_Gstack_base_addr, check if (ifx) before
6055         emitting rFalseIfx label after check_carry label,
6056         * src/pic16/glue.c (PIC16_IS_IDLOC_ADDRESS, PIC16_IS_HWREG_ADDRESS,
6057         pic16_emitDIRegs), NEW
6058         * (pic16glue): dump .calltree file when option --calltree found,
6059         * src/pic16/main.c (OPTION _pic16_optionsTable): new option --calltree
6060         * (_pic16_genAssemblerPreamble): emit ID locations after
6061         configuration registers,
6062         * (pic16_linkCmd): modifications of the link command,
6063         * src/pic16/pcode.c (pic16_pciMOVFF): PCC_REGISTER replaces PCC_REGISTER2
6064         * (pic16_pCodeInitRegisters): don't init stack registers,
6065         * (pic16_findPrevInstruction): fixed bug,
6066         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): fixed
6067         bug with immediate registers,
6068         * (buildCallTree): traces stack push and pop,
6069         * (pct2): dump also stack usage for each function,
6070         * src/pic16/ralloc.c (dynrIdx): registers names start from 0x00
6071         * (pic16_allocDirReg): various modifications,
6072         * (pic16_typeRegWithIdx): when searching pic16_dynProcessorRegs set
6073         fixed to 1,
6074
6075 2004-07-02 Vangelis Rokas <vrokas AT otenet.gr>
6076
6077         * src/pic16/pcode.c: removed buggy double colon
6078
6079 2004-07-01 Borut Razem <borut.razem AT siol.net>
6080
6081         * support/scripts/sdcc.nsi: added include/pic16 to setup
6082
6083 2004-06-30 Vangelis Rokas <vrokas AT otenet.gr>
6084
6085         * device/lib/Makefile.in: fixed bug in target objects-pic16,
6086         * device/lib/pic16/Makefile: prefixed with dash (-) command under
6087         target 'clean',
6088         * doc/sdccman.lyx: changed version to 2.4.2 and added some port
6089         specific command line arguments. Also added sample lkr script
6090         for placing a variable at a specific memory bank.
6091         * src/pic16/device.c (pic16_dump_gsection): NEW, to dump variables
6092         at a specific memory bank,
6093         * (pic16_dump_isection): fixed bug which caused string literals to
6094         be omitted when dumping idata section,
6095         * (pic16_groupRegistersInSection): added code to handle registers
6096         in specific memory banks,
6097         * src/pic16/gen.c: labelOffset is prefixed with pic16_ and made
6098         public, all references are renamed too,
6099         * (pic16_aopGet): removed switch cases for AOP_R0,AOP_R1,AOP_DPTR,
6100         AOP_DPTR2,
6101         * (pic16_storeForReturn): added case to handle when dest is WREG,
6102         * src/pic16/genarith.c (pic16_pCodeOpSubType): NEW,
6103         * src/pic16/glue.c (pic16emitRegularMap): when adding a register in
6104         pic16_rel_udata, check to see if that register is marked as being
6105         a member of a specific memory bank,
6106         * (pic16_printIvalCharPtr): added code to add string literals either
6107         to code or the idata sections,
6108         * src/pic16/main.c (_process_pragma): added \n to WHITE constant,
6109         also accept the 'udata' pragma,
6110         * src/pic16/main.h: new structure types sectName and sectSym
6111         * src/pic16/pcode.c: added new pCodeInstruction entry for BANKSEL
6112         * (newpCodeOpBit): added PIC_OPTYPE subt in function prototype,
6113         * (pic16_findPrevInstruction): fixed, it returned nothing,
6114         * (insertBankSwitch): fixed to emit banksel/skip and skip/banksel
6115         instruction combinations,
6116         * (pic16_FixRegisterBanking): heavily reorganised,
6117         * (pic16_AnalyzeBanking): if generating banksel directives is
6118         disabled, then don't call FixRegisterBanking at all,
6119         * src/pic16/ralloc.c (bitEQUs, aliasEQUs, allDefsOutOfRange):
6120         completely removed,
6121         * (pic16_writeUsedRegisters): added call to pic16_dump_gsection
6122
6123 2004-06-29 Bernhard Held <bernhard AT bernhardheld.de>
6124
6125         * src/SDCCglue.c (printChar): fixed bug #973350, patch provided by
6126         Phuah Yee Keat <yk.phuah AT nestac.com>
6127
6128 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6129
6130         * src/pic16/glue.c (pic16createInterruptVect): function now emits
6131         correctly the IVT even if it is relocated to some other location
6132
6133 2004-06-28 Vangelis Rokas <vrokas AT otenet.gr>
6134
6135         * device/include/pic16/pic18fregs.h: added case for pic18f2220.h
6136         * device/include/pic16/pic18f2220.h: NEW,
6137         * device/lib/pic16/libdev/pic18f2220.c: NEW,
6138         * device/lib/pic16/libdev/Makefile: added 18f2220 in DEVS,
6139         * src/pic16/device.c (struct Pics16): added info for 18f2220,
6140         * src/pic16/device.h (struct pic16_options): added ivt_loc and
6141         nodefaultlibs, ivt_loc is the location of the interrupt vector
6142         table, and nodefaultlibs signs that default libraries should not be
6143         linked in link stage,
6144         * src/pic16/gen.c (genFunction): relocate interrupt vector functions
6145         according to --ivt-loc argument,
6146         * src/pic16/main.c (_process_pragma): emit '_stack' as public symbol
6147         when pragma stack is found,
6148
6149 2004-06-25 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6150
6151         * src/mcs51/peeph.def: added peepholes 182.d (return 0.0),
6152         256 (range check), 257 (do while), 258.a-f (bit banging
6153         f.e. on 3-wire SPI bus)
6154
6155 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6156
6157         * src/SDCClrange.c (findNextUseSym): fixed a live range bug with
6158         variables used exclusively within a loop
6159
6160 2004-06-21 Bernhard Held <bernhard AT bernhardheld.de>
6161
6162         * src/mcs51/gen.c (genCpl): quick fix for bug #974835
6163
6164 2004-06-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6165
6166         * src/SDCClrange.c (computeClash): fixed bug #971834
6167
6168 2004-06-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6169
6170         * src/mcs51/gen.c (genCmp): fixed bug #975903
6171         * src/hc08/gen.c (operandsEqu),
6172         * src/ds390/gen.c (operandsEqu),
6173         * src/z80/gen.c (operandsEqu),
6174         * src/pic/gen.c (operandsEqu),
6175         * src/pic16/gen.c (operandsEqu),
6176         * src/mcs51/gen.c (operandsEqu): fixed bug #976283
6177         * src/SDCCmain.c (parseCmdLine): report --unknown-option only once
6178
6179 2004-06-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6180
6181         * src/SDCCcse.c (cseBBlock): fixed bug #966963
6182
6183 2004-06-12 Vangelis Rokas <vrokas AT otenet.gr>
6184
6185         * src/pic16/gen.c (genPointerGet): added E_INTERNAL_ERROR for
6186         default case in switch statement,
6187         * glue.c (pic16_initPointer): expr is initialised via decoarteType
6188         to eliminate problem with initialisation of pointers, but problem
6189         still exists,
6190         * (pic16_pointerTypeToGPByte): removed, no needed for pic16,
6191         * (emitStaticSegment): removed various lines emitting debug info,
6192         * src/pic16/pcode.c, src/pic16/pcode.h, src/pic16/ralloc.h:
6193         added processor registers for utilizing EEPROM,
6194         * src/pic16/pcode.c (pic16_emitDB): number of DBs emitted is not
6195         configurable and set 8
6196
6197 2004-06-08 Vangelis Rokas <vrokas AT otenet.gr>
6198
6199         * .version: increased version number to 2.4.2,
6200
6201         Cumulative patch for pic16 port
6202         * src/pic16/device.c: changed scheme to dump initial values for
6203         variables in idata segment, all print_idata* functions were removed,
6204         now the pic16_printIval* will be called,
6205         * src/pic16/glue.c: (pic16_initPointer, pic16_pointerTypeToGPByte,
6206         * _pic16_printPointerType, pic16_printPointerType,
6207         * pic16_printGPointerType, pic16_printIvalArray, pic16_printIvalStruct,
6208         * pic16_printIvalBitFields, pic16_printIvalFuncPtr, pic16_printIvalPtr:
6209         NEW, similar to the respective functions in SDCCglue.c,
6210         * src/pic16/pcode.c (pic16_emitDB, pic16_flushDB): reverted to old
6211         way, emitting hex bytes,
6212         * (pic16_emitDS): NEW, emits a string for pointer initialisation,
6213
6214 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6215
6216         * src/avr/ralloc.c (serialRegAssign),
6217         * src/xa51/ralloc.c (serialRegAssign),
6218         * src/pic/ralloc.c (serialRegAssign),
6219         * src/pic16/ralloc.c (serialRegAssign),
6220         * src/hc08/ralloc.c (serialRegAssign),
6221         * src/z80/ralloc.c (serialRegAssign),
6222         * src/ds390/ralloc.c (serialRegAssign),
6223         * src/mcs51/ralloc.c (serialRegAssign): fixed bug #964479
6224
6225 2004-06-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6226
6227         * src/SDCCicode.c (geniCodeJumpTable): fixed bug #967601
6228         * src/SDCCpeeph.c (labelIsReturnOnly): fixed bug #966505
6229
6230 2004-06-07 Vangelis Rokas <vrokas AT otenet.gr>
6231
6232         Cumulative patch for pic16 port:
6233         * src/pic16/device.h (typedef PIC16_device) modified fields for
6234         defining microcontrollers,
6235         * src/pic16/device.c: added new info for all devices in Pics16 array,
6236         * src/pic16/gen.c (genPcall): fixed bug that caused the return label
6237         to be optimised out by the pCode optimiser,
6238         * src/pic16/glue.c (pic16emitRegularMap): treat implicit aggragates
6239         specially, bug reported by G.M. Gallant,
6240         * src/pic16/pcode.c (pic16_newpCodeLabelFORCE): NEW, marks a label
6241         as force'd so that cannot be optimised out by pCode optimiser,
6242         * src/pic16/pcode.c,
6243         * src/pic16/pcodepeeph.c,
6244         * src/pic16/pcoderegs.c: many modifications to re-enable peepholes,
6245         they are disabled by default, but can be enabled explicit with
6246         command argument --denable-peeps, for testing,
6247         * device/lib/pic16/startup/Makefile: added --no-peep,--pomit-config-words,
6248         --pomit-ivt in COMPILE_FLAGS
6249
6250 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6251
6252         * src/pic16/pcode.c (pic16_emitDB): removed double semicolon which fails
6253           compilation on MSVC
6254
6255 2004-06-06 Maarten Brock <sourceforge.brock AT dse.nl>
6256
6257         * device/include/sab80515.h: added sfr P6, changed GPL to LGPL
6258
6259 2004-06-06 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6260
6261         device/include/sab80515.h: fixed bug #967492, DAPR is defined at adress
6262         0xd8, but the correct adress is 0xda. Thanks to anonymous for reporting
6263
6264 2004-06-06 Vangelis Rokas <vrokas AT otenet.gr>
6265
6266         * src/pic16/device.c (pic16_assignConfigWord): fixed bug that
6267         would only assign 0x300001 register.
6268
6269 2004-06-05 Vangelis Rokas <vrokas AT otenet.gr>
6270
6271         * device/lib/pic16/startup/Makefile: added $(MODELFLAGS)
6272         in COMPILE_FLAGS. Thanks to G. Gallant for report.
6273
6274 2004-06-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6275
6276         * doc/sdccman.lyx: minor changes, mentioned beta vendor support
6277         for ds80c400
6278         * src/mcs51/peeph.def: ran unexpand -a over peeph.def
6279         * src/mcs51/peeph.def: removed obsolete peephole 100.a,
6280         added peephole 254 (left shift), 255 (jump table)
6281
6282 2004-06-04 Vangelis Rokas <vrokas AT otenet.gr>
6283
6284         * device/lib/Makefile.in: removed comment line with model-pic16,
6285         * (target port-specific-objects-pic16): the libraries and objects
6286         are copied to the build directory form the device/lib/pic16/bin
6287         directory
6288
6289         Cumulative patch concerning pic16 port:
6290         * library directory has been re-organized,
6291         * added support for PIC18F1220,
6292         * added headers and library sources for chips 18f1220,18f6520,
6293         18f6620,18f6680,18f6720,18f8520,18f8620,18f8680,18f8720
6294
6295         * configuration registers setting has changed, now each supported
6296         device has a complete description of the registers it uses,
6297         * all initialisations are moved to idata sections, these section
6298         can be absolute or relocatable,
6299         * fixed initialisation of codespace variables,
6300         * fixed warning about PCLATU and gpsim,
6301         * src/pic16/gen.c (genCmp): now can handle partially iCodes with no ifx,
6302         * (genAssign): use table reads when assigning from variables in codespace,
6303         * src/pic16/glue.c (pic16emitStaticSeg): fixed to correctly initialise
6304         char/int variables placed in codespace,
6305         * (pic16_emitConfigRegs): NEW, emits a list with configuration
6306         registers set in .asm file, no need for --pomit-config-words anymore,
6307         * (pic16glue): some 8051 legacy segments are commented out
6308         (to be removed completely),
6309         * added support for alternative assembler and linker with --asm=
6310         and --link= command line arguments,
6311         * peepholes are disabled automatically in the port, no need to
6312         specify on command line,
6313         * port supports natively char/int/long multiplication, but converts
6314         all divisions to support functions,
6315         * main.c: pic16_linkCmd and pic16_asmCmd changed to force output
6316         to the file set in variable $2,
6317         * pcode.c (pic16_emitDB, pic16_flushDB): modified to print printable
6318         strings in ASCII format and not in hex,
6319         * ralloc.c (serialRegAssign): added a triplet of conditional calls
6320         to pic16_allocDirReg for IC_RESULT, IC_LEFT and IC_RIGHT so to
6321         allocate proper register if iCodes aren't temporary,
6322
6323 2004-06-02 Maarten Brock <sourceforge.brock AT dse.nl>
6324
6325         * support/regression/tests/zeropad.c: added TEST_G macro for alpha
6326
6327 2004-06-02 Vangelis Rokas <vrokas AT otenet.gr>
6328
6329         * src/pic16/gen.c (genPcall): warning about gpsim and PCLATU
6330         is commented out
6331
6332 2004-06-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6333
6334         * src/hc08/gen.c (genPointerGetSetOfs): disabled optimization if
6335         computed address is reused
6336         * src/hc08/gen.c (genPackBits): fixed offsets in assignments to
6337         multi-byte bitfields
6338
6339 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6340
6341         * src/z80/gen.c: (genArrayInit): must check for pointers too
6342
6343 2004-06-01 Maarten Brock <sourceforge.brock AT dse.nl>
6344
6345         * support/regression/tests/zeropad.c: never meant to commit the
6346           nestedstruct test: removed, added check for GCC version
6347
6348 2004-05-31 Maarten Brock <sourceforge.brock AT dse.nl>
6349
6350         * src/SDCCast.c (createIvalArray): fixed bug 770487 SIGSEGV
6351         * src/SDCCglue.c (emitRegularMap): fixed bug 770484 allocation problem
6352         * src/SDCCglue.c (initPointer, printIvalType, printIvalStruct,
6353           printIvalArray, printIvalFuncPtr, printIvalPtr, printIval): fixed
6354           bugs 928906 and 954082 half-empty initializers
6355         * src/SDCCsymt.h,
6356         * src/SDCCsymt.c (getAllocSize): added for above fix
6357         * src/z80/gen.c (genArrayInit): fixed bug 741044
6358         * support/regression/tests/zeropad.c: added tests
6359
6360 2004-05-30 Vangelis Rokas <vrokas AT otenet.gr>
6361
6362         * src/pic16/device.c (pic16_dump_section): corrected bug which
6363         caused some symbols of the libraries to be misplaced
6364
6365 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6366
6367         * src/pic16/glue.c,
6368         * src/pic16/ralloc.h,
6369         * src/pic16/ralloc.cc: prefixed IS_CONFIG_ADDRESS with PIC16_
6370         to fix conflict with pic port
6371
6372 2004-05-28 Vangelis Rokas <vrokas AT otenet.gr>
6373
6374         * src/pic16/glue.c (pic16emitStaticSeg): do not print as publics or
6375         externs configuration variables,
6376         * src/pic16/ralloc.h,
6377         * src/pic16/ralloc.cc: IS_CONFIG_ADDRESS is made public and added
6378         prototype in header, commented out some debug messages
6379
6380 2004-05-26 Vangelis Rokas <vrokas AT otenet.gr>
6381
6382         * src/pic16/glue.c,
6383         * src/pic16/main.c,
6384         * src/pic16/pcode.c: added gpasm directives #FILE/#LINE
6385         for gpasm COFF object generation. Thanks to D. Hawkins for
6386         his patch info
6387
6388 2004-05-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6389
6390         * src/ds390/main.c,
6391         * src/mcs51/main.c: fixed sort order of mnemonics (thanks to Maarten
6392         Brock for spotting this)
6393         * src/ds390/gen.c (genEndFunction),
6394         * src/mcs51/gen.c (genEndFunction): always save psw if function is an
6395         interrupt handler and critical. Disable push/pop optimizations when
6396         peephole optimizations disabled.
6397
6398 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6399
6400         Updated pic16 library sources and headers.
6401         * device/lib/pic16/pic18f*/ ,
6402         * device/include/pic16/*.h: modified to handle structured SFR
6403         definitions
6404
6405 2004-05-25 Vangelis Rokas <vrokas AT otenet.gr>
6406
6407         * src/port.h (PORT structure): added hook initPaths, now each
6408         port can declare its own default search paths,
6409         which can been seen with the --print-search-dirs option,
6410         see pic16 port for example,
6411         * src/SDCCmain.c (setBinPaths, setIncludePaths, setLibPath,
6412         setDataPaths): test to options.printSearchDirs is ifdef'ed out,
6413         * (doPrintSearchDirs): NEW, replaces in a central manner the
6414         printing of search dirs which was split in set*Paths functions,
6415         * (main): added call to port->initPaths and doPrintSearchDirs,
6416         * src/avr/main.c,
6417         * src/ds390/main.c,
6418         * src/hc08/main.c,
6419         * src/izt/i186.c,
6420         * src/izt/tlcs900h.c,
6421         * src/mcs51/main.c,
6422         * src/pic/main.c,
6423         * src/pic16/main.c: modified port structures to reflect addition of
6424         initPaths hook,
6425
6426         * src/pic16/device.c (regCompare): registers are finally sorted by name,
6427         * (pic16_dump_section): for registers in same address reserve memory once,
6428         * src/pic16/device.h (struct PIC16_device): changed variable gen_banksel
6429         to no_banksel,
6430         * src/pic16/genarith.c (pic16_genPlus): added code to handle cases where
6431         result is greater in size than right or left,
6432         * (pic16_genUMult8X8_8): there are some cases where the result can
6433         be 16 bits size, so handle these,
6434         * src/pic16/gen.c: changed some pic16_emitpcomment to DEBUGpic16_emitcode,
6435         * (pic16_outBitC): modified to emit pcodes,
6436         * (pic16_storeForReturn): using is_LitOp to see if operand is literal
6437         or not,
6438         * (genDivOneByte): implemented algorithm to divide 8-bits,
6439         * (genCmp): uncommented goto, but issues still exist,
6440         * (genAnd): fixed a bug with variables >8bits,
6441         * (genPackBits): optimization added that uses BCF/BSF to change a
6442         single bit,
6443         * (genAssign): fixed bug when assigning floating point literals,
6444         * src/pic16/glue.c (pic16glue): added assembler directive 'code' before
6445         __sdcc_gsinit_startup label,
6446         * src/pic16/main.c (_pic16_init): removed search directory
6447         initialisations,
6448         * (_pic16_initPaths): NEW, used to initialise search directories,
6449         * (_hasNativeMulFor): support functions for all except char/int
6450         multiplication, and char division,
6451         * (PIC16_port struct): modified entry for native mul support,
6452         * src/pic16/pcode.c (insertBankSwitch): modified to support the renamed
6453         no_banksel option,
6454         * (buildCallTree): call to register_usage is ifdef'ed out,
6455
6456 2004-05-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6457
6458         * device/include/string.h: applied Stas Sergeev's patch to make this
6459         header file compatible with the preprocessor -Wundef option
6460         * src/SDCCmain.c (main): abort compilation if preprocessor reports
6461         failure (fixes bug #941458)
6462
6463 2004-05-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6464
6465         * src/SDCCopt.c (killDeadCode): fixed bug #907733
6466         * support/Util/SDCCerr.c: reworded E_AUTO_ASSUMED diagnostic to clarify
6467         that the variable, not the function, should be static
6468         * src/SDCCval.c (valCastLiteral): fixed bit initialization from literal
6469         to be consistent with non-literal case
6470
6471 2004-05-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6472
6473         * src/SDCCast.c (isConformingBody): fixed bug #949967
6474         * src/SDCCopt.c (cnvToFcall, cnvToFloatCast, cnvFromFloatCast,
6475         convilong): fixed bug #952086
6476
6477 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6478
6479         * src/SDCCmem.c (allocVariables): fixed bug #955321
6480
6481 2004-05-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6482
6483         * src/hc08/main.c (_hc08_genAssemblerEnd),
6484         * src/SDCCdwarf2.c (dwOpenFile, dwCloseFile, dwWriteFunction,
6485         dwWriteModule, dwWriteCLine, dwWriteALine, dwarf2FinalizeFile):
6486         completely eliminated the use of a temporary file
6487         * src/SDCCdwarf2.c (dwWriteAttr): fixed bug with location list offset
6488         when more than one file linked
6489         * src/SDCCloop.c (pointerAssigned): fixed bug #954163
6490
6491 2004-05-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6492
6493         * src/SDCCval.c (valForArray): applied Maarten Brock's patch #947682
6494         which fixes bug #543481
6495         * support/regression/tests/bug-751703.c: fixed comments left from a
6496         cut and paste error
6497         * src/SDCCdwarf2.c (dwCloseFile): don't explicitly close a temp file
6498         * src/SDCCdwarf2.c (dwTagFromType): added bitfield support
6499         * src/SDCCdwarf2.c (dwWriteSymbolInternal): handle extern within local
6500         scopes
6501         * src/SDCCdwarf2.c (dwWriteLineNumber): line number deltas are signed
6502         * src/SDCCmain.c (processFile, parseCmdLine): non-alphanumeric chars
6503         are now changed to underscores in moduleName
6504
6505 2004-05-15 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6506
6507         * as/mcs51/lkmem.c: better fix for bug #954173
6508
6509 2004-05-15 Maarten Brock <sourceforge.brock AT dse.nl>
6510         committed by Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6511
6512         * device/include/c8051f020.h: newly added SiLabs (Cygnal) header file
6513         * device/include/c8051f000.h,
6514         * device/include/c8051f120.h,
6515         * device/include/c8051f300.h,
6516         * device/include/c8051f310.h,
6517         * device/include/c8051f320.h: updated (added _XPAGE, CAPN, CAPP,
6518         PWM16) and detab'ed
6519
6520 2004-05-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6521
6522         * doc/sdccman.lyx: mentioned sourceforge's delay between web frontend
6523         and mailing lists, doc'ed --no-peep-comments, removed reference
6524         to knoppix (newest version has no LyX/LaTeX), other minor changes
6525         * src/SDCCglue.c (glue): save 2 bytes stack space with
6526         option --main-return. The ljmp could probably be avoided too
6527
6528 2004-05-14 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6529
6530         * as/mcs51/lkmem.c, as/mcs51/lkaomf51: fixed bug 954173
6531
6532 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6533
6534         * src/SDCCsymt.h: added IS_AUTO(symbol) test macro
6535         * src/SDCCopt.c (isLocalWithoutDef),
6536         * src/SDCCicode.c (operandFromSymbol): use the IS_AUTO test macro
6537         which adds a !IS_EXTERN codition. Fixes bugs #877426 and #751703.
6538         (credit to Maarten Brock for patch #949363, on which this is based)
6539         * support/regression/tests/bug-751703.c: some test cases of extern used
6540         within inner scopes.
6541
6542 2004-05-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6543
6544         * src/SDCCdwarf2.c (dwMatchTypes): structs must have matching
6545         SPEC_STRUCT
6546         * src/SDCCdwarf2.c (dwTagFromType): fix to handle recursive
6547         struct definitions
6548         * src/SDCCdwarf2.c (dwWriteModule, dwNewDebugSymbol, dwWriteEndFunction,
6549         dwWriteLabel): fix to create valid debugger symbols even when
6550         the module name has non-alphanumeric symbols in it
6551         * src/SDCCdwarf2.c (dwWriteSymbolInternal): better detection for
6552         when a variable's allocation has been optimized away
6553
6554
6555 2004-05-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6556
6557         * src/hc08/gen.c (hc08_emitDebuggerSymbol),
6558         * src/hc08/main.c,
6559         * src/mcs51/gen.c (mcs51_emitDebuggerSymbol),
6560         * src/mcs51/main.c,
6561         * src/ds390/gen.c (ds390_emitDebuggerSymbol),
6562         * src/ds390/main.c,
6563         * src/z80/gen.c (z80_emitDebuggerSymbol),
6564         * src/z80/main.c,
6565         * src/pic/gen.c (pic14_emitDebuggerSymbol),
6566         * src/pic/main.c,
6567         * src/pic16/gen.c (pic14_emitDebuggerSymbol),
6568         * src/pic16/main.c,
6569         * src/avr/gen.c (avr_emitDebuggerSymbol),
6570         * src/avr/main.c,
6571         * src/xa51/gen.c (xa51_emitDebuggerSymbol),
6572         * src/xa51/main.c,
6573         * src/SDCCdebug.c (emitDebuggerSymbol),
6574         * src/SDCCdebug.h,
6575         * src/port.h: added a debugger struct to the port struct. Added a
6576         callback for defining debugger symbols
6577
6578         * src/SDCCast.c (createLabel),
6579         * src/SDCC.y (labeled_statement): mark all compiler generated labels
6580         with isitmp = 1
6581         * src/SDCCicode.h,
6582         * src/SDCCicode.c (geniCodeFunctionBody): added a link from the FUNCTION
6583         iCode back to the ast for the function
6584
6585         * src/hc08/ralloc.c (hc08_assignRegisters),
6586         * src/hc08/ralloc.h: define a regs struct for the stack pointer. Removed
6587         unneeded fields from the regs struct.
6588         * src/hc08/gen.c (transferRegReg, genFunction, genEndFunction): use the
6589         pushReg() & pullReg() functions instead of emitcode()
6590
6591         * src/hc08/gen.c (genLabel, genhc08Code),
6592         * src/SDCCdebug.h: Added additional debugger hooks needed for DWARF
6593
6594         * src/cdbFile.c (cdbWriteLabel, cdbWriteScope): Added stubs for unneeded
6595         debugger hooks
6596
6597         * src/hc08/gen.c (genEndFunction, genhc08Code),
6598         * src/hc08/gen.h,
6599         * src/mcs51/gen.c (genEndFunction, gen51Code),
6600         * src/mcs51/gen.h,
6601         * src/ds390/gen.c (genEndFunction, gen390Code),
6602         * src/ds390/gen.h,
6603         * src/z80/gen.c (genEndFunction, genZ80Code),
6604         * src/z80/gen.h,
6605         * src/z80/z80.h,
6606         * src/pic/gen.c (genEndFunction, genpic14Code),
6607         * src/pic/gen.h,
6608         * src/pic16/gen.c (genEndFunction, genpic16Code),
6609         * src/pic16/gen.h,
6610         * src/avr/gen.c (genEndFunction, genAVRCode),
6611         * src/avr/gen.h,
6612         * src/xa51/gen.c (genEndFunction, genXA51Code),
6613         * src/xa51/gen.h,
6614         * src/cdbFile.c (cdbWriteFunction, cdbWriteEndFunction): moved cdb
6615         specific code to cdbFile.c and out of the backend code generators
6616
6617         * as/hc08/lkmain.c (main): removed OMF51 support from link-hc08
6618         * as/hc08/lkarea.c (lnkarea): areas with NOLOAD attribute default
6619         starting address is now 0
6620
6621         * as/hc08/asm.h,
6622         * as/hc08/m08pst.c,
6623         * as/hc08/asmain.c (asmbl): implemented the .sleb128 and .uleb128
6624         assembler directive for DWARF support
6625         * as/hc08/lkelf.c (elf): only increment address when rtflg[] set
6626
6627         * src/src.dsp,
6628         * src/Makefile.in,
6629         * src/SDCCdwarf2.c: preliminary DWARF (ver 2) debugger data generator
6630
6631 2004-05-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6632
6633         * src/hc08/gen.c (genJumpTab, emitcode, genhc08code): fixed stack error
6634         and inappropriate peephole optimization in jump tables
6635
6636 2004-04-30 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6637
6638         * as/hc08/m08pst.c,
6639         * src/SDCCglue.c: sdccopt works for the hc08 port now
6640
6641 2004-04-27 Bernhard Held <bernhard AT bernhardheld.de>
6642
6643         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): fixed bug #942130
6644
6645 2004-04-27 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6646
6647         * as/hc08/lkelf.c: sdccconf.h is not available in WIN32
6648
6649 2004-04-24 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6650
6651         * src/SDCCpeeph.c (replaceRule): support empty replacement peephole
6652         rules
6653         * src/SDCCmain.c,
6654         * src/SDCCglobl.h,
6655         * src/SDCCpeeph.c (getPeepLine): new option --no-peep-comments omits
6656         comments from the peephole optimizer replacement rules
6657         * src/SDCCmem.c (printAllocInfoSeg): give actual location of spilled
6658         symbols
6659         * src/SDCCcse.c (updateSpillLocation),
6660         * src/SDCCopt.c (killDeadCode, findReqv): better tracking of register
6661         equivalents
6662         * src/hc08/ralloc.c (regTypeNum): pseudo symbols must be in DATA only
6663         * src/hc08/main.c (_hc08_finaliseOptions): made pointers to stack
6664         objects far pointers
6665
6666 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6667
6668         * src/SDCCsymt.h: a missing part of my last change
6669         * src/pic/ralloc.c (regTypeNum),
6670         * src/pic16/ralloc.c (regTypeNum): fixed statement/declaration order
6671
6672 2004-04-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6673
6674         * src/SDCCicode.h,
6675         * src/SDCCicode.c (aggrToPtrDclType),
6676         * src/SDCCptropt.h,
6677         * src/SDCCptropt.c (ptrBaseRematSym, ptrPseudoSymSafe,
6678         ptrPseudoSymConvert),
6679         * src/pic/ralloc.c (regTypeNum),
6680         * src/pic16/ralloc.c (regTypeNum),
6681         * src/hc08/ralloc.c (regTypeNum),
6682         * src/ds390/ralloc.c (regTypeNum),
6683         * src/mcs51/ralloc.c (regTypeNum): check for dependancy hazards before
6684         creating pseudo symbols (fixed bugs #777768, #930484, and #933966)
6685
6686 2004-04-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6687
6688         * link/z80/lkmain.c (afile),
6689         * as/hc08/lkmain.c (afile),
6690         * as/mcs51/lkmain.c (afile): fix suggested by Maarten Brock to
6691         prevent a pointer problem when a filename has no directory and
6692         no extension specified.
6693
6694 2004-04-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6695
6696         * link/z80/lkmain.c (afile): allow periods in directory names
6697         * link/z80/lkmain.c (afile),
6698         * as/mcs51/lkmain.c (afile),
6699         * as/hc08/lkmain.c (afile): allow linker script file to have an
6700         extension other than ".lnk"
6701         * link/z80/lklex.c (getfid),
6702         * link/z80/lkmain.c (parse),
6703         * as/mcs51/lklex.c (getfid),
6704         * as/mcs51/lkmain.c (parse),
6705         * as/hc08/lklex.c (getfid),
6706         * as/hc08/lkmain.c (parse): Support comments in the linker script
6707         file on lines by themselves and after filenames
6708
6709 2004-04-20 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6710
6711         * as/link_hc08.dsp: Added as/hc08/lkelf.c to project.
6712
6713 2004-04-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6714
6715         * src/z80/peeph-z80.def: removed some peephole rules that don't
6716         work with multibyte arithmetic (fixed bug #937126)
6717         * src/mcs51/peeph.def: fixed peephole rules 150-158 to apply only
6718         to registers and not global variables
6719         * src/SDCCicode.c (geniCodeAssign, ast2iCode, geniCodePostInc,
6720         geniCodePreInc, geniCodePostDec, geniCodePreDec,
6721         geniCodeLogicAndOr, geniCodeConditional): enforce strict lvalue
6722         checking for assignments not internally generated (fixed bug #931895)
6723         * src/SDCC.y (postfix_expr): ignore typedefs when looking for a
6724         structure member (fixed bug #930072)
6725
6726 2004-04-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6727
6728         * src/SDCCmain.c (linkEdit),
6729         * src/hc08/main.c (_hc08_parseOptions),
6730         * as/hc08/Makefile.in,
6731         * as/hc08/aslink.h,
6732         * as/hc08/asm.h,
6733         * as/hc08/m08pst.c,
6734         * as/hc08/lkrloc.c (relr, rele),
6735         * as/hc08/lkarea.c (lnkarea)
6736         * as/hc08/lkmain.c (afile, parse),
6737         * as/hc08/lkelf.c: support for ELF output
6738         * as/hc08/lks19.c (s19),
6739         * as/hc08/lkihx.c (ihx): ignore areas with the NOLOAD attribute
6740
6741 2004-04-17 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6742
6743         * as/mcs51/lkihx.c: Fixed bug #899105.
6744
6745 2004-04-16 Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
6746
6747         * doc/sdccman.lyx: Added instructons on how to convert MSVC .dsw and
6748         .dsp files from Unix to DOS.
6749
6750 2004-04-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6751
6752         * doc/sdccman.lyx: removed the ANSI-C noncompliance note regarding
6753         function pointers; we have been compliant for several months now.
6754         * src/mcs51/ralloc.c (serialRegAssign): enabled part of my 2004-04-13
6755         change that was accidently commented out
6756         * src/mcs51/gen.c (freeAsmop, getFreePtr, freeForBranchAsmop, genIfxJump,
6757         genCmpEq, jmpTrueOrFalse, genCmp, genAnd, genOr, genXor, genIfx): fixed
6758         bug #922319
6759
6760 2004-04-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6761
6762         * src/hc08/gen.c: output of all of the internal debugging information
6763         is now controlled by the D() macro; it is disabled by default
6764
6765 2004-04-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6766
6767         * src/mcs51/ralloc.c (serialRegAssign, fillGaps, allocThisReg): try
6768         harder to keep the same registers during a CAST iCode
6769         * src/SDCCopt.c (optimizeCastCast, eBBlockFromiCode): casts of char to
6770         long via int can be done in a single cast, if the signedness is
6771         correct.
6772         * support/regression/tests/bug-927659.c: fixed to avoid conflict with
6773         putchar() in tinibios.c in ds390's library
6774
6775 2004-04-12 Bernhard Held <bernhard AT bernhardheld.de>
6776
6777         * src/SDCCast.c (decorateType): fixed bug #898889,
6778         cast result of a literal complement too
6779         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #930931,
6780         fixed check for bitfields
6781
6782 2004-04-11 Bernhard Held <bernhard AT bernhardheld.de>
6783
6784         * src/SDCCicode.c (geniCodeLogic): made it static,
6785         (geniCodeLogicAndOr): added in order to fix bug #905492,
6786         (ast2iCode): fixed bug #905492
6787         * support/regression/tests/bug-905492.c: added
6788         * src/SDCCast.c (decorateType): don't decorate/process parms twice,
6789         (processParms): fixed bug #927659: don't copy parms, this will clear
6790         decorated flag
6791         * support/regression/tests/bug-927659.c: added
6792
6793 2004-03-29 Bernhard Held <bernhard AT bernhardheld.de>
6794
6795         * src/SDCCast.c (addCast): don't cast float to char
6796         * device/lib/libsdcc.lib: added _memmove
6797
6798 2004-03-28 Bernhard Held <bernhard AT bernhardheld.de>
6799
6800         * device/lib/large/Makefile: fixed parallel execution by
6801         replacing `make` by `$(MAKE)`
6802
6803 2004-03-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6804
6805         * src/hc08/gen.c (genPointerGetSetOfs): correctly handle 1 byte array
6806         offsets (fixes bug #923936)
6807
6808 2004-03-26 Bernhard Held <bernhard AT bernhardheld.de>
6809
6810         * device/lib/small/Makefile: fixed parallel execution by
6811         replacing `make` by `$(MAKE)`
6812
6813 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
6814
6815         * device/lib/vprintf.c (vsprintf): minor optimization, see bug #801101
6816
6817 2004-03-23  Scott Dattalo  <scott AT dattalo.com>
6818
6819         * src/pic/gen.c (genCpl): multi-byte complements were not working.
6820         * src/regression/Makefile: Regression test was not running.
6821
6822 2004-03-23 Bernhard Held <bernhard AT bernhardheld.de>
6823
6824         * src/SDCCast.c (resultTypePropagate, decorateType): avoid promotion to int for
6825         complement if possible
6826         * src/SDCCval.c (valComplement),
6827         * src/SDCCicode.c (operandOperation): fixed complement of literal
6828         * support/regression/tests/onebyte.c (testComplement): added
6829
6830 2004-03-22 Bernhard Held <bernhard AT bernhardheld.de>
6831
6832         * src/SDCCast.c (processParms): fixed bug #920866; decorateType() can
6833         return an optimized tree; actually replace actParm with the new tree
6834         * src/SDCCast.h: added some parantheses to remove side effects
6835         * support/regression/tests/bug-920866.c
6836
6837 2004-03-21  Scott Dattalo  <scott AT dattalo.com>
6838         * src/pic/gen.c, src/pic/gen.h, src/pic/genarith.c, src/pic/pcode.c:
6839         Bit operands were not being handled properly in the pic14 port.
6840         (now src/regression/add.c passes again).
6841
6842 2004-03-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6843
6844         * src/SDCC.y (labeled_statement): case and default no longer require
6845         a following statement (RFE #893037)
6846
6847 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6848
6849         * src/mcs51/gen.c (pushSide, genSignedRightShift, genDjnz, geniPush):
6850         use MOVA macro to avoid "mov a,acc" when peephole optimizer is
6851         disabled (fixes bug #916294)
6852         * sim/ucsim/s51.src/mov.cc (inst_mov_a_addr): Throw an error on
6853         "mov a,acc"; patch provided by Lenny Story
6854         * device/include/mc68hc908gp32.h: header contibuted by Juan Gonzalez
6855
6856 2004-03-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6857
6858         * src/mcs51/gen.c (genFunction): optimize RECEIVE in reentrant
6859         functions
6860         * src/ds390/gen.c (genFunction, genEndFunction),
6861         * src/ds390/ralloc.c (ds390_assignRegisters),
6862         * src/mcs51/gen.c (genFunction, genEndFunction, mcs51_assignRegisters):
6863         * src/mcs51/ralloc.c (mcs51_assignRegisters): Skip optimizing registers
6864         pushed if there are parameters passed on the stack. Also, a cleaner
6865         way to decide if r0/r1 should be pushed/popped. (Together they fix
6866         bug #918693)
6867
6868 2004-03-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6869
6870         * doc/sdccman.lyx,
6871         * device/lib/mcs51/crtpagesfr.asm,
6872         * device/lib/mcs51/crtxinit.asm,
6873         * device/lib/mcs51/crtxstack.asm: Changed name of _PAGESFR to _XPAGE
6874         to avoid confusion with Si Lab's SFRPAGE register.
6875
6876 2004-03-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6877
6878         * src/SDCCglue.c (emitMaps): allow public sfr variables
6879         * src/SDCCglue.c (initialComments): include compiler build date
6880         with compiler version and put the timestamp of the generated
6881         assembly file on a serperate line to be less confusing.
6882         * src/port.h: added genInitStartup hook
6883         * src/avr/main.c,
6884         * src/ds390/main.c,
6885         * src/hc08/main.c,
6886         * src/pic/main.c,
6887         * src/pic16/main.c,
6888         * src/xa51/main.c,
6889         * src/z80/main.c: genInitStartup initialize as NULL (default to
6890         historical behaviour)
6891         * src/SDCCglue.c (glue): _sdcc_gsinit_startup is now port specific.
6892         * src/mcs51/main.c: (_mcs51_genInitStartup, _mcs51_genExtraAreas,
6893         _mcs51_genXINIT, _mcs51_genRAMCLEAR): link initialization code from the
6894         library instead of hard coding it into the compiler.
6895         * support/regression/ports/mcs51-stack-auto/spec.mk,
6896         * src/SDCCmain.c (linkEdit): added mcs51.lib to the link libraries
6897         * device/lib/mcs51/Makefile,
6898         * device/lib/small/Makefile,
6899         * device/lib/large/Makefile,
6900         * device/lib/mcs51/crtpagesfr.asm,
6901         * device/lib/mcs51/crtstart.asm,
6902         * device/lib/mcs51/crtxclear.asm,
6903         * device/lib/mcs51/crtxinit.asm,
6904         * device/lib/mcs51/crtclear.asm,
6905         * device/lib/mcs51/crtxstack.asm: move most of the mcs51 C runtime
6906         startup/initialization out of src/SDCCglue.c and src/mcs51/main.c
6907         and into user configurable files.
6908         * device/lib/clean.mk: clean mcs51 directory too
6909         * support/regression/tests/longlit.c: added static to T1 declaration
6910         * doc/sdccman.lyx: documented _PAGESFR sfr for customizing pdata
6911         accesses in the initialization code
6912
6913 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6914
6915         * device/include/mc68hc908qy.h: corrected declarations of FLBPR and
6916         OSCTRIMVAL as noted in bug #916008
6917
6918 2004-03-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6919
6920         * src/SDCCloop.c (basicInduction): fixed bug with loop induction
6921         in loops with multiple exits (reported as incorrect registers
6922         used by Martin Helmling in Sdcc-user list)
6923
6924 2004-03-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
6925
6926         * src/ds390/main.c (_ds390_genAssemblerPreamble): cosmetic change,
6927         made ds390 register extensions look less like error messages
6928
6929 2004-03-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
6930
6931         * src/SDCCglue.c (printIvalPtr): fixed bug with pointer initializer
6932         reported by Adam Wozniak in Sdcc-user list
6933
6934 2004-03-10 Bernhard Held <bernhard AT bernhardheld.de>
6935
6936         * src/SDCCast.c (decorateType): fixed with bug and promotion in
6937         arithmetic optimizations, added debug output
6938
6939 2004-03-09 Bernhard Held <bernhard AT bernhardheld.de>
6940
6941         * device/lib/time.c (mktime): fixed bug reported by Bert Thomas
6942         * sdcc.spec: updated and split sdcc into 3 rpms
6943         * src/SDCCast.c (decorateType): &|^ don't need addCast(); addCast() is
6944         needed for literals of LEFT_OP and '+'
6945         * src/SDCCicode.c (geniCodeLogic): I must have been braindead when I
6946         introduced RESULT_TYPE_NOPROM
6947         (geniCodeMultiply): fixed logic for decision if mul is optimized to
6948         left shift
6949         * src/SDCCsymt.c (computeType): op is int; added RESULT_TYPE_OTHER;
6950         limited promotion to int only for '*'
6951         * src/SDCCsymt.h (computeType): op is int, removed RESULT_TYPE_NOPROM
6952
6953 2004-03-09 Hans Dorn <hjdorn AT users.sourceforge.net>
6954
6955         * src/pic16/gen.c (genSkip),
6956         (genc16bit2lit), (gencjneshort): commented out
6957         (is_LitOp): new helper function, checks operand type
6958         (genCmpEq): rewritten
6959
6960 2004-03-08 Bernhard Held <bernhard AT bernhardheld.de>
6961
6962         * support/regression/tests/bug-908454.c: added
6963
6964 2004-03-07 Bernhard Held <bernhard AT bernhardheld.de>
6965
6966         * src/SDCCast.c (addCast): fixed bug #908454 by promoting bits to char
6967         * src/SDCCicode.c (usualBinaryConversions): op needs int type
6968         (geniCodeCast): cosmetic, don't preserve bit storage class
6969         (geniCodeLeftShift): added promotion
6970         (geniCodeLogic): fixed regression
6971         * src/SDCCsymt.c (computeTypeOr): accept bits too
6972         (compareType): 2nd part of fix for bug #908454, needed for bitfields
6973
6974 2004-03-07  Borut Razem <borut.razem AT siol.net>
6975
6976         * support/Util/findme.c: alloca() replaced with malloc()/free() pair
6977
6978 2004-03-06 Vangelis Rokas <vrokas AT otenet.gr>
6979
6980         * src/pic16/ralloc.c (pic16_genPackRegisters): reverted to old
6981         version of pic16_genPackRegisters which does not check if ic is a
6982         CAST operator,
6983         * src/pic16/gen.c (ifxForOp): disabled new and untested code in
6984         function cause string1.c regression test fails
6985
6986 2004-03-06 Bernhard Held <bernhard AT bernhardheld.de>
6987
6988         * sim/ucsim/configure.in,
6989         * sim/ucsim/configure,
6990         * sim/ucsim/doc/Makefile.in: use docdir
6991         * src/SDCC.y: fixed sbit atrributes
6992         * src/SDCCast.c (getResultTypeFromType): added support for bitfields
6993         * src/SDCCast.c (decorateType): |^& need special promotion handling
6994         * src/SDCCast.h,
6995         * src/SDCCsymt.h: moved definition of RESULT_TYPE
6996         * src/SDCCsymt.h (computeType),
6997         * src/SDCCicode.c: computeType() needs op
6998         * src/SDCCsymt.c (checkTypeSanity),
6999         * doc/sddman.lyx: "plain" bitfields are unsigned
7000         * src/SDCCsymt.c (computeTypeOr): added
7001         * src/SDCCsymt.c (computeType): added support for bitfields, fixed
7002         |^& ops
7003         * src/SDCCval.c (val*): computeType() needs op
7004         * src/SDCCval.c (valCastLiteral): fixed casting of bitfields
7005         * support/regression/tests/onebyte.c: added tests for |^&
7006
7007 2004-03-06 Hans Dorn <hjdorn AT users.sourceforge.net>
7008
7009         * src/pic16/gen.c: (genpic16Code) use copy of printILine's output
7010         for writing icode into asm output.
7011
7012 2004-03-05 Vangelis Rokas <vrokas AT otenet.gr>
7013
7014         * src/pic16/device.c: added some debug lines enabled
7015         with macro DEBUG_CHECK,
7016         * src/pic16/genarith.c: more debug in genPlus,
7017         * (pic16_genUMult8XLit_16, pic16_genUMult8X8_16): removed,
7018         * (pic16_genUMult16X16_16, pic16_genUMult16XLit_16): NEW,
7019         * src/pic16/gen.c: added prototypes for pic16_genMult16X16_16,
7020         * (aopForSym): onStack symbols are re-placed in data memspace,
7021         and onStack flag is cleared,
7022         * (pic16_popGetTempReg, pic16_popReleaseTempReg): modified to
7023         copy temporary pcodeop,
7024         * (genPcall): added warning for not updating PCLATU,
7025         * (genFunction): removed test with IFFUNC_CALLEESAVES, its
7026         always true for pic16 port,
7027         * (genMultOneWord): NEW, supports integer multiplication,
7028         * (genMult): modified to call genMultOneWord,
7029         * (ifxForOp): added warning when return NULL,
7030         * src/pic16/glue.c (pic16emitRegularMap): symbol implicit
7031         flag is set before call to operandFromSymbol for implicit
7032         added structures,
7033         * src/pic16/main.c (_pic16_finaliseOptions): options.float_rent,
7034         options.intlong_rent are set by default,
7035         * (_hasNativeMulFor): modified to allow port generation of integer
7036         multiplication,
7037         * src/pic16/ralloc.c (pic16_allocDirReg): commented out line which
7038         set regtype to REG_SFR for all registers, restricting seting the
7039         accessBank flag for registers 0<= r < 0x80 and 0xf80<=r<=0xfff,
7040
7041 2004-03-05 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7042
7043         * src/mcs51/peephole.def: added 251.b and 253.x. 253.x are applied
7044         more than 500 times in the regression tests
7045
7046 2004-03-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7047
7048         * support/Util/SDCCerr.h,
7049         * support/Util/SDCCerr.c,
7050         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7051         enumerator_list),
7052         * src/SDCCsymt.c (addSymChain): show location of oriignal definition
7053         for symbol conflicts.
7054         * support/valdiags/tests/enum.c,
7055         * support/valdiags/tests/tentdecl.c,
7056         * support/valdiags/tests/struct.c: expect possible error messages
7057         referring to original symbol definitions.
7058         * src/SDCC.y (struct_or_union_specifier, struct_declarator),
7059         * src/SDCCsymt.h,
7060         * src/SDCCsymt.c (promoteAnonStructs): support anonymous struct/union
7061
7062 2004-03-03 Hans Dorn <hjdorn AT users.sourceforge.net>
7063
7064         * src/pic16/gen.c (gencjne): fixed for right=REG / left=LIT
7065
7066 2004-02-03 Vangelis Rokas <vrokas AT otenet.gr>
7067
7068         * src/pic16/ralloc.c (newReg): fixed bug #908929
7069
7070 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7071
7072         * src/ds390/gen.c: added missing #include "main.h"
7073
7074 2004-03-02 Vangelis Rokas <vrokas AT otenet.gr>
7075
7076         * src/pic16/device.c (checkAddSym): NEW, adds a symbol to set while
7077         checking if symbol is already in set,
7078         * src/pic16/device.h: prototype for checkAddSym,
7079         * src/pic16/gen.c: (_G): added entry interruptvector,
7080         * (assignResultValue): removed some commented out lines,
7081         * (genFunction): check for ISR via sym->type, absolute section for
7082         interrupt code is created via a new pBlock, the goto instruction is
7083         placed now correctly at the interrupt vector position, changed all
7084         references from ivec to _G.interruptvector,
7085         * WREG,STATUS,BSR are not saved in stack upon an entry to interrupt
7086         is the interrupt is a high priority one, same for return from ISR,
7087         * src/pic16/glue.c: changed all calls of addSetHead for publics and
7088         externs to calls of checkAddSym,
7089         * src/pic16/pcode.c (pic16_pBlockConvert2*): emit warning when
7090         pic16_pcode_verbose flag is set,
7091         * src/pic16/pcode.h: extern to pic16_pcode_verbose,
7092         * src/pic16/pcoderegs.c: message about how many registers are saved
7093         will only be emitted if pic16_pcode_verbose flag is set,
7094
7095 2004-03-02 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7096
7097         * src/ds390/ralloc.h,
7098         * src/ds390/ralloc.c (ds390_regWithIdx),
7099         * src/ds390/gen.c (emitcode),
7100         * src/ds390/main.h,
7101         * src/ds390/main.c (instructionSize, ds390newAsmLineNode, updateOpRW,
7102         ds390opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7103         ds390operandCompare, getRegsRead, getRegsWritten,
7104         initializeAsmLineNode): customized instruction size calculation for
7105         ds390, started basis for some register optimizations
7106         * src/ds390/gen.c (gen390Code, emitcode): associate iCodes with
7107         corresponding assembly output
7108         * src/ds390/gen.c (genFunction, genEndFunction): added case to handle
7109         missing push/pop of r0/r1. Optimized push/pops
7110
7111 2004-03-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7112
7113         * src/mcs51/main.c (instructionSize): fixed ACALL size
7114         * src/mcs51/main.c (updateOpRW): fixed bug with @dptr, @a+dptr operands
7115
7116 2004-03-01 Vangelis Rokas <vrokas AT otenet.gr>
7117
7118         * src/pic16/device.c (pic16_dump_section): fixed a bug that allowed
7119         the sorting of rlist with NULL elements
7120         * (print_idataType, print_idata): NEW to create idata sections
7121         * src/pic16/device.h: idataSymSet new variable
7122         * src/pic16/gen.c (genFunction): fixed some bugs in string
7123         comparing, improved the absolute section creation for ISRs,
7124         added FSR0L/FSR0H in registers that are saved in an ISR,
7125         * (genInline): fixed the processing of inline snippets,
7126         now they undergo no process by the peephole optimizer
7127         * src/pic16/glue.c (pic16emitRegularMap): symbols with initialiser
7128         are placed in idataSymSet,
7129         * (pic16emitStaticSeg): extern symbols are added in externs,
7130         * src/pic16/ralloc.c (pic16_allocDirReg): work around to reduce bank
7131         switching when aboslute variables are placed in access bank memory
7132         * (pic16_writeUsedRegs): added call to pic16_dump_idata,
7133         * (packRegsForSupport,packRegsForAccUse,packRegsForOneuse):
7134         commented out with #if,
7135         * (pic16_packRegisters): reintroduce the check for CAST because some
7136         symbols are not correctly handled,
7137         * src/pic16/pcode.h: changed the definition of pCodeAsmDir to hold a
7138         pCodeInstruction instead of pCode,
7139         * src/pic16/pcode.c (pic16_newpCodeAsmDir): modified for the new
7140         pCodeAsmDir definition,
7141         * (pic16_pCode2str, genericPrint): when an AsmDir pcode has a NULL
7142         directive, then the argument directive is emitted without the leading
7143         tab, hack for inline labels which must be in the first column,
7144         * (compareLabel,pic16_findNextInstruction),
7145         * (pic16_findPrevInstruction): added case for PO_ASMDIR,
7146         * (insertBankSwitch): modified for the new pCodeAsmDir,
7147
7148 2004-03-01 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7149         patch applied by Vangelis Rokas <vrokas AT otenet.gr>
7150
7151         * src/pic16/gen.c (pic16_popGet): case PO_DIR, adds the offset to
7152         instance,
7153         * (pushSide): commented out with #if,
7154         * (assignResultValue): fixed some typos in saving
7155         registers,
7156         * (genPcall): FIXED and sync'ed with genCall,
7157         * (genDataPointerGet,genDataPointerSet): using offset not leoffset
7158         * (genNearPointerGet): fixed to handle some more cases,
7159         implementation scheme via table reads,
7160         * (genConstPointerGet): modified to access code memory correct,
7161         * (genCodePointerGet,genNearPointerSet,genGenPointerSet): modified
7162         and improved to handle some cases
7163         * glue.c (printIvalType,printIvalChar,emitStaticSeg): use "DB"
7164         instead of "RETLW" for init data
7165         * src/pic16/ralloc.c (pic16_allocDirReg): warning when a symbol is
7166         not IN_DIRSPACE, work around to reduce bank switching when aboslute
7167         variables are placed in access bank memory (<0x80 and >=0xf80),
7168         * src/pic16/pcode.c: added SFRs TBLPTR, TABLAT, added opcodes TBLRD,
7169         TBLRD_POSTINC,TBLRD_POSTDEC,TBLRD_PREINC,TBLWT,TBLWT_POSTINC,
7170         TBLWT_POSTDEC,TBLWT_PREINC
7171         * Fixed initialisation of BSR, set "alias" for SSAVE to "0"
7172         * (pic16_emitDB,pic16_flushDB): New functions to generate "DB"
7173         directives
7174         * (pic16_pCodeConstString): use "DB" instead of "RETLW"
7175         * src/pic16/pcode.h: added TBLRD*,TBLWT*, added pic16_emitDB,
7176         pic16_flushDB, made pic16_newpCodeAsmDir public, added TBLPTR, TABLAT
7177         * src/pic16/ralloc.h: added IDX_BSR,IDX_TBLPTR*,IDX_TABLAT
7178
7179 2004-02-29  Borut Razem <borut.razem AT siol.net>
7180
7181         * src/Makefile.in, src/SDCCutil.c, support/Util/findme.c,
7182         support/Util/findme.h, support/Util/system.h: enhance binary relative
7183         search for lib and include by using findProgramPath()
7184
7185 2004-02-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7186
7187         * src/SDCCpeeph.h,
7188         * src/SDCCpeeph.c (pcDistance),
7189         * src/port.h,
7190         * src/mcs51/ralloc.h,
7191         * src/mcs51/ralloc.c (mcs51_regWithIdx),
7192         * src/mcs51/main.h,
7193         * src/mcs51/main.c (instructionSize, asmLineNode, updateOpRW,
7194         mcs51opcodeCompare, asmLineNodeFromLineNode, getInstructionSize,
7195         mcs51operandCompare, getRegsRead, getRegsWritten): made instruction
7196         size calculation port specific, started basis for some register
7197         optimizations
7198         * src/mcs51/gen.c (genFunction, genEndFunction): added case to handle
7199         missing push/pop of r0/r1. Optimized push/pops
7200         * src/mcs51/ralloc.c (packregisters): fixed bug #727095
7201         * device/lib/_modsint.c (_modsint),
7202         * device/lib/_modslong.c (_modslong): fixed sign of result in non-asm
7203         and stack version so regression tests pass
7204
7205 2004-02-26 Bernhard Held <bernhard AT bernhardheld.de>
7206
7207         * src/Makefile.in (dep): include SLIBOBJS in dependency check
7208         * src/SDCCast.c (decorateType): catch another small optimization
7209         with '?' operator
7210         * src/SDCCsymt.c (computeType): added comments and cosmetic changes
7211         * src/SDCCval.c (valMult, valDiv, valMod, valPlus, valMinus, valShift):
7212         modified to finally use computeType() all over SDCC,
7213         see Feature Request #877103
7214         * src/SDCCval.h: cosmetic
7215         * src/SDCCicode.c (operandOperation): fixed EQ_OP bug, now same as in
7216         valCompare(); regression tested in muldiv.c
7217         * support/regression/tests/muldiv.c (testMod): mod sign follows
7218         dividend only
7219
7220 2004-02-23 Bernhard Held <bernhard AT bernhardheld.de>
7221
7222         * src/SDCCast.c (decorateType): fixed bug #902362
7223         * doc/INSTALL.txt: fixed install instructions for win32
7224
7225 2004-02-21 Bernhard Held <bernhard AT bernhardheld.de>
7226
7227         * device/include/Makefile.in (install): fixed by replacing spaces
7228         by tabs
7229         * doc/README.txt,
7230         * doc/INSTALL.txt: updated for release
7231         * doc/sdccman.lyx: added warning for --xstack being buggy
7232
7233 2004-02-20 Bernhard Held <bernhard AT bernhardheld.de>
7234
7235         * src/pic16/ralloc.c (packRegsForAccUse):  disabled functions with #if
7236         to eliminate build warnings.
7237         * src/pic16/gen.c (pic16_popGet): fixed for gcc 2.95.4
7238
7239 2004-02-20 Vangelis Rokas <vrokas AT otenet.gr>
7240            Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7241
7242         * doc/sdccman.lyx: removed PIC16 from PIC16 Port Specific Options,
7243         removed -penable-stack, added comment for stack pragma, added
7244         warning for not initializing the stack/frame registers, removed
7245         comment at interrupts section
7246
7247         Stack is made permanent, there is no ability to disable stack usage.
7248         * src/pic16/device.h,
7249         * src/pic16/device.c: removed all references to USE_STACK macro,
7250         * src/pic16/device.c (pic16_dump_section): when no elements in
7251         rlist, free rlist before return,
7252         * (pic16_dump_int_registers): NEW, internal registers are a new set
7253         of general purpose registers reused by each function,
7254         * (checkAddReg): returns 1 if registers is added to set,
7255         * (pic16_groupRegistersInSection): when a registers is of type
7256         PO_GPR_TEMP add it in pic16_int_regs and not in pic16_rel_udata,
7257         * src/pic16/device.h: memRange and Assigned Memory are deleted,
7258         SRCASECMP macro is moved here from device.c
7259         * src/pic16/genarith.c (pic16_pCodeOpType): added cases for
7260         PO_PCLATU, PO_PRODL, PO_PRODH,
7261         * (pic16_pCodeOpType, genMinus,
7262         changed compares to "a" register, with AOP_ACC,
7263         * (pic16_genPlus): fixed some bugs and indented properly,
7264         * (pic16_addSign): changed size to size+offset in the MOVWF
7265         instruction,
7266         * (pic16_genUMult8XLit_8): NEW, uses processor MULLW instruction to
7267         multiply 8-bit operand by literal, result is 8-bit,
7268         * (pic16_genUMult8X8_8): NEW, uses processor MULWF instruction to
7269         multiply 2 8-bit operand, result is 8-bit,
7270         * (pic16_genMult8X8_8): modified to call genUMult8X*_8 functions and not
7271         genUMult8X*_16,
7272         * src/pic16/gen.c: changed accUse to contain WREG only,
7273         * (pic16_emitcomment): renamed to pic16_emitpcomment,
7274         * (aopForSym): allocated dir register when IN_DIRSPACE(space) is,
7275         true, do not use immediate addressing any more unless sym is a
7276         pointer in codespace,
7277         * (aopForRemat): do not use immediate addressing when symbol not in
7278         codespace and when symbol's address is requested,
7279         * (aopOp): for-loop in if(sym->accUse) is modified for the new
7280         accUse size (= 1),
7281         * (aopGet): added case for AOP_ACC and don't return "accumulator
7282         bug" but WREG instead,
7283         * (popGetTempReg): pushes contents of temporary register in stack,
7284         * (popReleaseTempReg): pops contents of temporary register from
7285         stack. Use popGetTempReg/popReleaseTempReg in aligned pairs,
7286         * (pic16_popGet): separated case AOP_ACC to return register WREG
7287         from processor registers, AOP_PCODE not checks if pcop is PO_DIR
7288         or PO_IMMEDIATE and initializes their instance/offset appropriately,
7289         * The whole issue with aopForSym,aopForRemat,popGet) is to minimize
7290         the use of immediate pointers to certain cases only.
7291
7292         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): use pic16_popGet2p,
7293         * (pic16_loadFromReturn, pic16_storeForReturn: NEW,
7294         * (assignResultValue, genCall, genRet): modified to use the new
7295         function return value scheme with WREG,PRODL,PRODH,FSR0L and FSR0,
7296         genPcall is still broken,
7297         * (genFunction): added code to create 'A' type pBlocks when
7298         interrupt functions are generated, code not extensively tested yet,
7299         ISRs push WREG,STATUS,BSR,PRODL,PRODH,FSR0L,FSR0H registers on stack,
7300         * (genEndFunction): modified so ISRs pop stored registers from stack,
7301         * (genMultOneByte): cleanup,
7302         * (AccRsh): added flag andmask, to and result with appropriate mask,
7303         * (genUnpackBits,genPackBits): fixed and can handle bit fields,
7304         * (genDataPointerGet): fixed and reenabled its use,
7305         * (genNearDataPointerGet): bugs fixed,
7306         * (genDataPointerSet): bugs fixed,
7307         * src/pic16/genutils.c: added functions pic16_DumpValue,pic16_DumpAop,
7308         pic16_DumpSymbol, pic16_DumpOp,
7309         * src/pic16/genutils.h: function prototypes for the above functions,
7310         * src/pic16/glue.c: new flags initsfpnt, to initialize stack/frame
7311         pointers,
7312         * (pic16emitRegularMap): many many many improvements, but needs a
7313         major cleanup,
7314         * src/pic16/main.c: enable_stack in pic16_options is removed,
7315         * (_pic16_parseOptions): removed command line options -penable-stack,
7316         * (_process_pragma): emit stack symbol only when stack pragma is
7317         processed,
7318         * src/pic16/pcode.c: pic16_pc_fsr0 is removed, all operations are
7319         redirected to FSR0L/FSR0H pair,
7320         * (pic16_get_op, pic16_get_op2): modifications and improvements,
7321         * (pic16_getRegFromInstruction, pic16_getRegFromInstruction2): added
7322         cases PO_PRODL,PO_PRODH, pic16_getRegFromInstruction2 returns sane
7323         for immediates,
7324         * (insertBankSwitch): modified to handle cases like: (alfa + 1)
7325         * (dumpPicOptype): NEW,
7326         * src/pic16/pcode.h: added PO_PCLATU,PO_PRODL,PO_PRODH in enum,
7327         * src/pic16/pcoderegs.c (pCodeRegMapLiveRangesInFlow): fixed bug
7328         with movff instruction,
7329         * src/pic16/ralloc.c: renamed typeRegWithIdx to pic16_typeRegWithIdx,
7330         added pic16_int_regs, some packRegsFor* functions are commented out,
7331         because produce errors,
7332         * src/pic16/NOTES: minor modifications
7333
7334 2004-02-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7335
7336         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c, as/mcs51/lkmain.c,
7337         as/mcs51/lkmem.c, src/SDCCglob.h, src/SDCCmain.c: added options --stack-size and
7338         --pack-iram.
7339         * doc/sdccman.lyx: described options --stack-size and --pack-iram.
7340         * as/mcs51/lkaomf51.c: fixed bug #895763
7341
7342 2004-02-17 Bernhard Held <bernhard AT bernhardheld.de>
7343
7344         * device/include/c8051f320.h: added. Contributed by Maarten Brock.
7345
7346 2004-02-17 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7347
7348         * doc/sdccman.lyx: added details about the HC08 storage classes and
7349         interrupts, fixed the register usage info for z80 & gbz80
7350
7351 2004-02-17 Vangelis Rokas <vrokas AT otenet.gr>
7352
7353         * doc/sdccman.lyx: added more pic16 port documentation
7354         * device/include/pic16/: added header pic18fregs.h
7355
7356 2004-02-16 Bernhard Held <bernhard AT bernhardheld.de>
7357
7358         * doc/sdccman.lyx: added Vangelis' contribution
7359
7360 2004-02-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7361
7362         * src/SDCClrange.c (rlivePoint): live range of SEND operand should
7363         extend to the next CALL or PCALL, not just to the next CALL.
7364
7365 2004-02-16 Vangelis Rokas <vrokas AT otenet.gr>
7366
7367         * src/pic16/gen.c (genInline): fixed bug #896482 with inline assembly
7368
7369 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7370
7371         * src/mcs51/ralloc.c (packRegsForAssign, reassignAliasedSym): fixed
7372         bug #895752 and a better fix for bug #716790
7373
7374 2004-02-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7375
7376         * src/SDCCsymt.c (processFuncArgs): fixed bug #896796
7377
7378 2004-02-14 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7379
7380         * doc/sdccman.lyx: minor changes, minor changed
7381
7382 2004-02-13 Bernhard Held <bernhard AT bernhardheld.de>
7383
7384         * src/SDCCicode.c (usualBinaryConversions): removed pic16 from ports
7385         which can't handle SDCC_NEWONEBYTEOPS,
7386         (geniCodeMultiply): removed conversion from mult to shift for pic14
7387         and pic16
7388
7389 2004-02-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7390
7391         * src/hc08/gen.h,
7392         * src/hc08/gen.c (storeRegToAop, aopOp, aopAdrStr, accopWithAop,
7393         rmwWithAop): Ported my 2003-10-02 fix for bug #663539 to the hc08,
7394         thus fixing bug #895406
7395
7396 2004-02-11 Bernhard Held <bernhard AT bernhardheld.de>
7397
7398         * device/lib/_modsint.c,
7399         * device/lib/_modslong.c: sign follows divisor only
7400         * src/hc08/gen.c (genMultOneByte): if result size is 1,
7401         signs or signedness can be ignored
7402         * src/SDCCast.c (addCast): cosmetic - added lineno to CAST
7403         * src/SDCCast.c (resultTypePropagate): added even more ops: +, - and *,
7404         added optimization for IFX,
7405         (decorateType): Mult/Div/ModOneByte ops can handle all kind of signed
7406         arguments;
7407         reenabled optimization for IFX, which was removed on 2004-01-11
7408         * src/SDCCast.h: added return type IFX
7409         * src/SDCCicode.c: Mult/Div/ModOneByte ops can handle all kind of signed
7410         arguments with 8 or 16 bit results; pic14 and pic16 ports use old
7411         promotion behaviour; env. var. SDCC_NEWONEBYTEOPS selects the new,
7412         SDCC_OLDONEBYTEOPS selects the old behaviour
7413         * src/SDCCsymt.c (computeType): type2 can be NULL (for LEFT_OP);
7414         changed again and commented promotion rule
7415         * src/SDCCval.c (valDiv): promotion no longer necessary
7416         * src/ds390/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte),
7417         * src/mcs51/gen.c (genMultOneByte) (genDivOneByte) (genModOneByte):
7418         rewritten
7419         * support/regression/tests/onebyte.c: added
7420
7421 2004-02-11 Vangelis Rokas <vrokas AT otenet.gr>
7422
7423         * gen.c (genInline): reverted to old code for assemnling inline
7424         code because of bug reported James Chadd
7425
7426 2004-02-10 Vangelis Rokas <vrokas AT otenet.gr>
7427
7428         * ralloc.h: missing declarations from previous patch,
7429         seems that patch for ralloc.h was never applied, fixed
7430
7431 2004-02-10 Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7432            patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7433
7434         * pcode.c,
7435         * pcode.h,
7436         * ralloc.h: added FSR0L, FSR0H and other missing PIC16 SFR's for
7437         indirect addressing. Marked FSR0 as deprecated
7438         * gen.c (pointerCode): commented out, not needed now
7439         (pic16_popGet2p): new MOVFF helper function
7440         (genGenPointerGet),
7441         (genGenPointerSet): reimplemented with MOVFF and POSTINC0
7442         (shiftRLong): removed duplicate debugging info
7443
7444 2004-02-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7445
7446         * src/ds390/gen.c (genNearPointerGet),
7447         * src/mcs51/gen.c (genNearPointerGet): allow the genDataPointerGet()
7448         optimization with bits, but not bitfields.
7449         * src/ds390/ralloc.c (packRegisters),
7450         * src/mcs51/ralloc.c (packRegisters): fixed bug #884453 & #880832
7451
7452 2004-02-09 Bernhard Held <bernhard AT bernhardheld.de>
7453
7454         * src/SDCCcse.c (algebraicOpts): copy operands before modification
7455
7456 2004-02-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7457
7458         * src/SDCCsymt.h,
7459         * src/SDCCicode.c (operandFromSymbol),
7460         * src/mcs51/ralloc.c (verifyRegsAssigned, serialRegAssign),
7461         * src/ds390/ralloc.c (verifyRegsAssigned, serialRegAssign),
7462         * src/z80/ralloc.c (verifyRegsAssigned, serialRegAssign),
7463         * src/hc08/ralloc.c (verifyRegsAssigned, serialRegAssign),
7464         * src/pic/ralloc.c (verifyRegsAssigned, serialRegAssign),
7465         * src/pic16/ralloc.c (verifyRegsAssigned, serialRegAssign): fixed
7466         bug #892038
7467         * src/SDCCast.c (createIvalStruct, createIvalArray, gatherAutoInit),
7468         * src/SDCCglue.c (emitRegularMap, printIvalStruct, printIvalArray,
7469         printIvalCharPtr, printIvalPtr, printIval, emitStaticSeg, emitOverlay)
7470         * src/SDCCsymt.c (newSymbol),
7471         * src/SDCC.y (struct_or_union_specifier, enum_specifier,
7472         enumerator_list),
7473         * src/SDCCval.h,
7474         * src/SDCCval.c (newiList): fixed bug #885705
7475
7476 2004-02-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
7477
7478         * doc/sdccman.lyx: added section 3.1.4: sdcclib.
7479         * as/mcs51/lkmem.c: report the size of the stack in .mem file.
7480
7481 2004-02-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7482
7483         * device/include/c8051f120.h,
7484         * device/include/c8051f300.h,
7485         * device/include/c8051f310.h: added/updated header files for Silicon
7486         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7487         * doc/sdccman.lyx: minor changes, recommended diff -Naur and diff -u
7488         in new section Submitting patches
7489
7490 2004-02-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7491
7492         * src/mcs51/gen.c (genNearPointerGet, genPagedPointerGet,
7493         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7494         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7495         genGenPointerSet),
7496         * src/ds390/gen.c (genNearPointerGet, genPagedPointerGet,
7497         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7498         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7499         genGenPointerSet),
7500         * src/pic16/gen.c (genNearPointerGet, genPagedPointerGet,
7501         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7502         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7503         genGenPointerSet),
7504         * src/pic/gen.c (genNearPointerGet, genPagedPointerGet,
7505         genFarPointerGet, genCodePointerGet, genGenPointerGet,
7506         genNearPointerSet, genPagedPointerSet, genFarPointerSet,
7507         genGenPointerSet): fixed bug #892400
7508         * src/pic16/gen.c (genSkipz, AccRol): disabled functions with #if 0
7509         to eliminate build warnings.
7510         * src/SDCCast.c (processParms),
7511         * src/SDCC.y (function_declarator2, declarator2_function_attributes):
7512         fixed bug 751859
7513         * support/valdiag/valdiag.py: added GCC to the list of defines active
7514         when compiling with gcc
7515
7516 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7517
7518         * support/Util/SDCCerr.h,
7519         * support/Util/SDCCerr.c,
7520         * src/SDCCast.c (decorateType, sizeofOp): complain when sizeof is used
7521         with an incomplete type (fixed bug #883734)
7522         * src/SDCCicode.c (geniCodeCast): fixed bug #890510
7523
7524 2004-02-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7525
7526         * src/pic16/gen.c (genCmpEq, shiftRLong): fixed declarations
7527
7528 2004-02-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7529
7530         * src/SDCCast.c (decorateType),
7531         * src/SDCCicode.c (geniCodeParms, geniCodeCall): fixed bugs in my ANSI
7532         function pointer implementation
7533         * support/regression/tests/funptrs.c: added tests to verify both forms
7534         of function pointers work correctly. Added tests to verify parameters
7535         are passed in the correct order.
7536
7537 2004-02-06  Vangelis Rokas <vrokas AT otenet.gr>
7538
7539         * device.c (regCompare): registers are sorted by ascending
7540         address and increasing size,
7541         * main.c (_pic16_finaliseOptions): removed the declaration
7542         of compiler macro MCU. Now a macro of the format pic18fxxxx
7543         will be defined from the command line
7544
7545 2004-02-06  Hans-Juergen Dorn <hans.dorn AT apl-landau.de>
7546             patch committed by Vangelis Rokas <vrokas AT otenet.gr>
7547
7548         * pcode.c (pic16initMnemonics): fixed typo in assignment to PCOP_RLNCF
7549         PCOP_RLCF was overwritten!
7550         * gen.c (genSkip): commented out calls to pic16_emitcode,
7551         * (genCmpEQ): fixed "long" compares, only high word did get compared,
7552         * (genlshTwo),
7553         * (genRRC): added debugging info,
7554         * (shiftL2Left2Result): Fixed bug, if offr > offl. Result got
7555         overwritten while shifting,
7556         * (shiftR2Left2Result): Fixed bug, if offr < offl. Result got
7557         overwritten while shifting,
7558         * (AccLsh),
7559         * (AccRsh),
7560         * (shiftLLeftOrResult),
7561         * (shiftRLeftOrResult),
7562         * (shiftRLong),
7563         * (shiftLLong): Implemented with pic16_emitpcode
7564         * (genlshFour): Replaced pic16_aopPut with pic16_emitpcode,
7565         * (genLeftShift): Fixed bug, operand for shift by variable always
7566         was "and"ed with 0x0f,
7567         * (genLeftShiftLiteral),
7568         * (genrshTwo),
7569         * (genRightShiftLiteral): added debugging info,
7570         * (genrshFour): added comment,
7571         * (genRightShift): determined signedness from operand "left"
7572         instead of "result"
7573
7574 2004-02-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7575
7576         * src/SDCCicode.c (geniCodeParms),
7577         * src/SDCCast.c (decorateType, processParms): support for ANSI-style
7578         function pointers, fixed function pointer bugs #861242 and #861896
7579
7580 2004-01-31 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7581
7582         * device/include/c8051f000.h,
7583         * device/include/c8051f120.h,
7584         * device/include/c8051f300.h: added header files for Silicon
7585         Laboratories (formerly Cygnal) CPUs. Contributed by Maarten Brock.
7586
7587 2004-01-31 Bernhard Held <bernhard AT bernhardheld.de>
7588
7589         * src/SDCCast.c (processParams): added new type flow and restructured
7590         (gatherAutoInit): added new type flow
7591         (addCast): cosmetic changes
7592         (getLeftResultType): added new type flow for array indices, patch
7593         provided by Stas, see FR #877103
7594         (decorateType): SDCC_NEWTYPEFLOW removed, new type flow is now standard;
7595         array index patch by Stas
7596         * src/SDCCast.h: added prototype getResultTypeFromType()
7597         * src/SDCCval.h,
7598         * src/SDCCval.c (resolveIvalSym) (resolveIvalSym),
7599         * src/pic/glue.c (pic14emitStaticSeg),
7600         * src/pic16/glue.c (pic16emitStaticSeg),
7601         * src/SDCCglue.c (emitRegularMap) (emitStaticSeg): added new type flow
7602         for initialization of symbols
7603         * src/SDCCicode.c (geniCodeArray): removed warning W_ARRAY_BOUND
7604         * support/Util/SDCCerr.h:
7605         * support/Util/SDCCerr.c: replaced W_ARRAY_BOUND by W_IDX_OUT_OF_BOUNDS
7606         * .version: bumped version number to 2.3.8
7607         * device/include/Makefile.in (install),
7608         * doc/Makefile (install): changed to 'rm `find ...`' construct to
7609         avoid warnings
7610
7611 2004-01-30 Bernhard Held <bernhard AT bernhardheld.de>
7612
7613         * support/regression/tests/libmullong.c: fixed for 64 bit hosts
7614         Slade Rich fixed an optimization bug
7615         * src/pic/pcodepeep.c,
7616         * src/pic/pcoderegs.c
7617         * doc/Makefile (install): added test for directory
7618
7619 2004-01-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7620
7621         * src/mcs51/ralloc.c (getRegPtr, getRegGpr),
7622         * src/ds390/ralloc.c (getRegPtr, getRegGpr),
7623         * src/pic/ralloc.c (getRegPtr, getRegGpr),
7624         * src/pic16/ralloc.c (getRegPtr, getRegGpr),
7625         * src/z80/ralloc.c (getRegGpr): fixed bug #883361
7626         * as/mcs51/asexpr.c (term),
7627         * as/hc08/asexpr.c (term): fixed bug #887146
7628
7629 2004-01-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7630
7631         * src/z80/gen.c (genMult): handle single byte result product
7632         * src/SDCCopt.c (killDeadCode): never convert ADDRESS_OF iCode to
7633         DUMMY_READ_VOLATILE (fixed bug #886367)
7634
7635 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
7636
7637         * support/regression/tests/libmullong.c: fixed logic, on little endian
7638         hosts we ended without a mullong_wrapper()
7639
7640 2004-01-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7641
7642         * ChangeLog: changed "@" to " AT " in hopes of reducing spam and
7643         virus/worm forged address usage.
7644
7645 2004-01-27 Bernhard Held <bernhard AT bernhardheld.de>
7646
7647         Fixed promotion, it should be done on AST level:
7648         * src/SDCCast.c (addCast): added promotion to int
7649         (decorateType): updated call to upCast()
7650         * src/SDCCicode.c (geniCodeLeftShift): removed call to
7651         usualUnaryConversions()
7652
7653 2004-01-26  Michael Hope  <michaelh AT juju.net.nz>
7654
7655         * support/regression/tests/literalop.c (mulWrapper): Added a
7656         wrapper to remove integer overflow warnings.
7657
7658         * support/regression/tests/float_trans.c: Made work on host.
7659
7660         * support/regression/ports/ucz80/spec.mk (UCZ80): Made detect the
7661         location of sz80.
7662
7663         * support/regression/generate-cases.py (main): Changed from inline
7664         to a main method.
7665
7666         * doc/Makefile (install): Changed to depth first to get rid of
7667         missing directory install warning.
7668
7669         * as/Makefile (install-doc): Made work on Mac.
7670
7671 2004-01-25 Bernhard Held <bernhard AT bernhardheld.de>
7672
7673         * src/SDCCast.c: added an additional type flow in decorateType() of
7674         opposite direction, see feature request #860006; it's enabled at runtime
7675         by setting the environment variable SDCC_NEWTYPEFLOW
7676         * src/SDCCast.h: changed prototype of decorateType()
7677         * src/SDCCglue.c (emitRegularMap): updated call of decorateType()
7678         * src/SDCCicode.c (geniCodeDivision) (geniCodeModulus): promotion from
7679         'char' to 'int' can be omitted, if both operands are 'unsigned char';
7680         see feature request #877103
7681         * src/SDCCval.c: updated call of decorateType()
7682         (valBitwise): fixed bug #882876
7683         (valMinus): added promotion
7684         (valLogicAndOr): result is unsigned
7685         (cheapestVal) (constVal): literals from 0...255 are 'unsigned char' now
7686         * src/SDCCsymt.c (computeType),
7687         * src/mcs51/gen.c (genCmpGt) (genCmpLt): literal 'unsigned char'
7688         must not cause an unsigned operation
7689         * src/pic/glue (pic14emitRegularMap),
7690         * src/pic16/glue.c (pic16emitRegularMap): updated call of decorateType()
7691
7692 2004-01-23 Bernhard Held <bernhard AT bernhardheld.de>
7693
7694         * src/pic/pcode.c (PCodeID): commented out left over debug code
7695
7696 2004-01-20 Bernhard Held <bernhard AT bernhardheld.de>
7697
7698         * support/valdiag/tests/overflow.c: added shift tests
7699         * src/pic/device.c,
7700         * src/pic/gen.c,
7701         * src/pic/gen.h,
7702         * src/pic/glue.c,
7703         * src/pic/main.c,
7704         * src/pic/pcode.c,
7705         * src/pic/pcode.h,
7706         * src/pic/pcodepeep.c,
7707         * src/pic/pcoderegs.c,
7708         * src/pic/ralloc.c,
7709         * src/pic/ralloc.h: applied patch from Slade Rich;
7710         added support for multiple code pages and multiple RAM banks on the
7711         PIC 14 port. The ASM files now no longer simply assume all the
7712         code / RAM are in the same page / bank. This means the linker can
7713         safely allocate code/RAM of separate ASM files to different pages/banks.
7714         * doc/sdccman.lyx: added Slade's tips
7715         * src/mcs51/peeph.def: fixed bug #880768
7716
7717 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7718
7719         * src/hc08/ralloc.c (rematStr): fixed bug #879282
7720         * src/SDCCast.c (decorateType): fixed bug #880197
7721
7722 2004-01-20  Michael Hope  <michaelh AT juju.net.nz>
7723
7724         * sim/ucsim/gui.src/serio.src/main.cc: Fixed unconditional use of
7725         getopt.h.
7726
7727         * debugger/mcs51/cmd.c (getValBasic): Changed strtof to strtod as
7728         strtof is not part of C89 and isn't included with Mac OS X.
7729
7730 2004-01-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7731
7732         * src/hc08/gen.c (genPlusIncr, genUminus, genMinusDec, genCmp,
7733         shiftL2Left2Result): fixed bug #879326
7734         (genAnd, genOr, genXor): fixed bug when result was of type AOP_CRY
7735         (genMultOneByte): fixed bug in signed vs unsigned multiplication
7736         * sim/ucsim/hc08.src/inst.cc (inst_clr): added missing effective
7737         address fetch for clr instruction
7738         * device/lib/hc08/_mulint.c: created optimized assembly version
7739         * src/SDCCdflow.c (computeDataFlow): fixed bug #878209
7740
7741 2004-01-19 Bernhard Held <bernhard AT bernhardheld.de>
7742
7743         * src/SDCCicode.c (geniCodeArray): applied patch from Stas Sergeev
7744         proposed in FR #877103
7745
7746 2004-01-18 Bernhard Held <bernhard AT bernhardheld.de>
7747
7748         * src/SDCCval.c (cheapestVal): added missing checks
7749         * src/SDCCicode.c (usualBinaryConversions): fixed condition
7750         * src/SDCCicode.c (geniCodeAdd): fixed part of bug #877103
7751
7752 2004-01-16 Klaus Flittner <klaus_flittner AT gmx.de>
7753
7754         * src/ds390/gen.c (aopOp3): fixed the assignment of different dptrs to
7755         equal operands
7756
7757 2004-01-16 Vangelis Rokas <vrokas AT otenet.gr>
7758
7759         * src/SDCCmain.c (linkEdit): variable $3 of the linker command is
7760         loaded with the linker search paths (-L arguments) and the libraries
7761         to be linked with the current source (-l arguments). Changes
7762         currently will affect only the pic16 port.
7763         * src/pic16/main.c (_pic16_finaliseOptions): add to the linker
7764         include path the port specific paths and port specific libraries,
7765         * gplink command now contains the $3 argument,
7766         * src/pic16/device.h,
7767         * src/pic16/device.c,: structure PIC_device is made public and
7768         renamed to PIC16_device, the same for variable Pics which is renamed
7769         to Pics16. Updated all references to them.
7770         * src/pic16/glue.c (pic16glue): corrected bug with code
7771         initialization which bypassed the variable initializations block.
7772
7773         * device/lib/pic16/Makefile.rules: removed --penable-stack from
7774         COMPILE_FLAGS and added the --nostdinc option
7775
7776 2004-01-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7777
7778         * device/include/mc68hc908jb8.h: Register defs for another member
7779         of the hc08 family. Contributed by Bjorn Bringert - thanks!
7780
7781 2004-01-14 Vangelis Rokas <vrokas AT otenet.gr>
7782
7783         Documenting changes from previous commits.
7784         * configure.in (version 1.56),
7785         * configure: initially I've added AC_CONFIG_SUBDIRS(device/lib/pic16)
7786         when generating output files to configure the pic16 library,
7787         but now I've commented it out, since gputils aren't installed in the
7788         SF compile farm, so library won't compile
7789
7790         * device/lib/Makefile.in (version 1.56): initially I've added in
7791         target 'all' the prerequestive 'model-pic16' so it compiled the
7792         pic16 library, but now I've commented it out for the same reasons
7793         above,
7794         * added targets 'model-pic16' and 'objects-pic16' to compile the
7795         library
7796         * added target 'port-specific-objects-pic16' to handle the
7797         generated libraries and copy them into the build/ directory
7798         * added target 'clean-intermediate-pic16' to clean intermediate
7799         files into pic16 directory
7800         * in target 'installdirs' added line to create directory pic16 in
7801         the installation path
7802
7803         * device/include/Makefile.in (version 1.11): in target 'install'
7804         added lines to copy all header files to installation path,
7805         * in target 'installdirs' added line create directory for pic16
7806         headers in the installation path
7807
7808 2004-01-13 Klaus Flittner <klaus_flittner AT gmx.de>
7809
7810         * src/ds390/gen.c (genCall): fixed a double use of acc and b after
7811          a function call
7812
7813 2004-01-13 Bernhard Held <bernhard AT bernhardheld.de>
7814
7815         * configure,
7816         * device/lib/configure.in,
7817         * device/lib/configure: fixed for autoconf 2.57
7818
7819 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7820
7821         * src/z80/main.c (_parseOptions): fixed the portmode= command line
7822         option so that it actually works. Made it specific to the z80, since
7823         the gbz80 doesn't have these kinds of I/O ports.
7824
7825 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7826
7827         * device/include/z180.h,
7828         * device/lib/_memcpy.c,
7829         * device/lib/_memmove.c,
7830         * device/lib/_mulint.c,
7831         * device/lib/ser_ir.c,
7832         * device/lib/ser_ir_cts_rts.c,
7833         * device/lib/_strcmp.c,
7834         * device/lib/_strtok.c: fixed pragmas to non-deprecated form
7835         * src/z80/main.c (_process_pragma): add support for pragmas bank and
7836         portmode; added deprecation warning for bank= and protmode= forms.
7837         Also, guard against buffer overflow.
7838         * src/z80/gen.c (aopGet): generate better code for sfr banked read
7839
7840 2004-01-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7841
7842         * src/hc08/main.c (_hc08_genAssemblerPreamble): fixed bug #875487. Also
7843         changed interrupt vector table generation to only emit declared vectors.
7844         * device/include/Makefile.in: added missing backslash
7845         * device/lib/pic16/Makefile.rules: add $(MODELFLAGS) to $(CFLAGS)
7846
7847 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
7848
7849         Mainly changes to support compilation of the device libraries
7850         * src/pic16/device.c: stack is allocated via symbol and not
7851         via literal number. The symbol is placed in the corresponding
7852         position of the data ram
7853         * (pic16_dump_section): relocatable and absolute uninitialized
7854         data are now emitted in sorted order to reduce section naming,
7855         * src/pic16/ralloc.c (newReg): fixed bug with SFR's that
7856         weren't marked as being in the access bank,
7857
7858 2004-01-13 Vangelis Rokas <vrokas AT otenet.gr>
7859
7860         Added portion of GNU PIC Library under the directory
7861         device/include/pic16 and device/lib/pic16. These files
7862         contain the declarations of SFRs for the PIC18Fxx2 devices.
7863         The directory is initialized via configure from toplevel.
7864
7865 2004-01-12 Klaus Flittner <klaus_flittner AT gmx.de>
7866
7867         * src/ds390/gen.c (operandsEqu): fixed a little typo, that prevented
7868         the spilllocations to be compared correctly
7869
7870 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
7871
7872         * src/SDCCast.c (decorateType): fixed bug introduced today
7873
7874 2004-01-12  Borut Razem <borut.razem AT siol.net>
7875
7876         * src/SDCC.lex, support/Util/SDCCerr.h, support/Util/SDCCerr.c,
7877         doc/sdccman.lyx: upper case pragmas are deprecated
7878
7879 2004-01-12 Bernhard Held <bernhard AT bernhardheld.de>
7880
7881         * src/SDCCast.c (decorateType): replacing 'ul > 0' by  '!ul' results
7882         in simpler and even better code
7883
7884 2004-01-11 Bernhard Held <bernhard AT bernhardheld.de>
7885
7886         * src/SDCCicode.c (operandOperation): fixed bug #874819
7887         * src/SDCCast.c (decorateType): fixed
7888         char foo (unsigned long ul) { return ul > 0; }
7889
7890 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7891
7892         * doc/sdccman.lyx: Moved and added some sections, small changes
7893         all over. Telling LaTeX to be less strict with word spacing
7894         to better keep the right margin. Changed some notes about
7895         maintainance of the ports in section 3.2.1 - is it OK like this?
7896
7897 2004-01-11 Vangelis Rokas <vrokas AT otenet.gr>
7898
7899         SDCC source changes:
7900         * src/SDCCopt.c (cntToFcall, cnvToFloatCast, cnvFromFloatCast,
7901         convilong): modified to inform the pic16 port that builtin functions
7902         are external
7903
7904         PIC16 PORT specific changes:
7905         * src/pic16/device.c pic16_dump_equates() added,
7906         processor registers declared internally by the port are emitted in
7907         the translation as equates,
7908         * src/pic16/gen.c: inline code is passed unprocessed to the
7909         translation,
7910         * (pic16_popGetLit2): fnuction modified to take second operand as
7911         pCodeOp pointer and not as literal,
7912         * (popRegFromIdx): prefixed with pic16_,
7913         * (pic16_popCombine2): modified to receive already allocated pCode
7914         operands,
7915         * (pic16_pushpCodeOpReg, pic16_poppCodeOpReg): added
7916         * (genFunction): initializes local stack frame and pushes on stack
7917         all the registers used by this function,
7918         * (genEndFunction): restores all registers from stack and restores
7919         stack frame,
7920         * src/pic16/glue.c (pic16emitRegularMap): various changes and
7921         improvements,
7922         * (pic16glue): changed the program startup sequence,
7923         * added new dbName code 'A' for functions placed in absolute section
7924         * src/pic16/main.c: added function attribute _naked,
7925         * added pragma 'code' to place a fnuction at an absolute address,
7926         * added command line arguments --debug-ralloc and --pcode-verbose,
7927         * (_pic16_finiliseOptions): options.all_callee_saves is set by default
7928         * src/pic16/pcode.c (pic16_pBlockConvert2Absolute) added,
7929         * (pic16_newpCodeOpLit2): modified to take the second operand as
7930         pCodeOp pointer,
7931         * (pic16_printpBlock): modified to emit each function in a separate
7932         section,
7933         * (pic16_get_op): modified to use the gpasm modifiers LOW,HIGH and
7934         UPPER for immediate operands,
7935         * src/pic16/pcodepeeph.c: added peephole support for the LFSR
7936         instruction,
7937         * src/pic16/peeph.def: all peepholes with movff are commented out,
7938         because there is a problem in the pcode peep optimizer,
7939         * src/pic16/ralloc.c: the register allocator can now reuse local
7940         function symbols for another function. This saves register usage.
7941         * src/pic16/ralloc.h: added flag isLocal in structure regs,
7942
7943         Added file src/pic16/NOTES with information about program writing on
7944         the current port version.
7945
7946 2004-01-11 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7947
7948         * src/mcs51/peephole.def: added peepholes 177.c,d (redundant moves)
7949         and peephole 252 (array access)
7950
7951 2004-01-09  Borut Razem <borut.razem AT siol.net>
7952
7953         * src/SDCCmain.c : fixed #872250: -l command line defined library
7954           files are scanned before standard library files
7955
7956 2004-01-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7957
7958         * src/SDCCast.c (decorateType): fixed bug #874046
7959
7960 2004-01-09  Borut Razem <borut.razem AT siol.net>
7961
7962         * support/scripts/sdcc.nsi: remove previous installation
7963
7964 2004-01-09 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
7965
7966         * src/SDCCglue.c (createInterruptVect): don't append 7(5) padding
7967         bytes for last interrupt vector (mcs51)
7968         * sdcc.spec: fixed typo
7969
7970 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7971
7972         * src/mcs51/gen.c (genFunction, genEndFunction, genReceive, getTempRegs,
7973         gen51Code): more efficient parameter receive for --model-large
7974         ("bug" #845294)
7975
7976 2004-01-09 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
7977
7978         * src/ds390/main.c,
7979         * src/z80/main.c: added missed needLinkerScript flags (more than
7980         one port structure defined in these file)
7981         * src/ds390/gen.c (aopForSym, aopOp, operandsEqu, aopOp3): fixed
7982         bug #795325
7983
7984 2004-01-08 Vangelis Rokas <vrokas AT otenet.gr>
7985
7986         * src/SDCCmain.c: removed various references to DEFAULT_PORT
7987         * src/port.h: added flag needLinkerScript in port->linker
7988         structure to inform whether to create a .lnk file or not,
7989         * src/avr/main.c,
7990         * src/ds390/main.c,
7991         * src/hc08/main.c,
7992         * src/mcs51/main.c,
7993         * src/pic/main.c,
7994         * src/pic16/main.c,
7995         * src/xa51/main.c,
7996         * src/z80/main.c: changed appropriately to configure
7997         needLinkerScript flag
7998         * src/pic/gen.c,
7999         * src/pic16/gen.c (genAddrOf): fixed bug #863624
8000         * src/pic/glue.c: added variable udata_section_name to
8001         override default uninitialized data segment definition for
8002         devices only with SHAREBANK memory (reported from Erik Epetrich)
8003         * (pic14emitOverlay): modified to emit a commented overlay segment
8004         directive when no overlay data exist
8005         * (picglue): modified to emit uninitialized data segment
8006         according to udata_section_name
8007         * src/pic/main.c (_pic14_parseOptions): added command line
8008         options --udata-section-name=[name] to override default
8009         udata definition name
8010         * modified _linkCmd and _asmCmd to include compiler passed
8011         arguments via -W option
8012         * src/pic16/main.c: added $l in _asmCmd, changed extension for
8013         object file from '.rel' to '.o' in port->linker structure,
8014         changed size of fptr from 2 to 3 in port structure
8015
8016 2004-01-07  Borut Razem <borut.razem AT siol.net>
8017
8018         * support/scripts/sdcc.nsi: update PATH
8019         * support/scripts/sdcc.ico: craeted
8020
8021 2004-01-07 Bernhard Held <bernhard AT bernhardheld.de>
8022
8023         * device/include/Makefile.in: fix install
8024         * doc/Makefile: fix install
8025
8026 2004-01-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8027
8028         * src/SDCCsymt.c (processFuncArgs): fixed superflous allocation noted
8029         in bug #860505
8030         * src/SDCCmem.c (printAllocInfoSeg, printAllocInfo): minor changes to
8031         how the function variable allocation summary is displayed; also
8032         include information about variables allocated to the overlay
8033         segment
8034
8035 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8036
8037         * as/mcs51/lkmain.c: Help about -Y option
8038         * as/mcs51/lkarea.c: Fixed gcc warnings
8039
8040 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8041
8042         * src/SDCCval.c (valShift): changed from 16 to 32 bit shift count,
8043         fixed warning
8044         * support/valdiag/tests/overflow.c: added
8045         * src/SDCCast.c (decorateType),
8046         * src/SDCCicode.c (geniCodeLeftShift): added promotion to int for
8047         LEFT_OP (left shift)
8048
8049 2004-01-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8050
8051         * as/mcs51/lkmain.c: stack must be after data when option -Y is not used
8052         (default behaviour).
8053
8054 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8055
8056         A python script to validate compiler diagnostic messages. It can be
8057         used to verify that sdcc complains about bad c source code and
8058         gives a good location of the error.
8059         * support/valdiag/Makefile,
8060         * support/valdiag/valdiag.py,
8061         * support/valdiag/tests/*
8062
8063 2004-01-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8064
8065         * src/SDCC.y (enum_specifier, enumerator_list, opt_assign_expr),
8066         * src/SDCCsymt.c (newEnumType),
8067         * src/SDCCsymt.h
8068         * support/Util/SDCCerr.c,
8069         * support/Util/SDCCerr.h: fixed bug #871258 and some other unreported
8070         enum related bugs.
8071         * support/regression/tests/enum.c: added test for enum values that
8072         require at least 2 bytes of storage.
8073
8074 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8075
8076         * src/common.h: added ifndef/define/endif macros
8077         around the header file.
8078         Bug reported from Jesus Calvino-Fraga
8079
8080 2004-01-06 Bernhard Held <bernhard AT bernhardheld.de>
8081
8082         * sdcc.spec: updated
8083         * device/include/Makefile.in: don't install CVS directories
8084         * device/lib/Makefile.in: added removal of CVS directories after install
8085         * doc/Makefile: fixed install, added local_icons
8086         * sim/ucsim/gui.src/Makefile.in: fixed an old typo
8087         * src/mcs51/gen.c (genRightShift): fixed bug #870788
8088         * src/ds390/gen.c (genRightShift): fixed bug #870788
8089         * src/SDCCast.c (decorateType): fixed bug #870781
8090
8091 2004-01-06 Vangelis Rokas <vrokas AT otenet.gr>
8092
8093         PIC16 port related changes:
8094         * device.c: removed pic16_finalMapping and pic16_finalMappingSize,
8095         added variable stackPos,
8096
8097         * gen.c: genCall, assignResultValue: added support for
8098         pushing/retrieving function parameters to/from stack,
8099         genFunction,genEndFunction: setup stack frame for the
8100         generated function,
8101         genAddrOf: will be changed according to bug 863624
8102
8103         * added files genutils.c and genutils.h which contain gen*
8104         debugged and optimised functions extracted from gen.c
8105
8106         * glue.c: added variable 'externs' which holds extern symbols,
8107         pic16emitRegularMap: is modified to properly handle relocatable
8108          symbols under the new scheme,
8109         pic16createInterruptVect: is modified
8110         pic16printPublics: is modified to emit 'global' assembler directives,
8111         added pic16_printExterns to print extern symbols,
8112         pic16glue: initializes stack/frame pointer in the beginning of
8113         the assembly output. Temporary hack, will be corrected later,
8114         because gplink yet does not support stack and SDCC does not
8115         yet support a type of crt0.o object to create the final binary.
8116
8117         * Removed many lines that contain 8051 legacy code.
8118         * The code is finally placed under a 'code' directive.
8119         * Added port specific options.
8120
8121         * _process_pragma: simplified since now we do not need *special*
8122         include file to define SFR registers. But a separate header
8123         will be needed. This will be developed later.
8124         * _pic16_parseOptions: added, parses port specific options:
8125         --pgen-banksel, --obanksel=, --pomit-config-words, --pomit-ivt,
8126         --pleave-reset-vector, --penable-stack, --pstack-model, --debug-xtra
8127         --preplace-udata-with=
8128
8129         * _pic16_setDefaultOptions: modified to initialize section names,
8130         but hack is temporarly out of order since it needs improvement.
8131         * _pic16_genAssemblerPreamble: configuration words are emitted by
8132         their address instead of their name. This part is incomplete and
8133         supports only the 18Fxx2 devices. Other devices will emit an error
8134         during assembly since they do not contain the same set of config
8135         registers
8136         * _pic16_genIVT: is modified,
8137
8138         * pcode.c: added definitions for some hardware registers that are needed
8139         for stack support
8140         * added flag is2LitOp and variable pci_magic in pCodeInstruction.
8141         All PCI entries are updated. Now LFSR is supported.
8142         * Removed pic16_pciTRIS is mentioned by mdubuc in source
8143         * added pic16_newpCodeOpLit2 to support instructions with
8144         two literal arguments
8145         * pic16_pCode2str: corrected code that emits assembler instructions
8146         with two literal operands and those that have an access bit modifier
8147         * genericPrint: now PC_ASMDIR pCodes, can emit a label if it exists,
8148         this fixes a bug which caused some labels to be lost, when an
8149         assembler directive was added, i.e. banksel,
8150         * pic16_FixRegisterBanking: improved logic that causes the insertion
8151         of bank switching,
8152         * InlineFunction: functions that are called once, are not any more
8153         inlined. This can be a port option in the future,
8154
8155         * pcode.h: added pCodeOpLit2 and added variable label in pCodeAsmDir
8156
8157         * ralloc.c: added pic16_rel_udata and pic16_fix_udata variables which
8158         hold the corresponding uninitialized symbols,
8159         * pic16_allocProcessorRegister: registers have explicit marked the
8160         accessBank field,
8161         * pic16_allocInternalRegister: registers are explicit marked as
8162         not used,
8163         * pic16_writeUsedRegs: pic16_dynDirectBitRegs was missing from the
8164         processing list, so bit registers were lost,
8165         *
8166
8167         * ralloc.h: added field 'accessBank' and original symbol operand
8168         in register definition,
8169         * removed the field isMapped from register definition,
8170
8171         ** Several functions have been removed from various sources:
8172         BanksUsedFlow2,BanksUsedFlow,FixBankFlow,InstructionRegBank,
8173         pic16_addMemRange,pic16_isREGinBank,pic16_dump_map,pic16_dump_cblock
8174         isSFR,validAddress,mapRegister,assignRegister,pic16_assignFixedRegisters
8175         pic16_assignRelocatableRegisters
8176
8177         ** others have been introduced:
8178         pic16_areRegsSame,pic16_dump_section,checkAddReg,pic16_groupRegistersInSection
8179         pic16_popGetLit2,pic16_popCombine2,pushw,pushaop
8180
8181 2004-01-05 Vangelis Rokas <vrokas AT otenet.gr>
8182
8183         * support/scripts/inc2h.pl: changed definition of BIT_AT
8184         to emit 'sbit at' instead of 'bit at'. This was a request.
8185
8186         PIC16 port related preliminary changes:
8187         * gen.c: prefixed function popRegFromString with
8188         pic16_ and all references to it corrected
8189         * pcode.c: all pic16_pc_* hardware registers prefixed
8190         with underscore (_),
8191         pic16_popCopyGPR2Bit(): function sets register wasUsed=1
8192         * ralloc.c: newReg(): when register is REG_SFR then
8193         set address to rIdx,
8194         pic16_allocProcessorRegister(): marks register wasUsed=0
8195         pic16_writeUsedRegs(): added a call to assign processor
8196         registers via pic16_assignFixedRegisters
8197
8198 2004-01-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8199
8200         * as/mcs51/aslink.h, as/mcs51/lkarea.c, as/mcs51/lkdata.c,
8201         as/mcs51/lkmain.c, as/mcs51/lkmem.c: 8051 linker can now pack
8202         variables in unused register banks.  Also the SSEG is placed
8203         wherever there is enough space for it, and IDATA can be anywhere
8204         in internal RAM.  For now compile using -Wl-Y[stack_size].
8205         The mem file is different for this option as well, since it
8206         makes no sense of talking about DSEG lenght.
8207
8208 2004-01-02 Vangelis Rokas <vrokas AT otenet.gr>
8209
8210         * src/SDCClrange.c: fixed bug 869095 that caused segfault
8211         in certain cases, e.g. when ROM assignment, patch provided
8212         from Albert den Haan.
8213
8214 2004-01-01 Bernhard Held <bernhard AT bernhardheld.de>
8215
8216         Many signedness and type propagation fixes:
8217         * src/SDCCicode.c: made geniCodeCast() static
8218         replaced SPEC_ by IS_ (cosmetic)
8219         (operandOperation): fixed div and mod operation
8220         (usualBinaryConversions): added support for promotion of char
8221         (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
8222         (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
8223         (geniCodeAdd): an array index will stay unsigned, even if promoted
8224         from char to int
8225         (geniCodeArray): ditto
8226         * src/SDCCicode.h: made geniCodeCast() static: removed prototype
8227         * src/SDCCsymt.c (computeType): added more support for char;
8228         promotion of char is selectable by promoteCharToInt, fixed signedness
8229         for all cases
8230         (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8231         * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
8232         * src/SDCCval (val*): replaced signedness calculation by
8233         computeType()
8234         rearranged if-branches (cosmetic)
8235         (valShift): added warning W_SHIFT_CHANGED
8236         (valCompare): fixed problem with different types
8237         * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
8238         * support/regression/tests/literalop.c: added many cases
8239         * support/regression/tests/ast_constant_folding.c: changed finally to
8240         'unsigned int'
8241         * .version: new year, new version: 2.3.7
8242         * src/SDCCmain.c (main): applied patch #866468
8243         * debugger/mcs51/sdcdb.c (parseCmdLine): added -k for ucsim, patch
8244         provided by Scott Bronson
8245         * doc/sdccman.lyx: updated documentation for sdcdb
8246         updated and added chapter tips
8247
8248 2004-01-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8249
8250         * src/SDCCsymt.h: missing from yesterday's commits
8251
8252 2003-12-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8253
8254         * src/SDCC.y (struct_or_union_specifier),
8255         * support/Util/SDCCerr.c,
8256         * support/Util/SDCCerr.h: verify that struct & union tags are used
8257         as declared.
8258
8259 2003-12-29 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8260
8261         * src/SDCCglobl.h: missing from yesterday's commits
8262
8263 2003-12-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8264
8265         * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
8266         sft_attributes, struct_declaration, parameter_declaration,
8267         type_name, start_block, declaration_list),
8268         * src/SDCC.lex (check_type): support redefinition of typedef names
8269
8270 2003-12-22 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8271
8272         * src/mcs51/gen.c (genPlus): added special handling for 256 byte
8273         aligned xdata arrays. Erik helped me with the if clause.
8274
8275 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8276
8277         * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
8278         warning
8279
8280 2003-12-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8281
8282         * src/SDCCast.h,
8283         * src/SDCCast.c (newAst_),
8284         * src/SDCCicode.h,
8285         * src/SDCCicode.c (ast2iCode, newiCode),
8286         * src/SDCCglobl.h,
8287         * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
8288         expr, statement, expression_statement, selection_statement,
8289         iteration_statement, expr_opt, jump_statement): foundation for tracking
8290         sequence points
8291         * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
8292         point code too)
8293
8294 2003-12-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8295
8296         * support/Util/SDCCerr.c,
8297         * src/SDCCast.h,
8298         * src/SDCCast.c (createCase, createDefault, decorateType),
8299         * src/SDCClabel.c (labelUnreach),
8300         * src/SDCC.y (labeled_statement, jump_statement): More improvements
8301         to error messages.
8302         * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
8303         (with thanks to Stas Sergeev)
8304         * device/include/time.h,
8305         * device/lib/time.c (CheckTime): suppress unreachable code warning
8306
8307 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8308
8309         * src/SDCCast.c (createIvalCharPtr),
8310         * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
8311         bug #753752)
8312         * support/regression/tests/nullstring.c: tests for these two bugs
8313
8314 2003-12-18 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8315
8316         * support/Util/SDCCerr.h,
8317         * support/Util/SDCCerr.c (E_NOT_ALLOWED),
8318         * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
8319         about storage class and 'at' used inside struct or union
8320         * src/SDCCBBlock.c (iCodeFromeBBlock),
8321         * src/SDCCcse.c (ifxOptimize),
8322         * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
8323         printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
8324         printIval, emitStaticSeg, emitOverlay),
8325         * src/SDCClabel.c (deleteIfx),
8326         * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
8327         * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
8328         gatherAutoInit, processParms),
8329         * support/Util/SDCCerr.h,
8330         * support/Util/SDCCerr.c (werrorfl): Support for better error location
8331         reporting for post-parse errors.
8332
8333 2003-12-16 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8334
8335         * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
8336         implicit casts via union; they don't work on big endian systems
8337         (possible fix for bug #861138)
8338
8339 2003-12-16 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8340
8341         (committed by Erik Petrich <epetrich AT ivorytower.norman.ok.us> on Frieder's behalf)
8342         * src/mcs51/main.c: fixed the fix for bug #737001
8343
8344 2003-12-15  Borut Razem <borut.razem AT siol.net>
8345
8346         * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
8347
8348 2003-12-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8349
8350         * support/makebin/makebin.c: put output in binary mode
8351
8352 2003-12-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8353
8354         * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
8355         xdata and data memory on startup. Set the environment variable
8356         SDCC_NOGENRAMCLEAR to disable this.
8357         * src/mcs51/peephole.def,
8358         * src/ds390/peephole.def: using the atomic test and clear instruction jbc
8359         (allows non-interrupt and interrupt code to safely compete for a resource
8360         without the non-interrupt code having to disable interrupts)
8361
8362 2003-12-13 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8363
8364         * src/SDCCicode.c (geniCodeAdd),
8365         * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
8366         with valFromType if type might be a pointer and host is big endian).
8367         * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
8368         types, not just integer types.
8369         * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
8370         multiply defined with mismatching "at" address.
8371
8372 2003-12-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8373
8374         * src/ds390/main.c (PORT tininative_port): fixed bug #858416
8375         * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
8376         * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
8377         with embedded nulls (fixed bug #753752)
8378
8379 2003-12-12 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8380
8381         * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
8382         Apparently this did not see much testing (endless loop)
8383
8384 2003-12-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8385
8386         * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
8387
8388 2003-12-10 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8389
8390         * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
8391         gracefully handle NULL memmap pointers
8392
8393 2003-12-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8394
8395         * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
8396         instead of deleting the iCode when an operand is volatile
8397         * src/z80/gen.c (genDummyRead),
8398         * src/mcs51/gen.c (genDummyRead),
8399         * src/ds390/gen.c (genDummyRead),
8400         * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
8401         not just IC_RIGHT
8402         * src/SDCCicode.c (geniCodeCall): fixed bug #851607
8403         * src/SDCC.y: fixed bug #850420
8404
8405 2003-12-05 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8406
8407         Applied z80 i/o port patch from Peter Townson and fixed some operators
8408         to better handle operands in A register.
8409         * device/include/z180.h
8410         * src/SDCC.y
8411         * src/SDCCglue.c
8412         * src/z80/gen.c
8413         * src/z80/gen.h
8414         * src/z80/main.c
8415         * src/z80/peeph-z80.def
8416         * src/z80/peeph.def
8417         * src/z80/z80.h
8418
8419 2003-12-03 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8420
8421         * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
8422
8423 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8424
8425         * device/lib/hc08/_mullong.c: Removed extra #endif
8426
8427 2003-12-01 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8428
8429         * sim/ucsim/hc08.src/inst.cc,
8430         * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
8431         carries from x to h
8432         * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
8433         * src/hc08/gen.c (XAccRsh): fixed problem with right shift
8434         * device/include/stdarg.h: fixed varargs for hc08
8435         * device/lib/Makefile.in,
8436         * device/lib/hc08/Makefile,
8437         * device/lib/hc08/_mulint.c,
8438         * device/lib/hc08/_mullong.c: fixed some endian problems
8439
8440 2003-11-28 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8441
8442         * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
8443         * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
8444         * device/lib/_gptrget.c,
8445         * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
8446
8447 2003-11-27 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8448
8449         * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
8450         * src/SDCCast.c (astErrors): fixed bug #846007
8451         * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
8452
8453 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8454
8455         * src/SDCCast.c (decorateType): disabled a transformation I added in
8456         revision 1.188 (access to fields of a structure at an absolute address);
8457         it breaks with bitfields, extern declarations, and gcse analysis.
8458         * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
8459         could be assigned through a pointer, so don't complain.
8460         * src/SDCCast.c (astErrors),
8461         * src/SDCCast.h,
8462         * src/SDCCglue.c (emitRegularMap): fixed bug #847813
8463
8464 2003-11-26 Vangelis Rokas <vrokas AT otenet.gr>
8465
8466         * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
8467         * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
8468         output of __config directives, since gpasm now supports them
8469         * src/pic16/main.c (_pic16_finaliseOptions): define MCU
8470         pre-processor macro, i.e. -DMCU=p18f452
8471         * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
8472         and modified to handle 'cast' icode similarly to '=' icode
8473         * src/pic16/device.h (typedef struct PIC_device): added field
8474         'extMIface' to indicate that chip has external memory interface
8475         * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
8476         18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
8477         18F8720
8478
8479 2003-11-26 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8480
8481         * src/SDCC.y (pointer): fixed bug #846006
8482         * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
8483         * src/SDCCast.c (decorateType): fixed bug #846009
8484         * src/ds390/peeph.def,
8485         * src/ds390/gen.c (genAnd, genOr),
8486         * src/mcs51/peeph.def,
8487         * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
8488
8489 2003-11-25 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8490
8491         Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
8492         * src/SDCCdflow.c
8493         * src/SDCCcse.c
8494         * src/SDCCcse.h
8495         * src/SDCCBBlock.h
8496         * src/SDCCBBlock.c
8497
8498 2003-11-23 Klaus Flittner <klaus_flittner AT gmx.de>
8499
8500         fixed bug #845089
8501         * src/SDCCbitv.h,
8502         * src/SDCCbitv.c: added function to free a bitvector
8503         * src/SDCClrange.h,
8504         * src/SDCClrange.c: added function to recompute the liveranges
8505         * src/avr/ralloc.c,
8506         * src/ds390/ralloc.c,
8507         * src/hc08/ralloc.c,
8508         * src/mcs51/ralloc.c,
8509         * src/pic/ralloc.c,
8510         * src/pic16/ralloc.c,
8511         * src/xa51/ralloc.c,
8512         * src/z80/ralloc.c: recompute the liveranges after register packing
8513
8514 2003-11-21 Klaus Flittner <klaus_flittner AT gmx.de>
8515
8516         * src/SDCCloop.c (newInduction): fixed bug #845630
8517
8518 2003-11-21 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8519
8520         * src/SDCCsymt.c (compareTypesExact): disabled debugging output
8521         inadvertantly left behind from my 2003-11-12 change
8522
8523 2003-11-20 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8524
8525         Updated headers I neglected to commit yesterday.
8526         * src/SDCClrange.h,
8527         * src/SDCCicode.h
8528
8529 2003-11-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8530
8531         * src/SDCCcse.c (algebraicOpts): fixed bug #773153
8532         * src/SDCClrange.c (rlivePoint): need to mark IC_RESULT used if POINTER_SET op
8533         * src/SDCCopt.c (eBBlockFromiCode),
8534         * src/SDCClrange.c (hashiCodeKeys, sequenceiCode, computeLiveRanges): seperated
8535         the creation of the key hash table from the sequencing so it can be used
8536         earlier (for some GCSE bug fixes still pending)
8537
8538 2003-11-15 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8539
8540         * src/mcs51/gen.c (genPlus): generate shortcut for adding 0xab00
8541         * support/regression/tests/addsub.c: testing genPlus shortcut
8542
8543 2003-11-15  Borut Razem <borut.razem AT siol.net>
8544
8545         * src/SDCCmain.c: fixed bug #841645: -MM command line option passed to sdcpp
8546
8547 2003-11-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8548
8549         * src/SDCCcse.c (cseBBlock): fixed bug #527779
8550         * src/SDCCcse.c (deleteGetPointers): rewrote so that the set
8551         ordering is immaterial.
8552         * src/SDCCdflow.c (mergeInExprs): fixed bug #587536
8553
8554 2003-11-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8555
8556         * src/SDCCicode.c (geniCodeAddressOf): fixed part of bug #840381
8557         * src/SDCCopt.c (replaceRegEqv, isLocalWithoutDef): fixed other part
8558         (SIGSEV) of bug #840381
8559         * src/SDCCmain.c (linkEdit, assemble): fixed bug #841606 (don't
8560         unlink new file before rename if new and old filenames are the same)
8561
8562 2003-11-13 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8563
8564         * src/mcs51/main.c: started fixing bug #737001 (SDCC not clearing
8565         uninitialized variables) for the mcs51. Set environment variable
8566         SDCC_GENRAMCLEAR to test.
8567         xdata initialization slightly shorter
8568
8569 2003-11-12 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8570
8571         * src/SDCCsymt.h,
8572         * src/SDCCsymt.c (addSymTypeChain, compareTypesExact): fixed bugs
8573         #838241 & 780691 (basicly the same bug)
8574         * src/SDCCBBlock.c (iCode2eBBlock): fixed bug #840148
8575         * src/SDCCBBlock.c (iCodeFromeBBlock): fixed bug #840162
8576
8577 2003-11-11 Bernhard Held <bernhard AT bernhardheld.de>
8578
8579         * src/SDCCmain.c (linkEdit): "fix" #834252
8580
8581 2003-11-11 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8582
8583         * src/SDCCast.c (removePostIncDecOps, removePreIncDecOps),
8584         * src/SDCCast.h,
8585         * src/SDCC.y: fixed bug #819403
8586
8587 2003-11-08 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8588
8589         * support/regression/fwk/lib/testfwk.c: printn is recursive and thus needs
8590         the reentrant attribute.
8591         * src/hc08/gen.c (genPackBits): added missing stack readjustment
8592         * sim/ucsim/hc08.src/inst.cc (inst_mov): fixed bugs with mov instruction
8593         simulation
8594         * src/SDCCast.c (decorateType): fixed bug with storage class not being
8595         updated during pointer dereference; f.e. ~(((char *)1)*) was being
8596         erroneously reduced to a literal.
8597         * src/hc08/ralloc.c (packRegisters, rematStr),
8598         * src/hc08/gen.c (aopForRemat): allow literals to be rematerialized in
8599         some cases
8600
8601 2003-11-08 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8602
8603         * src/mcs51/main.c: fixed bug #838385. Thanks to Josef Pavlik for finding and fixing
8604         * doc/sdccman.lyx: changed from 'article' to 'book'
8605         * doc/Makefile: readded test_suite_spec and cdbfileformat
8606
8607 2003-11-08 Bernhard Held <bernhard AT bernhardheld.de>
8608
8609         * device/include/stdlib.h: include malloc.h to comply with ANSI
8610         * support/regression/tests/malloc.c: include stdlib.h instead of malloc.h
8611
8612 2003-11-07 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8613
8614         * doc/Makefile: sdccman.pdf should build with correct references (more info in commit msg)
8615         * doc/clean.mk: also remove *.out files
8616         * doc/sdccman.lyx: some additions, larger top/bottom margins
8617
8618 2003-11-07 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8619
8620         * src/SDCC.y: fixed bug #837365
8621         * support/regression/tests/bitopcse.c
8622         * src/hc08/gen.c (genPointerGet): Don't assume pointer operand is
8623         a symbol (might be valop instead)
8624         * device/lib/Makefile.in: added errno.c to HC08SOURCES
8625         * device/lib/clean.mk: added hc08 to the cleaning list
8626
8627 2003-11-04  Borut Razem <borut.razem AT siol.net>
8628
8629         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h: reverted changes,
8630           made 2003-11-04
8631         * support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
8632           as/z80/aslist.c, as/z80/assym.c: removed inclusion of nonstandard malloc.h;
8633           malloc is declared in standard stdlib.h
8634
8635 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8636
8637         * device/lib/hc08/Makefile: need to clean .rel not .o files
8638         * src/hc08/gen.c (genDjnz): can't use djnz with extended addressing mode
8639
8640 2003-11-06 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8641
8642         * src/port.h,
8643         * src/hc08/main.c,
8644         * src/mcs51/main.c,
8645         * src/ds390/main.c,
8646         * src/z80/main.c,
8647         * src/avr/main.c,
8648         * src/pic/main.c,
8649         * src/pic16/main.c,
8650         * src/xa51/main.c: added hasExtBitOp & oclsExpense functions to ports
8651         * src/SDCCicode.c: changed several IS_FARSPACE tests to isOclsExpensive
8652         tests (which uses the port's oclsExpense function)
8653         * src/SDCC.y,
8654         * src/SDCCast.c,
8655         * src/SDCCicode.c,
8656         * src/hc08/gen.c,
8657         * src/ds390/gen.c,
8658         * src/mcs51/gen.c: added support for the SWAP iCode (RFE #834167)
8659
8660 2003-11-04 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8661
8662         * src/SDCCcse.c (ifxOptimize),
8663         * src/SDCClabel.c (labelIfx, deleteIfx): When the condition to
8664         an IFX iCode is volatile, convert to DUMMY_READ_VOLATILE instead
8665         deleting the IFX iCode.
8666         * src/hc08/ralloc.c: reduced unneeded slocs
8667         * src/hc08/gen.c: fixed bug in asmopToBoolean
8668
8669 2003-11-04  Borut Razem <borut.razem AT siol.net>
8670
8671         * configure, configure.in, sdcc_vc_in.h, sdcconf_in.h,
8672           support/Util/NewAlloc.c, as/hc08/lklibr.c, as/mcs51/lklibr.c,
8673           as/z80/aslist.c, as/z80/assym.c: decision to include malloc.h
8674           transferred to configure
8675
8676 2003-11-03 Bernhard Held <bernhard AT bernhardheld.de>
8677
8678         Use headers defined in the C[++] standards:
8679         * sim/ucsim/gui.src/serio.src/fileio.cc
8680         * sim/ucsim/gui.src/serio.src/frontend.cc
8681         * sim/ucsim/gui.src/serio.src/main.cc
8682         * sim/ucsim/gui.src/serio.src/posix_signal.cc
8683         * support/Util/NewAlloc.c
8684         * as/hc08/lklibr.c
8685         * as/mcs51/lklibr.c
8686         * as/z80/aslist.c
8687         * as/z80/assym.c
8688
8689 2003-11-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
8690
8691         * Added MSVC projects for hc08 assembler and linker:
8692         all.dsp, config.dsp, sdcc.dsw, /as/hc08/as_hc08.dsp,
8693         /as/hc08/link_hc08.dsp
8694
8695 2003-11-03 Martin Helmling <Martin.Helmling AT octo-soft.de>
8696
8697         * debugger/mcs51/cmd.c: allows filename starting with digit(+ some debug)
8698
8699 2003-11-02 Bernhard Held <bernhard AT bernhardheld.de>
8700
8701         * src/SDCCmain.c (linkEdit): "fixed" again bug #833605
8702
8703 2003-11-01 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8704
8705         * src/mcs51/main.c: xdata initialization is 13 bytes shorter now
8706
8707 2003-10-31  Borut Razem <borut.razem AT siol.net>
8708
8709         * support/cpp2/cpplib.h,
8710           support/cpp2/cpplib.c,
8711           support/cpp2/cpplex.c,
8712           support/cpp2/cppinit.c: introduced #pragma preproc_asm [ + | - ]
8713           to switch _asm block preprocessing on / off. Default is
8714           #pragma preproc_asm +
8715
8716 2003-10-31  Borut Razem <borut.razem AT siol.net>
8717
8718         * support/cpp2/cpplex.c: Fixed _WIN32 problem with CR-CR-LF sequences
8719           when outputting comment blocks (when executed with -C option) and
8720           _asm (SDCPP specific) blocks
8721
8722 2003-10-31 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8723
8724         * as/hc08/lkrloc.c (relr): Fixed ihx output, fixed lastAreaIndex warning
8725
8726 2003-10-31 Klaus Flittner <klaus_flittner AT gmx.de>
8727
8728         * src/SDCCcse.c (updateSpillLocation): fixed bug #808027
8729
8730 2003-10-31 Bernhard Held <bernhard AT bernhardheld.de>
8731
8732         * src/SDCCmain.c (linkEdit): "fixed" bug #833605
8733         * src/SDCCast.c (decorateType): fixed bug #832664
8734
8735 2003-10-31  Borut Razem <borut.razem AT siol.net>
8736
8737         * support/cpp2/cpplex.c: fixed for SDCPP:
8738           comments(when executed with -C option) and _asm blocks
8739           were included even if they where in skipped #if block.
8740           Applied solution from GCC cpp 3.3.2
8741
8742 2003-10-31  Borut Razem <borut.razem AT siol.net>
8743
8744         * src/SDCC.lex: sdcc now understands both formats:
8745           '# <line_number> <file_name>' and
8746           '#line <line_number> <file_name>'
8747         * support/cpp2/cppmain.c: sdcpp now generates the standard
8748           '# <line_number> <file_name>' instead of former
8749           '#line <line_number> <file_name>'
8750
8751 2003-10-30  Borut Razem <borut.razem AT siol.net>
8752
8753         * support/cpp2/cpphash.h,
8754         * support/cpp2/cpplib.h
8755         * support/cpp2/cpplex.c,
8756         * support/cpp2/cppmain.c,
8757         * support/cpp2/cppinit.c: fixed bug #828015 - Syntax variation for _asm character constants
8758
8759 2003-10-30 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8760
8761         Fixed a number of problems revealed by bug #827883.
8762         * src/SDCCloop.c (loopInvariants): Spill location of the
8763         result operand should be recomputed if extracted from
8764         a loop. Also, don't extract assignments of an iTemp
8765         from a literal.
8766         * src/SDCCast.c (isConformingBody): loop reversal should
8767         not occur if the control variable is involved with a
8768         relational operator.
8769
8770 2003-10-28 Bernhard Held <bernhard AT bernhardheld.de>
8771
8772         * .version: bumped to 2.3.6 to reflect the big improvements
8773         made by Erik and Klaus. Thanks!
8774
8775 2003-10-28 Klaus Flittner <klaus_flittner AT gmx.de>
8776
8777         Replaced the livrange code.
8778         * src/SDCClrange.c: added new LR code
8779         * src/SDCCloop.c,
8780         * src/SDCCBBlock.h: removed remainig parts from old LR code
8781         * src/ds390/ralloc.c,
8782         * src/ds390/gen.c: minor fixes to make it work with new code
8783
8784 2003-10-28 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8785
8786         * as/hc08/asm.h,
8787         * as/hc08/lkrloc.c,
8788         * src/hc08/gen.c,
8789         * src/hc08/ralloc.c: Fix various warnings related to the hc08
8790         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec): Fixed bug #829717
8791         (tweaked fix for bug #818696)
8792
8793 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8794
8795         * src/z80/ralloc.c (joinPushes): Fixed bug #828742
8796
8797 2003-10-23 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8798
8799         * src/SDCCmain.c,
8800         * sdccconf_in.h: Fixed bug #828387 (--disable-hc08-port didn't work)
8801         * src/mcs51/gen.c (gencjneshort),
8802         * src/ds390/gen.c (gencjneshort): Made comparison with AOP_IMMD operand
8803         more efficient (per Scott Bronson's suggestion)
8804
8805 2003-10-22 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8806
8807         Extended the semantics of the critical keyword to include
8808         individual statements. See RFE #827755 and #799831
8809         * src/SDCC.y
8810         * src/SDCCicode.c
8811         * src/SDCCopt.c
8812         * src/SDCCast.c
8813         * support/Util/SDCCerr.c
8814         * support/Util/SDCCerr.h
8815         * src/mcs51/gen.c
8816         * src/ds390/gen.c
8817         * src/hc08/gen.c
8818
8819 2003-10-19  Borut Razem <borut.razem AT siol.net>
8820
8821         * src/SDCC.lex: fixed bug #825944 - defined yytext_ptr to make it compile with flex 2.5.31
8822
8823 2003-10-19 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8824
8825         * src/SDCCicode.c (geniCodePreInc, geniCodePreDec, ast2iCode):
8826         Fixed bug #818696
8827         * src/SDCCast.c (ast_print): Fixed --dumptree so that preincrement
8828         and predecrement operand is displayed
8829
8830 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
8831
8832         * src/SDCCval.c (valMinus): fixed bug #826041
8833
8834 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8835
8836         Some hc08 related updates that I missed earlier
8837         * sim/ucsim/stypes.h
8838         * support/regression/ports/hc08/spec.mk
8839
8840 2003-10-15 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8841
8842         New target "hc08" for the Motorola 68hc08 family of micros
8843
8844         * configure
8845         * configure.in
8846         * Makefile
8847         * src/hc08/*
8848         * src/SDCCmain.c
8849         * src/port.h
8850         * sim/ucsim/hc08.src/*
8851         * sim/ucsim/configure.in
8852         * src/ucsim/configure
8853         * sim/ucsim/packages_in.mk
8854         * as/hc08/*
8855         * as/Makefile
8856         * device/include/mc68hc908qy.h
8857         * device/lib/hc08/*
8858         * device/lib/Makefile.in
8859         * support/regression/ports/hc08/*
8860         * support/regression/Makefile
8861
8862 2003-10-14 Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8863
8864         * src/z80/gen.c: fixed bug revealed by ast_constant_folding.c
8865         regression test
8866         * src/ds390/gen.c (genCast): fixed bug #821957
8867
8868 2003-10-13 Bernhard Held <bernhard AT bernhardheld.de>
8869
8870         * device/lib/logf.c: "fixed" overlay bug
8871         * support/regression/ports/host/spec.mk: added m library
8872         * support/regression/ports/mcs51-stack-auto/spec.mk: added float funcs
8873         * support/regression/tests/float_trans: added (for Eric)
8874
8875 2003-10-12 Bernhard Held <bernhard AT bernhardheld.de>
8876
8877         * src/mcs51/gen.c (genCpl): fixed bug
8878         http://sf.net/mailarchive/message.php?msg_id=6263915
8879
8880 2003-10-10 Bernhard Held <bernhard AT bernhardheld.de>
8881
8882         * src/SDCCast.c (decorateType): added extended constant folding
8883         * src/SDCCsymt.c (computeType): cleanup
8884         * src/SDCCval.c (valShift): minor optimization
8885         * support/regression/tests/ast_constant_folding.c: added
8886
8887 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8888
8889         * src/SDCCmain.c: removed some unintended changes
8890
8891 2003-10-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8892
8893         * src/SDCCmain.c (setParseWithComma): fixed bug #816685
8894         * src/z80/gen.c: fixed part of bug #817589
8895         * src/SDCCsymt.c (checkFunction): fixed bug #817895
8896
8897 2003-10-08 Bernhard Held <bernhard AT bernhardheld.de>
8898
8899         Replaced cast (void **) with (void *) to avoid gcc 3 warning:
8900         * src/SDCCcflow.c
8901         * src/SDCCcse.c
8902         * src/SDCCdflow.c
8903         * src/SDCClabel.c
8904         * src/SDCClrange.c
8905         * src/SDCCmem.c
8906         * src/SDCCopt.c
8907         * src/SDCCpeeph.c
8908         * src/SDCCset.c
8909         * src/avr/ralloc.c
8910         * src/ds390/ralloc.c
8911         * src/izt/ralloc.c
8912         * src/mcs51/ralloc.c
8913         * src/pic/ralloc.c
8914         * src/pic16/ralloc.c
8915         * src/xa51/ralloc.c
8916         * src/z80/ralloc.c
8917         * src/z80/gen.c: removed unused label "release:"
8918
8919 2003-10-06  Borut Razem <borut.razem AT siol.net>
8920
8921         * src/SDCC.lex: removed definition of unused variables
8922           save_optimize and save_options
8923
8924 2003-10-06 Bernhard Held <bernhard AT bernhardheld.de>
8925
8926         * clean.mk: removed '=' in "-maxdepth=1"
8927         * src/SDCCloop.c: replace LRKLAUS with SDCC_LRKLAUS
8928         * src/SDCClrange.c: replace LRKLAUS with SDCC_LRKLAUS
8929
8930 2003-10-06  Borut Razem <borut.razem AT siol.net>
8931
8932         * src/SDCC.lex, src/SDCC.lex: use dbuf for "_asm" definitions;
8933           my_unput() replaced by unput()
8934
8935 2003-10-05 Bernhard Held <bernhard AT bernhardheld.de>
8936
8937         * src/SDCCloop.c (assignmentsToSym, loopInduction): cast argument of
8938         setToNull() to (void *) to avoid gcc3.x's warning: "dereferencing
8939         type-punned pointer will break strict-aliasing rules"
8940         Old LR behaviour is again default; Klaus' LR can be choosen by
8941         defining the environment variable LRKLAUS
8942         * src/SDCCBBlock.h
8943         * src/SDCCloop.c
8944         * src/SDCClrange.c
8945         * src/ds390/ralloc.c (spillThis): applied Klaus' patch
8946         * clean.mk: fixed removal of files in bin/CVS/
8947         * device/lib/clean.mk: fixed removal of directories small and large
8948         * support/Util/SDCCerr.c: changed W_INT_OVL to ERROR_LEVEL_PEDANTIC
8949         * src/SDCCicode.c,
8950         * src/SDCCval.c: removed superflous test for pedantic
8951
8952 2003-10-05  Borut Razem <borut.razem AT siol.net>
8953
8954         * src/SDCC.lex, support/Util/SDCCerr.c, sdcc/support/Util/SDCCerr.h:
8955           Fixed bug #816692: introduced new ERROR_LEVEL_PEDANTIC warning
8956           message "unmatched #pragma SAVE and #pragma RESTORE"
8957
8958 2003-10-04  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
8959
8960         * doc/sdccman.lyx: various additions and updates (interrupts, inline
8961           assembly, critical functions, atomic, nojtbound)
8962
8963 2003-10-04 Bernhard Held <bernhard AT bernhardheld.de>
8964
8965         Applied liferange patch from Klaus Flittner <klaus_flittner AT gmx.de>
8966         * src/SDCCBBlock.h
8967         * src/SDCCloop.c
8968         * src/SDCCloop.h
8969         * src/SDCClrange.c
8970
8971 2003-10-03  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8972
8973         * src/z80/gen.h,
8974         * src/z80/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8975         * src/mcs51/gen.h
8976         * src/mcs51/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8977         * src/ds390/gen.h
8978         * src/ds390/gen.c (aopOp, aopGet, aopPut, genDummyRead),
8979         * src/SDCCicode.c (ast2iCode, geniCodeDummyRead): Fixed bug #663539
8980         * src/SDCCopt.c (killDeadCode): Fixed bugs #663539 & #816705
8981
8982 2003-10-02  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8983
8984         * src/z80/gen.c (genRet): fixed bug #524753
8985         * src/z80/gen.c (genCast): fixed internal error on cast from
8986         pointer to long
8987         * src/z80/gen.c (_saveRegsForCall, emitCall): adapted Johan's
8988         fix for bug #477835 to the z80
8989         * src/z80/gen.c (genZ80code, _vemit2, _emit2): added support
8990         for tracking iCodes in the peephole optimizer for z80
8991
8992 2003-10-01  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
8993
8994         * src/SDCCicode.c (geniCodeJumpTable, geniCodeSwitch): fixed
8995         the other part of bug #814548
8996         * src/SDCCpeeph.c (labelInRange): fixed bug #814558
8997
8998 2003-09-30  Bernhard Held <bernhard AT bernhardheld.de>
8999
9000         * src/SDCCcse.c: fixed part of bug #814548
9001
9002 2003-09-28  Borut Razem <borut.razem AT siol.net>
9003
9004         * src/asm.c: rewrite of printILine() to use temporary file instead
9005           a pipe
9006         * src/xa51/main.c: commented out declaration of int rewinds
9007
9008 2003-09-27  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9009
9010         * src/SDCCicode.c (geniCodeJumpTable): Fixed bug #813206
9011
9012 2003-09-26  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9013
9014         * src/SDCCdflow.c (computeDataFlow): Fixed bug #810746
9015         * src/asm.c (printILine): Fixed bug #811015
9016
9017 2003-09-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9018
9019         *link/z80/lklibr.c, as/mcs51/lklibr.c: Improved memory allocation and
9020         freeing.
9021
9022 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9023
9024         * src/z80/gen.c (setupToPreserveCarry): Fixed bug #796955
9025         * src/z80/gen.c (setupPair, genMovePairPair): Fixed setupPair
9026         to correctly handle general case of AOP_PAIRPTR
9027         * src/z80/gen.c (aopGet, aopPut): Generalized AOP_PAIRPTR handling
9028
9029 2003-09-21  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9030
9031         * src/mcs51/ralloc.c (fillGaps),
9032         * src/ds390/ralloc.c (fillGaps): fixed bug #810093 (yet another
9033         register positioning bug)
9034
9035 2003-09-21  Bernhard Held <bernhard AT bernhardheld.de>
9036
9037         * device/lib/_fsdiv.c: replaced (1<<31) by (1ul<<31)
9038
9039 2003-09-19  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9040
9041         * src/mcs51/gen.c (loadDptrFromOperand, genFarPointerGet,
9042         genCodePointerGet, genGenPointerGet, genFarPointerSet,
9043         genGenPointerSet): handle AOP_DPTR correctly when loading dptr
9044         (ralloc doesn't intentionally do this now, but perhaps later)
9045         * src/mcs51/ralloc.c (serialRegAssign, fillGaps),
9046         * src/ds390/ralloc.c (serialRegAssign, fillGaps): fixed some
9047         register positioning bugs (Fixed bug #762602 and #795325)
9048         * src/SDCCicode.c (geniCodeDerefPtr): Track output class correctly
9049         (Fixed bug #808779)
9050         * src/z80/gen.c: increased _vemit2's buffer[] to handle long
9051         lines that --i-code-in-asm generates
9052
9053 2003-09-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9054
9055         *link/z80/lklibr.c, as/mcs51/lklibr.c: Fixed Linux segfaults when
9056         trying to fclose a FILE* that was already closed.
9057
9058 2003-09-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9059
9060         * src/SDCCsymt.c (structElemType): fixed bug #808291 (members
9061         of const struct should be treated as if const themselves)
9062
9063 2003-09-18  Bernhard Held <bernhard AT bernhardheld.de>
9064
9065         * src/SDCCval.c (valPlus, valMinus): fixed bug #808337
9066
9067 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9068
9069         * support/librarian/sdcclib.c: Generate correct offsets for libraries with
9070         Unix (/n) and DOS (/r/n) line terminations.
9071
9072 2003-09-17  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9073
9074         * src/SDCCopt.c (cnvFromFloatCast, cnvToFloatCast): fixed
9075         bug #613775
9076
9077 2003-09-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9078
9079         * src/mcs51/gen.c (genFunction, genEndFunction),
9080         * src/ds390/gen.c (genFunction, genEndFunction): Moved save
9081         and restore of EA so that stack offsets to parameters are
9082         correct when using both critical and reentrant/stack-auto.
9083         * src/z80/gen.c (aopOp): removed erroneous assertion about sloc
9084         size (can be triggered in error if sloc is shared between
9085         different sized objects)
9086         * device/include/float.h: fixed macros to explicitly use
9087         unsigned long where needed
9088
9089 2003-09-15  Bernhard Held <bernhard AT bernhardheld.de>
9090
9091         Feature req. 799831: added code to allow nesting of critical functions
9092         * src/mcs51/gen.c (genFunction, genEndFunction)
9093         * src/ds390/gen.c (genFunction, genEndFunction)
9094
9095 2003-09-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9096
9097         * src/SDCCsymt.c (sclsFromPtr),
9098         * src/SDCCsymt.h,
9099         * src/SDCCast.c (decorateType): fixed bug #462971. Also, better
9100         support for standard C idiom of memory mapped variables; for
9101         example, *((xdata int*)0x1234) = 1 is now internally equivalent
9102         to xdata int at 0x1234 tempvar = 1.
9103         * sim/ucsim/z80.src/inst_xd.cc: fixed bug #805483 with patch
9104         provided by Akiya ISHIDA
9105
9106 2003-09-13  Bernhard Held <bernhard AT bernhardheld.de>
9107
9108         * src/SDCCval.c (cheapestVal): reenabled to reduce int to char
9109         * src/SDCCval.c (constVal): added reduction from int to char
9110         * src/SDCCval.c (valMult, valDiv): fixed sign handling
9111         * src/SDCCval.c (valShift): fixed after change of cheapestVal()
9112         * src/SDCCval.c (valCompare): fixed EQ_OP and NE_OP; they have
9113         to ignore the sign
9114         * support/regression/tests/shifts.c: fixed
9115
9116 2003-09-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9117
9118         * src/z80/gen.c (genXor): Fixed bug #805445
9119
9120 2003-09-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9121
9122         Fixed bug #621531 (const & volatile confusion in the type chain).
9123         DCL_PTR_CONST, DCL_PTR_VOLATILE, & IS_PTR_CONST now exclusively
9124         refer to the const or volatile state of the pointer itself.
9125
9126         * src/SDCCast.c
9127         * src/SDCCglue.c
9128         * src/SDCCicode.c
9129         * src/SDCCsymt.c
9130         * src/SDCCval.c
9131         * src/SDCC.y
9132         * src/SDCCsymt.h
9133         * src/pic/gen.c
9134         * src/pic/ralloc.c
9135         * src/pic16/gen.c
9136         * src/pic16/ralloc.c
9137         * support/regression/tests/const.c
9138
9139 2003-09-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9140
9141         When checking for duplicated modules, use absolute paths
9142         instead of relative paths.  Files changed:
9143
9144         * as/mcs51/lklib.c
9145         * link/z80/lklib.c
9146
9147 2003-09-09  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9148
9149         * src/SDCCicode.c (geniCodeLogic): fixed bug #797572
9150
9151 2003-09-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9152
9153         * device/include/string.h: added size_t typedef, changed
9154         prototypes to use size_t, eliminated separate reentrant and
9155         non-reentrant declarations, added _memmove declaration
9156         * device/lib/_memcpy.c: changed to use size_t instead of int,
9157         changed /4 to >>2 to avoid division library call
9158         * device/lib/_memcmp.c,
9159         * device/lib/_memset.c,
9160         * device/lib/_strncat.c,
9161         * device/lib/_strncpy.c,
9162         * device/lib/_strncmp.c: changed to use size_t instead of int
9163         * device/lib/_memmove.c: new file (fixed bug #772294)
9164         * device/lib/Makefile.in: added _memmove.c
9165         * device/lib/z80/asm_strings.s: fixed bug #772290
9166         * support/regression/tests/bitfields.c: attempt to fix host assertion
9167         failure on amd64-unknown-linux2.2
9168
9169 2003-09-06  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9170
9171         * src/z80/gen.c (aopPut, spillPairReg): fixed bug #800998
9172         * src/z80/gen.c (genFunction, genEndFunction): fixed "bug" #774700
9173         * as/z80/asmain.c (main): fixed bug #801766
9174
9175 2003-09-06  Bernhard Held <bernhard AT bernhardheld.de>
9176
9177         * src/SDCCicode.c (ast2iCode): fixed differences in iCode with different
9178         compilers
9179
9180 2003-09-05  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9181
9182         * src/SDCCast.c (isConformingBody): fixed loop reversal bug
9183         reported in bug #800609
9184
9185 2003-09-04  Vangelis Rokas <vrokas AT otenet.gr>
9186
9187         * Top header beautifications in src/pic16 directory:
9188           device.c, device.h, gen.c, gen.h, genarith.c, glue.c, pcode.c,
9189           pcodeflow.c, pcodeflow.h, pcode.h, pcodepeep.c, pcoderegs.c,
9190           pcoderegs.h, ralloc.c, ralloc.h
9191         * main.c: added top header and GPL license notice
9192         * pcode.c: fixed the if-conditional warning
9193
9194 2003-09-04  Bernhard Held <bernhard AT bernhardheld.de>
9195
9196         * device/lib/_mullong.c: replaced int by short for gcc
9197
9198 2003-08-31  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9199
9200         * src/SDCCpeeph.c (notVolatile, notVolatileVariable): handle IFX
9201         and JUMPTABLE iCodes properly now (worked by accident before)
9202         * src/mcs51/gen.c (leftRightUseAcc),
9203         * src/ds390/gen.c (leftRightUseAcc): handle IFX and JUMPTABLE
9204         iCode properly now. Use getSize instead of nRegs since a & b
9205         aren't part of the nRegs tally.
9206
9207 2003-08-31  Vangelis Rokas <vrokas AT otenet.gr>
9208
9209         * src/pic16/main.c: corrected offsets of interrupt vectors in _pic16_genIVT()
9210         * src/pic16/pcode.c: fix to disable inserting BANKSEL directive
9211           before instructions that use the _STATUS register
9212
9213 2003-08-31  Bernhard Held <bernhard AT bernhardheld.de>
9214
9215         * src/mcs51/gen.c (freeAsmop): fixed off by one in stack offset (AOP_STK)
9216         * src/mcs51/gen.c (genNearPointerSet): added missing opcode for
9217         fetching of the pointer
9218         * src/mcs51/gen.c (genNearPointerGet): added reuse of PREG,
9219         copied from genNearPointerSet()
9220         * src/mcs51/gen.c (genNearPointerGet): don't pop r0/r1, if RESULTONSTACK
9221         * src/mcs51/gen.c: changed order of freeAsmop(left/right/result)-calls.
9222         If they pop r0/r1 they must be called in the opposite order than aopOp().
9223         * device/lib/_mullong.c: fixed for "--model-large --int-long-reent"
9224         (resp. --stack-auto), prepared for --xstack
9225
9226 2003-08-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9227
9228         * doc/sdccman.lyx: reverted tables to those in cvs 1.64
9229
9230 2003-08-28  Bernhard Held <bernhard AT bernhardheld.de>
9231
9232         * device/lib/_startup.c: quick & dirty fix for ds390/ds400;
9233         these ports have their own __sdcc_external_start()
9234
9235 2003-08-26  Bernhard Held <bernhard AT bernhardheld.de>
9236
9237         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9238         * src/pic/glue.c (pic14printPublics): fixed bug introduced when symbol
9239         type for bits was changed. It resulted in bit variables becoming
9240         global, which is not permitted in PIC 14 assembly output.
9241
9242 2003-08-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9243
9244         * doc/sdccman.lyx: various additions and updates. Rearranged sections
9245
9246 2003-08-22  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9247
9248         Z80 and MCS51 linkers complaint if a public symbol is defined
9249         in more than one library module:
9250
9251         * as/mcs51/lklib.c
9252         * link/z80/lklib.c
9253         * as/mcs51/Makefile.in
9254
9255 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9256
9257         A few small changes that speed up the peephole optimizer.
9258
9259         * src/SDCCpeeph.c
9260
9261 2003-08-22  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9262
9263         Try to make the peephole optimizer smarter by maintaining
9264         an association between the assembly source code and the
9265         iCodes that originated them. Put this information to use
9266         with a new peephole rule condition "notVolatile" so that
9267         the rules can be aggressive yet still safe.
9268
9269         * src/SDCCpeeph.c
9270         * src/SDCCpeeph.h
9271         * src/mcs51/gen.c
9272         * src/mcs51/peeph.def
9273
9274 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9275
9276         Fixed bug #741761
9277
9278         * src/mcs51/gen.c (aopForSym, leftRightUseAcc),
9279         * src/ds390/gen.c (aopForSym, leftRightUseAcc): preserve A and B
9280         if the left or right operand symbols have the accuse flag set.
9281
9282 2003-08-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9283
9284         Changed the type of the result of the ! (NOT) operator to char;
9285         previously it returned the same type as the source. This allows
9286         us to eliminate all the genFloatNot functions (all of its target
9287         implementations were very buggy) since !float can use the same
9288         code as !long now.
9289
9290         * src/SDCCicode.c (ast2iCode): ! returns char
9291         * src/mcs51/gen.c (genNot, genNotFloat),
9292         * src/ds390/gen.c (genNot, genNotFloat),
9293         * src/z80/gen.c (genNot, genNotFloat),
9294         * src/pic/gen.c (genNot, genNotFloat),
9295         * src/pic16/gen.c (genNot, genNotFloat): eliminated genNotFloat
9296
9297 2003-08-19  Bernhard Held <bernhard AT bernhardheld.de>
9298
9299         pic patch provided by Slade Rich <slade_rich AT yahoo.com>
9300         1. Interrupt would not compile properly. Ensure PCLATH register is saved
9301            during interrupts. Ensure WSAVE is located at a shared bank address.
9302         2. Fixed page selection in some places
9303         3. Fixed BTFSS/C to where necessary use registers directly and not simply
9304            the registers name strings.
9305         4. Fixed "signed / unsigned compare" compiler warnings.
9306         5. The PIC port manages its own allocation of the general purpose
9307            registers, but makes no attempt to reuse them. As a result when
9308            compiling it soon runs out of general purpose registers. Some
9309            additional code was added to the files pcode.c and device.c to walk
9310            through the function call tree and rename the registers so that they
9311            get reused.
9312
9313         * src/pic/device.c
9314         * src/pic/gen.c
9315         * src/pic/glue.c
9316         * src/pic/pcode.c
9317         * src/pic/pcode.h
9318         * src/pic/ralloc.c
9319         * src/pic/ralloc.h
9320         * src/pic/genarith.c: Fixed problems with PIC 14 port in functions
9321         genPlus() & genMinus() when the result is the same as left or right
9322
9323 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9324
9325         * src/z80/gen.c (isUnsplitable, fetchPairLong): fixed bug #770454
9326
9327 2003-08-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9328
9329         Made bitfield a distinct type from bit so that bitfields
9330         convert as per ANSI C and bits retain their traditional
9331         boolean style behaviour. Implemented bitfield support in
9332         the z80 port.
9333
9334         * src/SDCCsymt.h,
9335         * src/SDCCsymt.c,
9336         * src/SDCCast.c,
9337         * src/cdbFile.c,
9338         * src/mcs51/gen.c,
9339         * src/ds390/gen.c: bit v bitfield split
9340         * src/z80/gen.c: New support for bitfields
9341         * support/regression/tests/bitfields.c: reenabled z80,
9342         added more tests
9343
9344 2003-08-17  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9345
9346         Rules 246.x, 247.x relate to bitfields, the others speed up
9347         access to xdata mapped I/O devices.
9348
9349         * src/mcs51/peeph.def: added 26 peepholes 246.x - 248.x, 180.x
9350
9351 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9352
9353         Cleaned up genPackBits and genUnpackBits and added two helper
9354         functions, emitPtrByteGet & emitPtrByteSet. Added optimizations
9355         for literal assignments in genPackBits (thanks to Frieder for
9356         reminding me).
9357
9358         * src/mcs51/gen.c
9359         * src/ds390/gen.c
9360
9361 2003-08-16  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9362
9363         Fixed bug #748310 (pointer to function type mishandled when the
9364         function name is omitted). Also fixed a SIGSEGV when a function
9365         attribute (reentrant, etc) is used on a non-function or on a
9366         function but misplaced before the parameter list.
9367
9368         * src/SDCC.y (abstract_declarator, abstract_declaractor2): fixed
9369         bug #748310
9370         * src/SDCC.y (declarator2_function_attributes): avoided SIGSEGV
9371         * support/Util/SDCCerr.h,
9372         * support/Util/SDCCerr.c: Added func attr misuse error msg
9373
9374 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9375
9376         Fixed bug #787649 by anonymous
9377         * src/SDCCglue.c (emitRegularMap): added emission of sloc for func ptr
9378         * src/ds390/gen.c (aopForSym): fixed func ptr in sloc
9379
9380 2003-08-14  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9381
9382         Fixed numerous bitfield problems.
9383
9384         * src/SDCC.y: More bitfield related error checking
9385         * src/SDCCsymt.h,
9386         * src/SDCCsymt.c (compStructSize): fixed bitfield offset calc
9387         * support/Util/SDCCerr.h,
9388         * support/Util/SDCCerr.c: Added & edited some bitfield err msgs
9389         * src/mcs51/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9390         * src/ds390/gen.c (genPackBits, genUnpackBits): fixed mask bugs
9391         * support/regression/tests/bitfields.c: tests added
9392
9393 2003-08-13  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9394
9395         Made the constant following the "interrupt" keyword optional. If
9396         omitted, the function will not automatically be given an entry
9397         in the interrupt vector table (similar to #pragma NOIV, but
9398         less syntacticly kludgy). The interrupt number is also now
9399         range checked. Also fixed a bug in the high order bit example
9400         in the manual.
9401
9402         * src/SDCC.y
9403         * src/SDCCmem.c
9404         * src/SDCCglue.c
9405         * src/SDCCsymt.h
9406         * support/Util/SDCCerr.c
9407         * support/Util/SDCCerr.h
9408         * doc/sdccman.lyx
9409
9410 2003-08-13  Bernhard Held <bernhard AT bernhardheld.de>
9411
9412         * src/SDCCcse.c (algebraicOpts): fix bug converting op from value to type
9413         * src/SDCCicode.c (operandOperation): rewritten some ops
9414         (*, ==, unary_minus) to fix possible overflows and to accord with ANSI
9415         * src/SDCCsymt.c (computeType): literals are handled the same way as any
9416         other type
9417         * src/SDCCval.c (cheapestVal): removed, it doesn't accord with ANSI (can
9418         be re-activated by defining REDUCE_LITERALS)
9419         * src/SDCCval.c (constVal): fixed; hex and octal constants can be
9420         unsigned, but are signed by default
9421         * src/SDCCval.c (constVal): rearranged
9422         * src/SDCCval.c (valMod): preliminary fix
9423         * src/SDCCval.c (valCastLiteral): use TYPE_* types
9424         * support/regression/literalop.c: added, work in progress
9425
9426 2003-08-12  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9427
9428         Generate warnings for useless declarations like "char data;"
9429         that don't do what new users expect.
9430
9431         * src/SDCC.y
9432         * support/Util/SDCCerr.h
9433         * support/Util/SDCCerr.c
9434
9435 2003-08-09  Bernhard Held <bernhard AT bernhardheld.de>
9436
9437         * src/SDCCval.c (valMult): fix overflow detection of negative int
9438
9439 2003-08-07  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9440
9441         * src/z80/ralloc.c (joinPushes): made compatible with new signedness
9442
9443         Changes to support big endian targets:
9444
9445         * src/ports.h
9446         * src/SDCCglue.c
9447         * src/avr/main.c
9448         * src/ds390/main.c
9449         * src/izt/i186.c
9450         * src/mcs51/main.c
9451         * src/pic/main.c
9452         * src/pic16/main.c
9453         * src/xa51/main.c
9454         * src/z80/main.c
9455
9456 2003-08-06  Bernhard Held <bernhard AT bernhardheld.de>
9457
9458         * src/SDCCval.c (cheapestVal): changed behaviour to the same as constVal()
9459         * device/lib/time.c: fixed warning "integer overflow in expression"
9460
9461 2003-08-05  Bernhard Held <bernhard AT bernhardheld.de>
9462
9463         * src/SDCCval.c (cheapestVal, valueFromLit): use TYPE_* types
9464         * src/SDCCval.c (constVal): changed default to signed; hex and octal
9465         constants are unsigned; added recognition of "u" flag for unsigned
9466         * src/SDCCval.c (valMult): fixed signdness, added warning for overflow
9467         * src/SDCCval.c (valDiv, valMod): fixed signdness
9468         * src/SDCCicode.c (operandOperation): fixed critical typo; fixed
9469         signedness of modulo, left and right shift
9470         * support/Util/SDCCerr.c: added warning "integer overflow in expression"
9471         * support/Util/SDCCerr.h: added warning W_INT_OVL
9472         * src/SDCCast.c (decorateType): fixed gcc3.3 warning
9473         * src/SDCCast.c (ast_print): improved output of constants
9474
9475 2003-08-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9476
9477         Fixed some warnings when building with MSVC:
9478
9479         * as/mcs51/asdata.c
9480         * as/z80/asdata.c
9481         * as/mcs51/asm.h
9482         * as/z80/asm.h
9483         * link/z80/aslink.h
9484         * link/z80/lkdata.c
9485         * link/z80/lkeval.c
9486         * link/z80/lkgb.c
9487         * link/z80/lkihx.c
9488         * link/z80/lks19.c
9489         * link/z80/lksym.c
9490         * support/cpp2/cpplib.c
9491         * src/ds390/gen.c
9492         * src/mcs51/gen.c
9493
9494 2003-08-03  Bernhard Held <bernhard AT bernhardheld.de>
9495
9496         * src/SDCCast.c (constExprTree): fix bug #781827 by Carl Worth <cworth AT isi.edu>
9497
9498 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9499
9500         * support/librarian/clean.mk: Do not remove Makefile.
9501         * support/librarian/Makefile: added.
9502
9503 2003-08-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9504
9505         Added librarian to MSVC build:
9506         * all.dsp
9507         * sdcc.dsw
9508         * support/librarian/librarian.dsp
9509
9510         'configure' not needed for librarian, removed:
9511         * support/librarian/configure
9512         * support/librarian/configure.in
9513         * support/librarian/config_in.h
9514         * support/librarian/Makefile.in
9515
9516         Hopefully these ones built the librarian and the rest of sdcc properly:
9517         * Makefile
9518         * Makefile.common.in
9519
9520         Messed up 'configure', so revert to previous version:
9521         * configure
9522         * configure.in
9523
9524 2003-07-31  Bernhard Held <bernhard AT bernhardheld.de>
9525
9526         * src/SDCCicode.c (operandOperation): 3. fix, this time for Alpha; ULONG has 64 bits
9527         there, while the mantissa of a double is "only" 53 bits wide.
9528
9529 2003-07-31  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9530
9531         Adding sdcclib to the build.  MSVC project coming soon.
9532         Files added/changed:
9533
9534         * support/librarian/clean.mk
9535         * support/librarian/configure
9536         * support/librarian/configure.in
9537         * support/librarian/config_in.h
9538         * support/librarian/Makefile.bcc
9539         * support/librarian/Makefile.in
9540         * support/librarian/sdcclib.c
9541         * Makefile.bcc
9542         * Makefile
9543         * Makefile.common.in
9544         * configure
9545         * configure.in
9546
9547 2003-07-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9548
9549         Linker now complaints if linked modules have conflicting options, for
9550         example, one compiled using --model-large and another one compiled with
9551         --model-small.  The following files were modified:
9552
9553         * as/mcs51/asdata.c
9554         * as/mcs51/aslink.h
9555         * as/mcs51/asm.h
9556         * as/mcs51/asmain.c
9557         * as/mcs51/asout.c
9558         * as/mcs51/i51pst.c
9559         * as/mcs51/lkdata.c
9560         * as/mcs51/lklibr.c
9561         * as/mcs51/lkmain.c
9562         * as/z80/asdata.c
9563         * as/z80/asm.h
9564         * as/z80/asmain.c
9565         * as/z80/asout.c
9566         * as/z80/z80pst.c
9567         * link/z80/aslink.h
9568         * link/z80/lkdata.c
9569         * link/z80/lklibr.c
9570         * link/z80/lkmain.c
9571         * src/SDCCglue.c
9572
9573 2003-07-28  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9574
9575         *link/z80/aslink.h, link/z80/lklibr.c, as/mcs51/aslink.h,
9576         as/mcs51/lklibr.c: Generate a warning when a library is not found.
9577
9578 2003-07-28  Bernhard Held <bernhard AT bernhardheld.de>
9579
9580         * src/z80/mappings.i: fix _mul[us][int,long] entries
9581
9582 2003-07-26  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9583
9584         *src/SDCCmain.c: do not search for crt0.o when using --nostdlib
9585
9586 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
9587
9588         * src/SDCCicode.c (operandOperation): really fixed problem with bitops
9589         * support/regression/tests/bitopcse.c: added
9590         fixed warning:
9591         * src/avr/gen.c:
9592         * src/pic/gen.c:
9593         * src/pic16/gen.c:
9594         * src/z80/gen.c:
9595         * src/xa51/gen.c:
9596
9597 2003-07-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9598
9599         added support for new library format to z80, gbz80 linkers:
9600         *link/z80/aslink.h
9601         *link/z80/lklex.c
9602         *link/z80/lklib.c
9603         *link/z80/lklist.c
9604
9605 2003-07-24  Bernhard Held <bernhard AT bernhardheld.de>
9606
9607         * src/SDCCicode.c (operandOperation): fixed problem with bitops and 0xffffffff;
9608         after {double d = 0xffffffff; long l = d;} l will be 0x80000000 (LONG_MIN)
9609
9610 2003-07-23  Bernhard Held <bernhard AT bernhardheld.de>
9611
9612         added DUMMY_READ_VOLATILE:
9613         * src/SDCC.y:
9614         * src/avr/gen.c:
9615         * src/xa51/gen.c:
9616         * src/z80/gen.c:
9617         * src/pic/gen.c:
9618         * src/pic16/gen.c:
9619         * src/mcs51/gen.c:
9620         * src/ds390/gen.c:
9621         * src/SDCCcse.c (algebraicOpts): many improvements
9622         * src/SDCCcse.h: removed algebraicOpts()
9623         * src/SDCCicode.c (picDummyRead): added
9624
9625 2003-07-23  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9626
9627         * as/mcs51/lkmem.c: Changed message "Insufficient DRAM memory" to
9628         "Insufficient space in data memory".
9629
9630 2003-07-20  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9631
9632         * src/mcs51/gen.c: fixed bug #771358
9633         * src/z80/gen.c: fixed bug #759087
9634
9635 2003-07-20  Bernhard Held <bernhard AT bernhardheld.de>
9636
9637         * src/pic16/glue.c: minor cleanup by Vangelis
9638
9639 2003-07-19  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9640
9641         * device/include/regc515c.h: fixed #758477
9642         * device/lib/_gptrget.c: saving some cycles in generic pointer get
9643         * device/lib/_gptrput.c: saved a few bytes
9644         * my tab spacing is 8, yours too?)
9645         * device/lib/_ser.c: process RX bytes earlier than TX bytes
9646         * device/lib/serial.c: process RX bytes earlier than TX bytes
9647         * src/mcs51/gen.c(genGenPointerGet/Set): removed writing of type after postincrement
9648
9649 2003-07-18  Erik Petrich <epetrich AT ivorytower.norman.ok.us>
9650
9651         * src/z80/gen.c: fixed some right shift bugs (#772726 among them)
9652
9653 2003-07-17  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9654
9655     * link/z80/lklibr.c: fixed bug when there is a '.' in a library path.
9656
9657 2003-07-17  Bernhard Held <bernhard AT bernhardheld.de>
9658
9659         * device/lib/Makefile.in: bad fix, reverted to 1.43
9660
9661 2003-07-16  Bernhard Held <bernhard AT bernhardheld.de>
9662
9663         * device/lib/Makefile.in: added missing z80 object files
9664
9665 2003-07-14  Bernhard Held <bernhard AT bernhardheld.de>
9666
9667         * src/SDCCcse.c (algebraicOpts): CSE fun with &|^ and 0x00/0xff literals
9668         pic16 progress by Vangelis:
9669         * src/SDCCglobl.h:
9670         * src/SDCCmain.c:
9671         * src/pic/Makefile:
9672         * src/pic:
9673         * pic/Makefile:
9674         * pic16/device.c:
9675         * pic16/device.h:
9676         * pic16/gen.c:
9677         * pic16/gen.h:
9678         * pic16/genarith.c:
9679         * pic16/glue.c:
9680         * pic16/main.c:
9681         * pic16/pcode.c:
9682         * pic16/pcode.h:
9683         * pic16/pcodepeep.c:
9684         * pic16/peeph.def:
9685
9686 2003-07-13  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9687
9688     * src/SDCCmain.c, src/SDCCglobl.h: added option --no-std-crt0
9689
9690 2003-07-12  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9691
9692     * sdcc.dsw, all.dsp, link/z80/linkgbz80.dsp, as/z80/as-gbz80.dsp:
9693     added gbz80 build to MSVC project.
9694     * src/SDCCmain.c, src/SDCCglue.c, src/z80/main.c, src/z80/z80.dsp,
9695     link/z80/aslink.h, linkz80.dsp: cleaned up z80 and gbz80 asm files
9696     from 8051 stuff and setup so it links using a .lnk file.
9697
9698 2003-07-06  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9699
9700     * support/librarian/sdcclib.c: sdcc librarian.
9701     * as/mcs51/aslink.h, as/mcs51/lklib.c: Support for libraries created
9702     with sdcclib.
9703
9704 2003-07-03  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9705
9706     * as/mcs51/lkmain.c: properly handle extensions in function afile.
9707
9708 2003-07-02  Borut Razem <borut.razem AT siol.net>
9709
9710         * src/port.h, src/SDCCmain.c, src/pic/glue.h, src/pic/main.c,
9711         src/pic16/glue.h, sdcc/src/pic16/main.c, src/izt/i186.c,
9712         src/izt/tlcs900h.c, src/avr/main.c, src/ds390/main.c, src/mcs51/main.c,
9713         src/xa51/main.c, src/z80/main.c:
9714         virtualization of glue() function: each port has it's own glue function,
9715         which is accessed by do_glue function pointer in PORT.general structure
9716
9717 2003-07-01 Kevin Vigor <kevin AT vigor.nu>
9718
9719         * DS800C400 fun, improved ROM interface and tinibios.
9720
9721 2003-06-27 Kevin Vigor <kevin AT vigor.nu>
9722
9723         * More support for DS80C400. Now includes beginning of interface to ROM.
9724
9725 2003-06-25  Bernhard Held <bernhard AT bernhardheld.de>
9726
9727         * src/mcs51/gen.c (gencjneshort): fixed bug #760345
9728
9729 2003-06-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9730
9731         * as/mcs51/lkaomf51.c: Make sure the size of the last procedure is correct.
9732
9733 2003-06-19  Borut Razem <borut.razem AT siol.net>
9734
9735         * src/z80/main.c: fixed Z80 port again: missing -k library paths in linker command line
9736
9737 2003-06-19  Borut Razem <borut.razem AT siol.net>
9738
9739         * src/SDCCutil.h, src/SDCCutil.c, src/SDCCglobl.h, src/SDCCmain.c, src/z80/main.c:
9740         fixed Z80 port - crt0.o: cannot open.
9741
9742 2003-06-19  Bernhard Held <bernhard AT bernhardheld.de>
9743
9744         * support/Util/MySystem.c (merge_command): revert bad fix
9745
9746 2003-06-18  Borut Razem <borut.razem AT siol.net>
9747
9748         * src/SDCC.lex, src/SDCCmain.c: fixed some warnings, introduced with changes made 15.06.1003
9749
9750 2003-06-18  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9751
9752         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
9753         option --use-stdout sends errors to stdout instead of stderr.
9754
9755 2003-06-18  Bernhard Held <bernhard AT bernhardheld.de>
9756
9757         * support/Util/MySystem.c (merge_command): quick fix for Linux segfault with \"cmd\" arg
9758
9759 2003-06-15  Borut Razem <borut.razem AT siol.net>
9760
9761         * support/cpp2/sdcc.h: HAVE_DOS_BASED_FILE_SYSTEM defined for _WIN32
9762         * src/SDCC.lex: cloneXxx and copyAndFreeXxx functions for options and optimize stack handling
9763         * src/SDCCglobl.h, src/SDCCmain.c, src/ds390/main.c, src/mcs51/main.c, src/z80/main.c:
9764         fixed width array of pointers replaced with sets;
9765         multiple include and lib paths ared transferred to preprocessor and linker
9766         * src/SDCCset.c, src/SDCCset.h: added function setFromSetNonRev() and mergeSets()
9767         * src/SDCCsymt.c: reimplemented function inCalleeSaveList() by using sets instead
9768         fixed width array of pointers
9769         * src/SDCCutil.c, src/SDCCutil.h: added functions fputStrSet(), appendStrSet(), joinStrSet();
9770         removed functions addToList(), join(), joinn(), pathCharsEquivalent(), pathCharTransform(),
9771         fixupPath(), getPathDifference()
9772         * src/ds390/gen.c, src/mcs51/gen.c: reimplemented function  inExcludeList() by using sets instead
9773         fixed width array of pointers
9774
9775 2003-06-11  Bernhard Held <bernhard AT bernhardheld.de>
9776
9777         * src/pic16/ralloc.c: fix warnings
9778         * src/pic16/pcode.c: fix warning
9779
9780 2003-06-10  Scott Dattalo  <scott AT dattalo.com>
9781
9782          Scott D. for Vangelis Rokas (vrokas AT otenet.gr). I (scott) don't
9783         know all the details, but essentially this set of changes enable
9784         the pic16 port to generate movff instructions and generate assembler
9785         directives,
9786         * src/SDCCmain.c:
9787         * src/pic16/gen.c:
9788         * src/pic16/glue.c:
9789         * src/pic16/pcode.c:
9790         * src/pic16/device.c:
9791         * src/pic16/main.c:
9792         * src/pic16/pcode.h:
9793         * src/pic16/pcoderegs.c:
9794         * src/pic16/ralloc.c:
9795         * src/pic16/ralloc.h:
9796
9797 2003-06-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9798
9799         * support/Util/SDCCerr.c, src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx:
9800         added option --vc, so sdcc errors and warnings are compatible with
9801         Microsoft Visual Studio.
9802
9803 2003-06-07  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9804
9805         * device/lib/_atof.c, device/lib/Makefile.in, device/include/stdlib.h,
9806           device/lib/libfloat.lib: added atof function.
9807
9808 2003-06-04  Bernhard Held <bernhard AT bernhardheld.de>
9809
9810         * doc/sdccman.lyx: updated to Lyx 1.3
9811         * doc/cdbfileformat.lyx: updated to Lyx 1.3
9812         * doc/test_suite_spec.lyx: updated to Lyx 1.3
9813         * doc/Makefile: added fix for the \tabularnewline problem, thanks to Jesus
9814
9815 2003-06-03  Bernhard Held <bernhard AT bernhardheld.de>
9816
9817         * src/SDCCpeeph.c: separate peepRules2pCode() for pic16 by "Vangelis Rokas" <vrokas AT otenet.gr>
9818
9819 2003-06-02  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9820
9821         * doc/sdccman.lyx: cvs revision keywords, passing pdf information in latex preamble,
9822           additions to the "related tools/documentation" section
9823
9824 2003-06-02  Bernhard Held <bernhard AT bernhardheld.de>
9825
9826         * src/SDCCglue.c (tempfileandname): added check for missing TMP/TEMP/TMPDIR variable
9827
9828 2003-05-29  Bernhard Held <bernhard AT bernhardheld.de>
9829
9830         * src/pic/device.c: added 16F819, patch by "David I. Lehn" <dlehn AT vt.edu>
9831         * src/SDCCcse.c (algebraicOpts): fixed "c * 1"
9832
9833 2003-05-28  Bernhard Held <bernhard AT bernhardheld.de>
9834
9835         * doc/sdccman.lyx: fix double dash and other minor things
9836         * doc/Makefile: fix double dash
9837
9838 2003-05-28  Karl Bongers(patches from Martin Helmling)
9839         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files. Martin adds
9840           condition and ignore commands.
9841
9842 2003-05-28  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9843
9844         * doc/sdccman.lyx: Changes all over, index improved, smaller margins. The manual
9845           is in parts still quite out of date, I did changes as far as I felt makes sense
9846           for a non-native english speaker.
9847           Please feel free to add to the manual or to correct my changes.
9848         * doc/Makefile: undid touching the date of intermediate tex files.
9849
9850 2003-05-26  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9851
9852         * doc/sdccman.lyx: Manual has an index now
9853
9854 2003-05-25  Bernhard Held <bernhard AT bernhardheld.de>
9855
9856         Finalize muluint/mulsint and mululong/mulslong merging:
9857         * device/lib/_mulint.c
9858         * device/lib/_mullong.c
9859         * device/lib/gbz80/mul.s
9860         * device/lib/gbz80/stubs.s
9861         * device/lib/z80/mul.s
9862         * device/lib/z80/stubs.s
9863         * src/SDCCsymt.c (initCSupport)
9864
9865 2003-05-25  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9866
9867         * as/mcs51/lkaomf51.c: Address space 'z' was missing.
9868         * src/avr/avr.dsp, src/ds390/ds390.dsp, src/mcs51/mcs51.dsp,
9869           src/pic/pic.dsp, src/pic16/pic16.dsp, src/xa51/xa51.dsp,
9870           src/x80/z80.dsp: peep.rul is bigger now, so /Zm1000 is used
9871           instead of /Zm500.
9872
9873 2003-05-25  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
9874
9875         * src/mcs51/peeph.def: added rules 244.x, 245.x. Although they pass
9876           the regression tests I'm not brave enough to enable 245.b, 245.c
9877         * doc/sdccman.lyx: added latex preamble for hyperref package.
9878           Using pdflatex this will give you a hyperlinked pdf file with
9879           bookmarks. (prepend '%' before /usepackage if this breaks something)
9880
9881 2003-05-24  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
9882
9883          * doc/sdccman.lyx: updated information about .adb files (fixed bug 742649)
9884
9885 2003-05-22  Bernhard Held <bernhard AT bernhardheld.de>
9886
9887         * src/pic16/pcode.c (pic16_get_op_from_instruction): fixed a gcc 3.x warning
9888
9889 2003-05-21    <johan AT balder>
9890
9891         * src/SDCCglue.c (printIval): fixed bug #739934
9892
9893 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
9894
9895         Applied patch from bug 737905 (renamed yylineo to mylineno):
9896         * src/altlex.c
9897         * src/SDCCast.c
9898         * src/SDCglobl.h
9899         * src/SDCC.lex
9900         * src/SDCCsymt.c
9901         * src/SDCCval.c
9902         * src/pic16/pcode.c: Cleaned warnings
9903         * src/pic16/pcodeflow.c: Cleaned warnings
9904         * src/pic16/pcoderegs.c: Cleaned warnings
9905
9906 2003-05-19  Scott Dattalo  <scott AT dattalo.com>
9907
9908         * src/pic16/pcode.c: Cleaned warnings
9909         * src/pic16/pcodepeep.c: Cleaned warnings
9910         * src/pic16/ralloc.c: Cleaned warnings
9911
9912 2003-05-19  Bernhard Held <bernhard AT bernhardheld.de>
9913
9914         * doc/sdccman.lyx: fixed bug 739745
9915         * src/pic16/pcode.c (pic16_get_op): fixed warning on alpha
9916
9917 2003-05-18  Bernhard Held <bernhard AT bernhardheld.de>
9918
9919         * src/port.h: removed DEFAULT_PORT, it's not yet pic16 ;-)
9920         it can be defined with CFLAGS when running configure
9921         * src/SDCCmain.c: fixed compiling + linking with object files
9922
9923 2003-05-18  Vangelis Rokas (vrokas AT otenet.gr)
9924
9925         * configure.in: configure for pic16 port,
9926             added --disable-pic16-port
9927         * sdccconf_in.h: added macro OPT_DISABLE_PIC16
9928         * src/SDCCmain.c: linkOptions is changed to set *,
9929             added if/endif conditional macros to remove options help
9930             messages from optionsTable when a port is not configured, added
9931             support for the PIc16 port in the ports table, when executing
9932             the compiler with no port specified on command line, a default
9933             port is selected with the new macro DEFAULT_PORT which is
9934             defined in port.h, in setDefaultOptions() linkOptions is removed
9935             from initialization assignment, since now it is a set,
9936             parseCmdLine uses setParseWithComma for linkOptions, in
9937             linkEdit() linkOptions are accessed with new function indexSet()
9938             which returns the i'th item of a set variable. See SDCCset.c, in
9939             linkEdit() when calling buildCmdLine(), added linkOptions as
9940             last argument. Now users can pass arguments to gplink via the
9941             -Wl option, main() uses pic16glue() to glue up pic16 programs
9942         * src/SDCCpeeph.c: various changes to support pic16
9943         * src/SDCCset.c: added function  void *indexSet(set *, int)  to
9944             return the i'th item of the set
9945         * src/SDCCset.h: added function prototype for indexSet()
9946         * src/SDCCsymt.c: in checkSClass(), added support for PIC16
9947         * src/clean.mk: added pic16 in CLEANALLPORTS variable
9948         * src/port.h: added TARGET_ID_PIC16,TARGET_IS_PIC16 macro,
9949             added macro DEFAULT_PORT
9950         * src/pic/main.c: corrected arguments of gplnk in _linkCmd
9951         * src/pic16/gen.c: bug fix in genCpl(), now the correct code is
9952             generated
9953         * src/pic16/glue.c: commented out some error producing lines
9954         * src/pic16/main.c: __config directives are commented out to stop
9955             gpasm complaining and test the linkage with gplink, _linkCmd and
9956             _asmCmd changed to be more gplink and gpasm friendly
9957         * src/pic16/peeph.def: peep rule 3 is commented out, since it
9958             produced an error when parsed, peep rule 12 is added to utilize
9959             movff, but it is commented out since the pCode does not support
9960             yet a command with 2 address arguments
9961
9962 2003-05-18    <johan AT balder>
9963
9964         * src/ds390/gen.c (genArrayInit): removed obsolete and buggy ARRAYINIT
9965         * src/ds390/main.c (genArrayInit): removed obsolete and buggy ARRAYINIT
9966 2003-05-17  Karl Bongers(apply patches from Martin Helmling)
9967
9968         * debugger/mcs51/sdcdb.c,cmd.c,break.c and .h files.
9969   Added feature to script commands from file.
9970
9971 2003-05-14  Bernhard Held <bernhard AT bernhardheld.de>
9972
9973         * device/lib/_strtok.c: fixed bug #734355 by Lenny Story and Tim Woodall
9974         * src/SDCCutil.c: include ctype.h for win32
9975
9976 2003-05-13  Bernhard Held <bernhard AT bernhardheld.de>
9977
9978         * src/pic16/*: removed CR from many files, reported by Vangelis Rokas
9979
9980 2003-05-12  Karl Bongers(apply development patches from Martin Helmling)
9981
9982         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,break.c and .h files.
9983   Fixed so you can set breakpoints prior to run, run does not stop
9984   on entry now.  Add tbreak.  Other enhancements and fixes for use
9985   with ddd.
9986
9987 2003-05-12  Borut Razem <borut.razem AT siol.net>
9988
9989         * src/SDCCmain.c: fixed the problem with searching the DATADIR as the last resort on *nix
9990
9991 2003-05-11  Borut Razem <borut.razem AT siol.net>
9992
9993         * src/SDCCutil.c: WIN32 version of getBinPath() calls GetModuleFileName() to determine
9994         the path of bin directory, so that PATH is the only env. variable, which has to be set
9995         in case of standard installation.
9996         * src/ds390/ds390.dsp: increased value of /Zm option to 1000
9997         * src/pic/main.c: add quotes to file name parameters for gplink and gpasm
9998         * src/SDCCglobl.h, src/SDCCmain.c, doc/sdccman.lyx: added --print-search-dirs command line option
9999
10000 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10001
10002         * src/SDCCmain.c (linkEdit): fixed buffer overflow for gbz80
10003         * support/regression/Makefile: inter-port-clean is no longer nesessary, the
10004         temp files are in the port dir; clean the gen/test directory when
10005         generating new test.c
10006         * support/regression/ports/host/spec.mk: defined OBJEXT for target clean
10007         * support/regression/tests/vaargs.c: fixed gcc 3.3 warning
10008         * support/regression/tests/zeropad.c: added
10009
10010 2003-05-09    <johan AT balder>
10011
10012         * src/SDCCglue.c: fixed bug #597940
10013
10014 2003-05-05  Karl Bongers(apply patches from Martin Helmling)
10015
10016         * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10017   cache sfr, optimize next,step, fix off by one sourceline,
10018   support ddd list function.
10019         * sim/ucsim/cmd.src/newcmd.cc - small fix for sdcdb use.
10020
10021 2003-05-04  Bernhard Held <bernhard AT bernhardheld.de>
10022
10023         * support/regression/HTMLgen.py: added compare_s2f()
10024         * support/regression/Makefile: redo 1.27
10025         * support/regression/generate-cases.py: redo 1.5
10026
10027 2003-04-30  Bernhard Held <bernhard AT bernhardheld.de>
10028
10029         * support/regression/tests/float.c: workaround 33 bit hex constant
10030         * support/regression/tests/simplefloat.c: fix division for host
10031
10032 2003-04-29  Scott Dattalo  <scott AT dattalo.com>
10033
10034         * src/pic/pcoderegs.c Applied patch from Jim Hawkridge <jim AT jimhawkridge.uk.eu.org>
10035         that tame's the PIC's over-aggressive optimizer.
10036
10037 2003-04-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10038
10039          * src.dsw, link/z80/aslink.h, link/z80/linkz80.dsp: z80 linker
10040          support for MSVC.
10041
10042 2003-04-29  Kevin Vigor <kevin AT vigor.nu>
10043
10044         Initial support for DS80C400. "Hello world" runs on TINIm400
10045         (with polled I/O).
10046
10047 2003-04-28  Karl Bongers(apply patches for Martin Helmling)
10048
10049          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,symtab.c and .h files.
10050          * Some notes on ddd usage added in debugger/README
10051          Martin Helmling adding more features and fixes for ddd GUI debugger.
10052          Code added for nexti, stepi, up, down, and other adjustments.
10053
10054 2003-04-28  Scott Dattalo  <scott AT DATTALO.COM>
10055
10056         * src/pic/pCodepeep.c non-wildcard asmops are now handled
10057         * src/pic/peeph.def Added two rules to optimize carry manipulation
10058         * src/pic/* removed debug printfs
10059
10060 2003-04-28  Bernhard Held <bernhard AT bernhardheld.de>
10061
10062         * debugger/mcs51/cmd.c: added header newalloc.h
10063
10064 2003-04-26  Bernhard Held <bernhard AT bernhardheld.de>
10065
10066         * as/Makefile: new EXEEXT
10067         * as/z80/Makefile: remove trailing slash of BUILDIR
10068         * as/z80/clean.mk: new EXEEXT
10069         * Makefile.common.in: add to CFLAGS (and others), don't replace it
10070         * support/cpp2/Makefile.in: new EXEEXT
10071         * src/pic/glue.c (pic14emitRegularMap): fixed warning
10072
10073 2003-04-24  Bernhard Held <bernhard AT bernhardheld.de>
10074
10075         Cygwin's gcc always appends .exe: 'gcc -o a a.c' creates a.exe;
10076         EXEEXT was introduced to fix all related problems with targets
10077         "clean", "install" and "uninstall"; a couple of further flaws
10078         especially with "clean" have been fixed too
10079         * as/mcs51/Makefile.in
10080         * as/mcs51/clean.mk
10081         * as/z80/Makefile
10082         * Makefile
10083         * clean.mk
10084         * debugger/mcs51/Makefile.in
10085         * debugger/mcs51/clean.mk
10086         * link/z80/Makefile
10087         * link/z80/Makefile.in
10088         * link/z80/clean.mk
10089         * link/Makefile
10090         * packihx/Makefile.in
10091         * packihx/clean.mk
10092         * sim/ucsim/Makefile
10093         * sim/ucsim/clean.mk
10094         * sim/ucsim/avr.src/Makefile.in
10095         * sim/ucsim/avr.src/clean.mk
10096         * sim/ucsim/s51.src/Makefile.in
10097         * sim/ucsim/s51.src/clean.mk
10098         * sim/ucsim/xa.src/Makefile.in
10099         * sim/ucsim/xa.src/clean.mk
10100         * sim/ucsim/z80.src/Makefile.in
10101         * sim/ucsim/z80.src/clean.mk
10102         * sim/ucsim/main_in.mk
10103         * sim/ucsim/packages_in.mk
10104         * sim/ucsim/gui.src/Makefile.in
10105         * sim/ucsim/gui.src/serio.src/Makefile.in
10106         * sim/ucsim/gui.src/serio.src/clean.mk
10107         * src/Makefile.in
10108         * src/clean.mk
10109         * support/cpp2/Makefile.in
10110         * support/cpp2/clean.mk
10111         * support/makebin/Makefile
10112         * support/makebin/clean.mk
10113         * support/scripts/sdcc_mingw32: --program-suffix no longer needed
10114         * doc/sdccman.lyx: --program-suffix no longer needed
10115
10116 2003-04-23  Karl Bongers(apply patches for Martin Helmling)
10117
10118          * debugger/mcs51/sdcdb.c,simi.c,cmd.c,..
10119          Martin Helmling added support for ddd GUI debugger.
10120          Code added to display assembly, set variables, and other commands
10121          to interface to ddd.
10122
10123 2003-04-23  Bernhard Held <bernhard AT bernhardheld.de>
10124
10125         * as/Makefile: fix target clean
10126         * as/clean.mk: fix target clean
10127         * as/z80/clean.mk: fix target clean
10128
10129 2003-04-22  Bernhard Held <bernhard AT bernhardheld.de>
10130
10131         * Makefile.common.in: added  AT EXEEXT AT
10132         * configure.in: removed all mingw32 stuff
10133         * configure: rebuilt from configure.in
10134         * doc/sdccman.lyx: updated section "installation"
10135         * support/scripts/sdcc_mingw32: adapted to configure
10136         * support/scripts/sdcc_cygwin_mingw32: added
10137
10138 2003-04-22  Scott Dattalo  <scott AT dattalo.com>
10139
10140         * src/pic Added object file support for the PIC port
10141         * src/pic Applied patch from Craig Franklin (this started the object file support)
10142         * src/regression Updated the PIC regression tests for object files
10143
10144 2003-04-20  Borut Razem <borut.razem AT siol.net>
10145
10146         * sdcc/as/mcs51/lklex.c: make getfid() more robust and fixed gcc warning:
10147           lklex.c: In function `getfid':
10148           lklex.c:203: warning: array subscript has type `char'
10149         * src/SDCCglobl.h: small change in stack handling macros, to avoid crash when compiled
10150           with MSVC with global optimization enabled (probably an cl compiler bug ;-)
10151         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added function fatal(), called from
10152           stack handling macros
10153
10154 2003-04-19  Borut Razem <borut.razem AT siol.net>
10155
10156         * "handling space characters in file path" task:
10157         * src/SDCCmacro.c: fixed bug in handlig quote at the end of line
10158         * support/Util/BuildCmd.c: define par as NULL if parameter value is invalid
10159         * support/Util/MySystem.h: make it self-sufficient
10160         * src/avr/main.c, src/ds390/main.c, src/mcs51/main.c, src/pic/main.c, src/xa51/main.c,
10161           src/z80/main.c, sdcc/as/mcs51/lklex.c:
10162           handling space characters in file path
10163         * src/SDCCmain.c: introduced setDataPaths() function, {datadir} macro
10164           (it will be used by assemblers, which have their own includes, e.g. gpasm)
10165         * support/Util/MySystem.c: handling space characters in executable's path
10166
10167 2003-04-19  Bernhard Held <bernhard AT bernhardheld.de>
10168
10169         * as/z80/Makefile: fix permanent rebuild of z80
10170         * sim/ucsim/gui.src/Makefile.in: target "install" builds the same packages as target "all"
10171         * support/regression/tests/bitfields.c: added Johan's bitfields.c
10172
10173 2003-04-18      Kevin Vigor <kevin AT vigor.nu>
10174
10175         * src/SDCCopt.c: add special case optimization to replace modulo by
10176           a power of two with a bitwise AND.
10177
10178 2003-04-18    <johan AT balder>
10179
10180         * src/mcs51/gen.c (getFreePtr): fixed bug #635354
10181
10182 2003-04-17    <johan AT balder>
10183
10184         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #716790 and removes lot's of redundant register usage around function calls
10185         * src/mcs51/ralloc.c (packRegisters): fixed bug #720667
10186
10187 2003-04-13  Borut Razem <borut.razem AT siol.net>
10188
10189         * doc/sdccman.lyx: updated info about #pragma SAVE/RESTORE nesting
10190         * configure.in, configure: fixed problems on cygwin/WinCVS environmet with ports.* line endings;
10191           fixed mingw problem in adl_NORMALIZE_PATH
10192
10193 2003-04-12  Borut Razem <borut.razem AT siol.net>
10194
10195         * fixed "#pragma SAVE/RESTORE can not be nested":
10196         * src/SDCC.lex: reworked pragma handling functions
10197         * sdcc/src/SDCCglobl.h: reworked stack handling macros
10198         * support/Util/SDCCerr.c, support/Util/SDCCerr.h: added E_STACK_VIOLATION error
10199
10200 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10201
10202         * src/SDCCutil.c (pathEquivalent): defined but not used
10203         * debugger/mcs51/sdcdb.c: replace SDCC_LIB_DIR
10204         * configure.in: remove sdcc_datadir, sdcc_lib_dir and sdcc_include_dir
10205         * configure: rebuilt from configure.in
10206         * sdccconf_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10207         * sdcc_vc_in.h: remove SDCC_LIB_DIR and SDCC_INCLUDE_DIR
10208         * device/include/Makefile.in: replace sdcc_datadir
10209         * device/lib/Makefile.in: replace sdcc_datadir
10210         * Makefile.common.in: add LDFLAGS from configure
10211         * packihx/Makefile.in: use LDFLAGS
10212         * src/Makefile.in: use LDFLAGS
10213         * support/cpp2/Makefile.in: add LDFLAGS from configure
10214         * support/makebin/Makefile: use LDFLAGS
10215         * .version: bumped version number to 2.3.5
10216
10217 2003-04-12  Borut Razem <borut.razem AT siol.net>
10218
10219         * completed "different paths" task:
10220         * src/SDCCmacro.c: fixed bug in handling quotes
10221         * src/SDCCutil.c, src/SDCCutil.c: rewritten getPrefixFromBinPath()
10222         * src/SDCCmain.c: _discoverPaths() replaced with setBinPaths(), setIncludePath() and setLibPath()
10223
10224 2003-04-12  Bernhard Held <bernhard AT bernhardheld.de>
10225
10226         * src/pic/pcoderegs.c (Remove1pcode): fix warning on alpha
10227
10228 2003-04-11 kevin Vigor <kevin AT vigor.nu>
10229
10230         * ds390/gen.c ds390/peeph.def: fix bug 706781
10231
10232 2003-04-11  Borut Razem <borut.razem AT siol.net>
10233
10234         * support/Util/dbuf.c, support/Util/dbuf.h: update to version 1.1.1 - re-added C++ stuff to make it still more portable
10235
10236 2003-04-10  Scott Dattalo  <scott AT dattalo.com>
10237
10238         * src/pic/* Applied the pointer-to-function patch from Steve Tell.
10239         * src/pic/* Fixed several pointer bugs. (PIC port broke when the ruonly bit was
10240          set - this bit used to not be set...).
10241         * src/pic/gen.c Fixed buf 609268 ==> x = (x+1) & 0xf; generated
10242           bad code in PIC Port
10243         * src/regression/and2.c added to test bug 609268
10244         * src/regression/Makefile added and2.c to regression test
10245
10246
10247 2003-04-08    <johan AT CP255758-A>
10248
10249         * src/mcs51/gen.c (gen51Code): display reg usage in --icode-in-asm
10250         * src/mcs51/ralloc.c (serialRegAssign): update the registers in use and save some slocs
10251         * src/SDCCicode.h: added riu to show the register usage in --icode-in-asm
10252
10253 2003-04-07  Bernhard Held <bernhard AT bernhardheld.de>
10254
10255         * configure.in: fully support prefix, exec_prefix, datadir, docdir;
10256         fix bug #487815
10257         * support/cpp2/Makefile.in: fix bug #487815
10258         * configure: rebuilt from configure.in
10259         * Makefile.common.in: docdir changed, new path suffixes
10260         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10261         * sdcc_vc_in.h: reflect changes from sdccconf.h
10262         * src/SDCCglobl.h: remove *SEPARATOR_CHARS, they are now in sdccconf.h
10263         * src/SDCCutil.h: remove BINDIR hack
10264         * doc/sdccman.lyx: update new path hierarchy
10265
10266 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10267
10268         * src/SDCCpeeph.c: added okToRemoveSLOC test
10269
10270 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10271
10272         * device/lib/printf_fast.c: added leading zero format ("%06d", etc)
10273
10274 2003-04-06    Paul Stoffregen <paul AT pjrc.com>
10275
10276         * src/SDCCpeeph.c: added labelIsReturnOnly test
10277         * src/mcs51/peeph.def: Peephole 244: replace ljmp to ret with ret
10278
10279 2003-04-05    <johan AT balder>
10280
10281         * src/SDCCcse.c (cseAllBlocks): fixed bug #460088
10282         * src/SDCCloop.c (DEFSETFUNC): fixed bug #460088
10283         * src/SDCCopt.c (eBBlockFromiCode): fixed bug #460088
10284         * src/SDCCast.c: fixed a warning
10285         * src/SDCCast.h: fixed a warning
10286         * src/SDCCicode.c (operandFromAst): fixed a warning
10287
10288 2003-04-04    <johan AT balder>
10289
10290         * src/SDCCloop.c (DEFSETFUNC): undid the fix for bug #519584
10291         * src/SDCCast.c (decorateType): fixed bug #715076
10292         * src/SDCC.y: fixed bug #702907
10293
10294 2003-04-03    <johan AT balder>
10295
10296         * device/lib/_mulint.c (_muluint): new #pragma LESS_PEDANTIC
10297         * src/SDCCopt.c (eBBlockFromiCode): new #pragma LESS_PEDANTIC
10298         * src/SDCCglobl.h (PRAGMA_LESSPEDANTIC): new #pragma LESS_PEDANTIC
10299         * src/SDCC.lex (doPragma): new #pragma LESS_PEDANTIC
10300         * src/SDCCmain.c (parseCmdLine): new #pragma LESS_PEDANTIC
10301
10302 2003-04-03  Bernhard Held <bernhard AT bernhardheld.de>
10303
10304         * _decdptr.c: fix return values
10305         * _gptrget.c: fix return values
10306         * _gptrgetc.c: fix return values
10307         * _gptrput.c: fix return values
10308         * _mulint.c: fix return values
10309         * as/z80/Makefile: fix 'make -j' problem
10310
10311 2003-04-02  Bernhard Held <bernhard AT bernhardheld.de>
10312
10313         * Makefile.common.in: unused PORT, SCC and SAS removed, fixed docdir
10314         * configure.in: big cleanup, updated to autoconf 2.5x
10315         * configure: rebuilt from configure.in
10316         * sdccconf_in.h: new RETSIGTYPE, and other PATHs
10317         * sdcc_vc_in.h: reflect changes from sdccconf.h
10318         * doc/Makefile: fixed a flaw in "make install"
10319
10320 2003-04-02    <johan AT balder>
10321
10322         * src/ds390/gen.c (genCmp): no comments
10323         * src/mcs51/gen.c (genCmp): no comments
10324         * src/SDCCopt.c (eBBlockFromiCode): detect missing return values
10325         * src/SDCCast.c (ast_print): fixed the function type in --dumptree
10326
10327 2003-04-01  Bernhard Held <bernhard AT bernhardheld.de>
10328
10329         * support/regression/generate-cases.py: place generated file in given sub directory
10330         * support/regression/ports/host/spec.mk: prevent removal of testfwk.o
10331         * support/regression/Makefile: improvements for 'make -j';
10332         side effect: it's simpler and faster now
10333
10334 2003-03-31  Borut Razem <borut.razem AT siol.net>
10335
10336         * src/z80/main.c: link-{port} and as-{port} defined without path
10337         * src/src.dsp: support/Util/MySystem.h and src/SDCCutil.h added to project
10338
10339 2003-03-31  Bernhard Held <bernhard AT bernhardheld.de>
10340
10341         * Makefile, src/Makefile.in: add dependencies, so that 'make -j' works
10342
10343 2003-03-30  Borut Razem <borut.razem AT siol.net>
10344
10345         * support/Util/BuildCmd.c, support/Util/BuildCmd.h: rewrite buildCmdLine(),
10346           changed type of list parameter to set
10347         * src/ds390/main.c: changed type of parameter asmOptions to set in _tininative_do_assemble()
10348         * src/port.h: changed type of do_assemble() parameter to set
10349         * src/SDCCmain.c: type of asmOptions changed to set, introduced setParseWithComma(),
10350           sdcpp defined without path, removed variable VersionString, introduced set binPathSet,
10351           definition of "cppoutfilename" macro with NULL value in preProcess()
10352         * src/SDCCglobl.h: included "SDCCset.h", added declaration of setParseWithComma()
10353         * src/SDCCglue.c: removed variable VersionString, inroduced spacesToUnderscores()
10354         * support/Util/MySystem.c, support/Util/MySystem.h: rewrite, char *ExePathList[]
10355           replaced with set *binPathSet
10356         * shash_add() deallocates the item, if allready exsists, before adding the new one
10357         * src/SDCCmacro.c: handling macros with empty or NULL values in _evalMacros()
10358
10359 2003-03-30  Scott Dattalo  <scott AT dattalo.com>
10360
10361         * src/pic/gen.c: Commit patch from Steve Tell <tell AT telltronics.org> that fixes
10362           a nested for loop bug in the PIC port
10363         * src/regression/nestfor.c: new regression test file Steve wrote to test nested
10364           for loops
10365
10366 2003-03-29  Bernhard Held <bernhard AT bernhardheld.de>
10367
10368         * support/Util/dbuf.h: remove C++ stuff to make it portable
10369
10370 2003-03-28  Borut Razem <borut.razem AT siol.net>
10371
10372         * src/SDCC.lex: Fix for bug #711240: dynamic buffer handling of C
10373           literal strings in stringLiteral()
10374         * support/Util/dbuf.c, support/Util/dbuf.h: added: dynamic buffer handling
10375         * src/Makefile.bcc, src/Makefile.in, src/src.dsp: added support/Util/dbuf.c
10376           to the project
10377
10378 2003-03-27  Paul Stoffregen <paul AT pjrc.com>
10379
10380         * src/SDCCpeeph.c (pcDistance): accurate byte distance for mcs51
10381
10382 2003-03-26    <johan AT balder>
10383
10384         * src/mcs51/gen.c (saveRegisters): catched symbol abuse
10385         * src/ds390/gen.c (saveRegisters): catched symbol abuse
10386         * src/SDCCast.c (decorateType): fixed " -v < 3"
10387
10388 2003-03-23  Bernhard Held <bernhard AT bernhardheld.de>
10389
10390         * doc/cdbfile.html: removed, replaced by cdbfileformat.lyx
10391         Added Lenny Story's debug infrastructure changes:
10392         * src/Makefile.in:  added new files cdbFile.c and SDCCdebug.c
10393         * src/Makefile.bcc: added new files cdbFile.c and SDCCdebug.c
10394         * src/cdbFile.c: added
10395         * src/SDCCdebug.c: added
10396         * src/SDCCdebug.h: added
10397         * src/SDCCast.c (createFunction)
10398         * src/SDCCglue.c (emitRegularMap, emitStaticSeg, emitOverlay, glue)
10399         * src/SDCCmain.c (parseCmdLine, main)
10400         * src/SDCCmem.c (redoStackOffsets)
10401         * src/SDCCsymt.c (cdbStructBlock, cdbTypeInfo, cdbSymbol, cdbStruct, cdbStructBlock)
10402         * src/SDCCsymt.h
10403         * src/common.h
10404         * src/avr/gen.c (genAVRCode)
10405         * src/ds390/gen.c (gen390Code)
10406         * src/mcs51/gen.c (gen51Code)
10407         * src/pic/gen.c (genpic14Code)
10408         * src/pic/glue.c (pic14emitRegularMap, pic14emitStaticSeg, pic14emitOverlay, picglue)
10409         * src/xa51/gen.c (genXA51Code)
10410         * src/SDCCast.c: fixed "void foo(void){char c; -c < 0;}"
10411
10412 2003-03-22  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10413
10414         * src/mcs51/gen.c (genCodePointerGet): quicker code for bug #700797
10415         * src/mcs51/peeph.def: added rules 177, 241.x to 243, touched 181, 182.x, 193.x
10416
10417 2003-03-22    <johan AT balder>
10418
10419         * src/SDCCicode.c (geniCodeDerefPtr): fixed bug #698231
10420
10421 2003-03-21  Bernhard Held <bernhard AT bernhardheld.de>
10422
10423         * support/scripts/sdcc_mingw32: adapted to configure from autoconf 2.54
10424         * doc/cdbfileformat.lyx: added, written by Lenny Story
10425         * doc/Makefile: added cdbfileformat.lyx
10426         * doc/clean.mk: added cdbfileformat.lyx
10427
10428 2003-03-20  Bernhard Held <bernhard AT bernhardheld.de>
10429
10430         * src/mcs51/peeph.def: fix bug #705773
10431
10432 2003-03-20    <johan AT balder>
10433
10434         An sfr/sbit can have an "at #" AND an initializer
10435         * src/SDCCsymt.c (checkSClass):
10436         * src/SDCCmem.c (allocGlobal):
10437         * src/SDCCmem.c (allocLocal):
10438         * src/SDCCast.c (createBlock):
10439
10440 2003-03-17  Bernhard Held <bernhard AT bernhardheld.de>
10441
10442         * src/ds390/peeph.def: fix bug #704878: added rule 213.b suggested by Jan Rejlek
10443
10444 2003-03-16    <johan AT balder>
10445
10446         Undid the hackup of const and volatile, the problem is much bigger
10447         * src/SDCC.y:1.65
10448         * src/SDCCast.c:1.171
10449         * src/SDCCglue.c:1.138
10450         * src/SDCCicode.c:1.146
10451         * src/SDCCsymt.c:1.150
10452         * src/SDCCval.c:1.65
10453
10454 2003-03-15  Bernhard Held <bernhard AT bernhardheld.de>
10455
10456         * src/mcs51/ralloc.c (packRegsForAssign): fixed bug #703541
10457         * src/ds390/gen.c (genAddrOf): fixed bug #704087
10458
10459 2003-03-13    <johan AT balder>
10460
10461         Hackup const and volatile modifiers in type chains a bit:
10462         * src/SDCC.y:1.63
10463         * src/SDCCast.c:1.169
10464         * src/SDCCglue.c:1.136
10465         * src/SDCCicode.c:1.143
10466         * src/SDCCsymt.c1.146
10467         * src/SDCCsymt.h1.59
10468         * src/SDCCval.c:1.63
10469
10470 2003-03-12    <johan AT balder>
10471
10472         * src/SDCCBBlock.h: more LRH debugging junk
10473         * src/SDCCcflow.h: more LRH debugging junk
10474         * src/SDCCloop.c: more LRH debugging junk
10475         * src/SDCC.y (struct_declaration): fixed bug #697590
10476         * src/SDCCsymt.[hc] (cloneSpec): NEVER EVER use this again
10477         * src/ds390/gen.c (aopForRemat): fixed bug #700031
10478         * src/SDCCglue.c (emitStaticSeg): fixed bug #700797
10479
10480 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10481         * src/SDCCpeeph.c: quit being lazy and made proper fix (peephole
10482         test function names must now match exactly).
10483         * src/SDCCcse.c: added special case in findCheaperOp to allow
10484         extending a short integer. Makes less awful code for bug 700121 test case.
10485
10486 2003-03-11  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10487
10488         * as/mcs51/lkmain.c: Added ASlink-Warning to messages
10489         * as/mcs51/lkaomf51.c: Fixed bug when linking asmblink example
10490
10491 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10492
10493         * src/SDCCpeeph.c: fix so that operandsNotEqualX functions are
10494         actually called (operandsNotEqual() was called for all
10495         operandsNotEqualX tests).
10496
10497 2003-03-11 Kevin Vigor <kevin AT vigor.nu>
10498
10499         * src/SDCCcse.c: fix findCheaperOp to prevent replacing int types
10500         with shorter literals. Fixes bug 700121.
10501
10502 2003-03-11    <johan AT balder>
10503
10504         * src/SDCCsymt.c (compareType): a (void *) can be assigned to any pointer
10505
10506 2003-03-11  Bernhard Held <bernhard AT bernhardheld.de>
10507
10508         * src/SDCCloop.c (mergeRegions): an evil beast is dead
10509         * src/SDCCmain.c (preProcess): minor cleanup: eliminate preOutName
10510
10511 2003-03-10  Borut Razem <borut.razem AT siol.net>
10512
10513         * src/SDCCmain.c: pipe preprocessor's output
10514         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10515         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10516         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10517         which closes all pipes in pipeSet set
10518         * src/SDCCset.c: free deleted item in function deleteSetItem()
10519         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10520         moved from z80 to src subproject
10521         * .version: increased version number to 2.3.4
10522
10523 2003-03-10  Bernhard Held <bernhard AT bernhardheld.de>
10524
10525         * support/regression/ports/mcs51/spec.mk: increase timeout for CF's sparc to 30s
10526         * support/regression/ports/ds390/spec.mk: increase timeout for CF's sparc to 25s
10527         * support/regression/ports/xa51/spec.mk: fix typo
10528
10529 2003-03-09  Bernhard Held <bernhard AT bernhardheld.de>
10530
10531         * src/SDCCglobl.h: PATH_MAX is already defined in mingw32 headers
10532
10533 2003-03-09  Borut Razem <borut.razem AT siol.net>
10534
10535         * src/SDCCmain.c: pipe preprocessor's output
10536         * support/Util/MySystem.c, support/Util/MySystem.h: added my_popen()
10537         * sdcc_vc_in.h: define pclose as _pclose for WIN32
10538         * src/SDCCglue.c, src/SDCCglue.h: added set pipeSet, added function closePipes,
10539         which closes all pipes in pipeSet set
10540         * src/SDCCset.c: free deleted item in function deleteSetItem()
10541         * src/src.dsp, src/z80/z80.dsp: files support/Util/BuildCmd.c and support/Util/MySystem.c
10542         moved from z80 to src subproject
10543
10544 2003-03-09  Borut Razem <borut.razem AT siol.net>
10545
10546         * src/SDCCglue.c: re-implemented tempfilename() and tempfile(): using mkstemp() if available
10547         * src/SDCCsymt.h: fixed MSVC and BORLANDC compilation (included SDCCglobl.h instead srccconf.h)
10548         * sdcc_vc_in.h: explicitly undefined HAVE_MKSTEMP which is not available on BORLANDC and MSVC
10549         * src/SDCCset.h: removed inclusion of sdccconf.h or sdcc_vc.h
10550         * src/SDCCglobl.h: unification of WIN32 native definitions
10551
10552 2003-03-09  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10553
10554         * src/mcs51/gen.c: applied in-/dec patch mentioned on sdcc-devel 2003-03-01
10555
10556 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10557
10558         * src/configure.in:   check for endianess (even while cross-compiling)
10559         * src/configure:      check for endianess (even while cross-compiling)
10560         * src/configure_in.h: check for endianess (even while cross-compiling)
10561         * src/avr/gen.c:        remove old endianess stuff
10562         * src/mcs51/gen.c:      remove old endianess stuff
10563         * src/ds390/gen.c:      remove old endianess stuff
10564         * src/pic/gen.c:        remove old endianess stuff
10565         * src/pic/genarith.c:   remove old endianess stuff
10566         * src/pic/glue.c:       fix endianess check
10567         * src/pic16/gen.c:      remove old endianess stuff
10568         * src/pic16/genarith.c: remove old endianess stuff
10569         * src/pic16/glue.c:     fix endianess check
10570         * src/xa51/gen.c:       remove old endianess stuff
10571         * src/z80/gen.c:        fix endianess check
10572         * src/SDCCglue.c:       fix endianess check
10573         * src/ds390/peeph.def: fix bug 700036
10574
10575 2003-03-08  Bernhard Held <bernhard AT bernhardheld.de>
10576
10577         * src/SDCCsymt.h: use appropriate data-types on host for SDCC's int and long
10578         * src/configure: find appropriate data-types on host for SDCC's int and long
10579         * src/configure.in: find appropriate data-types on host for SDCC's int and long
10580         * src/sdccconf_in.h: find appropriate data-types on host for SDCC's int and long
10581         * src/xa51/gen.c: use %d, not %ld for 4 byte variables
10582
10583 2003-03-07    <johan AT balder>
10584
10585         Just a big NOOP:
10586                 some minor cleanups before the big shot
10587                 OP_DEFS and OP_USES now use Kevin's protection
10588                 new option --nolabelopt
10589
10590         * src/SDCCBBlock.c:
10591         * src/SDCCast.c,:
10592         * src/SDCCcflow.c:
10593         * src/SDCCcse.c:
10594         * src/SDCCicode.c:
10595         * src/SDCCicode.h:
10596         * src/SDCClabel.c:
10597         * src/SDCCloop.c:
10598         * src/SDCCmain.c:
10599         * src/ds390/ralloc.c:
10600         * src/mcs51/ralloc.c:
10601         * src/pic/ralloc.c:
10602         * src/xa51/ralloc.c:
10603         * src/z80/ralloc.c:
10604
10605 2003-03-06  Bernhard Held <bernhard AT bernhardheld.de>
10606
10607         * src/pic/pcode.c (get_op): fix 64 bit warnings
10608         * src/pic/pcode.c (pCode2str): fix 64 bit warnings
10609         * src/SDCChasht.c (newHashTable): fix 64 bit warnings
10610         * src/SDCCsymt.c (checkTypeSanity): fix 64 bit warnings
10611         * support/regression/tests/malloc.c: fix 64 bit warnings
10612
10613 2003-03-04  Bernhard Held <bernhard AT bernhardheld.de>
10614
10615         * src/mcs51/gen.c (genMinus): fixed bug 696436
10616
10617 2003-03-02  Borut Razem <borut.razem AT siol.net>
10618
10619         * src/SDCCmain.c: added BORLANDC, corrected MSVC in printVersionInfo()
10620
10621 2003-02-26  Bernhard Held <bernhard AT bernhardheld.de>
10622
10623         * configure.in: test for mkstemp
10624         * sdccconf_in.h: add HAVE_MKSTEMP
10625
10626 2003-02-24  Bernhard Held <bernhard AT bernhardheld.de>
10627
10628         * device/include/ctype.h: removed warning while using --stack-auto
10629         * device/include/malloc.h: removed warning while using --stack-auto
10630         * device/include/string.h: removed warning while using --stack-auto
10631
10632 2003-02-23  Borut Razem <borut.razem AT siol.net>
10633
10634         * src/asm.h: corrected assertion in function printILine(): _pipe() was not executed on MSVC,
10635         because NDEBUG is defined (see man assert)
10636         * sdcc_vc_in.h: vsnprintf is defined as _vsnprintf on MSVC
10637
10638 2003-02-23  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10639
10640         * src/mcs51/gen.c (genUminusFloat): avoided dptr in-/decrement for xdata variables
10641         * src/mcs51/peeph.def: added rule suggested by Gernot Fink, white space/comment changes
10642
10643 2003-02-18  Frieder Ferlemann <Frieder.Ferlemann AT web.de>
10644
10645         * src/SDCCpeeph.c: added peephole conditions testing for same arguments
10646         * src/mcs51/peeph.def: added rules 238a-d which remove redundant moves
10647
10648 2003-02-18    <johan AT balder>
10649
10650         * as/mcs51/asmain.c (asmbl): module can start with a digit
10651         * as/z80/asmain.c (asmbl): module can start with a digit
10652
10653 2003-02-16  Bernhard Held <bernhard AT bernhardheld.de>
10654
10655         * sim/ucsim/mkecho: inserted #!/bin/sh for Cygwin, so that it's executable
10656         * src/asm.c: fix pipe() for Mingw32
10657
10658 2003-02-15  Bernhard Held <bernhard AT bernhardheld.de>
10659
10660         * src/SDCCglue.h: make tmpfileNameSet available for preOutName
10661         * src/SDCCmain.c (preProcess): make sure, that preOutName will be deleted;
10662         make -V work again; --c1mode reads now from stdin
10663         * doc/sdccman.lyx: added --c1mode
10664         * support/Util/SDCCerr.c: new messages for c1 mode
10665         * support/Util/SDCCerr.h: new messages for c1 mode
10666         * src/SDCC.lex (checkCurrFile): test if fullSrcFileName is NULL for c1mode
10667
10668 2003-02-15    <johan AT balder>
10669
10670         * src/asm.c: new options: --no-c-code-in-asm and --i-code-in-asm
10671
10672 2003-02-14  Bernhard Held <bernhard AT bernhardheld.de>
10673
10674         * doc/sdccman.lyx: Environment variables, -o and other minor things
10675
10676 2003-02-14    <johan AT balder>
10677
10678         * src/xa51/main.c: before anyone really tries to use it :)
10679
10680         * Install doc's in share/sdcc/doc
10681         * removed some obsolete files
10682         * Do a proper make distclean and uninstall
10683         M Makefile.common.in
10684         R sdccbuild.sh
10685         M as/Makefile
10686         M device/include/Makefile.in
10687         M device/lib/Makefile.in
10688         M doc/sdccman.lyx
10689         M link/Makefile
10690         M sim/ucsim/doc/Makefile.in
10691         M src/clean.mk
10692         R src/avr/peeph.rul
10693         R src/xa51/peeph.rul
10694         M support/cpp2/Makefile.in
10695         M support/makebin/Makefile
10696
10697
10698 2003-02-13  Bernhard Held <bernhard AT bernhardheld.de>
10699
10700         * support/regression/ports/host/spec.mk: use cc as host compiler for max osx
10701
10702 2003-02-10  Borut Razem <borut.razem AT siol.net>
10703
10704         * doc/bccinst.txt, packihx/packihx.c, sdcc_vc_in.h, src/SDCCset.h,
10705         support/cpp2/config.in: Borland C++ build doesn't depend on Cygwin configure
10706         * Bcc.ini, Makefile.bcc, as/mcs51/Makefile.bcc,
10707         device/examples/ds390/tinitalk/Makefile.bcc, packihx/Makefile.bcc,
10708         support/cpp2/Makefile.bcc, src/Makefile.bcc, src/avr/Makefile.bcc,
10709         src/ds390/Makefile.bcc, src/izt/Makefile.bcc, src/mcs51/Makefile.bcc,
10710         src/pic/Makefile.bcc, src/pic16/Makefile.bcc, src/xa15/Makefile.bcc,
10711         src/z80/Makefile.bcc: Borland Makefile cleanup
10712         * as/z80/Makefile.bcc: Added Borland Makefile
10713         * support/cpp2/borland.h: Removed
10714
10715 2003-02-10  Bernhard Held <bernhard AT bernhardheld.de>
10716
10717         * doc/sdccman.lyx: new pragma NOIV by "Johannes Stezenbach" <js AT convergence.de>
10718         * src/SDCC.lex: new pragma NOIV
10719         * src/SDCCglobl.h: new pragma NOIV
10720         * src/SDCCmem.c: new pragma NOIV
10721
10722 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
10723
10724         * src/SDCCmain.c: signal handling is switched off by SDCC_LEAVE_SIGNALS
10725
10726 2003-02-09  Bernhard Held <bernhard AT bernhardheld.de>
10727
10728         * src/SDCCmain.c: signal handling is switched off by --debug
10729         * doc/Makefile: small fix for install; use clean.mk again
10730         * doc/clean.mk: clean *.pdf and *.html too
10731
10732 2003-02-08  Bernhard Held <bernhard AT bernhardheld.de>
10733
10734         * device/lib/_mulint.c: small fix for large/ds390 --int-long-reent resp. --stack-auto
10735         * device/lib/printfl.c: fix a ds390 bug by making it portable
10736         * src/SDCCsymt.c (initCSupport): fix compile warning on Cygwin
10737         * src/SDCCopt.c (cnvToFloatCast): fix compile warning on Cygwin
10738         * src/SDCCopt.c (cnvFromFloatCast): fix compile warning on Cygwin
10739         * debugger/mcs51/cmd.c: converted multi-line string literals
10740         * sim/ucsim/globals.cc: converted multi-line string literals
10741         * src/SDCCmain.c: introduced signal handler to remove temp files
10742         * doc/Makefile: small tweaks, implement clean
10743         * doc: removed generated files
10744
10745 2003-02-05  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10746
10747         * as/mcs51/aslink.h, as/mcs51/lkihx.c, as/mcs51/lkrloc.c:  Applied
10748         patch from Jan Rejlek <jr AT apex-lib.cz> to fix Bug 677692: "Extended
10749         Address Record is not correctly generated for DS390."
10750
10751 2003-02-02  Borut Razem <borut.razem AT siol.net>
10752
10753         * Makefile.bcc: removed non existing cpp project and non compilable izt project from makefile
10754         * as/mcs51/asm.h: fixed compilation with Borland C
10755         * support/cpp2/Makefile.bcc: added rule to generate auto-host.h
10756         * support/cpp2/auto-host_vc_in.h: fixed compilation with Borland C
10757         * src/mcs51/mcs51a.dsp: corrected misspelled project name from msc51a to mcs51a
10758         * src/avr/Makefile.bcc, src/ds390/Makefile.bcc, src/izt/Makefile.bcc,
10759         src/mcs51/Makefile.bcc, src/pic16/Makefile.bcc, src/xa51/Makefile.bcc,
10760         src/z80/Makefile.bcc: delete $(LIB) only if exist
10761         * src/Makefile.bcc, src/pic/Makefile.bcc:  fixed compilation with Borland C
10762
10763 2003-02-02  Bernhard Held <bernhard AT bernhardheld.de>
10764
10765         * device/include/malloc.h: introduced NULL
10766         * device/include/string.h: introduced NULL
10767         * device/include/stdlib.h: introduced NULL
10768         * device/lib/_memcpy.c: removed NULL
10769         * device/lib/_strcat.c: removed NULL
10770         * device/lib/_strchr.c: removed NULL
10771         * device/lib/_strcmp.c: removed NULL
10772         * device/lib/_strcpy.c: removed NULL
10773         * device/lib/_strcspn.c: removed NULL
10774         * device/lib/_strlen.c: removed NULL
10775         * device/lib/_strncat.c: removed NULL
10776         * device/lib/_strncmp.c: removed NULL
10777         * device/lib/_strncpy.c: removed NULL
10778         * device/lib/_strpbrk.c: removed NULL
10779         * device/lib/_strrchr.c: removed NULL
10780         * device/lib/_strspn.c: removed NULL
10781         * device/lib/_strstr.c: removed NULL
10782         * device/lib/_strtok.c: removed NULL
10783         * device/lib/malloc.c: removed NULL, include own header
10784
10785 2003-02-02    <johan AT balder>
10786
10787         * 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
10788         * support/regression/fwk/lib/testfwk.c: div and mod isn't broken anymore
10789         * regressions ds390/spec.mk and mcs51/spec.mk (timeout): my good old balder isn't fast enough for some tests
10790         * src/z80/gen.c (genZ80Code): added c-lines in asm comments
10791         * as/z80/asm.h (NINPUT): increased for long c-comments in regression tests
10792         * src/z80/gen.c (genRightShiftLiteral): fixed the (char)(-3)>>8 (I think)
10793
10794 2003-02-01  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10795
10796         * src/SDCCmain.c: Fixed bug 678574: "ds390: ASlink-Error-Stack overlaps
10797         area 'DATA'"
10798
10799 2003-02-01    <johan AT balder>
10800
10801         * src/SDCCval.c (valBitwise): fixed Karl's "2 | (1<<8)"
10802
10803 2003-01-31    <johan AT CP255758-A>
10804
10805         * src/ds390/main.c (_ds390_genAssemblerPreamble): applied Jan Rejlek's >64K startup patch
10806
10807 2003-01-30    <johan AT balder>
10808
10809         * src/SDCCBBlock.c: automatic bug detection
10810         * src/SDCCicode.c: automatic bug detection
10811
10812 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10813
10814         * src/SDCCglobl.h:   now --xram-size 0 works
10815         * src/SDCCmain.c:    now --xram-size 0 works
10816
10817 2003-01-29    <johan AT balder>
10818
10819         * src/almosteverything: changed OP_DEFS and OP_USES from macros to functions to catch symbol abuse (a hot topic in the bug list :)
10820
10821 2003-01-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
10822
10823         * as/mcs51/aslink.h: Added options --xram-size and --code-size
10824         * as/mcs51/lkdata.c: Added options --xram-size and --code-size
10825         * as/mcs51/lkmain.c: Added options --xram-size and --code-size
10826         * as/mcs51/lkmem.c:  Added options --xram-size and --code-size
10827         * src/SDCCglobl.h:   Added options --xram-size and --code-size
10828         * src/SDCCmain.c:    Added options --xram-size and --code-size
10829
10830 2003-01-28  Bernhard Held <bernhard AT bernhardheld.de>
10831
10832         * src/ds390/gen.c: fix deps by replacing <common.h> with "common.h"
10833         * src/SDCC.lex: rename P_OVERLAY to P_OVERLAY_ for cross-gcc 3.2 MINGW32
10834
10835 2003-01-27    <johan AT balder>
10836
10837         * src/SDCC.y: fixed bug #613764
10838
10839 2003-01-26    <johan AT balder>
10840
10841         * src/SDCClrange.c:  fixed Bernhard's "char * code ptr = &c"
10842         * src/SDCCsymt.h: fixed bug #673374
10843         * src/SDCCglue.c: fixed bug #661910
10844         * src/SDCCast.c: fixed bug #458099 and 673374
10845
10846 2003-01-26  Bernhard Held <bernhard AT bernhardheld.de>
10847
10848         * as/mcs51/strcmpi.c: added, provides Aurelien Jarno's as_strcmpi(); strcmpi() is not ANSI
10849         * as/mcs51/strcmpi.h: added
10850         * as/mcs51/asm.h: remove ugly "#define strcmpi strcmp"
10851         * as/mcs51/aslink.h: remove ugly "#define strcmpi strcmp"
10852         * as/mcs51/asmain.c: strcmpi -> as_strcmpi
10853         * as/mcs51/assym.c: strcmpi -> as_strcmpi
10854         * as/mcs51/lkmem.c: strcmpi -> as_strcmpi
10855         * as/mcs51/lknoice.c: strcmpi -> as_strcmpi
10856         * as/mcs51/lksym.c: strcmpi -> as_strcmpi
10857         * as/mcs51/Makefile.aslink: new module strcmpi
10858         * as/mcs51/Makefile.asx8051: new module strcmpi
10859         * as/mcs51/Makefil.bcc: new module strcmpi
10860         * as/mcs51/Makefile.in: new module strcmpi
10861         * sim/ucsim/s51.src/uc390.cc (get_mem_size): make RAM big enough for tinibios
10862
10863 2003-01-26    <johan AT balder>
10864
10865         * src/SDCCglue.c: reverted back to 1.124
10866         * src/SDCCast.c: reverted back to 1.156
10867         * src/mcs51/gen.c (aopGet): applied Frieder's efficiency patch
10868
10869 2003-01-25    <johan AT balder>
10870
10871         * src/SDCCglue.c: A better fix for bug #661910
10872         * src/SDCCast.c: A better fix for bug #661910
10873         * src/SDCCglue.c (emitRegularMap): That was a little too efficient
10874
10875 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
10876
10877         * src/Makefile.in: remove spawn.o
10878         * src/SDCCmain.c: remove spawn.h
10879         * src/SDCCmain.c (printVersionInfo): report MINGW32 instead of UNIX
10880         * src/spawn.c: removed
10881         * src/spawn.h: removed
10882         * support/regression/ports/ds390/spec.mk: link with -r
10883
10884 2003-01-24    <johan AT CP255758-A>
10885
10886         * src/ds390/gen.c (aopOp): fixed bug #667458
10887         * src/SDCCglue.c (emitRegularMap): fixed bug #458099 again
10888         * src/SDCCast.c (createIvalCharPtr): fixed bug #661910
10889         (createIvalCharPtr): an ival doesn't always have a storage class anymore
10890
10891 2003-01-24  Bernhard Held <bernhard AT bernhardheld.de>
10892
10893         * src/mcs51/peeph.def: better assembler identation by Frieder
10894         * src/mcs51/gen.c: better assembler identation by Frieder
10895
10896 2003-01-22  Bernhard Held <bernhard AT bernhardheld.de>
10897
10898         * as/z80/string.h: removed for gcc 3.2
10899         * support/makebin/makebin.c: #include <string.h> for gcc 3.2
10900         * src/pic/pcode.c (get_op_from_instruction): fix concatenation of string literals with __FUNCTION__ for gcc 3.2
10901
10902 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
10903
10904         * src/SDCCmain.c (linkEdit): rename mem and map files even in case of failure
10905         * src/SDCCpeeph.c (replaceRule): fix bug #663503
10906         * support/regression/Makefile: separate temp files for ports
10907         * support/regression/generate-cases.py: separate temp files for ports
10908         * src/mcs51/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
10909         * src/ds390/peeph.def: Frieder: removed 237 (obsolete by 236g and 105); added 237 a/b
10910
10911 2003-01-19  Bernhard Held <bernhard AT bernhardheld.de>
10912
10913         * moved tinitalk to device/examples/ds390
10914
10915 2003-01-14  Bernhard Held <bernhard AT bernhardheld.de>
10916
10917         * as/mcs51/lkmem.c: rflag is for DS390
10918         * src/SDCCglobl.h: removed out_name and options stackOnData, genericPtr
10919         * src/SDCCmain.c (optionsTable, setDefaultOptions): removed --stack-after-data and --generic
10920                          (linkEdit): move mem- and map-files the same way as ihx-files
10921         * src/z80/main.c (_setDefaultOptions): removed --generic
10922         * src/SDCCmain.c (_processC1Arg, parseCmdLine, main): --c1mode works again
10923         * src/SDCCglue.c (createInterruptVect, glue): --c1mode works again
10924         * src/pic/glue.c (picglue): --c1mode works again
10925         * src/pic16/glue.c (pic16glue): --c1mode works again
10926         * src/asm.c (printCLine): fix #660034
10927
10928 2003-01-13  Bernhard Held <bernhard AT bernhardheld.de>
10929
10930         * src/ds390/peeph.def: fix #123; add 14 rules by Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>, 1 by Frieder
10931         * src/mcs51/peeph.def: fix #123; add 14 rules by Fiorenzo, 1 by Frieder
10932         * src/mcs51/gen.c (genFunction): emit r0 instead of ar0 by Fiorenzo
10933         * as/mcs51/lkmem (summary): better fix for sp problem
10934         * src/SDCCglue.c (glue): __start_stack - 1, saves 1 byte!
10935         * src/ds390/main.c (_ds390_finaliseOptions, _tininative_finaliseOptions): stack_loc = 0x400008
10936         * support/regression/ports/*/spec.mk: moving testfwk-object to port dir allow parallel execution of regression tests
10937                                               remove --stack-after-data
10938
10939 2003-01-12  Bernhard Held <bernhard AT bernhardheld.de>
10940
10941         * src/SDCCmain.c (main): port->finaliseOptions() moved for z80 linking
10942         * src/SDCCutil.c (join): ugly bug: missing '\0'
10943         * as/mcs51/lkmem.c (summary): sp on address 7 is safe
10944
10945 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
10946
10947         * src/SDCCmain.c (assemble, linkEdit): preparations for -o
10948         * src/port.h: typo
10949         * src/pic/main.c (_asmCmd): gpasm supports -o
10950         * src/z80/main.c: more general macros
10951         * device/lib/Makefile.in: remove intermediate files
10952
10953 2003-01-11  Bernhard Held <bernhard AT bernhardheld.de>
10954
10955         * .version: Bumped version number to 2.3.3
10956         * src/SDCCBBlock.c: new option -o
10957         * src/SDCCglobl.h: new option -o
10958         * src/SDCCglue.c: new option -o
10959         * src/SDCCmain.c: new option -o
10960         * src/asm.c: new option -o
10961         * src/ds390/main.c: new option -o
10962         * src/pic/glue.c: new option -o
10963         * src/pic/pcode.c: new option -o
10964         * src/pic/ralloc.c: new option -o
10965         * src/pic16/glue.c: new option -o
10966         * src/pic16/pcode.c: new option -o
10967         * src/pic16/ralloc.c: new option -o
10968         * src/z80/main.c: new option -o
10969         * device/lib/Makefile.in: use -o
10970         * support/regression/ports/ds390/spec.mk: use -o
10971         * support/regression/ports/gbz80/spec.mk: use -o
10972         * support/regression/ports/mcs51/spec.mk: use -o
10973         * support/regression/ports/mcs51-stack-auto/spec.mk: use -o
10974         * support/regression/ports/z80/spec.mk: use -o
10975         * support/regression/ports/ucz80/spec.mk: use -o
10976         * support/regression/ports/xa51/spec.mk: use -o
10977         * support/regression/fwk/lib/timeout.c: fix usage string
10978
10979 2003-01-09  Bernhard Held <bernhard AT bernhardheld.de>
10980         * src/mcs51/gen.c (genPlus): replaced "mov b,acc" by "mov b,a" Fiorenzo D. Ramaglia <fd.ramaglia AT tin.it>
10981
10982 2003-01-07    <johan AT balder>
10983
10984         * src/SDCCast.c (decorateType): fixed bug #600035
10985
10986 2003-01-07  Bernhard Held <bernhard AT bernhardheld.de>
10987         * as/mcs51/lkmem.c: added several l-modifiers to printf to remove warnings
10988         * as/mcs51/lkaomf51.c: #include <ctype.h> to remove warnings
10989         * src/pic/main.c (_hasNativeMulFor): outcommented unused variables to remove warnings
10990         * src/pic/pcode.c: outcommented unused variable to remove warnings
10991         * src/pic/ralloc.c: outcommented unused variable to remove warnings
10992
10993 2003-01-06    <karl AT turbobit.com>
10994         * sim/ucsim/cmd.src/command.cc: fixed so "break xram r 0x7654" works again in
10995    regression tests.
10996
10997 2003-01-06    <johan AT balder>
10998
10999         * src/SDCCicode.c: fixed array add
11000
11001 2002-01-05  Bernhard Held <bernhard AT bernhardheld.de>
11002         * src/SDCCmacro.c: MAX_STRING_LENGTH increased to 2048; was too small for regression tests
11003         * support/regression/ports/host/support.c: #include <stdarg.h> for gcc 3.2
11004
11005 2003-01-04    <johan AT balder>
11006
11007         * src/SDCCval.c (getNelements): fixed the initialized array of structures
11008
11009 2002-12-29  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11010         * as/mcs51/Makefile.bcc: fixed typo lkomf51.o -> lkaomf51.o
11011
11012 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11013         * src/mcs51/peeph.def: added rules 234 and 235 from Frieder Ferlemann <frieder.ferlemann AT web.de>
11014         * support/regression/tests/bug-524697.c: fit mem usage into 8032
11015
11016 2002-12-28  Bernhard Held <bernhard AT bernhardheld.de>
11017         * src/mcs51/gen.c (aopGetUsesAcc): inserted missing "return FALSE"
11018
11019 2002-12-27  Bernhard Held <bernhard AT bernhardheld.de>
11020         * as/mcs51/Makefile.in: fixed typo lkomf51.o -> lkaomf51.o
11021
11022 2002-12-26  Bernhard Held <bernhard AT bernhardheld.de>
11023         * src/mcs51/main.c: removed {bindir}{sep} from aslink
11024
11025 2002-12-10  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11026
11027     * in /sdcc/as/mcs51/ changed these files in order to create an
11028     aomf51 file: aslink.h, lkdta.c, lklex.c, lklibr.c, lklist.c,
11029     lkmain.c.  Also added: lkmem.c and lkaomf51.c.  Changed the
11030     following files to include the previous two files: aslink.dsp,
11031     Makefile.aslink, Makefile.bcc, and Makefile.in.
11032
11033     * Changed /sdcc/src/SDCCmain.c so it creates files with extension
11034     .adb instead of .cdb
11035
11036 2002-11-09  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11037
11038         * /sdcc/as/mcs51/lklist.c: Now reports memory usage using the
11039         value from option --iram-size.
11040
11041 2002-09-20  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11042
11043         * /sdcc/as/mcs51/lklist.c: added boundary check before using
11044         dram[] array.
11045
11046 2002-09-18    <wiml AT hhhh.org>
11047
11048         * SDCClrange.h: exposed setFromRange() and setToRange()
11049         * mcs51/ralloc.c: fixed over-eager packRegsForSupport() and
11050           packRegsForAccUse() (bug 542397)
11051         * mcs51/gen.c: MOVA() is now a function to avoid calling aopGet()
11052           multiple times and emitting the fetch operations more than once
11053           added aopGetUsesAcc() function to allow binary operators to
11054           fetch their operands in the correct order; made genMinus() emit
11055           compact code for X = LITERAL - Y
11056
11057 2002-09-00  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11058         * /sdcc/as/mcs51/lklist.c: Fixed incorrect number of parameters to
11059         sprintf() in line 1267.
11060
11061 2002-09-08  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11062         * /sdcc/src/SDCCglue.c: Generate areas REG_BANK_[0-3] only for 8051
11063         like ports.
11064
11065 2002-09-04  Jesus Calvino-Fraga <jesusc AT ece.ubc.ca>
11066         Changes to aslink (All the changes are marked with 'JCF'):
11067
11068         * /sdcc/as/mcs51/aslink.h: External definition of sflag and
11069         summary().
11070
11071         * /sdcc/as/mcs51/lkarea.c: Computes the size of area BSEG_BYTES from
11072         area BSEG.  Also moves, if possible, the DATA area down into the internal
11073         ram so more space is available.
11074
11075         * /sdcc/as/mcs51/lkdata.c: Definition of memory summary output flag
11076         sflag.
11077
11078         * /sdcc/as/mcs51/lklist.c: For the BSEG area report the size in bits,
11079         not bytes.  Function summary() which creates a memory usage summary
11080         file with extension .mem.  Reports of overlaping stack and small stack
11081         size.  If the space for the stack is less than 16 bytes aslink trows a
11082         warning.
11083
11084         * /sdcc/as/mcs51/lkmain.c: Creation of some of the default areas for
11085         the 8051.  Option 'y' for memory summary output file.
11086
11087         Changes to sdcc (All the changes are marked with 'JCF'):
11088
11089         * /sdcc/src/SDCCglobl.h: External definition of RegBankUsed[4].
11090
11091         * /sdcc/src/SDCCglue.c:  If a register bank is used, creates an
11092         overlaying area for it (uses RegBankUsed[4]).
11093
11094         * /sdcc/src/SDCCmain.c: Definition RegBankUsed[4]; marks register
11095         bank zero as used by default.  By default aslink locates the stack
11096         (equivalent to --stack-after-data).  Pass option 'y' to aslink for
11097         the creation of the .mem file.  Delegates the allocation of data area
11098         to aslink (it is not longer 0x30 by default).  If --stack-loc passes
11099         the begining of the stack area to aslink.
11100
11101         * /sdcc/src/SDCCmem.c:  If a register bank is used, marks it so
11102         glue() in SDCCglue.c creates an area for it.
11103
11104 2002-09-03  Borut Razem <borut.razem AT siol.net>
11105         * sdcc/src/SDCCglue.c, sdcc/src/SDCCglue.h, sdcc/src/SDCCmain.c,
11106         sdcc/src/pic/glue.c:
11107         introduced atexit() handler for teporay files removal in case of
11108         errors, assertions, ...
11109
11110 2002-08-29  Borut Razem <borut.razem AT siol.net>
11111         * sdcc/support/cpp2/auto-host_vc_in.h:
11112         re-definition of O_BINARY and other O_XXX as _O_BINARY and _O_XXX, so the problem
11113         with the returned value from read() in sdcc/support/cpp2/cppfiles.c is solved for MSC.
11114         Maybe there is a similar problem with BORLANDC? It should be checked!
11115
11116         * sdcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c, sdcc/src/z80/ralloc.c:
11117         corrected improper use of assert: the assignment to clr variable was done inside the assert.
11118         In case that NDEBUG was defined, the assert macro was substituted with no-op, so the assignment
11119         was not executed, and the compiler (cl) launched a warning:
11120         ralloc.c(1442) : warning C4700: local variable 'clr' used without having been initialized
11121
11122 2002-08-28  Bernhard Held <bernhard AT bernhardheld.de>
11123         * src/SDCCglue.c (printIvalArray): iterative calculation of array length
11124
11125 2002-08-28  Jesus Calvino-Fraga and Borut Razem <borut.razem AT siol.net>
11126         * sdcc/sdcc.dsw: added sdcpp, sdcppa, yacc, conf projects
11127
11128         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11129           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp,
11130           sdcc/src/xa51/xa51.dsp, sdcc/src/avr/avra.dsp,
11131           sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11132           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp,
11133           sdcc/src/xa51/xa51a.dsp, sdcc/as/as_z80.dsp,
11134           sdcc/as/aslink.dsp, sdcc/as/asx8051.dsp, sdcc/packihx/packihx.dsp:
11135         - added Release configuration in VS projects
11136         - review of compiler an linker options
11137         - VC .exe files are generated in bin_vc directory, not to interfere
11138           with binaries generated from other projects (cygwin, mingw, bcc ...)
11139
11140         * sdcc/src/yacc.dsp: added
11141
11142         * sdcc/config.dsp, sdcc/configure_vc.awk, sdcc/sdcc_vc_in.h:
11143         added - genarate sdcc_vc.h using sdcc_vc_in.h as template
11144         and insert the version number definitions from .version
11145
11146         * sdcc/support/cpp2/sdcpp.dsp: added - VC project for sdcpp
11147
11148         * sdcc/support/cpp2/sdcppa.dsp, sdcc/support/cpp2/auto-host_vc_in.h:
11149         added - genarate auto-host.h using auto-host_vc_in.h as template
11150
11151         * sdcc/sdcc_vc.h,
11152         removed from CVS, generated automatically
11153
11154 2002-08-25  Bernhard Held <bernhard AT bernhardheld.de>
11155         * support/scripts/inc2h.pl: use gputils or gpasm (from Nathan Hurst)
11156
11157 2002-08-11  Borut Razem <borut.razem AT siol.net>
11158         * support/Util/NewAlloc.c: removed unneeded #include "sdccconf.h" (suggested by Jesus Calvino-Fraga)
11159
11160 2002-08-10  Borut Razem <borut.razem AT siol.net>
11161         * src/SDCCmain.c (main):
11162         file preOutName was unlinked before closed. This seems to be OK on UNIX and cygwin
11163         platforms, but it doesn't work with Visual Studio: the opened file can not be removed.
11164         The consequence was that some temporary files were not removed.
11165
11166         * src/SDCCglue.c:
11167         unification of code in functions tempfilename() and tempfile():
11168         function tempnam() is defined in Visual Studio 6.0 and .NET
11169
11170         * sdcc/sdcc.dsw: removed project sdcpp, added project xa51a
11171
11172         * sdcc/src/src.dsp, sdcc/src/avr/avr.dsp, sdcc/src/ds390/ds390.dsp,
11173           sdcc/src/mcs51/mcs51.dsp, sdcc/src/pic/pic.dsp, sdcc/src/z80/z80.dsp:
11174         - removed compiler command line option /WX: Treats all warnings as errors
11175         - update a list of source files, included into the project
11176
11177         * sdcc/src/avr/avra.dsp, sdcc/src/ds390/ds390a.dsp, sdcc/src/mcs51/mcs51a.dsp,
11178           sdcc/src/pic/pica.dsp, sdcc/src/z80/z80a.dsp:
11179         changed project type to Generic Project so that can be correcly converted to VS.NET project
11180
11181         * sdcc/as/mcs51/asm.h: definition of PATH_MAX for MSC
11182
11183         * sdcc/src/SDCCast.c: solved MSC error in function decorateType()
11184
11185         * sdcc/src/SDCC.y: added missing ending ';' to rules to get rid of bison warnings
11186
11187         * dcc/src/ds390/ralloc.c, sdcc/src/mcs51/ralloc.c:
11188         added return 0 statements after assert() to make compiler happy
11189
11190         * sdcc/src/xa51/peeph.rul, sdcc/src/xa51/peeph.def, sdcc/src/z80/ralloc.c:
11191         added newline in the def file to keep MSC compiler satisfied
11192
11193         * sdcc/src/z80/gen.c:
11194         - function strcasecmp() is not defined in MSC (and probably also in BORLANDC),
11195           so it is replaced with STRCASECMP, which is defined as stricmp in case of MSC and BORLANDC
11196         - solved MSC error in function aopDump()
11197
11198         * sdcc_vc.h: define PREFIX as "\\sdcc"
11199
11200 2002-07-18  Bernhard Held <bernhard AT bernhardheld.de>
11201         * src/SDCCast.c (decorateType): fixed access to array of structures http://sourceforge.net/mailarchive/forum.php?thread_id=902690&forum_id=4107
11202
11203 2002-06-22  Scott Dattalo <scott AT dattalo.com>
11204         * src/pic/*: Numerous bug fixes. Flow analysis has been enhanced.
11205         - Rewrote the register banking algorithm.
11206         - Added pCode live-range analysis to registers (for now, only non-used and
11207         singly-used registers optimized away)
11208
11209         * src/pic/pcoderegs.[ch]: Added new files for pCode live-range analysis
11210
11211         * 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.
11212
11213 2002-05-10  Scott Dattalo <scott AT dattalo.com>
11214         * src/pic/*: Added support for multiplication. Fixed many,many bugs.
11215
11216 2002-04-22  Michael Hope  <michaelh AT vroom>
11217
11218         * device/lib/z80/printf.c: Changed emitter to volatile to work around a pcall bug.
11219
11220         * configure.in (DD_COPT): Added include support required for gbdk.
11221
11222         * .version: Bumped version number just to increase it.
11223
11224         * src/SDCCmain.c: Added -nostdinc to the default options.
11225
11226 2002-04-15  Michael Hope  <michaelh AT vroom>
11227
11228         * device/lib/z80/printf.c (sprintf): Added.
11229
11230         * src/z80/ralloc.c (packRegisters): Disabled pack HL use for GB as it's broken.
11231
11232         * src/z80/peeph.def: Added transpose redundent load rule.
11233
11234         * src/z80/main.c: Added force callee saves for jaune.
11235
11236         * src/port.h: Removed the i186 and tlcs-900h ports as they weren't being being developed.
11237
11238         * src/SDCCmain.c: Pulled the options definition out so that you can add port specific options without changing the main file.
11239
11240 2002-03-28  Johan Knol  <johan AT balder>
11241
11242         * src/SDCCval.c: fixed bug #532436
11243
11244 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11245         * /src/port.h:
11246         Added "char *Processor" field to the port structure.
11247
11248         * /src/SDCCmain.c:
11249         Added -p option. Allows port dependent processor to be specified.
11250
11251         * all ports:
11252         Initialized the new field char *Processor field to NULL in all ports
11253
11254         * /src/pic/*:
11255         Compiler generated registers for interrupt context saving
11256         were not getting allocated.
11257
11258 2002-03-16  Sandeep Dutta  <sandeep AT ddi.com>
11259
11260         * /src/SDCCast.c:
11261         Fixed left shift. Will promote the left side of a left shift
11262         if a) left shifting more than size of operand or b) when assigned
11263         to something size > size of left side
11264
11265 2002-03-14  Scott Dattalo <scott AT dattalo.com>
11266         * src/pic/*
11267         tons of changes. Register allocation has been
11268         rewritten. Added customization for the various PICs. Flow
11269         analysis is restructured. ...
11270
11271         * src/pic/device.h:
11272         Added
11273
11274         * src/pic/device.c:
11275         Added. device.c is a PIC port hack to accomodate variations
11276         in PIC devices.
11277
11278 2002-03-13  Michael Hope  <michaelh AT vroom>
11279
11280         * src/z80/gen.c (genGenPointerGet): Fixed a bug where a pointer in HL is dereferenced into HL but HL is not spilled.  Yeah.
11281
11282 2002-03-04  johanknol  <johanknol AT manik>
11283
11284         * /src/SDCCval.c: fixed
11285
11286         const unsigned char arr[][2] = { { 0, 1 } };
11287         t18.c:1: error: Initializer element is not constant
11288
11289 2002-03-04  bela  <bela AT manik>
11290
11291         * /device/include/mcs51reg.h:
11292         ds89c420 register definition update
11293
11294 2002-03-03    <johan AT FRIJA>
11295
11296         * support/Util/SDCCerr.c: did something, but don't no why anymore
11297
11298         * support/regression/tests/bug-524691.c: made it a little less shy
11299
11300         * src/SDCCast.c (decorateType): fixed bug #524697
11301
11302         * src/SDCCast.c: made some lineno improvements
11303
11304         * src/SDCCval.c (getNelements): changed warning to error
11305
11306         * src/SDCCglue.c (printIvalArray): changed warning to error
11307
11308         * src/SDCCicode.c: fixed a warning for mingw
11309
11310         * src/SDCCast.c (decorateType): fixed the << promotion for ops
11311
11312         * src/SDCCicode.c (geniCodeDivision): divide is shift only for unsigned (bug #524685)
11313
11314 2002-03-02  Sandeep Dutta  <sandeep AT ddi.com>
11315
11316         * src/ds390/peeph.def:
11317         Added some more peephole rules
11318
11319         * src/ds390/gen.c: Various fixes & enhancements
11320
11321         * src/SDCClrange.c, src/SDCClrange.h:
11322         functions "alldefsoutofrange" and "notusedinblock" moved to SDCClrange.c
11323
11324         * src/ds390/ralloc.c:
11325         various fixes & enhancements (ds390) specific
11326
11327         * src/avr/ralloc.c, src/mcs51/ralloc.c, src/pic/ralloc.c, src/xa51/ralloc.c, src/z80/ralloc.c:
11328         Functions "allDefsOutOfRange" & "notUsedinBlock" moved to SDCClrange.c
11329         from rallocs.
11330
11331         * sdcc/src/SDCCcse.c: Better fix for bug # 514308
11332
11333 2002-03-02    <johan AT FRIJA>
11334
11335         * src/SDCCast.c (decorateType): fixed bug #524708
11336
11337         * src/SDCCval.c (floatFromVal): fixed the literal void (whatever that may be)
11338
11339         * src/SDCCicode.c (geniCodePtrPtrSubtract): fixed bug #524691
11340
11341 2002-03-01  Michael Hope  <michaelh AT vroom>
11342
11343         * src/SDCCsymt.c (initCSupport): Removed managling of support function names.
11344
11345         * src/z80/ralloc.c (packRegsForIYUse): Fixed fp bug where four byte operands were packed into IY.
11346
11347 2002-03-01    <johan AT FRIJA>
11348
11349         * src/SDCCglue.c (printIvalPtr): fixed bug #524211
11350
11351         * src/SDCCast.c (decorateType): fixed bug #524209
11352
11353         * src/SDCCval.c (valNot): fixed bug #524195
11354
11355 2002-02-26    <johan AT balder>
11356
11357         * src/xa51/gen.c: fixed a warning
11358
11359         * src/SDCCglue.c (printIvalFuncPtr): fixed bug #522534
11360
11361         * src/SDCCast.c (decorateType): fixed bug #522534
11362
11363 2002-02-23    <johan AT balder>
11364
11365         * src/SDCCdflow.c (computeDataFlow): fixed bug #460088
11366
11367 2002-02-22    <johan AT balder>
11368
11369         * src/SDCCast.c: fixed bug #514865
11370
11371         * src/SDCCy.c ("SDCC.y"): fixed bug #516625
11372
11373 2002-02-21  Sandeep Dutta  <sandeep AT ddi.com>
11374
11375         * sdcc/src/SDCCloop.c:
11376         Previous fix was not good. basic blocks that have "break" or "return" are
11377         not really partof a loop , but live ranges used in these blocks should
11378         be live thru the entire loop, so set partOfLoop but don't add them to
11379         loop region
11380
11381 2002-02-21    <johan AT FRIJA>
11382
11383         * src/SDCCcse.c: fixed bug #514308
11384
11385 2002-02-20  Sandeep Dutta  <sandeep AT ddi.com>
11386
11387         * src/SDCCloop.c:
11388         Fixed BUG #519583. If a conditional block ended in a return/break
11389         statement inside a loop, it was not being considered part of the loop.
11390
11391         * src/SDCCcflow.c: Removed fix (Fixed in SDCCloop.c)
11392
11393 2002-02-10  Karl Bongers <karl AT turbobit.com>
11394
11395         * debugger/*:
11396         Fixed up SDCDB debugger somewhat.  Updated debugger/README
11397         with lots of comments and notes.
11398
11399         * device/examples/test2.c:
11400         Fix bug, "red" variable not being initialized(compiler complained).
11401
11402         * device/examples/Makefile, examples/test3.c:
11403         Add Makefile in device/examples folder, compiles test3.c
11404         for use as a multiple module SDCDB test case.
11405
11406         * sim/ucsim/cmd.src/cmdset.cc:
11407         Took out debug printfs in ucsim "next" command.
11408
11409         * sim/ucsim/xa.src:
11410         Karl and Johan start ucsim XA support.  Most dissassembly working,
11411         about 75% emulation done(plenty of work remaining).
11412
11413         * sim/ucsim/z80.src:
11414         Add Z80 support to ucsim, add test-ucz80 regression test,
11415         notice ucsim/z80 emulation fails on examples/test3.c/itoa code.
11416         Notice z80 compiler fails on examples/test3.c/crc code.
11417
11418 2002-01-30  Sandeep Dutta  <sandeep AT ddi.com>
11419
11420         * src/mcs51/gen.c, src/mcs51/main.c, src/mcs51/ralloc.c:
11421         Added support for --parms-in-bank1
11422
11423         * src/ds390/peeph.def:
11424         added a few more peephole optimzations
11425
11426         * src/ds390/main.c:
11427         1) added __builtin_inp & __builtin_outp used to read in data of given length
11428            from a memory mapped port
11429         2) added __builtin_memcmp
11430         3) added __builtin_swapw swap bytes of a short
11431
11432         * src/ds390/gen.c, src/ds390/gen.h, src/ds390/ralloc.c:
11433         1) handle multiple send & receives from register bank1
11434         2) ralloc can now allocate DPTR1 to some liveRanges
11435
11436         * src/SDCCsymt.c, src/SDCCsymt.h:
11437         changes to handle multiple sends & receives
11438
11439         * src/SDCCptropt.h:
11440         added some pointer arithmetic optimization
11441
11442         * src/SDCCptropt.c:
11443         added some pointer arithmetic optimizations but not stable yet so not
11444         called from anywhere (will get this working shortly)
11445
11446         * src/SDCCopt.c: fixed for multiple sends & receives
11447
11448         * src/SDCCmain.c:
11449         1) added options --parms-in-bank1 (ds390/mcs51) & --protect-sp-update
11450         2) preprocessing done AFTER port->finalizeoptions . This allows ports to
11451            set preprocessor defines (depending on options)
11452
11453         * src/SDCCicode.c, src/SDCCicode.h:
11454         changes made to handle multiple sends & receives
11455
11456         * src/SDCCglobl.h:
11457         Added options --protect-sp-update (ds390) and --parms-in-bank1 (ds390/mcs51)
11458
11459         * src/SDCCcse.c, src/SDCCcse.h:
11460         added function findbackward def (to be used in upcoming optimization)
11461
11462         * src/SDCCcflow.c, src/SDCCcflow.h:
11463         added function returnAtEnd - to determine if a basic block terminates with
11464         a RETURN iCode
11465
11466         * src/SDCCast.c, src/SDCCast.h:
11467         added option parms-in-bank1
11468
11469         * device/lib/_divsint.c, device/lib/_divslong.c, device/lib/_divuint.c
11470         * device/lib/_divulong.c, device/lib/_modsint.c, device/lib/_modslong.c
11471         * device/lib/_modulong.c, device/lib/_mulint.c, device/lib/_mullong.c:
11472         adjusted for --parms-in-bank1 option
11473
11474         * device/include/string.h:
11475         donot redefine "reentrant" keyword
11476
11477         * device/include/ds80c390.h: Added some more SFRs
11478
11479 2002-01-28  Bernhard Held  <bernhard AT bernhardheld.de>
11480
11481         * sim/ucsim: Merged branch ucsim-034-pre3 to main trunk; new version 0.4
11482
11483 2002-01-26  Bernhard Held  <bernhard AT bernhardheld.de>
11484
11485         * src/SDCCast.c (funcOfType): fix usage of double --float-reent
11486
11487 2002-01-22  Bernhard Held  <bernhard AT bernhardheld.de>
11488
11489         * support/regression/fwk/lib/testfwk.c (main): Removed workaround for bug #505387
11490
11491 2002-01-18  Paul Stoffregen  <paul AT pjrc.com>
11492
11493         * Added --xram-movc option
11494
11495 2002-01-13  Bernhard Held  <bernhard AT bernhardheld.de>
11496
11497         * support/regression/Makefile: don't include test-mcs51-stack-auto in target all
11498
11499 2002-01-11  Johan Knol
11500
11501         * Added math lib of Jesus Calvino-Fraga
11502
11503 2002-01-08  Bernhard Held  <bernhard AT bernhardheld.de>
11504
11505         * src/SDCCmain.c (processFile): fix processing of ../../src.c
11506         * support/regression/Makefile: new target test-mcs51-stack-auto
11507         * support/regression/ports/mcs51-stack-auto/spec.mk: added
11508
11509 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11510
11511         * src/SDCCglue.h: printIvalCharPtr(), not printIvalChar()
11512
11513 2002-01-04  Bernhard Held  <bernhard AT bernhardheld.de>
11514
11515         * support/regression/ports/mcs51/support.c: correct setup of timer / UART
11516
11517 2002-01-03  Bernhard Held  <bernhard AT bernhardheld.de>
11518
11519         * src/SDCCsymt.c (processFuncArgs): fix #498307 by Johan
11520
11521         * src/SDCCglue.h: add definition for printIvalChar()
11522
11523 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11524
11525         * src/SDCCast.c: fix #498138 by Johan
11526
11527         * src/SDCCglue.c: fix #498138 by Johan
11528
11529 2002-01-02  Bernhard Held  <bernhard AT bernhardheld.de>
11530
11531         * support/regression/Makefile: fix clean
11532
11533         * support/regression/ports/ds390/support.c: fix transmission of last character
11534
11535 2001-12-29  Sandeep Dutta  <sandeep AT ddi.com>
11536
11537         * /sdcc/src/ds390/gen.c:
11538         a) improved computing address of stack variable
11539         b) took out some #if 0 code
11540         c) improved parmBytes adjustment
11541         d) improved genPlusIncr & genMinusIncr
11542         e) genCmp could generate bad code (when left assigned to DPTR)
11543         f) Fixed bug in hasInc
11544
11545         * /sdcc/src/ds390/ralloc.c:
11546         a) packRegsForSupport could mess up live information (Fixed)
11547         b) packRegsDPTRuse could be incorrect for left & right shift
11548
11549         * /sdcc/src/mcs51/ralloc.c:
11550         packRegsForSupport could mess up the live information (Fixed)
11551
11552         * /sdcc/src/mcs51/gen.c: Fixed a bug in hasInc
11553
11554         * /sdcc/src/SDCCast.c:
11555         can reverse a loop even if function call is present as long
11556         as the loop control variable is local & is not passed as parameter
11557
11558 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11559
11560         * /sdcc/ChangeLog: *** empty log message ***
11561
11562         * /sdcc/src/ds390/gen.c, /sdcc/src/ds390/main.c:
11563         More builtin function additions for TININative
11564
11565         * /sdcc/src/ds390/ralloc.c:
11566         Had broken the regression testsuite
11567
11568         * /sdcc/src/SDCCast.c: Fixed a bug in dumptree
11569
11570         * /sdcc/src/SDCCsymt.c, /sdcc/src/SDCCsymt.h:
11571         Added funcattr hasStackParms will be set for reentrant functions when there
11572         are paramteres on the stack, this helps in minimizing frame pointer generation
11573         typeFromStr can handle function pointers now
11574
11575         * /sdcc/doc/builtins.txt, /sdcc/doc/TININative.txt:
11576         *** empty log message ***
11577
11578 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11579
11580         * /src/ds390/gen.c, /src/ds390/main.c:
11581         More builtin function additions for TININative
11582
11583         * /src/ds390/ralloc.c:
11584         Had broken the regression testsuite
11585
11586         * /src/SDCCast.c: Fixed a bug in dumptree
11587
11588         * /src/SDCCsymt.c, /src/SDCCsymt.h:
11589         Added funcattr hasStackParms will be set for reentrant functions when there
11590         are paramteres on the stack, this helps in minimizing frame pointer generation
11591         typeFromStr can handle function pointers now
11592
11593         * /doc/builtins.txt, /doc/TININative.txt:
11594         *** empty log message ***
11595
11596
11597 2001-12-24  Sandeep Dutta  <sandeep AT ddi.com>
11598
11599         * /src/ds390/gen.c, /src/ds390/main.c, /src/ds390/peeph.def, /src/ds390/ralloc.c:
11600         ALPHA version for -mTININative
11601
11602         * /src/izt/i186.c, /src/izt/tlcs900h.c, /src/mcs51/main.c, /src/pic/main.c, /src/z80/main.c, /src/avr/main.c:
11603         updated to reflect changes in the port structure
11604
11605         * /src/port.h:
11606         added function do_assemble (similar to do_link) if non-null this function
11607         will be called to do assembly (-mTININative) requires a multi command
11608         assembly
11609         added function genAssemblerEnd will be called to generate assembler Epilogue
11610
11611         * /src/SDCCsymt.c:
11612         added _JavaNative to debug info printing
11613
11614         * /src/SDCCmain.c: added option --tini-libid
11615         added port->do_assemble function (-mTININative) has a multi command assemble
11616
11617         * /src/SDCCglue.c: Disabled "constExpr" check
11618         added port->genAssemblerEnd function
11619
11620         * /src/SDCCglobl.h: Added option --tini-libid value
11621
11622         * /src/SDCCast.h:
11623         tookout optimizeCompare from the header (has no external references)
11624
11625         * /src/SDCCast.c: made one more function "static"
11626
11627 2001-12-23  Michael Hope  <michaelh AT juju.net.nz>
11628
11629         * src/z80/mappings.i: Added z80asm support.
11630
11631         * src/z80/main.c: Added z80asm support on --asm=z80asm
11632
11633         * src/z80/gen.c: Fixed asm portability issues.
11634
11635         * src/asm.c (tvsprintf): Removed old code, added 'N' for function name.  For extern support.
11636
11637         * src/SDCCglue.c (printExterns): Added global/extern split.
11638
11639 2001-12-17  Bernhard Held  <bernhard AT bernhardheld.de>
11640
11641         * support/regression/Makefile: added test for mcs51 model large
11642
11643         * support/regression/ports/mcs51-large/spec.mk: added test for mcs51 model large
11644
11645         * support/regression/ports/gbz80/spec.mk: added -mgbz80
11646
11647 2001-12-05  Michael Hope  <michaelh AT juju.net.nz>
11648
11649         * src/diff.1 (Index): Many, many optmisiations.  Dhrystone up to 201.
11650
11651 1904-01-06  Michael Hope  <michaelh AT juju.net.nz>
11652
11653         * src/z80/ralloc.c (packRegsForIYUse): Fixed the case where an operand is in direct space.
11654
11655         * src/z80/gen.c (makeFreePairId): Optimised IY load by using a spare pair.
11656
11657 2001-12-02  Bernhard Held  <bernhard AT bernhardheld.de>
11658
11659         * src/mcs51/gen.c (genFunction): avoid excess "inc sp"
11660
11661         * support/regression/tests/simplefloat.c: Port to mcs51.
11662
11663 2001-11-25  Michael Hope  <michaelh AT juju.net.nz>
11664         * support/regression/tests/bug-485362.c: Added.
11665
11666         * support/regression/tests/simplefloat.c (testDivNearOne): Added.
11667
11668         * src/z80/gen.c (aopOp): Fixed case where left and result are in the same spill loc and they have different sizes.
11669
11670         * src/z80/peeph.def: Added rules for optimising two byte compares on the same thing, and to optimise two ptr assign.
11671
11672         * src/z80/gen.c (aopDump): Added a dump function.
11673
11674 2001-11-25  Bernhard Held  <bernhard AT bernhardheld.de>
11675         * sim/ucsim/s51.src/glob.cc: DS390 SFRs and bits added.
11676
11677         * sim/ucsim/s51.src/port.cc: Port 4 and 5 added.
11678
11679         * sim/ucsim/s51.src/regs51.h: DS390 SFRs added.
11680
11681         * sim/ucsim/s51.src/uc390.cc: Some details improved, CKRDY works for tinibios.
11682
11683         * sim/ucsim/s51.src/uc390cl.h: Work in progress.
11684
11685         * sim/ucsim/sim.src/uccl.h: 6 ports for DS390.
11686
11687         * support/regression/fwk/lib/testfwk.c: Run with tinibios.
11688
11689         * support/regression/ports/mcs51/spec.mk: Fine tuninig.
11690
11691         * support/regression/ports/ds390/support.c: Use tinibios.
11692
11693         * support/regression/ports/ds390/spec.mk: Fine tuning, use tinibios.
11694
11695 2001-11-23  Michael Hope  <michaelh AT juju.net.nz>support/regression/tests/bug-460010.c
11696
11697         * src/z80/ralloc.c (packRegsForHLUse3): Changed to not pack into HL if anything is in direct space.
11698         (packRegsForHLUse3): Added packing support for send, cast, and return value from a call.
11699
11700         * src/z80/peeph.def: Added rules for optimising pushes of part of a pair.
11701
11702         * src/z80/gen.c (emitCall): Changed the stack fixup to not use HL.
11703
11704 2001-11-18  Michael Hope  <michaelh AT juju.net.nz>
11705
11706         * src/z80/gen.c (genCmp): Fixed compare on unsigned.
11707
11708         * src/z80/ralloc.c (packRegsForHLUse3): Created and optimised.
11709         (packRegsForIYUse): Created and optimised.
11710
11711 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
11712
11713         * support/regression/tests/float.c (testFloatAdd): Fixed up warning.
11714 2001-11-18  Bernhard Held  <bernhard AT bernhardheld.de>
11715
11716         * sdcc/support/regression/tests/bug-460010.c: fix seg violation on host
11717
11718         * sdcc/support/regression/tests/muldiv.c: fix output on mcs51
11719
11720         * sdcc/support/regression/tests/stacks.c: fix DSEG overflow on mcs51
11721
11722 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11723
11724         * sdcc/sim/device/lib/_gptrget.c: mem region 5 (idata) added
11725
11726         * sdcc/sim/device/lib/_gptrput.c: mem region 5 (idata) added
11727
11728 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11729
11730         * sdcc/sim/ucsim/globals.cc: New: IXRAM.
11731
11732         * sdcc/sim/ucsim/stypes.h: New: IXRAM.
11733
11734         * sdcc/sim/ucsim/s51.src/uc390.cc: New: IXRAM.
11735
11736 2001-11-07  Michael Hope  <michaelh AT juju.net.nz>
11737
11738         * src/z80/ralloc.c (packRegsForHLUse): Banned IFXs from being packed into HL.
11739         (packRegsForHLUse): Added rule to pack address of/pointer get for itemps into HL for the Z80.
11740         (packRegsForAccUse2): Added rule to pack hbit IFXs into A.
11741
11742         * src/z80/main.c (_setDefaultOptions): Made float code re-entrant by default.
11743
11744         * src/z80/gen.c (aopGetLitWordLong): Added word support for floats.
11745         (genNotFloat): Added.
11746         (genUminusFloat): Added.
11747
11748         * device/lib/z80/Makefile: Added floating pt stubs.
11749
11750         * device/lib/Makefile.in (Z80SOURCES): Added floating pt support.
11751
11752         * src/z80/gen.c (genIpush): Fixed up a push of one byte when left is in a pair.
11753
11754         * device/lib/_fsadd.c (__fsadd): Fixed up return where the numbers are hugely different.
11755
11756 2001-11-07  Bernhard Held  <bernhard AT bernhardheld.de>
11757
11758         * sdcc/sim/ucsim/s51.src/glob.cc: Minor fix.
11759
11760         * sdcc/sim/ucsim/s51.src/regs51.h: Minor fix.
11761
11762         * sdcc/support/regression/Makefile: Add port ds390.
11763
11764         * sdcc/support/regression/ports/mcs51/spec.mk: Minor change.
11765
11766         * sdcc/support/regression/ports/z80/spec.mk: Minor change.
11767
11768         * sdcc/support/regression/ports/ds390/spec.mk: Added.
11769
11770         * sdcc/support/regression/ports/ds390/support.c: Added.
11771
11772         * sdcc/support/regression/ports/ds390/uCsim.cmd: Added.
11773
11774         * sdcc/support/regression/ports/mcs51/timeout.c: Cut.
11775
11776         * sdcc/support/regression/fwk/lib/timeout.c: Paste.
11777
11778 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
11779
11780         * device/include/malloc.h: Added z80 and gbz80 support.
11781
11782         * device/lib/gbz80/heap.s: Added.
11783
11784         * device/lib/z80/heap.s: Added.
11785
11786         * device/lib/malloc.c: Added z80 and gbz80 support.
11787
11788         * support/regression/tests/malloc.c (testMalloc): Added.
11789
11790         * src/SDCCmain.c (parseCmdLine): Added support for -Wp.
11791
11792         * support/regression/tests/bug-478094.c: Added.
11793
11794         * src/z80/gen.c (commitPair): Fixed silly gbz80/z80 commit to static bug.
11795
11796 2001-11-04  Bernhard Held  <bernhard AT bernhardheld.de>
11797
11798         * sdcc/sim/ucsim/s51.src/uc390cl.h: Improvement for ds390 to run regression tests
11799
11800         * sdcc/sim/ucsim/s51.src/uc390.h: Improvement for ds390 to run regression tests
11801
11802         * sdcc/sim/ucsim/s51.src/regs51.h: Improvement for ds390 to run regression tests
11803
11804         * sdcc/sim/ucsim/s51.src/glob.cc: Improvement for ds390 to run regression tests
11805
11806         * sdcc/support/regression/tests/bug-460010.c: Small change for ds390
11807
11808 2001-11-04  Michael Hope  <michaelh AT juju.net.nz>
11809
11810         * src/z80/peeph-gbz80.def: Removed a bad sub optimisation.
11811
11812 2001-11-03  Michael Hope  <michaelh AT juju.net.nz>
11813
11814         * support/regression/tests/bug-477927.c: Added.
11815
11816         * src/z80/peeph.def: Added minor rules.
11817
11818         * src/z80/gen.c (genPlusIncr): Added an extra plusinc rule.
11819
11820         * src/z80/peeph.def: Added jump optimisation modification.
11821
11822 2001-11-01  Michael Hope  <michaelh AT juju.net.nz>
11823
11824         * src/SDCCmain.c (linkEdit): Added runtime path detection to the mcs51 port.
11825
11826 2001-10-30  Michael Hope  <michaelh AT juju.net.nz>
11827
11828         * support/regression/tests/funptrs.c: Added.
11829
11830 2001-10-29  Michael Hope  <michaelh AT juju.net.nz>
11831
11832         * src/z80/ralloc.c (packRegsForHLUse): Fixed up bad spill due to pushing one byte via HL.
11833
11834 2001-10-28  Michael Hope  <michaelh AT juju.net.nz>
11835
11836         * src/z80/gen.c (genArrayInit): Made it work for on stack arrays.
11837
11838         * src/z80/main.c (gbz80_port =): Added rle support to the gbz80 port.
11839
11840         * src/z80/gen.c (genMinus): Fixed for where the result is one byte.
11841         (movLeft2ResultLong): Created.
11842
11843         * src/z80/ralloc.c (packRegsForHLUse): Added a couple of simple cases for the GB.
11844         (joinPushes): Added.  Joins two char pushes into a word push.
11845
11846 2001-10-27  Michael Hope  <michaelh AT juju.net.nz>
11847
11848         * support/cpp2/Makefile.in (install): Added creation of dest dir.
11849
11850         * support/makebin/Makefile (install): Added creation of dest dir.
11851
11852 2001-10-24 Karl Bongers <karl AT turbobit.com>
11853
11854         * configure.in, configure, Makefile, support/cpp: Removed cpp folder, since we have new cpp2 preprocessor code.
11855
11856 2001-10-21  Michael Hope  <michaelh AT juju.net.nz>
11857
11858         * src/z80/ralloc.c: Turned off faulty pack for one use.
11859
11860         * src/z80/peeph-gbz80.def: Removed redundent restart options.
11861
11862         * src/z80/gen.c (genMult): Added native mul for constants on the z80 and gbz80.
11863
11864 2001-10-21  Bernhard Held  <bernhard AT bernhardheld.de>
11865
11866         * support/regression/Makefile: Improved clean
11867
11868         * support/regression/ports/gbz80/spec.mk: Added clean
11869
11870         * support/regression/ports/host/spec.mk: Added clean
11871
11872         * support/regression/ports/z80/spec.mk: Added clean
11873
11874         * support/regression/ports/mcs51/spec.mk: Added clean, little improvements
11875
11876         * support/regression/ports/mcs51/timeout.c: little improvements
11877
11878 2001-10-17  Michael Hope  <michaelh AT juju.net.nz>
11879
11880         * device/lib/malloc.c (MEMHEADER): Fixed against new pedantic pointers.
11881
11882         * support/regression/fwk/include/testfwk.h: Fixed up to use function pts correctly.
11883
11884         * support/regression/generate-cases.py: Fixed up to use function pts correctly.
11885
11886 2001-10-16  Bernhard Held  <bernhard AT bernhardheld.de>
11887
11888         * support/regression/port/mcs51/spec.mk: add timeout for uCsim
11889
11890         * support/regression/port/mcs51/timeout.c: add timeout for uCsim
11891
11892 2001-10-13  Michael Hope  <michaelh AT juju.net.nz>
11893         * src/z80/gen.c (emitCall): Fixed up missing spill of HL when used to assign the result value.
11894
11895         * src/z80/ralloc.c: Turned off pack for one use as it's quite broken.
11896
11897         * src/SDCCmain.c (linkEdit): Added support for passing a legacy command line through the processor.
11898
11899         * src/mcs51/main.c (_linkCmd): Added bin path to command.
11900
11901         * src/SDCCmain.c (initValues): Added support for when it it called just to link.
11902
11903         * as/mcs51/lklibr.c (libfil;): Turned off 'library file' message.
11904
11905         * src/SDCCval.c (constVal): Fixed usage of 'L' modifier problems on ppc.
11906
11907         * support/regression/tests/longor.c: Added.
11908
11909 2001-10-11  Bernhard Held  <bernhard AT bernhardheld.de>
11910
11911         * as/mcs51/asdata.c: replaced FILENAME_MAX with PATH_MAX
11912
11913         * as/mcs51/aslink.h: define PATH_MAX
11914
11915         * as/mcs51/asm.h: define PATH_MAX
11916
11917         * as/mcs51/asmain.c: replaced FILENAME_MAX with PATH_MAX
11918
11919         * as/mcs51/asnoice.c: replaced FILENAME_MAX with PATH_MAX
11920
11921         * as/mcs51/lklex.c: replaced FILENAME_MAX with PATH_MAX
11922
11923         * as/mcs51/lkmain.c: replaced FILENAME_MAX with PATH_MAX
11924
11925         * src/SDCCglobl.h: define PATH_MAX
11926
11927         * src/SDCCmacro.c: replaced FILENAME_MAX with PATH_MAX
11928
11929         * src/SDCCmain.c: replaced FILENAME_MAX with PATH_MAX
11930
11931 2001-10-11  Michael Hope  <michaelh AT juju.net.nz>
11932
11933         * src/z80/gen.c (gencjneshort): Fixed
11934
11935         * src/z80/ralloc.c (packRegsForHLUse): Added pack into HL for cast then ipush.
11936
11937 2001-10-09  Michael Hope  <michaelh AT juju.net.nz>
11938
11939         * support/regression/tests/bug-469671.c: Added.
11940
11941         * src/z80/gen.c (shiftIntoPair): Fixed up warning.
11942
11943 2001-10-08  Michael Hope  <michaelh AT juju.net.nz>
11944
11945         * src/SDCCmain.c: Added --fommit-frame-pointer option and implemented in the z80 port.
11946
11947         * src/z80/gen.c (genPlus): Fixed to work with extended stack.  Also fixed genMinus, genCmp.  genUMinus is still left.
11948
11949 2001-10-08  Bernhar Held  <bernhard AT bernhardheld.de>
11950
11951         * src/SDCCmain.c (preProcess): added define SDCC_NOOVERLAY
11952
11953         * src/device/lib/_mulint.c  : removed hint: nooverlay bug
11954
11955         * src/device/lib/_mullong.c : removed hint: nooverlay bug
11956
11957         * src/device/lib/_divuint.c : removed hint: nooverlay bug
11958
11959         * src/device/lib/_divulong.c: removed hint: nooverlay bug
11960
11961         * src/device/lib/_moduint.c : removed hint: nooverlay bug
11962
11963         * src/device/lib/_modulong.c: removed hint: nooverlay bug
11964
11965 2001-10-07  Michael Hope  <michaelh AT juju.net.nz>
11966
11967         * 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.
11968
11969         * support/Util/NewAlloc.c (freeTrace): Changed free for the gc case to not free at all.  Fixes runtime segfault.
11970
11971         * support/regression/tests/scott-compare3.c (c_abcd): Fixed up casts.
11972
11973 2001-10-07    <johan AT FRIJA>
11974
11975         * device/lib/gets.c (gets): fixed the return value.
11976
11977 2001-10-06  Michael Hope  <michaelh AT juju.net.nz>
11978         * src/SDCCmain.c (WRITE_SEG_LOC): Fixed up to use Safe_strdup.
11979
11980         * 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.
11981
11982         * 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.
11983
11984         * src/z80/gen.c (genZ80Code): Added de-allocation via trace support.
11985
11986         * src/pic/gen.c: Removed Safe_strdup.
11987
11988         * configure.in: Added option to enable libgc support.
11989
11990         * src/SDCCbitv.c (bitVectnBitsOn): Optimised.
11991         (bitVectUnion): Optimised.
11992         (bitVectIntersect): Optimised.
11993         (bitVectBitsInCommon): Optimised.
11994         (bitVectCplAnd): Optimised.
11995
11996         * support/makebin/makebin.c (usage): Removed getopt as mingw32 doesn't have it.  Sigh.
11997
11998 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
11999
12000         * src/SDCCmain.c: distinguish between assembler debug and plain options
12001
12002         * src/avr/main.c:   remove standard assembler options
12003
12004         * src/ds390/main.c: remove standard assembler options
12005
12006         * src/mcs51/main.c: remove standard assembler options
12007
12008         * src/port.h: removed "PENDING" comment
12009
12010 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12011
12012         * src/device/lib/_mulint.c  : new, with assember functions
12013
12014         * src/device/lib/_mullong.c : new, with assember functions
12015
12016         * src/device/lib/_divuint.c : with assember functions
12017
12018         * src/device/lib/_divsint.c : with assember functions
12019
12020         * src/device/lib/_divulong.c: with assember functions
12021
12022         * src/device/lib/_divslong.c: with assember functions
12023
12024         * src/device/lib/_moduint.c : with assember functions
12025
12026         * src/device/lib/_modsint.c : with assember functions
12027
12028         * src/device/lib/_modulong.c: with assember functions
12029
12030         * src/device/lib/_modslong.c: with assember functions
12031
12032         * src/device/lib/libint.lib:  replaced _muluint.c  and _mulsint.c  by _mulint.c
12033
12034         * src/device/lib/liblong.lib: replaced _mululong.c and _mulslong.c by _mullong.c
12035
12036         * src/device/lib/Makefile.in: replaced _muluint.c  and _mulsint.c  by _mulint.c
12037                                       replaced _mululong.c and _mulslong.c by _mullong.c
12038
12039 2001-10-03 Bernhard Held <bernhard AT bernhardheld.de>
12040
12041         * src/SDCCsymt.c: sequence of specifiers in pintTypeChain() corrected
12042
12043 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12044
12045         * src/SDCCglue.c: test, if win32api is available for MINGW
12046
12047 2001-10-01 Bernhard Held <bernhard AT bernhardheld.de>
12048
12049         * src/SDCCsymt.c: no more _modifier in printTypeChain()
12050         * support/regression/tests/driverstruct.c: REENTRANT for mcs51
12051         * support/regression/ports/gbz80/spec.mk: removed GENERIC
12052         * support/regression/ports/host/spec.mk: removed GENERIC
12053         * support/regression/ports/mcs51/spec.mk: removed GENERIC
12054         * support/regression/ports/z80/spec.mk: removed GENERIC
12055
12056 2001-10-01  Michael Hope  <michaelh AT juju.net.nz>
12057
12058         * support/regression/fwk/lib/testfwk.c (__printf): Removed GENERIC.
12059
12060         * support/regression/tests/bug-467035.c: Created.
12061
12062 2001-10-01    <johan AT FRIJA>
12063
12064         * src/SDCC.y: fixed bug #466586 part 1
12065
12066 2001-10-01  Johan Knol <johan.knol AT iduna.nl>
12067
12068         * SDCCicode.c: z80 has no generic pointers
12069         * removed -s from strip in all Makefile(.in)'s. It is not needed, but Solaris chocks on it.
12070
12071 2001-09-30  Michael Hope  <michaelh AT juju.net.nz>
12072
12073         * sim/ucsim/cmd.src/Makefile.in ($(PRJDIR)/libcmd.a): Changed all ar references to $(AR) for Solaris.
12074
12075 2001-09-29  Michael Hope  <michaelh AT juju.net.nz>
12076
12077         * Makefile (sdcc-libs): Added makebin to the list of standard targets.
12078
12079         * support/regression/ports/z80/spec.mk: Updated to use env for sdcc bin dir for automatic regression.
12080
12081 2001-09-25  Michael Hope  <michaelh AT juju.net.nz>
12082
12083         * configure.in: Fixed up so that ucsim is only configured once.
12084
12085         * support/cpp2/configure.in: Fixed to use the program transform to append the .exe for the win32 build.
12086
12087         * src/SDCCutil.c (getPrefixFromBinPath): Fixed up to work with win32 in all of its glory.
12088         (getPathDifference): As above.
12089
12090         * src/SDCCmain.c (preProcess): Changed to use a temporary file in a proper temp directory.  Fixed case where pre-processing only.
12091
12092         * src/SDCCglue.c (tempfilename): Added function for pre-processor.
12093
12094 2001-09-23  Michael Hope  <michaelh AT juju.net.nz>
12095         * .version: Updated to 2.3.1
12096
12097         * src/z80/main.c (z80_port =): Added macro based linker and assembler command line support.
12098         Added copyright header.
12099
12100         * src/SDCCmain.c: Shifted various functions into SDCCutil.c
12101         (assemble): Added support for macro based assembler commands.
12102         (linkEdit): Added support for macro based linker commands.
12103         (preProcess): Changed the pre-processor to use macros.
12104         (_setPaths): Added functionality to autodetect the include, lib and bin dir paths.
12105         (_discoverPaths): Added support for overriding the install directory using the SDCCDIR env variable.
12106
12107         * device/lib/z80/crt0.s: Added module name for debugging.
12108
12109 2001-09-20  Michael Hope  <michaelh AT juju.net.nz>
12110
12111         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12112
12113         * src/SDCChasht.c (hTabDeleteByKey): Fixed delete as it would delete the last item from a bucket even if it wasn't the real one.
12114
12115         * src/SDCCglue.c: Moved gc_strdup to SDCCutil.c
12116
12117         * src/Makefile.in: Added SDCCmacro and SDCCutil
12118
12119 2001-09-19  Michael Hope  <michaelh AT juju.net.nz>
12120
12121         * src/SDCCmain.c (printVersionInfo): Added the build date to the version info.
12122
12123 2001-09-16    <johan AT FRIJA>
12124
12125         * 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.
12126
12127 2001-09-15    <johan AT FRIJA>
12128
12129         * src/mcs51/ralloc.c: (findAssignToSym): fixed bug #460662 part 1
12130         * src/ds390/ralloc.c (findAssignToSym): fixed bug #460662 part 1
12131
12132 2001-09-11    <johan AT FRIJA>
12133
12134         * src/SDCCval.c (valDiv Mod Minus Plus Shift): keep litteral expressions as small as possible (bug #460010)
12135
12136 2001-09-10  Michael Hope  <michaelh AT juju.net.nz>
12137
12138         * support/regression/tests/bug-460444.c: Added test case.
12139
12140         * src/z80/gen.c (genOr): bug 460444: if (a ^ lit) was broken for &, |, and ^.
12141         (genCast): Added justification for all of the asserts.
12142
12143 2001-09-10  Bernhard Held <bernhard AT bernhardheld.de>
12144
12145         * support/regression/support.c: _xdata replaced by xdata
12146
12147         * support/regression/spec.mk: removed _generic
12148
12149 2001-09-09  Michael Hope  <michaelh AT juju.net.nz>
12150
12151         * src/pic/ralloc.c (debugLogRegType): Removed some old types to get it to compile.
12152
12153         * src/z80/gen.c (shiftR2Left2Result): Improved the case when v = v >> n for small values of n to use less code space and time.
12154         (genrshTwo): Fixed v = v >> n where v is a negative int and n is > 8: bug 460010.
12155
12156         * src/z80/peeph.def: Added a rule to optimise shift then compare.
12157
12158         * support/regression/tests/bug-460000.c (testShiftByParam): Added test case.
12159
12160         * support/regression/tests/bug-460010.c: Added test case.
12161
12162         * support/regression/Makefile (test-host): Removed a silly 'clean' target when testing against gcc.
12163
12164 2001-09-09  Bernhard Held <bernhard AT bernhardheld.de>
12165
12166         * support/regression/Makefile: inter-port-clean adjusted for mcs51
12167
12168         * support/regression/testfwk.c: removed workaround for bug #436344
12169
12170         * support/regression/tests/bp.c: use less memory with mcs51
12171
12172         * support/regression/tests/bug-441448.c: use less memory
12173
12174         * support/regression/tests/ports/mcs51/spec.mk: cleanup, use --stack-after-data
12175
12176         * support/regression/collate-results.py: typo
12177
12178 2001-09-08  Michael Hope  <michaelh AT juju.net.nz>
12179
12180         * support/regression/tests/fetchoverlap.c: Added new test case.
12181
12182         * support/regression/tests/bp.c: Added new test case.
12183
12184         * support/regression/tests/bug-448984.c: Added new test case.
12185
12186         * support/regression/tests/pow2shifts.c: Added new test case.
12187
12188         * src/z80/gen.c: Turned off the noise it normally generates for the release.
12189         (genlshTwo): Fixed right shift for count > 8.
12190
12191         * src/z80/ralloc.c: Disabled most of the ACC packing rules as they weren't getting hit and weren't at all safe.
12192
12193 2001-09-08    <johan AT FRIJA>
12194
12195         * src/SDCCicode.c (geniCodeCall): a CPOINTER can be used as a function
12196
12197 2001-09-07    <johan AT FRIJA>
12198
12199         * src/SDCCicode.c (newiCodeCondition): fixed bug #456235 (1.77)
12200
12201         * src/SDCCglue.c (emitRegularMap): only delete a symbol when it is a symbol
12202
12203 2001-09-06    <johan AT FRIJA>
12204
12205         * src/SDCC.y: this could be a fix for bug #458744 (1.37)
12206         * bernhard noted me at this: "() equals to (void)" (1.38)
12207
12208 2001-09-05    <johan AT FRIJA>
12209
12210         * src/SDCCglue.c (emitRegularMap): a fix for bug #458099/2
12211
12212 2001-09-04    <johan AT FRIJA>
12213
12214         * src/SDCCsymt.c (checkSClass): a fix for bug #458099/1
12215
12216
12217 2001-09-04  Paul Stoffregen  <paul AT pjrc.com>
12218
12219         * pragma noinduction broke memcpy on mcs51 large model.  Moved it inside z80 optimization
12220
12221 2001-09-03  Michael Hope  <michaelh AT juju.net.nz>
12222
12223         * link/z80/aslink.h: Fixed path for PATH_MAX
12224
12225 2001-09-02  Michael Hope  <michaelh AT juju.net.nz>
12226
12227         * src/z80/gen.c (fetchLitPair): Changed so that it properly caches direct space references.
12228
12229         * support/regression/tests/addsub.c: Added cases to cover all the +, - combinations.
12230
12231         * support/regression/tests/uminus.c: Added a test for the unary minus operator.
12232
12233         * 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.
12234
12235 2001-09-01  Michael Hope  <michaelh AT juju.net.nz>
12236
12237         * src/z80/gen.c: Fixed up generator to pass the regresion tests, specifically fixing loads for longs, genCmp, and turned on the map file.
12238         (genCmp): Fixed up genCmp for the GB with longs.
12239
12240         * device/lib/gbz80/Makefile: Fixed up all the libraries to pass the regression tests.
12241
12242         * support/regression/ports/host/spec.mk: Updated to compile with the new type specifiers.
12243
12244         * device/lib/Makefile.in (Z80SOURCES): Removed old _mululong, _mulslong, and unneeded _mulint.
12245
12246         * device/lib/_mullong.c (_mulslong): Changed to actually return a value :)
12247
12248 2001-08-30  Paul Stoffregen  <paul AT pjrc.com>
12249
12250         * added peepholes 223 to 231 to mcs51 port.  These improve code when using large model.
12251
12252 2001-08-30  Michael Hope  <michaelh AT juju.net.nz>
12253
12254         * 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.
12255
12256         * src/z80/gen.c (genPlus): Changed bad long add for gb to a fall through.
12257
12258 2001-08-29  Michael Hope  <michaelh AT juju.net.nz>
12259
12260         * link/z80/aslink.h: Fixed long file name support.  Is now based off PATH_MAX instead of a constant.
12261
12262         * src/z80/gen.c: Fixed add and sub for the case where left or right are in static space.
12263
12264 2001-08-30 Bernhard Held   <bernhard AT bernhardheld.de>
12265
12266   * sim/ucsim/configure:    little improvement of Cygwin-detection
12267   * sim/ucsim/configure.in: little improvement of Cygwin-detection
12268   * sim/ucsim/cmd.src/newcmdcl.h: include <sys/types.h> to define fd_set automated build
12269   * support/regression/tests/bug-221100.c: small changes for mcs51
12270   * support/regression/tests/bug-221168.c: small changes for mcs51
12271   * support/regression/tests/bug-227710.c: small changes for mcs51
12272   * support/regression/tests/staticinit.c: small changes for mcs51
12273   * as/mcs51/aslink.h: accept everything as symbol name in rel-files, bug fix ID 452601
12274   * as/mcs51/lklex.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12275   * as/mcs51/lksym.c:  accept everything as symbol name in rel-files, bug fix ID 452601
12276
12277 $Revision$